我想寻求帮助来理解这个 tcpdump 捕获。Tcpdump 在服务器 10.13.255.27 上运行并收到数据包:
root@server27 ~]# tcpdump -i eth0 dst host 10.13.255.26 and not src net 10.13.255.0/24 -nn -vv
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
13:55:48.604841 IP (tos 0x0, ttl 58, id 52803, offset 0, flags [DF], proto TCP (6), length 1420)
10.19.13.152.48002 > 10.13.255.26.40650: Flags [.], cksum 0x13eb (correct), seq 4107760935:4107762315, ack 911518208, win 998, length 1380
10.19.13.152 是通过 vpn 访问网络 10.13.255.0/24 的服务器。
问题是为什么这个数据包被发送到 10.13.255.27?26 和 27 都连接到同一 vlan 上的 Summit200 交换机,并且它们都不是虚拟的。
提前致谢
答案1
您正在tcpdump
以混杂模式运行。这意味着tcpdump
将配置网络接口以接收链路上的所有数据包,而不管目标 MAC 地址是什么。
默认情况下,网络接口会丢弃所有不打算发往该主机的数据包。任何不打算发往该主机的数据包都会被网络接口默默丢弃,而不会通知内核。
您可以使用该-p
标志来tcpdump
不让其更改网络接口的设置。但是请记住,接口可能由于其他原因而处于混杂模式。
从您的输出中我们无法看出数据包的目标 MAC 地址是否与接收数据包的网络接口匹配。在哪里查找更多信息取决于两者中的哪一种情况。
如果目标 MAC 地址与接收该地址的网络接口匹配然后您需要查看数据包经过的上一跳的路由表,以了解它为什么被路由到您的 MAC 地址。
如果目标 MAC 地址与接收该地址的网络接口不匹配那么交换机上的 CAM 中肯定没有该 MAC 地址。这可能表明 LAN 上的 MAC 数量超出交换机上的 CAM 所能容纳的数量,或者数据包的目标 MAC 地址最近没有发送任何数据包。