Linux-Routenverwaltung: ‚route add‘ im Detail

Foto des Autors

By Jan

Was ist der Befehl "route add"?

Der Befehl route add ist ein leistungsstarkes Tool zur Verwaltung von Routing-Tabellen unter Linux-Systemen. Er ermöglicht es dir, statische Routen zu konfigurieren, die die Pfade angeben, über die dein System Datenpakete an bestimmte Ziele weiterleitet. Durch das Hinzufügen von Routen kannst du den Datenfluss optimieren und die Netzwerkverbindung deines Systems verbessern.

Warum ist Routenverwaltung wichtig?

Routenverwaltung ist entscheidend für jedes Netzwerk, da sie sicherstellt, dass Datenpakete ihr Ziel effizient und zuverlässig erreichen. Ohne ordnungsgemäße Routen können Datenpakete verloren gehen oder verzögert werden, was zu langsamer Netzwerkgeschwindigkeit, Verbindungsproblemen und anderen Problemen führen kann.

Wie funktioniert "route add"?

Der Befehl route add fügt eine neue Route zur Routing-Tabelle deines Systems hinzu. Diese Tabelle speichert Informationen darüber, wie Datenpakete zu verschiedenen Zielen weitergeleitet werden. Du kannst statische Routen mit route add manuell hinzufügen, um den Datenverkehr zu bestimmten IP-Adressen oder Subnetzen über einen bestimmten Weg zu leiten. Dies kann nützlich sein, um Netzwerkredundanz zu konfigurieren, die Latenz zu verringern oder Firewalls zu umgehen.

Syntax und Optionen von "route add"

Die Syntax des Befehls "route add" lautet wie folgt:

route add [-n] [-q] [-w] [-s] [-C cost] [-d] [-g gateway]
         [-h host] [-i interface] [-m mask] [-net mask/prefixlen]
         [-p gateway] [-t type] [-v] destination

Optionen:

  • -n: Fügt die Route der Routing-Tabelle hinzu, ohne die Kernelschnittstelle zu aktualisieren. Dies ist nützlich, wenn du mehrere Routen gleichzeitig hinzufügst und die Kernel-Protokollierung reduzieren möchtest.
  • -q: Fügt die Route leise hinzu, ohne irgendwelche Nachrichten auszugeben.
  • -w: Warten auf die Verbindung mit der Netzwerkschnittstelle, bevor die Route hinzugefügt wird. Dies kann bei der Fehlerbehebung oder beim Testen hilfreich sein.
  • -s: Fügt eine statische Route hinzu, d. h. eine Route, die nicht durch dynamische Routing-Protokolle geändert wird.
  • -C cost: Legt die Kosten für die Route fest, die bestimmen, welche Route bei mehreren verfügbaren Routen verwendet wird.
  • -d: Löscht alle Routen zum angegebenen Ziel.
  • -g gateway: Gibt das Gateway für die Route an, d. h. das Gerät, das zur Weiterleitung von Paketen an das Ziel verwendet werden soll.
  • -h host: Gibt den Host an, zu dem die Route hinzugefügt werden soll.
  • -i interface: Gibt die Netzwerkschnittstelle an, die für die Weiterleitung von Paketen an das Ziel verwendet werden soll.
  • -m mask: Gibt die Subnetzmaske für das Ziel an.
  • -net mask/prefixlen: Gibt das Subnetz und die Präfixlänge im CIDR-Format (Classless Inter-Domain Routing) an, z. B. "192.168.1.0/24".
  • -p gateway: Gibt eine Portaladresse an, die verwendet wird, wenn das Ziel über ein Gateway erreicht wird.
  • -t type: Gibt den Typ der hinzuzufügenden Route an, z. B. "host", "gateway" oder "net".
  • -v: Aktiviert den ausführlichen Modus, in dem zusätzliche Informationen zur hinzugefügten Route angezeigt werden.

Verwendung von "route add", um eine statische Route hinzuzufügen

Wenn du eine statische Route zu deinem System hinzufügen möchtest, kannst du den Befehl route add verwenden. Eine statische Route ist eine manuell konfigurierte Route, die den Netzwerkverkehr an ein bestimmtes Ziel über ein bestimmtes Gateway leitet.

