NAT Traversal (NAT-T) e sua importância em túneis VPN IPSEC

Twitter Linkedin

Bom pessoal, vamos começar esse post com um conceito básico de uma comunicação TCP/IP roteada entre dois pontos.

Uma conexão TCP/IP tem basicamente quatro informações que fazem com que essa conexão possa existir:

SOURCE ADDRESS / SOURCE PORT ——–> DESTINATION ADDRESS / DESTINATION PORT

Basicamente qualquer conexão utiliza esses atributos, e em alguns casos, existe a necessidade de utilizar técnicas de NAT (Network Address Translation) ou PAT (Port Address Translation) ou NAT Overload.

NAT e PAT são técnicas utilizadas para se modificar IP/Porta, permitindo por exemplo, publicar um sistema na internet sem que exista a necessidade de configurar um IP público em um único servidor, permitir que um usuário configurado com um IP interno (ex: 192.168.0.20/24) acesse a internet utilizando um IP público (NAT 1:1) , ou ainda, permitir que vários usuários internos de uma empresa acessem a internet utilizando apenas 1 IP público (PAT/NAT Overload), já que a maioria das empresas possuem vários usuários internos e servidores mas poucos ou até 1 único IP público.

Exemplo de NAT, onde um serviço HTTP é publicado na internet utilizando um DNAT:

Agora um exemplo de um NAT Overload, onde usuários acessam o google.com por exemplo utilizando um único IP público.

IPSEC

O IPSec, ou também conhecido como Internet Protocol Security , é um dos protocolos mais comums para se criar uma VPN (Virtual Private Network) entre dois pontos ou mais, na verdade, ele é um protocolo que reuni vários padrões em um só, para que no final tenhamos um túnel criptografado entre dois pontos, se comunicando de uma forma segura mesmo em conexões não seguras, como é o caso da internet.

A comunicação entre dois pontos é “túnelada” de tal forma que para os usuários e servidores em ambos os lados, a comunicação é simplesmente uma conexão direta, sem a percepção que está sendo transmitida através da internet.

 

Bom, e porquê falamos primeiro em NAT/PAT, porquê o IPSEC utiliza um protocolo chamado de ESP (Encapsulating Security Payload) , ele provê autenticação, confidencialidade dos dados, e integridade da mensagem alterando o pacote original, encriptando os dados e o cabeçalho original, e gerando um novo cabeçalho com os IP’s dos gateways que formam a VPN.

 

Imagem – visualização do novo pacote

 

 

Quando se tem algum dispositivo realizando PAT entre os dois gateways de uma VPN IPSec, este dispositivo troca a porta (seja TCP ou UDP) com outro número de porta, porém, em uma comunicação IPsec, o dispositivo realizando NAT não é capaz de abrir o header do pacote e verificar qual é a sourceport do header original, já que esse está criptografado, e o novo header inserido pelo ESP não contém qualquer informação sobre porta, o que esse dispositivo então faz? simplesmente descarta o pacote.

NAT-T ou NAT TRAVERSAL contorna esse problema, detectando no momento de estabelecer a comunicação VPN que os dois dispositivos estão configurados com NAT-T, desta forma ele encapsula novamente todo o pacote ESP com uma nova header UDP com source e destination port = 4500.

Contornando assim o problema e possibilitando que a VPN IPSec seja estabelecida.

Leave a Reply

Your email address will not be published.Required fields are marked *