1.8.3. Routing-Einstellung

Im Abschnitt "Adressierung" hatten wir gesehen, daß Router und in eingeschränktem Maß auch Endsysteme Routingtabellen benötigen.

Bei Linux o.ä. erfolgt die Eingabe und Modifikation dieser Routingtabellen mit dem Kommando route. Neue Routen können zu einem bestimmten Host, zu einem ganzen Netz oder als "Standardroute" (default) eingerichtet werden:

  route add -host Hostadresse Zusatzangaben
  route add -net Netzadresse Zusatzangaben
  route add default Zusatzangaben
Die Zusatzangaben bestehen aus einem Attribut und einem Wert:
  gw Routeradresse
  netmask Netzmaske
  dev Netzinterface
Routen kann man natürlich auch wieder entfernen:
  route del Adresse
In den beim Systemstart ausgeführten rc-Dateien (z.B. in /etc/rd.d/boot) finden wir einen Eintrag der Form
  route add -net 127.0.0.0 netmask 255.0.0.0 dev lo
Damit wird die Route für die Loopback-Adresse eingestellt.

Ein Eintrag für ein angeschlossenes Ethernet könnte so ausehen:

  route add -net 192.168.7.0 netmask 255.255.255.0 dev eth0
Die Angabe netmask ist nicht unbedingt erforderlich, da es sich um eine Klasse-C-Adresse handelt, die standardmäßig die Netzmaske 255.255.255.0 hat.

An diesem Ethernet sei auch ein Router "in die weite Welt hinaus" angeschlossen:

Die Route dorthin kann mit dem Kommando

  route add default gw 192.168.7.200
eingestellt werden. Unser Rechner muß natürlich zunächst "wissen", wie er den Router 192.168.7.200 erreicht. Das erfolgte durch den vorhergehenden Eintrag (route add -net 192.168.7.0 ...).

Ein Sonderfall ist die Multicast-Nutzung. Wenn wie üblich alle Multicast-Pakete auf das Ethernet-Interface geroutet werden sollen. Dies kann man durch folgendes Kommando erreichen:

  route add 224.0.0.0 netmask 240.0.0.0 dev eth0

Wenn wir kein Ethernet haben, sondern mit ifconfig sl0 ... eine permanente SLIP-Verbindung zum "Rest des Internets" hergestellt wurde, sollten wir folgenden Routeneintrag vornehmen:

  route add default dev sl0
Manchmal findet man statt dessen auch die etwas "degenerierte" Form
  route add default gw 192.168.7.1
Hier ist die eigene IP-Adresse 192.168.7.1 (des Interfaces sl0) als default-Router eingetragen, was dasselbe bewirkt wie oben.

Mit route ohne Parameter kann man sich die Routingtabelle anzeigen lassen:

  # route
  Kernel routing table
  Destination Gateway  Genmask   Flags MSS Window Use Iface
  loopback     *       255.0.0.0  U   1872   0     14 lo
  default      *       *          U    168   0      0 sl0
Bei Destination kann ein Zielnetz, ein einzelner Zielrechner oder default für "alles Übrige" eingetragen sein.

Als Gateway kann ein nächster Router angegeben sein; Genmask ist die Netzmaske.
Die Angaben MSS und Window werden nur von den Transportprotokollen benötigt. Diese sind Gegenstand des Kapitels 2.

Use gibt an, wieviele Pakete diese Route genutzt haben. Iface ist schließlich das Netzinterface.
Die Flags kennzeichnen Zustände der Route:

U Useable - Route ist nutzbar
G Gateway (d.h. Router) als Ziel
H Host als Ziel
R Reaktivierung dieser Route erfolgt nach einem Time-out
D dynamisch erzeugte Route (durch ICMP-Redirect)
M modifizierte Route (durch ICMP-Redirect)

Eine alternative Möglichkeit zur Anzeige der Routingtabelle ist das Kommando netstat -r:

  # netstat -r
  Kernel routing table
  Destination Gateway Genmask   Flags Metric Ref Use Iface
  loopback    *       255.0.0.0 U     0      0    14 lo
  default     *       0.0.0.0   U     0      0     0 sl0
Die Bedeutung der Flags wurde oben schon erläutert, ebenso die Metric.
Ref  ist ein Referenzzähler (Anzahl der diese Route nutzenden Prozesse).

Routingeinträge kann nur der Superuser verändern. Trotzdem werden Sie ggf. feststellen, daß mitunter neue Routen "auftauchen" oder alte verschwinden. Das liegt daran, daß eine Reihe von automatischen Routen-Einstellungen wirksam sein können, beispielsweise durch Routingprotokolle wie RIP, aber auch im Gefolge von PPP, BOOTP oder DHCP (siehe Abschnitt "Dynamische Adreßvergabe").


© Uwe Hübner, 20.3.98