Aqui está um exemplo. Alguns roteadores, como o Neufbox4 (um roteador fornecido por um ISP francês), estão executando o Linux. Nesses roteadores, o programa "iptables" é usado para configurar o comportamento do NAT (o iptables é uma espécie de canivete suíço para redes Linux).
Suponha que você tenha um servidor da Web (porta TCP 80) atrás do seu roteador, escutando o endereço da LAN 192.168.0.2 e adicione um mapeamento de porta (redirecionamento) para ele. Isso se traduz em algo como isto nos termos do iptables:
iptables -t nat -A PREROUTING -i wan -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2
Isso significa que "para cada pacote que entra pela interface WAN, direcionado para a porta TCP 80, envie-o para 192.168.0.2". Qual é exatamente o que você quer. Tudo está bem ... por enquanto.
Você precisa entender que o endereço IP associado à interface WAN do roteador é seu endereço público da Internet. Por exemplo, se o seu IP da Internet for 1.2.3.4, a interface "wan" no roteador terá o endereço IP 1.2.3.4.
Agora, suponha que você esteja tentando acessar seu servidor da Web a partir da sua LAN, digamos, do seu computador pessoal, no endereço 192.168.0.3, usando seu próprio endereço na Internet. Por exemplo, você digita " link " no seu navegador.
O que acontece é que o seu computador enviará um pacote direcionado para 1.2.3.4, porta TCP 80, na LAN. O roteador receberá este pacote. Mas não irá redirecioná-lo para 192.168.0.2. Por quê? Porque a regra iptables acima lida apenas com pacotes que entram na interface WAN, não da LAN!
Então, o que acontecerá então? Bem, isso depende de outras regras de rede no roteador. De um modo geral, uma das duas coisas acontecerá:
-
O roteador verá um pacote direcionado a si mesmo (lembre-se, 1.2.3.4 é um dos endereços IP do roteador, portanto, isso é perfeitamente normal). Na maioria dos roteadores, há um servidor da Web escutando na porta 80 para a interface de administração. Conseqüentemente, este servidor da Web manipulará o pacote, não o servidor da Web na sua LAN, e você obterá a interface de administração em vez do seu site.
-
Ou o roteador soltará o pacote por algum motivo, simplesmente porque não sabe como lidar com um pacote direcionado ao seu endereço WAN em sua porta LAN.
Tecnicamente, a solução é muito simples, consiste em uma regra iptables do formulário:
iptables -t nat -A PREROUTING -i lan -d 1.2.3.4 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2
Isto significa "para cada pacote que chega através da interface LAN dirigida à porta TCP 80, E com um endereço de destino 1.2.3.4, envie para 192.168.0.2". Isso é o que você chamaria de "NAT loopback".
No entanto, a maioria dos fabricantes de roteadores obviamente não está ciente do problema e não colocou essa regra (ou o equivalente no sistema proprietário do roteador) em seu produto ...