
Eu tenho um servidor Ubuntu 12.04 multi-homed. Tenho duas interfaces de rede conectadas a dois intervalos de IP diferentes.
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
inet 190.113.X.X/29 brd 190.113.98.183 scope global eth1
(...)
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
inet 10.100.100.21/24 brd 10.100.100.255 scope global eth0
(...)
Sempre que tento acessar o servidor no link eth0 de outra sub-rede que não pertence à 10.100.100.X
rede, não obtenho resposta. Estou iptables
rodando no servidor (dado que tem um IP público na eth1) mas permito todo o tráfego da rede privada no link eth0.
Se eu fizer um tcpdump
na interface do servidor eu tenho isso (meu pc é 10.100.102.22
):
18:30:23.813889 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.100.102.22 tell 10.100.100.21, length 28
18:30:24.810691 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.100.102.22 tell 10.100.100.21, length 28
18:30:25.810718 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.100.102.22 tell 10.100.100.21, length 28
Posso fazer ping do servidor para o meu PC:
PING 10.100.102.22 (10.100.102.22) 56(84) bytes of data.
64 bytes from 10.100.102.22: icmp_req=1 ttl=63 time=0.273 ms
64 bytes from 10.100.102.22: icmp_req=2 ttl=63 time=0.324 ms
A tabela de roteamento é a seguinte: Tabela 1:
default via 10.100.100.1 dev eth0
10.0.0.0/8 dev eth0 scope link src 10.100.100.21
Mesa 2:
default via 190.113.X.X dev eth1
190.113.X.X/29 dev eth1 scope link src 190.113.X.X
Padrão:
default via 10.100.100.1 dev eth0 metric 100
10.100.100.0/24 dev eth0 proto kernel scope link src 10.100.100.21
190.113.X.X/29 dev eth1 proto kernel scope link src 190.113.X.X
Responder1
O cliente também precisa saber a rota para a rede 10.100.100.0/24.
então você precisa adicionar uma rota no cliente
ip r a 10.100.100.0/24 via 10.100.100.1 dev eth0
ou você precisa adicionar a rota no gateway padrão que o cliente está usando.
você pode pensar desta forma: o cliente precisa saber como chegar a 10.100.100.21, se não, ele tentará o gateway padrão, se o gateway não souber, você está sem sorte.