在 Linux 中给出以下配置:
bond0
在 LACP (802.3ad) 模式下运行两个 VLAN 网络。bond0.111
配置静态IPbond0.222
配置了 DHCP
如何从bond0 捕获数据包,以便我可以查看ARP 响应数据包是否具有正确的VLAN 标记?如果我做
sudo tcpdump -vvv -i bond0 -U -l -n
我收到了所有数据包(包括 LACP 同步),但没有数据包包含有关 VLAN 标记的信息,因此我不知道它们属于哪个网络。
如果我做
sudo tcpdump -vvv -i bond0 -U -l -n -e vlan
相反,我得到了所有包含 VLAN 标记的数据包,但我丢失了所有没有 VLAN 标记的数据包。
如何运行tcpdump
以便我可以看到所有数据包(包括 LACP 同步、不带 VLAN 标记的 ARP 请求和带 VLAN 标记的 ARP 请求),包括(但不要求)使用的 VLAN 标记值?
我在诊断网络失败的问题时遇到了这个问题,因为交换机配置不正确并且它丢弃了 VLAN 111 中所有数据包的 VLAN 标记。用 Cisco 的话说,VLAN 111 被意外配置为“本地 vlan”。如果我能够从一开始就看到所有流量,那么诊断问题就会容易得多。
我知道流量足够低,无法填充缓冲区(-B
标志为tcpdump
),因此我不会因为缓冲区空间不足而丢失数据包。