Noções básicas sobre encaminhamento de porta e NAT

0

Eu tenho alguma confusão sobre o encaminhamento de porta vs NAT. Eu sei os problemas que o NAT causa para o P2P, e que existem algumas soluções para ele ( STUN , TURN , etc) que requerem que um servidor de retransmissão configure conexões diretas entre os peers.

O encaminhamento de porta é uma alternativa para STUN / TURN em relação ao problema NAT? Duas pessoas por trás do NAT que têm ambas as portas encaminhadas se conectam diretamente com o TCP? Por exemplo, eu quero desenvolver um aplicativo e prefiro não ter um servidor 24 horas por dia, 7 dias por semana, para retransmitir conexões, mas, em vez disso, ter colegas talvez façam o encaminhamento de portas e eles possam falar diretamente uns com os outros.

    
por KaiserJohaan 09.07.2011 / 17:07

2 respostas

0

Dois peers atrás de um NAT, usando DNAT (ou "port forwarding") não estão tecnicamente atrás do NAT .

Quando esse esquema é usado, a conexão com o público IP faz com que a caixa NAT encaminhe os pacotes para um sistema interno. Então, para todos os envolvidos, parece que a máquina interna não está atrás do NAT . Portanto, se pelo menos um dos pares estiver usando esse esquema, STUN não será mais necessário.

É claro que o fato de a caixa NAT manipular os pacotes apresenta muitos problemas, mas se você não incluir IPs e portas em suas mensagens, tudo bem.

Outro problema com este esquema é que você precisa da cooperação do administrador da caixa NAT, o que nem sempre é fácil de obter.

    
por 09.07.2011 / 17:17
0

Isso é bastante complicado ... Além disso, com base no Stack Overflow, presumo que você queira saber isso de uma perspectiva de programação e o que você precisa fazer para a comunicação entre os clientes.

... NAT é o processo de ter um único (ou mais) endereços IP em um lado de uma rede e, em seguida, encaminhar qualquer porta em qualquer um desses endereços para qualquer endereço interno.

A maioria dos dispositivos NAT tem uma regra padrão de permitir todas as saídas e apenas permitir entradas nomeadas.

Um servidor STUN ou semelhante basicamente significa que ambas as máquinas fazem uma solicitação de saída e o servidor age como um proxy, portanto, nenhum cliente precisa configurar uma regra de entrada.

Se você não quiser definir algo assim, eu recomendaria em seu programa que você o projetasse para que as pessoas saibam quais portas precisam abrir (portanto, apenas uma pessoa precisa fazer a configuração) ou, como alternativa, olhe para UPnP que tem técnicas que permitem que você abra portas programaticamente em alguns firewalls.

    
por 09.07.2011 / 22:08

Tags