quinta-feira, 8 de maio de 2014

NAT - Network Address Translation

Boa noite negada.

Vou fazer esse tópico para complementar o tópico de port-forwarding. É uma explicação mais a grosso modo (sem entrar em detalhes) mas pode ser lido separadamente para entendimento do NAT.

Vamos falar primeiramente sobre as camadas e os protocolos nessas camadas.

Vamos olhar as camadas de interface de rede. A que mais conhecemos é a ethernet, sobre a qual utilizamos para o uso da internet. No entanto, a internet (navegação em páginas) funciona através do protocolo HTTP que está na camada de aplicativos. Logo, existe uma hierarquia entre as camadas. Para acessarmos uma página na internet, utilizamos a sequência HTTP, TCP, IP, Ethernet.

Toda a nossa internet é baseada em cima da camada de internet IP. Ou seja, para que uma máquina se conecte na internet é necessário adquirir um IP de uma rede. Um IP é uma sequência ÚNICA de quatro conjuntos de números com no maximo 3 números cada. Exemplo: 187.124.243.211. Uma observação importante. Cada um desses conjuntos não pode ser maior que 255.

Pensando assim, podemos ver que existe um número fixo de IP's disponíveis (4 294 967 296 IP's). No entanto, se considerarmos todos os dispositivos conectados a internet, veremos que existe uma quantidade muito maior que os 4 bilhoes de IP's disponíveis (O dado revelado pela pesquisa “The Cisco Visual Networking Index Global Mobile Data Traffic Forecast Update" estima que o número de dispositivos conectados vai ultrapassar a população mundial em 2010, e que em quatro anos, chegará a casa dos 10 bilhões). Como é possível 10 bilhões de dispositivos se conectarem à internet se possuímos apenas um pouco mais de 4 bilhões de endereços IP's ? É possível justamente por causa do NAT. O NAT é uma forma utilizada para economizarmos os endereços IP's da internet.

Vou dar o exemplo da internet da minha casa. Atualmente, tem 6 smartphones, 4 notebooks, 1 Câmera IP  e uma Smart TV(sim, tem muita gente aqui). Como todos se conectam à internet, precisamos reservar 11 IP's dos 4 bilhões disponíveis, certo ? Não. Para todos esses dispositivos, temos apenas 1 endereço IP reservado na internet do mundo. E esse único IP pertence ao modem. Todos esses aparelhos estão abaixo do modem e não possuem acesso direto à internet. A internet do mundo conhece apenas nosso modem. Vamos simular um acesso ao site do google.

Eu abro o browser no meu celular que tem o IP de rede 192.168.0.103, e digito www.google.com.br. A requisição sai do meu celular, e vai para o roteador. O roteador registra que aquela requisição é da máquina com IP 192.168.0.103 e envia para o modem. O modem envia a requisição para a internet e a resposta chega a ele. Como ele só conhece o roteador na rede interna, ele repassa para o roteador. Já o roteador, conhece vários dispositivos. Ele pega a resposta, vê que a requisição foi feita pela máquina de endereço IP 192.168.0.103 e encaminha a resposta para essa máquina. Eu então visualizo o site do google no meu celular. Essa "jogada" que o roteador faz de guardar o endereço da máquina para depois lhe entregar a resposta, é chamado de NAT e permite que os smartphones e notebooks daqui de casa possa acessar a internet sem ter um IP válido.

Vale a pena lembrar. Os dispositivos na minha rede interna (smartphone, tv, camera e etc) possuem um IP. No entanto, esses IP's são chamados de IP's não válidos pois não são visíveis da internet. Já o roteador é o único que possui um IP válido pois é acessado de qualquer lugar da internet.

OBS.: Qualquer IP que possua um conjuto de valores maior que 255 é considerado inválido (Exemplo: 183.370.221.111 - Note que 370 não é um conjunto válido por passar de 255).

OBS. 2: Atualmente utilizamos a versão 4 do protocolo IP, chamado de IPv4. Realmente os endereços IP's válidos estão se esgotando na versão 4. No entanto já existe uma solução de contorno a muito tempo e é a versão 6 no protocolo IP (conhecido como IPv6). No IPv6 há uma mudança brusca em como será os IP's e as principais empresas do mundo (Google, Facebook, Yahoo, Cisco) realizam um dia anual para testes do IPv6.

Referências:
http://pt.wikipedia.org/wiki/Exaust%C3%A3o_do_IPv4
http://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index-vni/white_paper_c11-520862.html
http://pt.wikipedia.org/wiki/IPv6
.

2 comentários:

  1. Valeu Prof. Thiago Rodrigues, teus artigos dizem ser de 2013, mas esta servindo muito, estamos aprendendo teus detalhamentos de rede, deves ser mestre em rede ipses literes.
    Parabéns professor
    moacirgirardi

    ResponderExcluir