在使用 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助手提供,问题来源于学员提问




