具有多个接口的iptables NAT

我有一个Ubuntu的10台机器,我试图用NAT来设置。

eth0是使用DHCP的WAN接口。

eth1,eth2,eth3是LAN接口。 它们分别连接到192.168.0.50,.51,.52。

通过eth1的NAT工作很好。 在eth2 / 3上,我什么都没有 – 在ping上“没有路由到主机”。 这是我的iptablesconfiguration。 有什么明显的错误?

# Generated by iptables-save v1.4.4 on Mon Jan 31 09:40:55 2011 *nat :PREROUTING ACCEPT [1799:327587] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [23:2190] -A POSTROUTING -j MASQUERADE COMMIT # Completed on Mon Jan 31 09:40:55 2011 # Generated by iptables-save v1.4.4 on Mon Jan 31 09:40:55 2011 *filter :INPUT ACCEPT [3474:500657] :FORWARD ACCEPT [24:1613] :OUTPUT ACCEPT [857:128814] -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.0.50/32 -i eth1 -o eth0 -m conntrack --ctstate NEW -j ACCEPT -A FORWARD -s 192.168.0.51/32 -i eth2 -o eth0 -m conntrack --ctstate NEW -j ACCEPT -A FORWARD -s 192.168.0.52/32 -i eth3 -o eth0 -m conntrack --ctstate NEW -j ACCEPT COMMIT # Completed on Mon Jan 31 09:40:55 2011 # Generated by iptables-save v1.4.4 on Mon Jan 31 09:40:55 2011 *mangle :PREROUTING ACCEPT [3890:612115] :INPUT ACCEPT [3474:500657] :FORWARD ACCEPT [220:45916] :OUTPUT ACCEPT [857:128814] :POSTROUTING ACCEPT [1140:186789] -A PREROUTING -i eth1 -j MARK --set-xmark 0x3/0xffffffff -A PREROUTING -i eth2 -j MARK --set-xmark 0x4/0xffffffff -A PREROUTING -i eth3 -j MARK --set-xmark 0x5/0xffffffff COMMIT # Completed on Mon Jan 31 09:40:55 2011 

显然错误的是在不同的接口上使用相同的/ 24。

由于三个Ethernet在同一个networking(192.168.0.0/24),也许你想桥接他们和NAT桥接设备,而不是单独对待他们。

 brctl addbr br0 brctl addif br0 eth1 brctl addif br0 eth2 brctl addif br0 eth3 ifconfig br0 192.168.0.50/24 # For example # Now NAT using br0 as local interface and eth0 as WAN