使用 tcpdump 识别 VLAN 数据包

使用 tcpdump 识别 VLAN 数据包

我正在尝试找出我的主机接收或发送给其他主机的 VLAN 标记数据包。我试过

tcpdump -i eth1 vlan 0x0070

但它不起作用。有人试过通过 tcpdump 查看 vlan 数据包吗?在网上搜索找不到太多帮助!

答案1

如果您的主机连接到接入端口,交换机可能会在到达您的主机之前剥离 VLAN 标记。因此,在相关主机上运行 TCPDump 永远不会看到 VLAN 标记。

您需要设置一个 SPAN 端口和/或在网络中的某处引入网络分接头,以便在标签从数据包中删除之前抓取流量,以便在网络转储/跟踪中看到它们。

答案2

您实际上可以使用 Linux 来“解码”802.1q(VLAN 标记)。您可以有效地将 Linux 变成“棒上的路由器”,并在花哨的思科第 2 层交换机(具有许多 VLAN)上使用单个以太网端口在 VLAN 之间进行路由。

主以太网具有与 vlan id 相对应的“子接口”。然后,您可以单独对子接口进行路由和 iptables(防火墙)。

这是一种简单的方法,可以将外围 Linux 防火墙连接到 ISp,并在其后面连接 10 个 Vlan,但只使用一个以太网接口。

点 q 是标准,尽管思科认为它是编造的,但它在 Linux 上运行良好。

编辑:启用此功能

modprobe 8021q

然后你可以运行 tcpdump 来监听子接口

答案3

老实说,我认为你使用了错误的工具 - tcpdump 与 IP(L3)的联系更紧密,而 VLAN 是 L2 的一个功能 - 请尝试使用 wireshark。

相关内容