Die Routen, die erforderlich sind, um Pakete an ihr endgültiges Ziel zu senden, werden in der Schnittstelle oder im Router konfiguriert. Wenn der Computer ein Paket an das Netz senden soll, schaut er in die Routing-Tabelle, in der die Ziel-IP-Adressen und die Adressen der Schnittstellen und Router im Heimnetz aufgeführt sind, die das Paket an die richtige Adresse senden können. Wenn für das Ziel keine Route angegeben ist, wird zunächst das so genannte Standard-Gateway oder die Standardroute verwendet. Auf dem Router wird genau dasselbe Muster beobachtet. Das Gerät sieht sich die Ziel-IP-Adresse an, gleicht sie mit seiner Routing-Tabelle ab und sendet sie dann weiter. Als Nächstes wollen wir uns anhand eines Beispiels ansehen, wie man bestimmte Routen konfiguriert und neue Routen erstellt.
Bevor Sie etwas ändern, müssen Sie wissen, welche Regeln bereits in Gebrauch sind. Zu diesem Zweck stellt das Linux-Betriebssystem mehrere Befehle zur Verfügung. Wir verwenden dazu den speziellen Befehl route
:
$ route
So sieht die Linux-Routing-Tabelle aus. Sie liefert einfache Informationen, die aber nicht immer ausreichen, um das Wesentliche zu verstehen. Für detailliertere Informationen müssen Sie den Befehl routel
verwenden:
$ routel
Hier können Sie die IP-Adresse (Ziel), die Gateway-IP-Adresse, die Quell-IP, das Protokoll und sogar die Netzwerkschnittstelle sehen. Es gibt jedoch eine bequemere Möglichkeit, die Linux-Routing-Tabelle mit dem IP-Befehl einzusehen:
$ ip route
Wir sehen ein Ergebnis, das der Ausgabe des vorherigen Befehls ähnlich ist. Da die Ausgabe nicht in der bequemsten Form ist, können Sie ip route add
oder ip route del
als Argument für ip route
add
oder ip route del
verwenden. Glauben Sie mir, das ist sehr praktisch. Auf diese Weise sehen Sie überall 192.168.1.1
als Standard-Gateway. Lassen Sie uns nun darüber sprechen, was die Ausgabe dieses Befehls bedeutet:
default
- Standardoption. Dies sollte die Ziel-IP-Adresse oder Subnetzmaske sein;via 192.168.1.1.1
- gibt an, über welches Gateway wir dieses Ziel erreichen können, in unserem Fall ist es 192.168.1.1;
dev enp2s0
- die Netzwerkschnittstelle, über die dieses Gateway erreichbar sein wird;proto static
bedeutet, dass die Route vom Administrator festgelegt wurde, kernel bedeutet, dass sie vom Kernel festgelegt wurde;metric
- dies ist die Priorität der Route, je niedriger der Wert, desto höher die Priorität.Als Nächstes wollen wir uns ansehen, wie Linux-Routen konfiguriert werden.
Der Benutzer hat immer noch die Möglichkeit, die Routing-Tabelle mit dem Befehl ip
zu konfigurieren. Um zum Beispiel die Standardroute zu ändern, müssen Sie nur den Befehl ausführen:
$ ip route add default via 192.168.1.1
Auf diese Weise können Sie eine Route für eine beliebige IP-Adresse hinzufügen, z. B. 243.143.5.25
:
$ sudo ip route add 243.143.5.25 via 192.168.1.1
Man gibt also die Ziel-IP-Adresse an und dann ein Gateway im lokalen Netz, über das man diese Adresse erreichen kann. Das Problem ist nur, dass solche Routen bis zum ersten Neustart des Computers aktiv sind. Nach dem Neustart werden sie automatisch gelöscht. Um dieses Manko zu beheben, müssen die Routen in die Konfigurationsdatei aufgenommen werden.
Die Systeme der Red Hat-Familie verfügen beispielsweise über die Konfigurationsdatei /etc/sysconfig/network-scripts/route-ethX
. Jede Datei kann mehrere Routen beschreiben, zum Beispiel:
GATEWAY=10
.10.0.0.1NETMASK=255
.0.0.0.0IPADDR=10
.10.0.0.22
Diese Konfigurationsdatei verwendet gateway, das ist das Gateway für die Schnittstelle, netmask
ist die Netzmaske und ipaddr
ist die IP-Adresse der Schnittstelle. In Debian und darauf basierenden Distributionen können Sie Routen in der Datei /etc/network/interfaces
konfigurieren. Hier wird der Befehl route in den Abschnitt iface
eingefügt. Ein Beispiel:
up route add -net 10.10.0.0 netmask 255.0.0.0 gw 10.10.0.1
Mit dem iface -net
geben wir das Zielnetzwerk an, netmask
ist die Netzwerkmaske und gw
ist das Gateway. Daran ist nichts kompliziert. Nun bleiben die hinzugefügten Routen auch nach einem Neustart erhalten.
Wir haben also gesehen, wie Routing in Linux funktioniert, wie Routing in Linux konfiguriert wird und warum es notwendig ist.