首页 > 解决方案 > 使数据包在遍历同一命名空间中的 veth 对后进入 netfilter

问题描述

Veth被宣传为具有连接到同一主机的两个 NIC 的基本外部以太网网络的隐喻。这让我假设,在数据包被过滤、路由、发送veth并从另一端重新进入后,它应该被视为来自外部世界的新数据包,并再次通过所有相关的 netfilter 规则。

这只发生在 veth 对跨越网络命名空间的边界时(即,当数据包没有通过当前命名空间中的网络过滤器时)。但是,我的用例涉及 VRF 而不是命名空间,在这样的配置中,在遍历 veth 对后,我根本看不到数据包进入 netfilter 堆栈。

在将数据包路由到适当的 VRF后,我需要应用 netfilter (NAT) 规则,但我似乎无法做到这一点。

所以我的问题是:

  1. 为什么从 veth 出来的数据包不进入过滤堆栈?
  2. 有没有办法让它这样做?
  3. 如果以上都不可能,我的选择是什么?

谢谢。

标签: linuxnetfiltervirtual-ethernet

解决方案


推荐阅读