[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

iptables 1.2.11 + NAT = virtual interface?



Pessoal;

Estou preparando material sobre firewall com iptables e montei um lab pra isto. Disponho duas redes: 172.16.8.0/255.255.248.0 (minha rede externa) e 192.168.254.0/255.255.255.0 (minha rede privada).

Estou utilizando o kernel 2.4.27 devidamente configurado e com quase todas opções do Netfilter habilitadas como parte do kernel, algumas como módulo e apenas as experimentais foram deixadas de fora. A distribuição é um Debian sarge (testing).

A versão do iptables é a 1.2.11 instalada através de compilação e a política padrão das chains de todas as tabelas é ACCEPT. Comecei fazendo MASQUERADE da minha rede interna (192.168.254.0/24) pra tudo que passasse por eth0 (que está na rede externa) e funcionou beleza.

Segundo todas as referências que li, para fazer um NAT estático bastaria utilizar o seguinte par de regras:
#iptables -t nat -A POSTROUTING -s 192.168.254.32 -j SNAT –to-source 172.16.8.32
#iptables -t nat -A PREROUTING -d 172.16.8.32 -j DNAT –to-destination 192.168.254.32
Lembrando que o IP utilizado para fazer este NAT (172.16.8.32) não é o mesmo da interface eth0 (172.16.8.254).

Como não funcionou, continuei a pesquisa e em todo lugar encontrava sempre o mesmo par de comandos, as vezes citações da necessidade de apenas o primeiro comando. Como só encontrava referências de NAT utilizando redirecionamento de porta, o que não é meu caso, editei o arquivo /etc/network/interfaces e adicionei a seguinte interface virtual:
auto eth0:1
iface eth0:1 inet static
address 172.16.8.32
netmask 255.255.248.0
gateway 172.16.15.254

Quando reinicialize a interface, o NAT passou a funcionar. Continuei buscando uma explicação e não encontrei qualquer referência a este comportamento. A pergunta que faço é: isto é assim mesmo, ou deixei de fazer alguma outra coisa e improvisei (mesmo sem querer) uma solução? Se o procedimento é este mesmo, por que nem na NAT-HOWTO está descrito?

Valeu!



Reply to: