ICMP-Host-Unreachable-Meldungen führen zu Martian-Quellpaketen

ICMP-Host-Unreachable-Meldungen führen zu Martian-Quellpaketen

Ich versuche schon seit einiger Zeit, ein merkwürdiges Verhalten in unserem Routing-/Firewall-Setup zu verstehen, verstehe aber nicht wirklich, was los ist.

Wir haben eine Firewall-/Router-Appliance mit zwei nach außen gerichteten Schnittstellen und einer Reihe interner VLANs.

Das spezifische Verhalten wird beobachtet, wenn ein Client (MAC f4:f5:d8:d2:f2:4c, IP 10.99.154.254 in diesem Beispiel) in unserem Gast-WLAN-Netzwerk VLAN 99 eine Ping-Echo-Anfrage an einen Internet-Host 8.8.8.8 sendet, was wir verbieten.

Der Router sendet ein ICMP-Host-Unreachable-Paket von seiner vlan99Schnittstelle (MAC 00:08:a2:0d:00:70, IP 10.99.0.2) an den Client zurück und genau zur gleichen Zeit sehen wir einMarsianer-Paketauf der externen Schnittstelle eth-ext1:

tcpdumpzeigt dies:

$ tcpdump -i vlan99 -vvvvn 'icmp and host 10.99.154.254'
11:59:21.555564 f4:f5:d8:d2:f2:4c > 00:08:a2:0d:00:70, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
    10.99.154.254 > 8.8.8.8: ICMP echo request, id 2303, seq 1, length 64
11:59:21.555651 00:08:a2:0d:00:70 > f4:f5:d8:d2:f2:4c, ethertype IPv4 (0x0800), length 126: (tos 0xc0, ttl 64, id 8585, offset 0, flags [none], proto ICMP (1), length 112)
    10.99.0.2 > 10.99.154.254: ICMP host 8.8.8.8 unreachable, length 92
    (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
    10.99.154.254 > 8.8.8.8: ICMP echo request, id 2303, seq 1, length 64

Nichts Überraschendes hier, dies ist der ursprüngliche Ping vom Client und das daraus resultierende ICMP-Paket zurück an den Gastclient, das ihn darüber informiert, dass der Host nicht erreichbar ist.

Gleichzeitig erscheint ein Eintrag im Kernel-Log:

Feb 21 11:59:21 ganymede kernel: IPv4: martian source 10.99.154.254 from 8.8.8.8, on dev eth-ext1
Feb 21 11:59:21 ganymede kernel: ll header: 00000000: 00 08 a2 0d 00 70 f4 f5 d8 d2 f2 4c 08 00        .....p.....L..

Die Link-Layer-Informationen zeigen, dass dieser Ethernet-Frame kamausdas Client-GerätZudes Routersvlan99Schnittstelle, weshalb ich mich frage, warum es als Mars-Paket erscheint aufeth-ext1mit einer Quelladresse von 8.8.8.8.

Es ist mir bisher nicht gelungen, eine Ablaufverfolgung des Pakets mit der Martian-Quelle zu erhalten, sodass ich mich frage, ob die Protokollierung der Martian-Quelle auch auf einer Ausgangsschnittstelle erfolgt, bevor tcpdumpeine Chance besteht, sie zu sehen?

Weitere Informationen (Routingtabellen o.ä.) gebe ich gerne auf Anfrage weiter und bin für jeden Hinweis dankbar, was hier genau vor sich geht.

Antwort1

Der Kernel patcht die Ping-Anforderung mit der ICMP-Nichterreichbarkeitsmeldung auf 8.8.8.8 und teilt Ihnen hilfreich mit, dass die Quelle ein Marsianer ist.

Dies ist das Paket, das markiert wird …

11:59:21.555651 00:08:a2:0d:00:70 > f4:f5:d8:d2:f2:4c, ethertype IPv4 (0x0800), length 126: (tos 0xc0, ttl 64, id 8585, offset 0, flags [none], proto ICMP (1), length 112)
    10.99.0.2 > 10.99.154.254: ICMP host 8.8.8.8 unreachable, length 92

Wie Sie an der Link-Ebene sehen können... MAC 00 08 a2 0d 00 70 to f4 f5 d8 d2 f2 4c 08 00.

Feb 21 11:59:21 ganymede kernel: ll header: 00000000: 00 08 a2 0d 00 70 f4 f5 d8 d2 f2 4c 08 00 

Marsianische Quelle – ich nehme an, sie vermischt die Tatsache, dass sie als Proxy auf 8.8.8.8 antwortet – von hier aus kann ich nicht dorthin gelangen.

verwandte Informationen