Saltar para o conteúdo principal
Todos os termos

Travessia de NAT e hole punching

Técnicas que permitem a dois dispositivos atrás de routers distintos (NAT) ligarem-se diretamente, coordenando-se através de um servidor auxiliar e «abrindo» um caminho através de cada firewall.

Porque é que o NAT atrapalha

A maioria dos computadores está atrás de uma tradução de endereços de rede (NAT): um router que partilha um endereço público entre muitos privados e só deixa entrar os pacotes que respondem a uma ligação iniciada do lado de dentro. Por isso, duas máquinas em redes domésticas ou de escritório diferentes não conseguem simplesmente abrir uma ligação uma à outra: cada router descarta o primeiro pacote do outro lado.

A dificuldade depende do router. O RFC 4787 descreve como os NAT mapeiam e filtram o tráfego UDP: quando um router reutiliza a mesma porta pública para qualquer destino, é normalmente fácil encontrar um caminho direto; quando escolhe uma porta nova para cada destino (o chamado NAT simétrico), é muito mais difícil.

Como funciona o hole punching

A travessia de NAT é o conjunto de técnicas que, ainda assim, encontram um caminho direto. Primeiro, cada lado descobre como é visto do exterior, normalmente perguntando a um servidor STUN. Os dois lados trocam esses endereços candidatos através de um servidor de coordenação e depois enviam pacotes um ao outro ao mesmo tempo. Cada router vê primeiro um pacote de saída e trata a resposta como parte desse fluxo, pelo que se abre um caminho nos dois sentidos. O RFC 5128 faz o ponto destas técnicas.

Também se pode perguntar diretamente ao router: o UPnP IGD, o NAT-PMP e o seu sucessor, o Port Control Protocol (RFC 6887), permitem a uma aplicação pedir um reencaminhamento de porta. Algumas firewalls empresariais e o NAT de operador (CGNAT) anulam todas estas técnicas. Quando nada resulta, a sessão recorre a um relay que reencaminha o tráfego entre os dois lados.

Como o Vexaro Desk se liga

Uma sessão do Vexaro Desk liga-se diretamente sempre que a rede o permite e, caso contrário, através de um relay da Vexaro autenticado. Não há nada a configurar: o cliente encontra um caminho sozinho.

O instalador acrescenta uma regra à Firewall do Windows para que as ligações diretas e de rede local funcionem; uma versão portátil não a pode acrescentar, pelo que as suas sessões passam mais vezes por um relay. As ligações diretas podem ser desativadas nas Definições, e a janela da sessão mostra se a sessão é direta ou retransmitida. As sessões diretas são cifradas ponta a ponta. Quando uma rede obriga a uma ligação retransmitida, o tráfego mantém-se cifrado em trânsito através de relays operados pela Vexaro.

Técnicas de travessia de NAT

Técnicas de travessia de NAT
TécnicaO que fazLimites
Reencaminhamento de portas (UPnP IGD, NAT-PMP, PCP)3Pede ao router que reencaminhe uma porta para a aplicaçãoSó funciona se o router o suportar e a rede o permitir
STUN4Indica a um dispositivo o endereço e a porta públicos vistos do exteriorEncontra endereços; não transporta tráfego da sessão
Hole punching simultâneo2Os dois lados enviam primeiro, pelo que cada router aceita os pacotes do outro como respostasFalha muitas vezes perante NAT simétrico e firewalls restritivas
Experimentar muitas portas1,2Aumenta a probabilidade de correspondência através de um NAT simétricoA correspondência continua a não estar garantida
RelayReencaminha o tráfego quando não há caminho diretoFunciona sempre que ambos os lados o conseguem alcançar, mas acrescenta latência e consome largura de banda do operador

Como ajudar as ligações diretas

  1. Instale o cliente em vez de executar a versão portátil, para que a regra da Firewall do Windows esteja presente.
  2. Permita UDP de saída: as sessões do Vexaro Desk, diretas ou retransmitidas, funcionam sobre UDP.
  3. Use IPv6 onde a sua rede o tiver: sem tradução de endereços pelo meio, é mais simples encontrar um caminho direto.

Perguntas frequentes

O que é o NAT e porque bloqueia as ligações diretas?
O NAT permite que muitos dispositivos privados partilhem um endereço público, e o router só deixa passar os pacotes que respondem a uma ligação iniciada do lado de dentro. Por isso, uma tentativa de ligação vinda de fora é descartada, a menos que algo tenha aberto um caminho antes.
O que é o hole punching?
Os dois computadores descobrem os seus endereços públicos, trocam-nos através de um servidor de coordenação e enviam pacotes um ao outro no mesmo instante. Cada router trata os pacotes do outro lado como respostas aos seus, e abre-se um caminho direto.
O hole punching funciona sempre?
Não. O NAT simétrico, as firewalls restritivas e o NAT de operador podem impedi-lo. É por isso que as ferramentas de acesso remoto mantêm um relay como alternativa; o Vexaro Desk liga-se diretamente sempre que a rede o permite e, caso contrário, através do seu próprio relay autenticado.
As sessões do Vexaro Desk retransmitidas são cifradas?
Sim. As sessões diretas são cifradas ponta a ponta. Quando uma rede obriga a uma ligação retransmitida, o tráfego mantém-se cifrado em trânsito através de relays operados pela Vexaro.

Veja no Vexaro Desk

O Vexaro Desk reúne acesso assistido e não assistido, travessia de NAT, um motor de codecs adaptativo e governação numa só consola. Está em acesso antecipado, e pode criar uma conta gratuita para o experimentar.