设置说明:

设置说明:

我希望得到您对我现在面临的特定问题的建议/评论。在同一主机上配置的端口镜像上观察到此问题,而远程端的端口镜像工作正常。

设置说明:

UDP 中的 OAM 数据包由两个线程各发送和接收。 OAM报文通过以太网发送到远端,在该OAM报文在IP栈中遍历的过程中,输出挂钩应用(如下所示),这将克隆传出的 OAM 数据包以用于镜像目的。

iptables  -t mangle -A OUTPUT -d 172.25.62.55/32 -p udp -m udp --dport 16 --port 33  -j oam_mirror --ip 172.25.62.38 --cid 33

在上面的规则中,172.25.62.55是远程IP,172.25.62.38是本地主机IP。

我的调试和观察:

我可以验证 OAM 数据包是否已克隆并保留在堆栈中(使用ip_send_check(iph); dst->output(nskb);)以正确到达接收端(克隆pkt src IP = 172.25.62.38, dst IP = 172.25.62.38),但此克隆的 OAM 数据包未在同一主机上的接收线程处接收。

我认为根据调试此场景后的观察,OAM 数据包未路由到本地 IP 传递,并且在 oam_mirror 挂钩后丢失了数据包。在限制性系统上的 IP 堆栈中调试此数据包非常困难。

我被困在这里,从现在起无法去任何地方,有人能建议我如何继续前进吗?如果您能为这个特定问题提供一些解决方案,那将非常有帮助。

如果您需要更多这方面的信息,请随时询问。

相关内容