Conceito de NAT detalhadamente [Artigo] - página 5
[ Hits: 132.446 ]
NAT avançado
O NAT define algumas outras tarefas mais complexas que devem ser realizadas pelo roteador para que ele funcione corretamente, entre elas:
Os pacotes de dados TCP/IP tem um campo para verificação de erro: o "checksum IP". Como esse campo é dependente dos dados contidos no cabeçalho do pacote de dados (que inclui os endereços IP de origem e destino) ele deve então ser modificado corretamente pelo roteador
Como vimos no exemplo 1, o roteador com NAT deve armazenar a informação sobre qual servidor na Internet os computadores locais estão acessando para poder encaminhar as respostas que chegarem. Porém pode haver instantes onde duas máquinas da rede local podem estar acessando o mesmo servidor na Internet. Nesse caso, não basta armazenar os endereços IPs das máquinas que estão sendo acessadas, devesse também armazenar o "socket" de origem de cada máquina local para que o roteador possa encaminhar corretamente as respostas.
A solução apresentada no ítem anterior também tem um problema: o "socket" de origem de cada máquina é definido por cada uma dessas máquina e é aleatório,então existe a possibilidade de duas máquinas na rede local acessarem o mesmo servidor e escolherem o mesmo "socket" de origem. Neste caso o roteador é obrigado a modificar também o "socket" de origem em uma das conexões, manter essa informação na memória e modificar o "socket" de destino da resposta. Repare que esse procedimento também obriga ao roteador trocar o "checksum" do IP e do TCP.
Alguns protocolos como o ICMP, protocolos de roteamento, etc. carregam dentro do campo de dados informações sobre o endereço da máquina de origem. O roteador com NAT deve então observar esses pacotes e modificar essas informações adequadamente. Como cada protocolo utiliza essa informação de maneira diferente o roteador deve ter conhecimento específicos sobre o protocolo, caso contrário o protocolo não irá funcionar.