Setzen Sie die persistente Routing-Tabelle auf Debian

13

Ich habe meine Routing-Tabelle geändert, indem ich eine Regel gelöscht und zwei neue Regeln für meine zweite Schnittstelle eth1 hinzugefügt habe:

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

Ich möchte, dass die Regeln einen Neustart überstehen. Ich könnte ein einfaches rc-Skript schreiben, um 1 Regel zu entfernen und 2 neue einzufügen, aber ich habe mich gefragt, ob es eine Möglichkeit gibt, ifconfig zu konfigurieren, keine Routenregel für die Schnittstelle (eth1) hinzuzufügen, wenn sie gestartet wird, oder noch besser. um anzugeben, welche Regeln hinzugefügt werden sollen.

Was wäre ein sauberer Weg, dies zu tun? Kann ifconfigich benutzerdefinierte Regeln für das Routing festlegen?

Martin Vegter
quelle

Antworten:

21

Sie können die Anrufe zum post-upHook hinzufügen, wenn die Schnittstelle aufgerufen wird. Die Schnittstellenkonfiguration sitzt in /etc/network/interfaces. Hier ein Beispiel:

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

Von der Manpage - Interfaces :

post-up command
Führe den Befehl aus, nachdem die Schnittstelle hochgefahren wurde. Wenn dieser Befehl fehlschlägt, bricht ifup ab und markiert die Schnittstelle nicht als konfiguriert (obwohl sie wirklich konfiguriert wurde), gibt eine Fehlermeldung aus und beendet das Programm mit dem Status 0.

command
Befehl vor dem Herunterfahren ausführen, bevor die Schnittstelle heruntergefahren wird. Wenn dieser Befehl fehlschlägt, bricht ifdown ab, markiert die Schnittstelle als dekonfiguriert (auch wenn sie nicht wirklich dekonfiguriert wurde) und wird mit dem Status 0 beendet.

Unter Linux sind die "net-tools" routeveraltet und sollten durch die Tools aus dem iproute2- Paket ersetzt werden.

Weitere Lektüre:

Marco
quelle
Kann ich verhindern, dass die erste Regel überhaupt erst erstellt wird, anstatt sie zu entfernen? Wie wird überhaupt eine Routenregel erstellt? Von den Netzwerkeinstellungen in /etc/network/interfaces? Und woher weiß ich, dass beim Ausführen von post-up die zu entfernende Regel bereits vorhanden ist? Die Manpage gibt nicht an, zu welchem ​​Zeitpunkt sie erstellt wurde.
Martin Vegter
1
Da ich weder Ihr Netzwerk noch Ihre Host-Konfiguration kenne, kann ich nicht sagen, wie diese Route in die Routing-Tabelle gelangt ist. Kommt es mit einer DHCP-Lease? Wenn nicht, checken Sie Ihre Dienste ein /etc/init.dund prüfen Sie , welche möglicherweise an der Routing-Tabelle herumspielen könnten. Schauen Sie sich /etc/networkauch die Unterverzeichnisse an.
Marco
5
post-upund pre-downsind Aliase upund down, respectively. Durch das Hinzufügen eines || :am Ende einer Zeile kann der Befehl fehlschlagen und ifup / ifdown nicht stören. Ich füge dies normalerweise hinzu route del, falls die Route noch nicht existiert und daher nicht entfernt werden kann.
Tino