Setel tabel perutean persisten pada Debian

13

Saya telah memodifikasi tabel perutean dengan menghapus satu aturan, dan menambahkan dua aturan baru untuk antarmuka et1 kedua:

route del -net 10.1.2.0 netmask 255.255.255.0
route add -host 10.1.2.51 eth1
route add -host 10.1.2.52 eth1

Saya ingin aturan untuk bertahan hidup reboot. Saya bisa menulis skrip rc sederhana untuk menghapus 1 aturan dan menyisipkan 2 aturan baru, tetapi saya bertanya-tanya apakah ada cara untuk mengkonfigurasi ifconfig, tidak menambahkan aturan rute untuk antarmuka (eth1) saat dijalankan, atau bahkan lebih baik, untuk menentukan aturan mana yang harus ditambahkan.

Apa cara yang bersih untuk melakukannya? Apakah ifconfigsaya dapat menentukan aturan khusus untuk perutean?

Martin Vegter
sumber

Jawaban:

21

Anda dapat menambahkan panggilan ke post-uppengait saat antarmuka muncul. Konfigurasi antarmuka berada di /etc/network/interfaces. Berikut sebuah contoh:

auto eth1
iface eth1 inet dhcp
  post-up route del -net 10.1.2.0 netmask 255.255.255.0
  post-up route add -host 10.1.2.51 eth1
  post-up route add -host 10.1.2.52 eth1
  pre-down route add -net 10.1.2.0 netmask 255.255.255.0
  pre-down route add -host 10.1.2.51 eth1
  pre-down route add -host 10.1.2.52 eth1

Dari halaman manual - antarmuka :

post-up command
Jalankan perintah setelah menampilkan antarmuka. Jika perintah ini gagal maka ifup batal, jangan menandai antarmuka sebagai dikonfigurasi (meskipun telah benar-benar dikonfigurasi), mencetak pesan kesalahan, dan keluar dengan status 0.

pre-down command
Jalankan perintah sebelum menurunkan antarmuka. Jika perintah ini gagal maka ifdown dibatalkan, menandai antarmuka sebagai tidak terkonfigurasi (meskipun belum benar-benar terkonfigurasi), dan keluar dengan status 0.

Selanjutnya, di Linux "net-tools" routesudah usang dan harus diganti oleh alat dari paket iproute2 .

Bacaan lebih lanjut:

Marco
sumber
bisakah saya, alih-alih menghapus aturan pertama, mencegahnya dibuat di tempat pertama? Bagaimana cara aturan rute dibuat? Dari pengaturan jaringan di /etc/network/interfaces? Dan bagaimana saya tahu, bahwa ketika post-up berjalan, aturan yang akan dihapus sudah ada? Halaman manual tidak mengatakan pada titik waktu itu dibuat.
Martin Vegter
1
Karena saya tidak tahu jaringan Anda atau konfigurasi host Anda, saya tidak bisa memastikan bagaimana rute ini masuk ke tabel routing. Apakah ini disertai dengan sewa DHCP? Jika tidak, periksa layanan Anda /etc/init.ddan selidiki yang mana yang mungkin bisa mengacaukan tabel perutean. Lihat juga /etc/networktermasuk subdirektori.
Marco
5
post-updan pre-downadalah alias untuk updan downmasing-masing. Dan menambahkan || :pada akhir baris memungkinkan perintah gagal dan tidak mengganggu ifup / ifdown. Saya biasanya menambahkan ini ke route del, jika rute belum ada dan karenanya tidak dapat dihapus.
Tino