Ustaw trwałą tabelę routingu na Debianie

13

Zmodyfikowałem tabelę routingu, usuwając jedną regułę i dodając dwie nowe reguły dla mojego drugiego interfejsu eth1:

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

Chcę, aby reguły przetrwały ponowne uruchomienie. Mógłbym napisać prosty skrypt rc, aby usunąć 1 regułę i wstawić 2 nowe, ale zastanawiałem się, czy istnieje sposób skonfigurowania ifconfig, aby nie dodawać reguły trasy dla interfejsu (eth1) podczas uruchamiania, a nawet lepiej, aby określić, które reguły należy dodać.

Jaki byłby to czysty sposób? Czy ifconfigpozwala mi określić niestandardowe reguły routingu?

Martin Vegter
źródło

Odpowiedzi:

21

Możesz dodać połączenia do post-uphaka, gdy pojawi się interfejs. Konfiguracja interfejsu znajduje się w /etc/network/interfaces. Oto przykład:

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

Ze strony podręcznika - interfejsy :

post-up command
Uruchom komendę po uruchomieniu interfejsu. Jeśli to polecenie się nie powiedzie, ifup przerywa, powstrzymując się od oznaczania interfejsu jako skonfigurowanego (nawet jeśli tak naprawdę został skonfigurowany), drukuje komunikat o błędzie i wychodzi ze statusem 0.

pre-down command
Uruchom polecenie przed usunięciem interfejsu. Jeśli to polecenie się nie powiedzie, ifdown przerywa, oznacza interfejs jako zdekonfigurowany (nawet jeśli tak naprawdę nie został zdekonfigurowany) i kończy działanie ze statusem 0.

Ponadto w systemie Linux „net-tools” routejest przestarzałe i należy je zastąpić narzędziami z pakietu iproute2 .

Dalsza lektura:

Marco
źródło
czy mogę zamiast usunąć pierwszą regułę, uniemożliwić jej utworzenie? Jak w ogóle tworzona jest reguła trasy? Z ustawień sieciowych w /etc/network/interfaces? A skąd mam wiedzieć, że po uruchomieniu post-up istnieje reguła do usunięcia? Strona podręcznika nie podaje, w którym momencie została utworzona.
Martin Vegter
1
Ponieważ nie znam ani twojej sieci, ani konfiguracji hosta, nie mogę powiedzieć, w jaki sposób ta trasa trafiła do tablicy routingu. Czy pochodzi z dzierżawy DHCP? Jeśli nie, sprawdź swoje usługi /etc/init.di sprawdź, które z nich mogą majstrować przy tablicy routingu. Zobacz także /etc/networkpodkatalogi.
Marco
5
post-upi pre-downsą aliasami odpowiednio dla upi down. Dodanie a || :na końcu wiersza pozwala na niepowodzenie polecenia i nie przeszkadza ifup / ifdown. Zazwyczaj dodam to do route del, na wypadek gdyby trasa jeszcze nie istniała i dlatego nie można jej usunąć.
Tino