如何将以太网帧从一个veth发送到另一个veth?

如何将以太网帧从一个veth发送到另一个veth?

我有两个 veth 对 (veth1, veth1_0) 和 (veth2, veth2_0)。 veth1_0 和 veth2_0 位于默认命名空间 ns0 中,veth1 位于命名空间 ns1 中,veth2 位于命名空间 ns2 中。我想在不同的命名空间之间进行通信。所以我使用veth1_0将以太网帧发送到veth2_0(使用pcap_sendpacket),希望我可以在veth2捕获数据包。在我的输出中,我可以在 veth1 的命名空间 1 中捕获数据包;但在 veth2 的命名空间 2 中执行失败。我想知道是否可以通过这种方式来完成通信?或者也许还有其他方法。

答案1

我不确定这是否可以解决您的问题,但正常的方法是在主名称空间中创建一个桥,然后创建桥的成员veth1_0veth2_0

然后,您在各自的命名空间中给出veth1正确veth2的 IP 地址,必要时添加路由,让 IP 堆栈完成其工作,而无需担心以太网数据包。特别是,不要使用 pcap 之类的东西。

相关内容