Linux: statische Routen permanent installieren

Vielen wird geläufig sein, das man das Routing unter Linux mittels „route“ Befehl beeinflussen kann. So ist schnell mittels

/sbin/route add -net 172.16.0.0 netmask 255.255.255.0 gw 192.168.1.1

eine statische Route zum Netz 172.16.0.0 über das lokale Gateway 192.168.1.1 eingerichtet. Allerdings dürfte weniger geläufig sein wo man diese Befehle unterbringt, wenn man eine Route permanent installieren möchte, so das sie auch nach Reboots weiter existiert. Dazu existiert unter den meisten Distributionen der Ordner /etc/network/if-up.d in dem Scripte abgelegt werden können die beim Start von Netzwerkinterfaces aufgerufen werden. Nun muss man dort nur noch darin eine Datei (touch /etc/network/if-up.d/<dateiname>) erstellen und ausführbar machen (chmod 755 <Dateiname>).  Dann noch folgenden Inhalt darin ablegen und den eigenen Erfordernissen anpassen .. fertig.

#!/bin/sh -e
# Called when a new interface comes up
#
# don't restart when lo is configured.
if [ "$IFACE" != "eth0" ]; then
    exit 0
fi
#
# Only run from ifup.
if [ "$MODE" != "start" ]; then
    exit 0
fi
#
# Set static route to network 172.16.0.0
/sbin/route add -net 172.16.0.0 netmask 255.255.255.0 gw 192.168.1.4
#

Hinweise: Mit den IF-Anweisungen wird sichergestellt, das die Route nur gesetzt wird, für den Fall das das Netzwerk-Interface „eth0“ gestartet wird. Da Linux diese Scripte immer aufgeruft, sobald ein Interface gestartet wird, kann man auf diesem Wege sicherstellen, das ein Befehl auch im richtigen Moment ausgeführt wird.

Links

http://ubuntuforums.org/archive/index.php/t-234207.html

Kommentar schreiben

3 Kommentare.

  1. Args shit c&p :/, meinte natürlich if [ "$MODE" != start ];nicht eher so aussehen:if [ "$MODE" != "start" ];

    • Hallo Lars,
      danke für den Hinweis. In einem Shell-Script,
      sollten alle Strings natürlich auch als eben solche ausgezeichnet sei,
      sonst produziert es Fehler oder arbeitet zumindest nicht so wie vorgesehen.
      Ich hab das grad mal schnell geändert !

      Grüße Stefan

  2. Sollteif [ "$MODE" != start ];nicht eher so aussehen:if [ "$MODE" != start ];

Kommentar schreiben


Hinweis - Du kannst dies benutzenHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>