Was ist der Unterschied zwischen „Route Add xxxx über Gateway-IP“ und „Route Add Dev-Schnittstelle“?

Was ist der Unterschied zwischen „Route Add xxxx über Gateway-IP“ und „Route Add Dev-Schnittstelle“?

Ich war so verwirrt über meine Konfiguration.

Auf meinem Server habe ich 2 Schnittstellen:

eth0: 192.168.1.22  gw 192.168.1.1
eth2: 10.2.1.6 gw 10.2.1.1

Ich habe eine statische Route geschrieben:

ip r a 8.8.8.8 via 192.168.1.1
 worked great!!

then I deleted it and
ip r a 8.8.8.8 dev eth0
 From 192.168.1.22 icmp_seq=1 Destination Host Unreachable

Warum?????

Antwort1

In der zweiten Form ( ip r a 8.8.8.8 dev eth0) hast du kein Gateway angegeben. An welchen Router soll das Paket also weitergeleitet werden? Da dein Server keine Gateways kennt, antwortet er einfach mit „Zielhost nicht erreichbar“.

Die Angabe einer Schnittstelle kann aus zwei Gründen sinnvoll sein:

  • Wenn ein Remote-Host über dasselbe Gateway geroutet wird, ist er selbst erreichbar überzweiverschiedene Schnittstellen, können Sie zwei verschiedene Routen mit unterschiedlichen devfür das gleiche Gateway erstellen. Sie können dann zwischen den beiden Routen priorisieren über metricoder verwendenECMP-Routingum eine Art Lastausgleich zu erreichen;
  • für Punkt-zu-Punkt-Schnittstellen (denken Sie an VPN- oder Tun-Schnittstellen), bei denen der gesamte Datenverkehr von der angegebenen Schnittstelle „abgefangen“ wird (das Gateway ist dabei unwichtig)

Antwort2

ip r a 8.8.8.8 dev eth0bedeutet „8.8.8.8 ist direkt mit der Schnittstelle eth0 verbunden“. Der Linux-Kernel versucht, die MAC-Adresse von 8.8.8.8 mit einer ARP-Anfrage aufzulösen, erhält keine Antwort und meldet den Fehler „Zielhost nicht erreichbar“

verwandte Informationen