Wenn Sie also mit Linux-Netzwerken experimentieren, kann es vorkommen, dass sich das Standardgateway einfach nicht ändern lässt oder Sie einen Blick auf die aktuelle Routing-Konfiguration werfen möchten. Keine Raketenwissenschaft, aber diese Befehle und Dateien können etwas verwirrend sein, wenn Sie neu sind oder die Dinge einfach nicht so funktionieren, wie sie sollten. Dieser Leitfaden soll einige dieser Unklarheiten beseitigen, insbesondere wenn Linux sich bei der Routing-Tabelle oder den Standardrouten etwas querstellt. Danach werden Sie Routen problemlos anzeigen, hinzufügen, entfernen und ändern können und dafür sorgen, dass die Einstellungen auch nach einem Neustart erhalten bleiben. Denn natürlich muss Linux es einem doch etwas komplizierter machen, als nur einen Knopf zu drücken, oder?
Wie man Netzwerkrouten unter Linux anzeigt und verwaltet
So zeigen Sie die aktuelle Routingtabelle an
Um zunächst die aktuell von Linux verwendeten Routen zu ermitteln – was den Ausgangspunkt darstellt –, führen Sie einfach folgenden # ip routeBefehl aus: Dieser Befehl gibt die gesamte Routing-Tabelle aus. Sie erhalten Informationen wie das Standardgateway (die Route, über die Pakete geleitet werden, wenn keine spezifische Route vorhanden ist), statische Routen, vom Kernel erstellte Routen und deren Metriken. Im Grunde genommen handelt es sich um eine Momentaufnahme davon, wie Linux den Datenverkehr steuert.
Beispielsweise könnten Sie Zeilen wie diese sehen:
default via 192.168.1.1 dev enp0s3 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201
Diese Standardzeile zeigt an, wohin Datenverkehr gesendet wird, der nicht für das lokale Netzwerk bestimmt ist – in diesem Fall über 192.168.1.1 auf der Schnittstelle enp0s3. Um dies noch genauer zu spezifizieren, können Sie Linux fragen, welche Schnittstelle zum Senden eines Pakets an eine IP-Adresse verwendet werden soll:
# ip route get 192.168.2.45
Dies könnte beispielsweise Folgendes zurückgeben 192.168.2.45 via 192.168.1.1 dev enp0s3 src 192.168.1.201:.Dies ist hilfreich bei der Fehlersuche in Verbindung oder um herauszufinden, welchen Netzwerkpfad Linux verwendet.
Hinzufügen und Entfernen statischer Routen
Sie möchten Ihren Datenverkehr umleiten oder einfach nur die Netzwerktopologie anpassen? Dann fügen Sie statische Routen hinzu: [Befehl einfügen] # ip route add 192.168.0.0/24 via 192.168.1.1. Damit weisen Sie Linux an: „Wenn Datenverkehr für 192.168.0.0/24 bestimmt ist, leite ihn über 192.168.1.1 weiter.“ Das ist sinnvoll, wenn Sie ein neues Subnetz einrichten oder Routing-Probleme beheben.
Ebenso können Sie eine Route direkt zu einer einzelnen Host-IP hinzufügen: # ip route add 192.168.1.50 via 192.168.1.1. Oder Sie blockieren den Datenverkehr zu einem bestimmten Netzwerk mit einer Nullroute (ähnlich einem Blackhole): `ip route add blackhole 10.1.20.0/24`. Dies eignet sich gut zum Blockieren oder Isolieren von Segmenten.
Eine Route entfernen? Führen Sie einfach folgenden Befehl aus: # ip route del 192.168.0.0/24. Das ist allerdings nur eine kurze und temporäre Änderung – bis zum nächsten Neustart oder der erneuten Änderung. Um Routen statisch und dauerhaft zu gestalten, müssen Sie die Konfigurationsdateien bearbeiten.
Bei CentOS- oder RHEL-basierten Distributionen finden Sie den Namen Ihrer Netzwerkschnittstelle mit dem Befehl `router` # ip a.Öffnen Sie anschließend:
# nano /etc/sysconfig/network-scripts/route-enp0s3
Fügen Sie Ihre Routenzeile wie folgt hinzu: 192.168.0.0/24 via 192.168.1.1. Speichern Sie die Datei und starten Sie das Netzwerk anschließend neu mit:
# systemctl restart network
Bei Debian/Ubuntu ist das anders – hier müssen Dateien unter /etc/network/interfaces bearbeitet oder Netplan- Konfigurationen verwendet werden. Bei CentOS hingegen ist diese Methode unkompliziert.
Sollen die Routen nach einem Neustart automatisch wiederhergestellt werden, können Sie sie in `/etc/rc.local` hinzufügen oder spezielle Routenskripte erstellen, die beim Systemstart ausgeführt werden. Beachten Sie jedoch, dass manuelle Einstellungen nur ip route addtemporär sind, sofern sie nicht in Konfigurationsdateien oder Skripten gespeichert werden.
So ändern oder setzen Sie das Standardgateway zurück
Manchmal müssen Sie die Standardroute ändern – beispielsweise, weil das Gateway gewechselt hat oder Sie zwischen verschiedenen Netzwerken wechseln. Um die aktuelle Standardroute zu entfernen, führen Sie folgenden Befehl aus:
# ip route del default via 192.168.1.1 dev enp0s3
Und um ein neues Standardgateway festzulegen, geht das ganz einfach so:
# ip route add default via 192.168.1.2
Oder, falls Sie den bestehenden Standardwert durch einen neuen ersetzen möchten:
# ip route replace default via 192.168.1.2
Beachten Sie, dass all diese Einstellungen temporär sind, sofern Sie die entsprechenden Befehle nicht in Startskripte oder Netzwerkkonfigurationsdateien einfügen. Wenn Sie die Einstellungen dauerhaft ändern möchten, müssen Sie die entsprechenden Konfigurationsdateien Ihrer Distribution bearbeiten (z. B./etc/sysconfig/network-scripts/route-scripts).
Zusammenfassung
Netzwerkkonfigurationen können manchmal ganz schön knifflig sein, besonders wenn sich Routen nicht ändern lassen oder nicht dort erscheinen, wo man sie erwartet. Mit ip routeetwas Geschick beim Bearbeiten von Befehlen und Konfigurationsdateien lässt sich das Problem meist lösen. Rechnen Sie mit ein paar Versuchen – Linux ist bei permanenten Einstellungen nicht immer intuitiv. Letztendlich führt aber ein wenig manuelles Feintuning oft zum gewünschten Ergebnis. Hoffentlich hilft das jemandem, die lästigen Routen endlich in den Griff zu bekommen, ohne sich die Haare zu raufen.
Zusammenfassung
- Verwenden Sie diese Funktion
# ip route, um die aktuelle Routingtabelle anzuzeigen. - Fügen Sie statische Routen mit
# ip route add.hinzu. # ip route delRouten mit.entfernen- Ändern Sie das Standardgateway mit
# ip route add default via...oderreplace. - Routen können durch Bearbeiten von Konfigurationsdateien oder Skripten wie /etc/rc.local beibehalten werden.