Hinzufügen einer grundlegenden statischen Route

Um eine grundlegende statische Route hinzuzufügen, verwendest du die folgende Syntax:

route add Ziel-Netzwerk Gateway-Adresse

Dabei ist:

  • Ziel-Netzwerk das Netzwerk, zu dem du die Route hinzufügen möchtest, im Format Netzwerkadresse/Netzwerkmaske.
  • Gateway-Adresse die Adresse des Gateways, das den Verkehr zum Zielnetzwerk leitet.

Beispiel:

route add 192.168.1.0/24 192.168.0.1

Dieser Befehl fügt eine statische Route zum Netzwerk 192.168.1.0/24 hinzu, die den Verkehr über das Gateway 192.168.0.1 leitet.

Konfiguration zusätzlicher Optionen

Neben dem Hinzufügen einer grundlegenden statischen Route kannst du auch zusätzliche Optionen konfigurieren, um die Route anzupassen:

  • Metrik: Mit der Metrik kannst du die bevorzugte Route festlegen. Die Route mit der niedrigsten Metrik wird vom System bevorzugt.
  • Fenster: Das Fenster gibt die Zeit in Sekunden an, die das System warten soll, bevor eine ungenutzte Route gelöscht wird.
  • Schnittstelle: Die Schnittstelle gibt die Netzwerkverbindung an, die für die Route verwendet werden soll.

Beispiel für eine erweiterte statische Route

route add 192.168.1.0/24 192.168.0.1 metric 10 window 0 dev eth0

Dieser Befehl fügt eine statische Route zum Netzwerk 192.168.1.0/24 hinzu, die den Verkehr über das Gateway 192.168.0.1 mit der Metrik 10 leitet. Die Route wird nicht gelöscht, auch wenn sie nicht verwendet wird, und sie wird über die Netzwerkschnittstelle eth0 übertragen.

Hinzufügen einer Standardroute

Eine Standardroute leitet den gesamten Datenverkehr an ein bestimmtes Gateway weiter, wenn kein anderer Pfad zur Verfügung steht. Sie ist praktisch, wenn du dich in einem Netzwerk befindest, das einen einzigen Ausgangspunkt zum Internet hat.

So fügst du eine Standardroute hinzu

Um eine Standardroute hinzuzufügen, gib den Befehl route add default gefolgt von der Gateway-Adresse ein:

route add default gw GATEWAY_ADRESSE

Beispiel:

route add default gw 192.168.1.1

Zu beachtende Punkte

  • Die Gateway-Adresse ist die IP-Adresse des Routers, der dich mit dem Internet verbindet.
  • Wenn du keine Gateway-Adresse angibst, wird die Standardroute zum Broadcast-Ziel hinzugefügt, was zu Problemen mit der Paketweiterleitung führen kann.
  • Standardrouten haben eine Metrik von 0, was bedeutet, dass sie die bevorzugte Route sind, wenn keine anderen Übereinstimmungen gefunden werden.
  • Du kannst mehrere Standardrouten haben, aber nur eine ist aktiv. Die aktivste Route ist die mit der höchsten Metrik.
  • Wenn du eine Standardroute hinzufügst, wird sie möglicherweise automatisch zu deiner Routing-Tabelle hinzugefügt, wenn sie noch nicht vorhanden ist.

Hinzufügen einer Gateway-Route

Wenn du deinen Computer mit einem Netzwerk verbindest, wird ihm in der Regel eine IP-Adresse aus dem Subnetz zugewiesen, mit dem er verbunden ist. Wenn du jedoch auf Geräte oder Netzwerke zugreifen musst, die sich in einem anderen Subnetz befinden, musst du eine Gateway-Route hinzufügen.

Bei einer Gateway-Route handelt es sich um einen Eintrag in der Routing-Tabelle deines Computers, der das Gateway angibt, das verwendet werden soll, um Pakete an ein bestimmtes Zielnetzwerk weiterzuleiten. Das Gateway ist in der Regel ein Router oder ein anderes Gerät, das den Datenverkehr zwischen verschiedenen Netzwerken weiterleitet.

