Identifizieren von VLAN-Paketen mit TCPdump

Identifizieren von VLAN-Paketen mit TCPdump

Ich versuche herauszufinden, welche VLAN-getaggten Pakete mein Host empfängt oder an andere Hosts sendet. Ich habe versucht

tcpdump -i eth1 vlan 0x0070

Aber es hat nicht funktioniert. Hat schon mal jemand versucht, die VLAN-Pakete über TCPdump anzuzeigen? Ich konnte im Internet nicht viel Hilfe finden!

Antwort1

Wenn Ihr Host mit einem Zugriffsport verbunden ist, entfernt der Switch wahrscheinlich das VLAN-Tag, bevor es Ihren Host erreicht. Daher werden beim Ausführen von TCPDump auf dem betreffenden Host die VLAN-Tags nie angezeigt.

Sie müssten einen SPAN-Port einrichten und/oder irgendwo in Ihrem Netzwerk einen Netzwerk-Tap einführen, um den Datenverkehr abzufangen, bevor die Tags aus den Paketen gelöscht werden, um sie in einem Netzwerk-Dump/Trace anzuzeigen.

Antwort2

Sie können Linux tatsächlich zum „Dekodieren“ von 802.1q (VLAN-Tagging) verwenden. Sie können Linux effektiv in einen „Router auf einem Stick“ verwandeln und mit einem einzigen Ethernet-Port auf einem schicken Cisco Layer 2-Switch (der über viele VLANs verfügt) zwischen VLANs routen.

Das Haupt-Ethernet verfügt über „Subschnittstellen“, die der VLAN-ID entsprechen. Sie können die Subschnittstellen dann einzeln routen und mit Iptables (Firewall) verbinden.

Dies ist eine einfache Möglichkeit, eine Perimeter-Linux-Firewall mit einem ISP und 10 VLANs dahinter zu verbinden, aber nur über eine einzige Ethernet-Schnittstelle.

„dot q“ ist der Standard, auch wenn Cisco glaubt, es sei seine Erfindung, daher läuft es unter Linux hervorragend.

EDIT: um dies zu aktivieren

Modprobe 8021q

Sie können dann tcpdump ausführen, um auf den Subschnittstellen zu lauschen

Antwort3

Ehrlich gesagt glaube ich, dass Sie das falsche Tool verwenden – tcpdump ist stärker an IP (L3) gebunden, während VLANs eine Funktion von L2 sind – versuchen Sie es stattdessen mit Wireshark.

verwandte Informationen