Saltar para o conteúdo principal
Vexaro MeshGlossárioTravessia de NAT

O que é a travessia de NAT?

A maioria dos dispositivos não tem o seu próprio endereço público de internet; ficam atrás de Network Address Translation (NAT) num router, que partilha um endereço público entre muitos dispositivos internos. Isso serve para contactar servidores, mas significa que dois desses dispositivos não se conseguem simplesmente contactar diretamente. A travessia de NAT é o conjunto de técnicas que lhes permitem estabelecer uma ligação direta apesar disso.

Em resumo

A travessia de NAT é o conjunto de técnicas que permitem a dois dispositivos atrás de routers (NAT) formar uma ligação direta, mesmo sem nenhum deles ter um endereço público que o outro possa contactar.

Como funciona a travessia de NAT

  • 01

    Um serviço de coordenação (sinalização) ajuda os dois pares a ficarem a conhecer o endereço e a porta externamente visíveis um do outro, ou seja, como o mundo os vê através dos respetivos NAT.

  • 02

    O STUN é uma forma comum de um par descobrir o seu próprio endereço e porta voltados para o exterior, tal como vistos de fora do seu NAT.

  • 03

    Com essa informação, os pares tentam o «hole punching»: ambos enviam pacotes um para o outro ao mesmo tempo, para que cada NAT abra um caminho para o tráfego do outro.

  • 04

    Quando não se consegue abrir um caminho direto (alguns NAT estritos bloqueiam-no), um retransmissor (muitas vezes chamado TURN) pode reencaminhar o tráfego como recurso, à custa de um salto adicional.

UDP hole punching, passo a passo

Num fluxo típico, cada par contacta um servidor de sinalização e, via STUN, fica a conhecer o endereço público e a porta que o seu NAT está a apresentar. O servidor partilha o candidato externo de cada par com o outro. Ambos os pares enviam então pacotes para o endereço externo um do outro mais ou menos em simultâneo. O primeiro pacote de saída de cada lado faz com que o seu NAT crie um mapeamento temporário à espera de resposta; quando o pacote do outro lado chega, corresponde a esse mapeamento e passa. Assim que alguns pacotes cruzam em cada direção, abre-se um caminho direto e bidirecional e o túnel cifrado corre sobre ele.

Quando é preciso um retransmissor

O hole punching tem sucesso na maioria dos tipos de NAT, mas alguns (os chamados NAT simétricos, ou firewalls corporativas estritas) atribuem portas imprevisíveis ou bloqueiam a tentativa, pelo que não se consegue formar um caminho direto. O recurso é então um retransmissor: um servidor que ambos os pares conseguem alcançar e que reencaminha o seu tráfego. Em sistemas bem concebidos, o retransmissor apenas reencaminha pacotes já cifrados que não consegue ler; acrescenta latência e um salto, mas não vê os dados. Uma boa mesh só recorre a retransmissores em último caso, quando um túnel direto é impossível.

Como isto se relaciona com o Vexaro Mesh (em desenvolvimento)

O Vexaro Mesh, atualmente em desenvolvimento, foi concebido com travessia de NAT integrada: os pares atrás de NAT ligam-se diretamente sempre que a rede o permita, e só através de um retransmissor quando não o permite. Os gateways foram concebidos para levantarem túneis cifrados sobre qualquer ligação, sem encaminhamento de portas nem endereços públicos, o que mantém curtos os caminhos local a local.

Ver as funcionalidades previstas

Perguntas comuns

Porque é que dois dispositivos atrás de NAT não se conseguem ligar diretamente?
Porque nenhum deles tem um endereço público que o outro possa alcançar, e os seus routers descartam por predefinição o tráfego de entrada não solicitado. A travessia de NAT contorna isto fazendo com que ambos os lados iniciem ao mesmo tempo (hole punching) depois de um serviço de sinalização indicar a cada um como o outro aparece a partir do exterior, para que cada router abra um caminho para os pacotes do outro.
A travessia de NAT exige abrir portas na minha firewall?
Normalmente não. O objetivo de técnicas como a perfuração de NAT é estabelecer conectividade sem encaminhamento manual de portas: os pares criam eles próprios os mapeamentos temporários necessários ao iniciarem tráfego de saída. Os sistemas que assentam nisso foram concebidos para funcionar atrás de NAT sem encaminhamento de portas nem endereços públicos, e o Vexaro Mesh foi concebido para dispensar ambos.

Acompanhe a construção do Vexaro Mesh.

O Vexaro Mesh está em desenvolvimento. Fale-nos dos seus locais e entraremos em contacto sobre o acesso antecipado.