求助,tcpdump抓不到包
环境:
Board1与Board2完全一样,板上均有一个Switch和CPU,且两者在板上是直连的。
Board1与Board2可以互相ping通;
Board1发送组播包,Board2可以接收到,tcpdump也可以抓到。
问题:
Board2发送组播包,Board1的CPU却无法接收到,ifconfig时rx和drop都没有变化,且tcpdump抓不到Board2发送的包。
可以确认的是,Board2的包确实发送出来了。查看Board1的switch的统计时,发现其接收的包数与Board2发送的包数一致,且转发给CPU口的包数也一致。
假如是Board1上集成在CPU的MAC收到了switch转发的包,但因未知原因给丢掉了,是不是此时ifconfig和tcpdump都不会有反应了?
也就是说,tcpdump是否只能抓到MAC层以上的包?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
感觉可以把网卡的混杂模式打开。。全抓下来再说。
回复 2# accessory
tcpdump已经将网口设置成混杂模式了吧。
抓包的命令是什么。
tcpdump -i eth0.1030 -vv
tcpdump是否只能抓到MAC层以上的包?
不是,可以直接抓链路层。
混杂模式下,只要驱动传给了内核,tcpdump就能得到。被硬件直接丢掉的就没办法了
印象中tcpdump不会把网卡自己改成混杂模式,可以用IFCONFIG看一眼就知道了。
tcpdump使用的是混杂模式, 确定网口是eth0.1030 么?
这个是在eth0上建立的一个vlan口,应该不会错的。
如果驱动直接将包给drop了的话,tcpdump应该也能看到此包的,ifconfig的dropped也会增加,对吗?
我怀疑是不是 tcpdump 对逻辑接口的抓取和处理有问题
可否采用抓取 eth0 物理设备的裸数据方法来试试?