GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So fügen Sie mehrere Routen in Linux mithilfe von ip-Befehlsbeispielen hinzu

Neben der Standardroute können Sie auch weitere Routen konfigurieren.

Beispielsweise könnte Ihr Server zwei Schnittstellen haben (eth0 und eth1). Standardmäßig wird der gesamte Datenverkehr über die Schnittstelle eth0 geleitet, unabhängig davon, welche IP-Adresse Sie auf eth1 konfiguriert haben.

Um den eingehenden und ausgehenden Datenverkehr über eth1 zu leiten, müssen Sie neben der Standardroute (eth0) auch zusätzliche Routen für eth1 hinzufügen.

In diesem Tutorial verwenden wir das folgende Beispiel:

  • eth0 wurde mit der IP-Adresse 19.86.101.54 mit der Netzmaske 255.255.255.0 und dem Standardgateway 19.86.101.1 konfiguriert
  • eth1 wurde mit der IP-Adresse 19.86.100.176 mit der Netzmaske 255.255.255.0 konfiguriert und die Gateway-IP-Adresse ist 19.86.100.1

Sie können Ihre aktuelle IP-Adresse Ihrer Schnittstellenkarten mit dem Befehl ifconfig wie unten gezeigt anzeigen.

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:50:56:8E:0B:EC
          inet addr:19.86.101.54  Bcast:19.86.101.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3735 errors:0 dropped:0 overruns:0 frame:0
          TX packets:336 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:295679 (288.7 Kb)  TX bytes:50312 (49.1 Kb)

eth1      Link encap:Ethernet  HWaddr 00:50:56:8E:27:0D
          inet addr:19.86.100.176  Bcast:19.86.100.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:840 (840.0 b)  TX bytes:0 (0.0 b)

Außerdem zeigt die Ausgabe des netstat-Befehls an, dass das Standard-Gateway auf eth0 zeigt,

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         19.86.101.1     0.0.0.0         UG        0 0          0 eth0
19.86.100.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
19.86.101.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

Mit den obigen Einstellungen können Sie möglicherweise beide Gateways pingen und problemlos mit anderen Geräten kommunizieren. Denken Sie jedoch daran, dass der gesamte Datenverkehr standardmäßig über eth0 geleitet wird.

Wenn Sie die IP-Adresse 19.86.100.176 von außerhalb Ihres Netzwerks anpingen, stellen Sie möglicherweise fest, dass sie nicht angepingt werden kann.

Um dies zu implementieren, müssen Sie eine neue Richtlinie in der Routing-Tabelle erstellen. Die Routing-Tabelle befindet sich unter /etc/iproute2/rt_tables. Die anfängliche Regeldatei vor der Konfiguration kann wie unten gezeigt aussehen.

# cat /etc/iproute2/rt_tables
#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
#

Um alle aktuellen Regeln anzuzeigen, verwenden Sie den ip-Befehl wie unten gezeigt:

# ip rule show
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default

Erstellen Sie zuerst eine Sicherungskopie der rt_Tables, bevor Sie Änderungen vornehmen.

cd /etc/iproute2
cp rt_tables rt_tables.orig

Erstellen Sie als Nächstes einen neuen Richtlinien-Routing-Tabelleneintrag in der Datei /etc/iproute2/rt_tables:

echo "1 admin" >> /etc/iproute2/rt_tables

Fügen Sie nun die Routing-Einträge in der Admin-Tabelle hinzu.

ip route add 19.86.100.0/24 dev eth1 src 19.86.100.176 table admin
ip route add default via 19.86.100.1 dev eth1 table admin

Im obigen Beispiel:

  • Im ersten ip-Befehl fügen wir das Subnetz 19.86.100.0 mit einer Netzmaske 255.255.255.0 mit der Quell-IP-Adresse 19.86.100.176 und dem Gerät eth1 zur Admin-Tabelle hinzu.
  • Im zweiten ip-Befehl fügen wir die Route 19.86.100.1 zur Admin-Tabelle hinzu. Auf diese Weise leiten alle in der Admin-Tabelle definierten Regeln den Datenverkehr über das Gerät eth1.

Sobald die obigen Befehle erfolgreich ausgeführt wurden, müssen Sie dem Betriebssystem mitteilen, wie es diese Tabelle verwenden soll.

In der „ip rule show“ ist Ihnen vielleicht die Zeile „32766:from all lookup main“ aufgefallen. Dies ist die Zeile, die das Betriebssystem anweist, den gesamten Datenverkehr weiterzuleiten, der in der „Haupt“-Tabelle definiert ist, die das Standard-Gateway ist.

Alle Regeln werden in aufsteigender Reihenfolge ausgeführt. Also fügen wir Regeleinträge über der „Haupt“-Tabelle hinzu.

ip rule add from 19.86.100.176/24 table admin
ip rule add to 19.86.100.176/24 table admin
ip route flush cache

Im obigen Beispiel:

  • Der erste Befehl fügt die Regel hinzu, dass der gesamte Datenverkehr zur IP von eth1 die „admin“-Routingtabelle anstelle der „main“-Routingtabelle verwenden muss.
  • Der zweite Befehl fügt die Regel hinzu, dass der gesamte ausgehende Datenverkehr von der IP von eth1 die „admin“-Routingtabelle anstelle der „main“-Routingtabelle verwenden muss.
  • Der dritte Befehl wird verwendet, um all diese Änderungen in den vorherigen Befehlen zu übernehmen

Überprüfen Sie abschließend mit dem folgenden Befehl, ob Ihre Änderungen ordnungsgemäß vorgenommen wurden:

# ip rule show
0:      from all lookup local
32764:  from all to 19.86.100.176/24 lookup admin
32765:  from 19.86.100.176/24 lookup admin
32766:  from all lookup main
32767:  from all lookup default

An diesem Punkt sollten Sie in der Lage sein, die IP-Adresse 19.86.100.176 vom externen Netzwerk zu pingen und den gesamten Datenverkehr anzuzeigen, der eth1 verwenden soll, funktioniert wie erwartet.

Um diese Änderungen über einen Neustart hinweg dauerhaft zu machen, können Sie diese Befehle zu /etc/init.d/boot.local (für SUSE Linux) oder /etc/rc.d/rc.local (für Redhat, CentOS) hinzufügen.

Wenn Sie eine weitere IP-Adresse in einem anderen Subnetz konfigurieren möchten, wiederholen Sie alle obigen Schritte, aber verwenden Sie einen anderen Tabellennamen. Verwenden Sie anstelle der „admin“-Tabelle die „admin-new“-Tabelle.


Linux
  1. So starten Sie Linux über die Befehlszeile neu

  2. Wie beendet man einen Prozess unter Linux mit dem Befehl?

  3. 5 praktische Linux-Fuser-Befehlsbeispiele

  4. So beschleunigen Sie den Linux-Startvorgang mithilfe von Startpar-Befehlsbeispielen

  5. Beispiele für die Verwendung des Befehls dmsetup unter Linux

So erstellen Sie ein Verzeichnis in Linux mit dem mkdir-Befehl

So verwenden Sie den Dig-Befehl unter Linux (10 Beispiele)

So verwenden Sie den Linux-rm-Befehl mit Beispielen

Linux Route Add-Befehl mit Beispielen

7 Beispiele für Linux-Route-Befehle (So fügen Sie eine Route unter Linux hinzu)

route-Befehlsbeispiele in Linux