Pergunta: Supondo que o PAT esteja habilitado em meu roteador de Internet doméstico, como meu roteador sabe para quais hosts desmultiplexar pacotes quando recebe pacotes da Internet?
Exemplo: Na minha LAN existem 2 hosts. Cada um envia uma solicitação ao mesmo servidor para obter as mesmas informações. Cada host está usando a mesma porta. Como o roteador sabe quais pacotes devem ir para onde? Cada pacote deve ter o mesmo endereço de origem e destino. As portas devem ser as mesmas, a menos que haja alguma mágica nas portas que eu não conheça.
Meu palpite: vou supor que existem alguns metadados dos quais não tenho conhecimento que estão anexados a pacotes que de alguma forma identificam cada host individual em uma rede privada. Mas isso não parece funcionar no próximo exemplo.
Exemplo: algum host (outro) em uma rede diferente deseja enviar um pacote para um host (meu) na minha LAN. O outro host envia o pacote para o endereço IP público da minha rede. Mas como meu host não está esperando o pacote, ele não poderia ter fornecido ao meu roteador nenhum metadado sobre como demultiplexar o pacote. E o outro host não conhece metadados além do endereço IP público da minha rede.
Responder1
Os dispositivos que executam a tradução de endereços de rede mantêm uma tabela de tradução que inclui informações sobre os endereços IP e números de porta de origem e destino. A combinação do endereço IP de origem e número da porta e do endereço IP de destino e número da porta cria um identificador exclusivo para cada sessão.
Responder2
Portas de origem.
Cada cliente dentro do NAT atribui uma porta aleatória de número alto para ser a porta de origem de sua conexão com o servidor.
Quando o roteador traduz uma solicitação, ele também define uma porta de origem e rastreia qual porta de origem foi atribuída a qual conexão. Assim, o servidor web envia de volta algo com a porta de origem 80 e a porta de destino 35201 (ou qualquer outra), o roteador procura quais das conexões do cliente de rede ele atribuiu como 35201.
Observe que isso significa que o servidor web provavelmentenãosaber qual porta de origem o cliente original solicitou, apenas para qual porta de origem o roteador o traduziu. (A porta de origem na solicitação torna-se a porta de destino na resposta.)
Responder3
Eu só quero continuar com as respostas acima, em relação ao exemplo que você mencionou sobre um dispositivo externo tentando acessar seu host interno, então com base no que foi dito acima, por padrão seu roteador irá descartar o tráfego que foi iniciado pela Internet, porque ele não sabe qual o host interno da sua lan deve receber tráfego, pois ainda não existe nenhuma entrada criada para isso na tabela NAT do roteador.
A maneira de permitir a entrada de tráfego da Internet para sua LAN seria definir uma regra de encaminhamento de porta específica, também conhecida como nat estático, para que você informe ao seu roteador quando o tráfego vem da Internet para a porta 80, por exemplo, encaminhe esse tráfego para meu servidor web na lan no ip e porta 192.168.1.5:80 por exemplo.