Unterschiedliche MAC-Adressen in Paket- und ARP-Tabelle

Unterschiedliche MAC-Adressen in Paket- und ARP-Tabelle

Was passiert, wenn ein Host im Netzwerk ein IP-Paket mit einer MAC-Quelladresse empfängt, die sich von der MAC-Adresse in der lokalen ARP-Tabelle für diese Quell-IP unterscheidet?

Der ARP-Tabelleneintrag für diese IP wurde und wird über eine gültige ARP-Antwort gefüllt.

Jetzt ist mir aufgefallen, dass der empfangende Host (Ubuntu 18.04) kein Antwortpaket sendet (ICMP-Echoantwort oder TCP SYN/ACK ...usw.). Es verlässt kein Antwortpaket die Schnittstelle.

Die Frage ist nun, aus welchen Gründen sich der Gastgeber so verhält. Welche Überprüfungen werden mit den MAC- und IP-Adressen der Pakete, der lokalen ARP-Tabelle und Routing-Tabelle usw. durchgeführt?

Bearbeiten:

Um das Szenario zu verdeutlichen:

Bildbeschreibung hier eingeben

Wenn Host Hb eine Ping-Anfrage an 10.2.0.5 (Host Ha) sendet, empfängt Ha ein ICMP-Paket mit der Quell-IP 10.1.0.3 und die Quell-MAC-Adresse ist die MAC-Adresse des Routers. Die ARP-Tabelle von Host Ha hat jedoch einen Eintrag: 10.1.0.3 -> Hb-MAC-Adresse. Daher unterscheiden sich die MAC-Adressen!

Antwort1

Dieses Verhalten ist völlig normal und hängt mit der Routing-Konfiguration des HbHosts zusammen, der wahrscheinlich nur die Standardroute über den Router hat. Wenn Sie also die zusätzliche Route nicht eingerichtet haben, werden die Pakete an das N2Netzwerk ( 10.2.0.0/24) über die Standardroute gesendet.

Das Problem wird also dadurch verursacht, dass auf dem HaHost der Reverse-Path-Filter aktiviert ist, der eingehende Pakete aufgrund von Einschränkungen der Quelladresse verwirft.

Um dieses Problem zu beheben, sollten Sie die Ausgabe der nächsten Befehle auf dem HaHost überprüfen:

  • ip netconf show dev <iface-N2>- Überprüfen Sie den rp_filterWert. Wahrscheinlich ist es so strict.
  • ip route get 10.2.0.5 from 10.1.0.3 iif <iface-N2>- wahrscheinlich wird etwas wie angezeigt invalid cross-device link.
  • nstat -az TcpExtIPReversePathFilter- wahrscheinlich wird es einen Wert ungleich Null haben.

Es gibt drei Möglichkeiten, das Problem zu lösen:

  • Deaktivieren Sie einfach rp_filterauf dem HaHost mit sysctl ( sysctl -w net.ipv4.conf.all.rp_filter=0und sysctl -w net.ipv4.conf.<iface-N2>.rp_filter=0). Außerdem sollten Sie die /etc/sysctl.confDatei bearbeiten, um diese Änderungen dauerhaft zu machen.

  • Fügen Sie einfach eine Route auf dem HbHost zur 10.2.0.5durchgehenden 10.1.0.5Adresse hinzu (Befehl für Linux ip route add 10.2.0.5 via 10.1.0.5, für Windows route add 10.2.0.5 mask 255.255.255.255 10.1.0.5)

  • Konfigurieren Sie die Source Address Translation (NAT) auf dem Router, um die Adresse Hbin die Routeradresse umzuschreiben. Die iptables-Regel dazu:

iptables -t nat -A POSTROUTING -o <iface-N2> --src 10.1.0.3 --dst 10.2.0.5 -j MASQUERADE

verwandte Informationen