Syntax

Die Syntax zum Hinzufügen einer Gateway-Route lautet wie folgt:

route add Zielnetzwerk-Adresse Gateway-Adresse

Dabei sind die folgenden Platzhalter zu beachten:

  • Zielnetzwerk-Adresse: Die Adresse des Netzwerks, auf das du zugreifen möchtest.
  • Gateway-Adresse: Die IP-Adresse des Gateways, das zum Erreichen des Zielnetzwerks verwendet werden soll.

Verwendung

Um eine Gateway-Route hinzuzufügen, öffnest du ein Terminalfenster und gibst folgenden Befehl ein:

sudo route add Zielnetzwerk-Adresse Gateway-Adresse

Beispielsweise kannst du die folgende Route hinzufügen, um auf das Netzwerk mit der Adresse 192.168.1.0/24 über das Gateway mit der Adresse 192.168.0.1 zuzugreifen:

sudo route add 192.168.1.0/24 192.168.0.1

Überprüfen der Route

Du kannst die hinzugefügte Route mit dem Befehl "route" überprüfen:

route -n

Dieser Befehl zeigt die aktuelle Routing-Tabelle an. Die neu hinzugefügte Route sollte in der Ausgabe angezeigt werden.

Entfernen der Route

Wenn du die hinzugefügte Route nicht mehr benötigst, kannst du sie mit dem Befehl "route del" entfernen:

sudo route del Zielnetzwerk-Adresse

Beispielsweise kannst du die zuvor hinzugefügte Route mit folgendem Befehl entfernen:

sudo route del 192.168.1.0/24

Durch das Hinzufügen von Gateway-Routen kannst du auf Geräte und Netzwerke in anderen Subnetzen zugreifen, wodurch die Konnektivität in deinem Netzwerk verbessert wird.

Hinzufügen einer Host-Route

Eine Host-Route weist einen bestimmten Host einem bestimmten Gateway zu. Im Gegensatz zu einer Zielroute, die einen Block von IP-Adressen abdeckt, weist eine Host-Route eine einzelne IP-Adresse zu.

Vorgehensweise

1. Bestimme die IP-Adresse des Hosts und des Gateways:

Ermittle die IP-Adresse des Hosts, den du erreichen möchtest, und des Gateways, das zum Weiterleiten des Datenverkehrs verwendet werden soll.

2. Führe den Befehl "route add" aus:

Verwende die folgende Syntax:

route add <Host-IP> via <Gateway-IP>

Beispiel

Nehmen wir an, du möchtest einen Host mit der IP-Adresse 192.168.1.5 über ein Gateway mit der IP-Adresse 192.168.1.1 erreichen. Du würdest den folgenden Befehl ausführen:

route add 192.168.1.5 via 192.168.1.1

Überlegungen

  • Verwende diesen Routentyp nur, wenn du eine Verbindung zu einem einzelnen Host herstellen musst.
  • Wenn du eine Verbindung zu mehreren Hosts im selben Subnetz herstellen musst, verwende stattdessen eine Zielroute.
  • Stelle sicher, dass das Gateway erreichbar ist, bevor du eine Host-Route hinzufügst.

Hinzufügen einer Zielroute

Bei einer Zielroute wird ein bestimmtes IP-Netzwerk direkt an ein bestimmtes Ziel weitergeleitet. Dies ist nützlich, wenn du eine bestimmte Route für einen bestimmten Host oder ein bestimmtes Netzwerk erzwingen möchtest, unabhängig von den anderen Routing-Einträgen.

Um eine Zielroute hinzuzufügen, verwendest du folgende Syntax:

route add -host Ziel-IP-Adresse Ziel-Interface

Verwendung von -host

Mit der Option -host kannst du eine Zielroute für einen bestimmten Host angeben. Zum Beispiel, um eine Zielroute für den Host 192.168.1.10 über das Interface eth0 hinzuzufügen, würdest du Folgendes eingeben:

route add -host 192.168.1.10 eth0

