Qual é a regra correta do iptables quando NATing multiplas sub-redes privadas?

2

Eu tenho um Centos mínimo 6.5 atuando como um roteador. A eth0 está conectada a uma porta de tronco do switch Cisco, permitindo as VLANs 200-213.

Eu tenho várias interfaces de VLAN, exatamente como este link sugere:

link

E tenho o encaminhamento IPv4, para que todos os meus dispositivos de rede de qualquer uma das redes 200-213 possam se comunicar uns com os outros usando essa caixa linux como roteador.

O problema é que preciso que eles acessem a Internet, então adicionei a seguinte regra:

iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j SNAT --to 1.1.1.56

1.1.1.56 é o endereço "externo". Isso funciona bem, os dispositivos conectados às redes internas podem fazer ping nos endereços da Intertnet MAS, eles param de poder se comunicar entre si em sub-redes, portanto 192.168.211.55 pode executar o ping 8.8.8.8, mas não pode falar com 192.168.213.5.

Assim que eu faço um serviço iptables reiniciar para remover a regra, eu posso começar a falar através de sub-redes internas novamente.

Qual seria a maneira correta de configurar o NAT para várias sub-redes privadas? Ou talvez a maneira correta de configurar o encaminhamento?

    
por Jose Mendez 21.08.2014 / 04:27

1 resposta

4

Você também precisa especificar em sua regra de firewall a interface de destino para o tráfego a ser NATted. Caso contrário, apenas tentará NAT tudo, e como você viu, isso não funciona. Você só deve estar ligado ao tráfego NAT para o mundo exterior.

Então, digamos que sua rota padrão para todo o tráfego da Internet saia da VLAN 200 (desde que você não especificou), uma VLAN dedicada ao tráfego externo. Nesse caso, você adicionará -o eth0.200 à sua regra de firewall.

iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0.200 -j SNAT --to 1.1.1.56
    
por 21.08.2014 / 04:49