在使用 ovs-tcpdump 时,默认情况下只能按照外层的 IP 地址进行报文筛选,无法直接对内层的 IP 地址进行筛选。不过,你可以通过以下步骤实现这一功能:
- 使用
ovs-ofctl
命令查看 Open vSwitch 的流表规则,找到与你感兴趣的报文相关的流规则。
sudo ovs-ofctl dump-flows <bridge-name>
根据上一步中找到的流规则,获取内层 IP 地址所在字段(例如:
nw_dst
)以及相应的掩码值。修改
ovs-tcpdump
命令,并使用-O <protocol>
参数指定对应协议(如 IPv4 或 IPv6)。
sudo ovs-tcpdump -i <interface> -d 'tcp dst port <port> and (ip[<offset>] & mask = <value>)' -O <protocol>
其中 <offset>
是指内层 IP 地址字段相对于报文起始位置的偏移量,<value>
是你想要匹配的具体 IP 地址值。
请注意,在实际操作时需要替换 <bridge-name>
、<interface>
、<port>
、<offset>
、<value>
等参数为正确的值。此外,由于 ovs-tcpdump 的筛选语法有一些限制,请根据具体需求进行调整。
内容由零声教学AI助手提供,问题来源于学员提问