Überlegungen

  • Zielrouten haben Vorrang vor anderen Routing-Einträgen.
  • Wenn du eine Zielroute für ein bestimmtes Netzwerk hinzufügst, wird diese für alle Hosts in diesem Netzwerk verwendet.
  • Du kannst Zielrouten auch mit den Optionen -net (Netzwerk) und -dst (Ziel) hinzufügen, die jedoch weniger gebräuchlich sind.

Verwenden von "route add" mit "netmask" und "gateway"

Festlegen der Ziel-Netzwerkmaske

Die Angabe der Netzwerkmaske (netmask) bei "route add" ist entscheidend, um den Umfang des Zielnetzwerks zu definieren. Sie gibt an, welcher Teil der Ziel-IP-Adresse das Netzwerk und welcher Teil den Host darstellt. Eine gängige IPv4-Netzwerkmaske ist beispielsweise 255.255.255.0, was ein /24-Netzwerk darstellt.

Angabe des Gateways

In vielen Fällen musst du einen Gateway angeben, um den Datenverkehr zum Zielnetzwerk weiterzuleiten. Ein Gateway ist ein Gerät (z. B. ein Router), das als Vermittler zwischen Netzwerken fungiert. Der Gateway wird mithilfe der Option "-gateway" oder "-g" angegeben.

Beispiele

Hier sind einige Beispiele für die Verwendung von "netmask" und "gateway" mit "route add":

  • Hinzufügen einer statischen Route zu einem Netzwerk mit einer /24-Netzwerkmaske und einem Gateway:
sudo route add 192.168.1.0/24 gw 192.168.1.1
  • Hinzufügen einer Standardroute über einen Gateway:
sudo route add default gw 192.168.1.1

Ändern bestehender Routen mit "route add"

Der Befehl "route add" kann nicht nur neue Routen hinzufügen, sondern auch bestehende Routen ändern. Dies ist nützlich, wenn du die Parameter einer Route anpassen musst, ohne sie komplett neu zu erstellen.

So änderst du eine bestehende Route

Um eine bestehende Route zu ändern, verwende die folgende Syntax:

route add -HOST/NETMASK DEV INTERFACE [METRIC]

Dabei sind:

  • -HOST/NETMASK: Die zu ändernde Route, angegeben durch Host und Netzmaske.
  • DEV INTERFACE: Das Interface, über das die Route erreicht wird.
  • [METRIC]: Optionale Metrik, um die Priorität der Route anzupassen.

Beispiel: Ändern einer bestehenden Gateway-Route

Nehmen wir an, du hast eine bestehende Gateway-Route für das Netzwerk 192.168.1.0/24 mit dem Gateway 192.168.1.1. Um die Metrik dieser Route auf 5 zu ändern, verwendest du folgenden Befehl:

route add -net 192.168.1.0/24 gw 192.168.1.1 dev eth0 metric 5

Häufig gestellte Fragen

Kann ich mehrere Routen gleichzeitig ändern?

Ja, du kannst mehrere Routen gleichzeitig ändern, indem du sie in einer einzigen "route add"-Zeile angibst. Trenne die Routen durch Leerzeichen.

Kann ich eine Route entfernen und gleichzeitig eine neue hinzufügen?

Ja, du kannst den Befehl "route mod" verwenden, der die Funktionalität von "route add" und "route del" kombiniert. Die Syntax lautet:

route mod -HOST/NETMASK DEV INTERFACE [METRIC]

Wie kann ich die Routing-Tabelle nach Änderungen überprüfen?

Verwende den Befehl "route -n", um die Routing-Tabelle anzuzeigen und die vorgenommenen Änderungen zu überprüfen.

Anzeigen der Routing-Tabelle mit "route"

Um die Routing-Tabelle anzuzeigen, kannst du den Befehl route ohne Argumente verwenden. Dieser Befehl gibt eine Liste aller Routen aus, die das System aktuell kennt.

Struktur der Routing-Tabelle

