Eu tento rotear pacotes entre duas interfaces de uma máquina virtual Ubuntu 16.04 hospedada no OpenStack. Seguindo o que encontrei na Internet, eis o que fiz:
# Enable ip forwarding:
sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward = 1' >> net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.conf
# Update IP tables:
iptables -A FORWARD -i ens3 -o ens4 -j ACCEPT
iptables -A FORWARD -i ens4 -o ens3 -j ACCEPT
Agora, aqui estão minhas interfaces de roteador Linux e a tabela de roteamento:
ens3: 192.168.217.6/24
ens4: 10.0.0.13/24
ip route
default via 10.0.0.1 dev ens4
10.0.0.0/26 dev ens4 proto kernel scope link src 10.0.0.13
169.254.169.254 via 10.0.0.1 dev ens4
192.168.217.0/24 dev ens3 proto kernel scope link src 192.168.217.6
Eu tenho uma máquina na LAN 10.0.0.0/24 e outra na LAN 192.168.217.0/24. Ambos têm o meu roteador Linux como seu gateway padrão, mas eles não podem pingar uns aos outros. No entanto, a máquina na LAN 10.0.0.0/24 tem acesso à Internet:
traceroute 1.1.1.1
10.0.0.1
...
1.1.1.1
ip route
default via 10.0.0.13 dev eth0
10.0.0.0/24 dev eth0 10.0.0.14
Isso é estranho, já que o traceoute não usa o 10.0.0.13, que é o gateway padrão do meu host.
O que estou fazendo de errado? Obrigado.
Tags routing