数据包捕获:RX与TX上的过滤


8

我有一个网络问题,其中与源MAC与主机的源MAC之一匹配的源MAC的帧到达主机-明显重复的MAC,环路或其他L2问题。

我相信是这种情况,因为我的Linux网桥的MAC表(CAM表)将本地MAC(对于托管的虚拟机)注册为上游端口,并且内核日志显示错误:

bridgename: received packet on bond0.2222 with own address as source address

我想获得有关这些“恶意”数据包/帧的更多详细信息,但我不知道如何将它们归零。使用tcpdump可以过滤特定的源MAC(“ ether src MAC”),但这是基于帧中的字节的-而不是帧是“发送”还是“接收”。通常,我们假定源MAC表示一个帧,这意味着我们正在发送它,但是如果接收到重复的帧,则其内容在过滤器中看起来将完全相同。

如何观察在包捕获中是接收帧还是发送帧?


1
tcpdump -i <interface> inbound(或“出站”)的工作?

手册页似乎表明仅限于SLIP。当我尝试对任何接口(环回,eth / em,bond,vlan,tap ...)进行尝试时,tcpdump会说:“ tcpdump:链接类型1不支持入站/出站”
Joshua Miller

2
它不能回答您的问题,但是使用iptables和ulogd,您将可以仅包含有趣的数据包来获得pcap。
lsmooth 2014年

使用tcpdump -L用于查看支持的接口,
波斯湾

使用ngrep -d dev
PersianGulf

Answers:


7

使用--direction选项tcpdump:

-Q direction
--direction=direction
       Choose send/receive direction direction for which packets should be
       captured. Possible values are `in', `out' and `inout'. Not available on
       all platforms.

1
此选项似乎仅在tcpdump的最新稳定版本-4.6.2中可用。但是在ubuntu上构建它之后,它似乎可以成功地区分入站帧和出站帧。头晕!
2014年

1
@JoshuaMiller我刚刚检查了tcpdumpUbuntu 14.04上的手册页,并且存在一个具有完全相同描述的选项,但是它被调用-P而不是-Q(没有提到长格式)。
kasperd 2014年

@kasperd你是对的!tcpdump 4.5.1实际上具有-P。也许功能并不像我最初想象的那么新。
2014年

0

使用iptables,您可以为传入和传出数据包使用不同的“链”。在iptables(8)手册页中:

... the chains INPUT and OUTPUT are only traversed for packets coming into 
the local host and originating from the local host  respectively.   Hence 
every  packet  only  passes  through one of the three chains (except 
loopback traffic, which involves both INPUT and OUTPUT chains) ...

iptables可以执行一些日志记录(-l),这可能会告诉您所需的内容。它可能还可以将数据包的副本转发到用于使用其他工具进行日志记录的接口,但是我没有理由这样做。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.