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.