如何使 iptables DNAT 与 macvlan 协同工作

如何使 iptables DNAT 与 macvlan 协同工作

我被 AT&T 网关困住了,它不理解 MAC 可以有多个 IP 地址。因此,我在 Linux 上使用 macvlan 添加具有不同 mac 地址的端口。

这似乎适用于与 macvlan 端口的本地连接。但是,当我尝试将它们 DNAT 到私有 DMZ 时,数据包似乎消失了。我已打开 ip_forwarding,其他传出数据包转发正在运行。

我使用过 tcpdump 和 iptables 中的 trace,但都无济于事。DNAT 规则触发后,数据包便再也没有出现在任何地方。

我正在运行 Centos 6.3。

答案1

我终于解决了这个问题。原来,尝试转发 macvlan 流量所导致的所有古怪的网络恶作剧都使内核反向路径过滤器绊倒,导致其丢弃数据包。我不得不为流量经过的任何接口设置 rp_filter = 0。

相关内容