So finden Sie das Gateway, das für das Routing verwendet wird

45

Dies ist in einer Unix-Umgebung. Ich habe mehrere Routen in einem Host (sichtbar mit dem Befehl 'ip route show'). Wie kann ich herausfinden, über welches Gateway der Tracffic geleitet wurde, wenn ich eine Adresse anpinge?

Ich habe versucht, den Befehl traceroute zu verwenden, er zeigt jedoch nicht das unmittelbare Gateway an.

Von der unteren Ausgabe ist 10.58.227.1 mein Standardgateway.

# ip r l
10.58.227.0/24 dev front_eth1  proto kernel  scope link  src 10.58.227.231
169.254.0.0/17 dev bond0  proto kernel  scope link  src 169.254.0.4
default via 10.58.227.1 dev front_eth1  proto gated

Wenn ich Traceroute zu einer externen Adresse durchführe, wird das verwendete Gateway (Standard-Gateway 10.58.227.1) in der Ausgabe nicht angezeigt.

# traceroute -n -I 10.63.21.118
traceroute to 10.63.21.118 (10.63.21.118), 30 hops max, 40 byte packets
 1  10.58.112.1  0.507 ms  1.008 ms  1.017 ms
 2  10.63.21.118  0.228 ms  0.233 ms  0.234 ms

Gibt es eine Option, um dieselben Informationen wie mit dem Befehl traceroute anzuzeigen, einschließlich des für das Routing verwendeten Gateways?


quelle

Antworten:

73

Mit dem ip route get <address>Befehl können Sie den Kernel auffordern, die Route zu melden, die zum Senden eines Pakets an die angegebene Adresse verwendet wird:

$ ip route get 4.2.2.1
4.2.2.1 via 192.168.0.1 dev eth0  src 192.168.0.121 
    cache 
$ 

192.168.0.1ist meine Standardroute. Wenn ich nach einer Adresse frage, die die Standardroute nicht überschreitet:

$ ip route get 192.168.0.116
192.168.0.116 dev eth0  src 192.168.0.121 
    cache 
$ 
Sarnold
quelle
Vielen Dank. :) Das löst das Problem.
Zufällige Frage - Wenn 192.168.0.1"Standardroute" oder "Gateway" ist ... auf welchen Namen wird verwiesen 192.168.0.121? Nur "Quelle"?
dtmland
@sarnold, bitte bestätigen Sie, ob auf diesem Server Internet erforderlich ist.
kd12
@ kd12 Sie benötigen auf diesem Server nur eine Internetverbindung, wenn Sie Pakete an das Internet weiterleiten möchten. Sie können IP-Netzwerke einrichten, ohne mit dem Internet verbunden zu sein. Die Routing-Tabellen wissen es nicht und es ist ihnen egal, es funktioniert alles gleich. :)
Sarnold