Eu tenho uma caixa do Ubuntu com eth0 e eth1.
Como redirecionar todo o tráfego vindo de eth0 para eth1 e vice-versa?
Devo fazer DNAT e SNAT como abaixo ou apenas encaminhando ou ambos?
Editar
Meu caso é assim, ABC, 3 máquinas. Ambos A e C em rede diferente. B tem dois nichos, um é a rede de A (eth0) e outro na rede de B (eth1). Não consigo definir B como gateway em A nem B.
Abaixo está como isso foi alcançado pelo iptables no host B: SOLUÇÃO
iptables -t nat -A PREROUTING -p tcp -m tcp ! --dport 22 -j DNAT --to-destination eth1IP
iptables -t nat -A POSTROUTING -p tcp -m tcp -o eth1 -j MASQUERADE
Excluí a porta 22 para que o tráfego SSH seja poupado das regras e meu ssh para hospedar C funcione.
Respostas:
Desde que as máscaras de rede estejam corretas e não se sobreponham, você não precisa usar DNAT ou SNAT, basta garantir que:
Cada computador possui um gateway padrão definido na caixa Linux ou uma rota para a outra rede através da caixa Linux.
A caixa de Linux tem suporte a forwarding - descomente
net.ipv4.ip_fortward
em/etc/sysctl.conf
e reboot (ouecho 1 > /proc/sys/net/ipv4/ip_forward
fazê-lo temporariamente).Verifique se o firewall permite o encaminhamento (
iptables -vnL
e verifique se aFORWARDING
regra não possui cadeias e se está definida como padrãoACCEPT
). Isto é, acredito que o padrão.fonte