NAT Overloading ou Port Address Translation (PAT) é uma forma modificada de NAT dinâmico onde o número de endereços locais é maior do que o número de endereços globais internos. Na maioria das vezes, há apenas um único endereço IP interno global fornecendo acesso à Internet para todos os hosts internos. NAT Overloading é o único sabor de NAT que realmente conserva endereços IP e é também a forma mais popular de NAT.
Figure 10-4 Port Address Translation (PAT)
PAT permite a sobrecarga ou o mapeamento de mais do que dentro de um endereço local para o mesmo endereço dentro de um endereço global. Mas isso também significa que os pacotes de retorno teriam todos o mesmo endereço de destino quando chegam ao roteador NAT. Como o roteador saberia a qual dentro do endereço local cada pacote de retorno pertence? Para lidar com esse cenário, as entradas NAT na tabela de tradução são entradas estendidas; as entradas não apenas rastreiam os endereços IP relevantes, mas também os tipos de protocolo e portas. Traduzindo tanto o endereço IP quanto o número de porta de um pacote, até 65535 dentro de endereços locais poderiam teoricamente ser mapeados para um único endereço global inisde (baseado no número de porta de 16 bits).
Mas tenha em mente que uma única entrada NAT usa aproximadamente 160 bytes de memória do roteador, então 65535 entradas levariam mais de 10 MB de memória e também grandes quantidades de energia da CPU. Em configurações PAT práticas, em nenhum lugar perto deste número de endereços são mapeados, mas é definitivamente um limite teórico.
Aqui está uma configuração de exemplo para sobrecarga NAT ou PAT de acordo com a Figura 10-4.
R1>
R1>enable
R1#configure terminal
Enter comandos de configuração, um por linha. Terminar com CNTL/Z.
R1(config)#ip nat pool MyPool 67.210.97.1 67.210.97.1 ?
netmask Especifique a máscara de rede
prefix-length Especifique o comprimento do prefixo
R1(config)#ip nat pool MyPool 67.210.97.1 67.210.97.1 máscara de rede 255.255.255.0
R1(config)#access-list 1 permit 192.168.1.0 0 0.0.0.255
R1(config)#ip nat dentro da lista de fontes 1 pool MyPool overload
R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#interface FastEthernet0/1
R1(config-if)#ip address 67.210.97.1 255.255.255.255.0
R1(config-if)#ip nat fora
R1(config-if)#end
R1#
A configuração acima pode parecer muito semelhante à configuração para NAT dinâmico, no entanto existem diferenças importantes. Primeiro, o pool de endereços IP foi reduzido a um único endereço IP atribuído à interface externa do roteador R1.
Segundo, a lista de acesso 1 corresponde a toda a rede de classe C 192.168.1.0/24, o que significa que qualquer endereço local interno desta rede será traduzido. Se você quiser que um host específico desta rede não seja traduzido, você tem que especificar explicitamente, adicionando uma declaração de negação à lista de acesso. Vamos assumir que queremos negar a tradução para uma única máquina 192.168.1.2 enquanto permitimos todas as outras máquinas:
R1(config)#access-list 1 permit 192.168.1.0 0.0.255
Também há uma adição de palavra-chave overload com o ip nat dentro da lista de origem 1 pool MyPool command.
Deixamos começar nossa verificação usual emitindo o comando show ip nat translations:
R1#show ip nat translations
R1##2245>
Não há mapeamentos estáticos e, portanto, a saída em branco acima. Vamos gerar algum tráfego de dentro dos hosts para o servidor e emitir novamente o comando show ip nat translations:
Pro Inside global Inside local Outside local Outside global
icmp 67.210.91.1:18 192.168.1.2:18 173.194.67.102:18 173.194.67.102:18
icmp 67.210.91.1:19 192.168.1.3:19 173.194.67.102:19 173.194.67.102:19
icmp 67.210.91.1:20 192.168.1.4:20 173.194.67.102:20 173.194.67.102:20
Como você pode ver na saída acima, todos dentro de endereços locais são traduzidos para o mesmo endereço global interno, que é a essência da sobrecarga NAT ou PAT. Você deve ter notado que o roteador preservou os números das portas de origem, pois dentro dos endereços locais foram traduzidos para dentro dos endereços globais. Este é o comportamento usual, mas quando o roteador cria uma nova entrada de tradução de tal forma que o número da porta de origem já está em uso, o número da porta também é traduzido para um número diferente. A ocorrência de dois hosts internos escolhendo o mesmo número da porta de origem não é muito comum, mas ainda pode acontecer especialmente quando o número de conexões de dentro para fora é significativo.
Vamos também emitir o comando show ip nat statistics:
Total traduções ativas: 3 (0 estática, 3 dinâmica; 3 estendida)
Interfaces externas:
Serial1/0
Interfaces internas:
FastEthernet0/0
Hits: 135 Misses: 15
Pacotes traduzidos deCEF: 150, CEF Pacotes perfurados: 0
Traduções expiradas: 12
Mapastros dinâmicos:
– Inside Source
Lista de acesso 1 pool MyPool refcount 3
pool MyPool: netmask 255.255.255.0
start 67.210.91.1 end 67.210.91.1
tipo genérico, endereços totais 1, alocados 1 (100%), falta 0
Pacotes enfileirados: 0
Você deve ter duas coisas em mente. Primeiro, a sobrecarga de NAT é útil em qualquer situação quando o número de hosts internos é maior que o número de endereços públicos que você tem. Em muitas situações você só tem um único endereço IP público que é atribuído à interface externa do seu roteador que enfrenta a Internet. Neste caso, seu pool consistiria em um único endereço IP, como mostra a configuração acima. No entanto, você pode ter mais de um endereço IP público disponível, um dos quais pode ser atribuído à interface de faceamento para a Internet do seu roteador. Nesse caso, seu pool NAT pode consistir em mais de um endereço IP ainda usando sobrecarga NAT para acomodar um número maior de hosts internos que desejam se conectar à Internet. Em resumo, você pode ter um único endereço público sobrecarregado ou pode ter mais de um endereço público sobrecarregado.
NAT Overload ou PAT é a configuração NAT mais prevalente pelo motivo óbvio de que é o sabor da NAT que realmente preserva os endereços IP globais, o principal motivo para o uso de NAT.