Die Ausgabe von route ist in Spalten unterteilt:

  • Destination: Das Zielnetzwerk oder die Zieladresse
  • Gateway: Das Gateway, über das der Datenverkehr zum Ziel geleitet wird
  • Genmask: Die Netzmaske, die das Zielnetzwerk von anderen Netzwerken unterscheidet
  • Flags: Kennzeichen, die den Status der Route angeben, wie z. B. "U" für Up, "G" für Gateway oder "H" für Host
  • Metric: Die Metrik, die die Kosten des Pfads zum Ziel angibt
  • Ref: Die Anzahl der Verweise auf die Route
  • Use: Die Anzahl der Male, die die Route verwendet wurde
  • Iface: Die Schnittstelle, die für die Route verwendet wird

Verwendung von "route" zum Anzeigen bestimmter Routen

Du kannst route auch mit Optionen verwenden, um bestimmte Routen anzuzeigen:

  • -n: Zeigt die Routing-Tabelle numerisch an (ohne Hostnamen aufzulösen)
  • -4: Zeigt nur IPv4-Routen an
  • -6: Zeigt nur IPv6-Routen an
  • -i: Zeigt nur Routen für eine bestimmte Schnittstelle an

Anzeigen der Standardroute

Die Ausgabe von route enthält normalerweise eine Standardroute, die für alle Ziele verwendet wird, die nicht in der Routing-Tabelle enthalten sind. Die Standardroute hat ein Ziel von 0.0.0.0/0 und ein Gateway, das die IP-Adresse des Standard-Gateways ist.

Verständnis der Flags

Die Flags in der Ausgabe von route geben den Status der Route an:

  • U: Die Route ist aktiv und wird verwendet.
  • G: Die Route ist ein Gateway zur Zieladresse.
  • H: Die Route ist ein Host und die Zieladresse ist die IP-Adresse des Hosts.
  • D: Die Route ist dynamisch und wurde über ein Routing-Protokoll gelernt.
  • M: Die Route ist manuell konfiguriert.
  • S: Die Route ist eine statische Route.

Löschen von Routen mit „route del“

Sobald du Routen zu deiner Routing-Tabelle hinzugefügt hast, kannst du feststellen, dass du sie nicht mehr benötigst. In solchen Fällen kannst du den Befehl route del verwenden, um eine Route zu löschen.

Syntax und Optionen von „route del“

Die Syntax von route del lautet wie folgt:

route del [OPTIONEN] ZIEL

Hier sind einige gebräuchliche Optionen:

  • -netmask NETZMASKE: Bestimmt die zu löschende Netzwerkmaske.
  • -gateway GATEWAY: Löscht die Route über das angegebene Gateway.
  • -host HOSTNAME: Löscht die Route zum angegebenen Host.
  • -metric METRIK: Löscht Routen mit der angegebenen Metrik.

Verwendung von „route del“ zum Löschen einer Route

Um eine Route zu löschen, musst du das Ziel der Route angeben. Angenommen, du hast eine Route zum Netzwerk 192.168.1.0/24 über das Gateway 192.168.1.1 hinzugefügt. Um diese Route zu löschen, verwendest du den folgenden Befehl:

route del -netmask 255.255.255.0 192.168.1.0 gw 192.168.1.1

Du kannst auch die Option -host verwenden, um eine Route zu einem bestimmten Host zu löschen. Beispielsweise kannst du den folgenden Befehl verwenden, um die Route zum Host mit dem Hostnamen "example.com" zu löschen:

route del -host example.com

anzeigen der Routing-Tabelle nach dem Löschen

Nachdem du eine Route gelöscht hast, kannst du den Befehl route verwenden, um die Routing-Tabelle anzuzeigen und zu überprüfen, ob die Route entfernt wurde.

Zusammenfassung

Der Befehl route del ermöglicht es dir, Routen aus deiner Routing-Tabelle zu löschen. Du kannst die Optionen -netmask, -gateway und -host verwenden, um eine bestimmte Route zu löschen. Denke daran, dass das Löschen einer Route Auswirkungen auf die Netzwerkverbindung haben kann, also stelle sicher, dass du die Route nicht benötigst, bevor du sie löschst.

Schreibe einen Kommentar