我被 AT&T 网关困住了,它不理解 MAC 可以有多个 IP 地址。因此,我在 Linux 上使用 macvlan 添加具有不同 mac 地址的端口。
这似乎适用于与 macvlan 端口的本地连接。但是,当我尝试将它们 DNAT 到私有 DMZ 时,数据包似乎消失了。我已打开 ip_forwarding,其他传出数据包转发正在运行。
我使用过 tcpdump 和 iptables 中的 trace,但都无济于事。DNAT 规则触发后,数据包便再也没有出现在任何地方。
我正在运行 Centos 6.3。
答案1
我终于解决了这个问题。原来,尝试转发 macvlan 流量所导致的所有古怪的网络恶作剧都使内核反向路径过滤器绊倒,导致其丢弃数据包。我不得不为流量经过的任何接口设置 rp_filter = 0。