Como fazer NAT entre 2 interfaces de rede sem afetar o roteamento

Como fazer NAT entre 2 interfaces de rede sem afetar o roteamento

Meu roteador baseado em Linux possui 5 portas Ethernet. Atualmente atua como um roteador entre as portas 1 e 2 e a porta WAN dedicada, sem NAT. A porta 1 é 192.168.1.1/24, a porta 2 é 192.168.2.1/24, a porta WAN é 192.168.0.1/24.

A conexão WAN de saída passa por um dispositivo de registro que monitora o uso, depois passa por um segundo roteador doméstico que faz NAT e usa um IP público em sua porta WAN.

Para simplificar, a rede é a seguinte, com o prefixo IP 192.168.-:

server1--------Router1--------Logging device--------Router2----------
   .1.2      .1.1  .0.1                           .0.254  (public ip)

A configuração do roteador1 funciona bem (é um roteador simples), e o roteador2 também (é um gateway simples). No entanto, gostaria de remover o Router2 e fazer meu NAT entre as portas 3 e 4 do Router1, com a porta4 usando meu IP público real.

Isso seria viável? Gostaria de manter um isolamento estrito entre as portas 1-2-WAN e 3-4, para garantir que todo o tráfego passe pelo dispositivo de registro (com seu endereço IP de origem original).

A ponte transparente seria a solução? Posso aplicar o NAT de origem a esta ponte? O endereçamento IP está bem feito?

Responder1

Supondo que suas 5 portas Ethernet no roteador1 sejam denominadas eth0 - eth4, portanto, tenha a WAN na eth3:

iptables -t nat -A POSTROUTING --source 192.168.1.0/24 --out-interface eth3 -j MASQUERADE
iptables -t nat -A POSTROUTING --source 192.168.2.0/24 --out-interface eth3 -j MASQUERADE

Se você tiver um IP fixo como endereço IP público, substitua "-j MASQUERADE" por "-j SNAT --to-source $PUBLIC_IP" (é claro, substitua $PUBLIC_IP pelo seu endereço WAN!).

É claro que você precisará definir sua rota padrão para eth3, mas isso não fazia parte da questão. Você também desejará proteger o tráfego de entrada no endereço IP público.

informação relacionada