<< Limitações do IPv4 >>

Com a grande e rápida expansão da Internet e das máquinas que podiam acessá-las, todos começaram a se perguntar se os endereços de IP reservados pelo IPv4 seriam suficientes para atender a demanda mundial, principalmente baseando-se nos desperdícios causados pela divisão em classes.

A divisão dos endereços em classes torna o uso deles pouco eficientes. Por exemplo, temos a IBM tem direito a um endereço Classe A, mas será que algum dia ela usará todos os 16 milhões de endereços IP a que tem direito? Hoje todos os endereços Classes A e B já estão esgotados. E os endereços reservados para as Classes D e E jamais foram implementados.

Isto tudo mostra que o IPv4, além de possuir relativamente poucos endereços, que estes são mal utilizados. Para contornar este problema de falta de endereços é utilizado o NAT (Network Adress Translation), também conhecido como masquerading. A NAT foi criada para sustentar a falta de endereços do IPv4. Ela opera no roteador que separa uma rede interna (stub domain) da rede externa (internet).

Desenvolvida pela Cisco, o NAT trabalha nos modos: estático e dinâmico e overloading.

O estático simplemente converte um endereço externo em um interno, ou seja, não resolve o problema do IPv4. Já o dinâmico mapeia vários endereços internos em um único endereço externo. No overloading cada host interno é mapeado em uma porta do endereco externo.

Com um roteador NAT, é possível que vários maquinas de uma rede consigam acessar a internet usando somente um único endereço. Neste cenário cada uma dessas máquinas recebe um endereço não roteavel (pois podem existir outros iguais a estes na rede externa), e o roteador NAT recebe 2 endereços, um para a rede interna (no stub domain) e outro para a rede externa. Então o NAT passa a operar traduzindo os endereços entre as duas redes: um computador atrás de um gateway NAT envia os dados para o roteador e este “traduz” o endereço para o relativo na rede externa. Isto fez com que a pressão pela falta de endereços em cima do IPv4 diminuísse, permitindo que continuasse no mercado por mais tempo.

No modo dinâmico, a tradução é feita usando um tabela de tradução de endereços (address translation table). Esta tabela funciona da seguinte forma:
- Uma máquina na rede interna (stub domain) tenta acessar uma máquina externa. Então ele manda o pacote para o roteador NAT (mas o pacote está endereçado apara a rede externa)
- O roteador monta essa tabela usando o endereço não-roteável da máquina da rede interna e o endereço de destino do pacote.
- O roteador substitui o endereco de remetente do pacote, que antes era não-roteável, pelo primeiro endereço da rede externa disponível (caso tenha mais de um).
- Quando o pacote retorna, o roteador o recebe e examina a tabela de tradução de endereços para saber a quem este pacote pertençe na rede interna. Então o roteador substitui o endereço de destino deste pacote pelo endereço não-roteavel da máquina na rede interna.
- A máquina recebe o pacote do roteador.

Para evitar problemas com os endereços não-roteáveis, a autoridade responsável pela designação de endereços IP, a IANA (Internet Assigned Numbers Authority), determinou uma faixa de endereços para serem usados em redes internas como endereços não-roteáveis. Estes endereços são considerados não registrados e nenhuma comapanhia ou agência pode ser dona desta faixa. Os roteadores da internet são designados a descartar qualquer pacote com endereços nesta faixa.

Mais uma séria limitação do IPv4 é a falta de uma camada de segurança. Ele foi "desenvolvido para ser usado em redes onde as pessoas confiam umas nas outras" e não em um ambiente anárquico como a internet atual. Camadas de autenticação e encriptação precisam ser adicionadas através de protocolos implantados sobre o TCP/IP, como por exemplo, o SSH.

Pensando em todos esses problemas, a IETF (Internet Engineering Task Force) começou a receber propostas de soluções. Foi considerada a melhor de todas a proposta de Deering e Francis, que se tornaria a 6ª versão do IP, o IPv6.