O NAT faz bem o seu trabalho, mas o encaminhamento de portas tem um trabalho diferente . Para entender isso, é importante lembrar a diferença entre conexões de entrada e conexões de saída.
Suponha que você e eu tenhamos uma conversa telefônica. Eu posso ligar para você ou você pode me ligar. Em ambos os casos, poderemos enviar mensagens (frases) para trás e para frente, mas há uma diferença em quem inicia a chamada. Se eu ligar para você, é uma conexão de saída para mim e uma conexão de entrada para você. Para que isso seja possível, preciso primeiro saber seu número de telefone. Quando você atende o telefone, recebe o meu identificador de chamadas (que é o meu número de telefone). Para o propósito desta explicação, vamos fingir que você precisa para saber o meu número de telefone para falar comigo.
Agora imagine que nossos telefonemas são roteados por dois outros telefones (os roteadores), que estão conectados a muitas pessoas:
You <----> Router 1 <----> Router 2 <----> Me
^ ^
| |
v v
Many Many
Others Others
Para complicar, conheço apenas o número de telefone do Roteador 1 e não o seu número pessoal. Por outro lado, você sabe apenas o número de telefone do Roteador 2 e não o meu número pessoal. Quando eu ligo para você, temos dois problemas:
- O roteador 1 de alguma forma precisa saber que a chamada deve ir até você e não a um dos muitos outros aos quais ele se conecta.
- O roteador 2 precisa saber que, quando você responde, a frase deve ser enviada para mim e não para outra pessoa.
O encaminhamento de porta resolve o problema 1. A chamada sobre o Superusuário é um serviço conduzido pela porta 42 por convenção. Você diz ao Roteador 1 para encaminhar todas as chamadas sobre o Superusuário para você, então quando eu chamar o Roteador 1 na porta 42, eu falo com você. Se você não tivesse explicitamente informado ao Roteador 1 para fazer isso, não poderíamos ligar.
O NAT resolve o problema 2. O roteador 2 finge ser o chamador, porque nem você nem o roteador 1 ocuparão o telefone se o identificador de chamadas for desconhecido (meu número de telefone). Em seguida, ele lembra que sou o chamador real, portanto, quando o roteador 2 recebe uma resposta do roteador 1, ele sabe enviá-lo para mim.
A situação na internet é quase exatamente a mesma. Você só precisa substituir mentalmente os telefones por computadores, números de telefone e identificadores de chamadas por endereços IP e números de telefone desconhecidos por endereços IP reservados (como o intervalo 192.168. *. *).