Com o crescimento dos usuários da internet a partir dos anos ’90, tudo indicava que o range de endereços que o IPv4 disponibiliza não seria suficiente para todos os usuários e organizações; então, sentiu-se a necessidade de aumentar o espaço de endereçamento. Partindo desta idéia, duas soluções principais foram criadas: IPv6, e o NAT (obs.: o IPv5 foi apenas uma idéia experimental de otimização do IPv4, mas não chegou a ser implementado).
NAT e endereçamento privado, são dois padrões que trabalham juntos. O NAT provê acesso a internet para qualquer endereço inválido dentro de uma organização. Faz com que os usuários internos acessem a internet representados por endereços roteáveis, ou válidos. Mas também pode ter aplicações dentro das organizações, para proteger servidores, DMZ’s, acesso a ranges de IP sobrepostos, VPN, e etc.
O processo de Tradução
O NAT lê os campos de destino ou origem do cabeçalho IP e os altera (traduz) para o endereço válido, quando o pacote sai ou chega na organização, e faz o devido encaminhamento ao host de destino.
Tipos de NAT
NAT dinâmico: um pool (ou range) de endereços válidos cedidos à organização é associado dinamicamente a endereços internos, conforme as solicitações de acesso à internet. Porém esta solução é limitada, pois estes endereços são associados um-para-um, até que este range termine. Sendo assim, se algum outro usuário necessitar acesso, este não será possível, pois todos os endereços estão sendo usados.
Exemplo: temos um range com 6 endereços válidos – 200.20.20.0/29, e temos 254 endereços inválidos: 10.10.10.0/24. Os 6 primeiros a tentarem acessar a internet terão sucesso ao passar pelo NAT:
Original | Traduzido |
10.10.10.5 | 200.20.20.1 |
10.10.10.28 | 200.20.20.2 |
10.10.10.96 | 200.20.20.3 |
10.10.10.126 | 200.20.20.4 |
10.10.10.201 | 200.20.20.5 |
10.10.10.238 | 200.20.20.6 |
Mas a partir daí, a tabela do NAT fica completamente preenchida, e não há mais espaços para qualquer um que queira se conectar.
NAT estático: um endereço válido é associado estaticamente à um único endereço inválido, um-para-um.
Exemplo:
Original | Traduzido |
10.10.10.1 | 200.20.20.1 |
NAT Overload, ou PAT – Port Address Translation: um único endereço pode representar diversos internos. Cada um deles é representado por uma PORTA diferente, associado a este endereço global.
Exemplo: temos 3 endereços locais – 10.10.10.1, 10.10.10.2 e 10.10.10.3. Suponha que o IP do gateway para internet é 200.20.20.1. Ao passar por esta interface, o NAT traduzirá estes endereços da seguinte forma:
Original | Traduzido |
10.10.10.1 | 200.20.20.1:1025 |
10.10.10.2 | 200.20.20.1:1026 |
10.10.10.3 | 200.20.20.1:1027 |
… | … |
E assim por diante, com qualquer endereço interno. Quando vierem os pacotes de volta, o NAT irá ler a porta, e encaminhará ao seu respectivo endereço interno.
Representação das Redes
Inside: todo o range de IP’s que pertence à organização, inclusive seu IP válido na internet.
Outside: na perspectiva da rede interna, os IP’s válidos que serão acessados. Como por exemplo, a internet, um servidor remoto, etc.
Representação dos Endereços
Considere a seguinte topologia na perspectiva do usuário dentro da organização:
Inside Local: endereço original – e inválido – do host, que o representa dentro da organização.
Inside Global: endereço traduzido do host interno, que o representa na internet.
Outside Local: endereço que representa um host remoto dentro da organização; aquele que o usuário da rede local realmente enxerga. Observer que, neste caso, este endereço não precisa ser alterado para alcançar a rede interna.
Outside Global: endereço válido que representa o host na internet, para qualquer um que o queira acessar.
Fique atento, que nos próximos dias estaremos postando mais sobre NAT.
Espero que tenha ajudado. Até breve!