Obviamente, está errado usar o mesmo / 24 em diferentes interfaces.
Eu tenho uma máquina do Ubuntu 10 que estou tentando configurar com o NAT.
eth0 é a interface WAN, que usa DHCP.
eth1, eth2, eth3 são interfaces de LAN. Eles estão conectados a 192.168.0.50, .51, .52, respectivamente.
ONAT através da eth1 funciona muito bem. Em eth2 / 3, não recebo nada - "não há rota para hospedar" no ping. Aqui está minha configuração do iptables. Alguma coisa está obviamente errada?
# 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
Como os três Ehternets estão na mesma rede (192.168.0.0/24), talvez você queira vinculá-los e NAT ao dispositivo de ponte, em vez de tratá-los individualmente.
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