Questão NAT estático e tradução de endereço de porta


Eu estava lendo sobre o NAT. Tem 3 tipos.

  1. Mapeamento estático - um-para-um entre endereços privados e públicos.
  2. Dinâmico - um endereço público é selecionado de um conjunto de endereços públicos e mapeado para um endereço particular. Este é também um mapeamento um-para-um.
  3. Sobrecarga / PAT - neste caso, os números das portas desempenharão um papel para mapear um conjunto de endereços privados para um endereço público ou um conjunto muito menor de endereços públicos.

Nos dois primeiros casos, a tabela NAT terá pares de endereços IP, mas no último caso, a tabela NAT terá pares de números de porta IP +.

Também li que quando se comunica diferentes aplicativos podem ser diferenciados por números de porta.

Meu problema é: Vamos considerar um NAT estático, em que um host local é mapeado para um endereço IP global. Se esse host executar vários aplicativos e cada aplicativo usar números de porta diferentes, a tabela NAT também terá mapeamentos de números de porta? Em outras palavras, como solicitações de diferentes aplicativos de um determinado host são tratadas / diferenciadas sem números de porta no NAT estático?


0


origem




Respostas:


Implementação NAT varia. Mesmo os 3 tipos de NAT nem sempre são como você descreveu. O NAT estático pode ter IP + porta estática. Ou seja, IP privado / Port mapeia para IP público / porta. E você pode ter diferentes Private IP / Port mapeados para o mesmo IP público, mas porta diferente. (Existem, na verdade, mais de 3 tipos de NAT, mas essa é uma discussão diferente)

Dito isso, vamos continuar com o seu exemplo. Diga NAT estático de 192.168.1.2 => 25.4.233.34.

A implementação de NAT geralmente tem uma tabela de conversão de NAT para procurar o pacote de entrada, que tem um IP de origem do host da Internet e um IP de destino de um dos IPs públicos do NAT. Essa tabela de conversão é atualizada sempre que uma nova tradução ocorre e também é eliminada de tempos em tempos.

Se houver uma correspondência de tupla completa (que significa IP / porta de origem, IP / porta de destino, protocolo IP), o NAT usará a correspondência para traduzir. Também pode ser uma correspondência parcial (você pode pensar que a entrada NAT estática tem uma entrada parcial usando um caractere curinga para porta). Diga, o pacote recebido é TCP 213.3.2.4:33442 -> 25.4.233.34:80

Se houver uma correspondência (24.4.233.34), usará a tradução estática para mapear o IP de destino de entrada (24.4.233.34) ao IP privado (192.168.1.2) no seu NAT estático. No caso da entrada NAT estática, o NAT só precisa traduzir o IP de destino e as portas passam sem modificações. E o hospedeiro 192.168.1.2 distribuirá o pacote para a base do aplicativo na porta de destino. isto é, a aplicação na porta TCP 80 receberá o pacote.


1