我在计算机中打开一个套接字并嗅探到达eth0的数据包。我用以下代码
来做到这一点s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.ntohs(0x0003))
s.bind((args.interface, 0))
while True:
packet = s.recvfrom(65565)
之后,我正在处理变量数据包并打印一些ETH标头,IP标头和UDP标头。该工具成功打印了我获得的DNS和SSH数据包的标头。过了一会儿,我发送了几个vxlan数据包,但它没有获取第一个数据包,并且在一些数据包之后它开始获取它们,但是,它丢失了第一个(有时4个,有时10个但不高)。
例如,这里有14个来自接口上的tcpdump的数据包。可以在DNS中看到VXLAN数据包(VxLAN具有UDP 6633):http://pastebin.com/uhTR4YLb
这里是我用于这些数据包的嗅探工具的输出。可以看到DNS数据包,但不能看到VXLAN:http://pastebin.com/3L0dL9dy
在此示例中,在7个VXLAN数据包之后,嗅探器工具将获取vxlan数据包。知道为什么第一个不是吗?我完全迷失了:(