tradução @NAT não funciona de dentro da rede (condição hairpin)

Estou escrevendo um aplicativo P2P. Os pares fazem ping regularmente em um servidor principal para atualizar seu IP / porta atual; portanto, quando um colega deseja alcançar outro, pode solicitar essas informações ao servidor. Por enquanto, os colegas usam o UPnP para configurar o NAT (para configurações domésticas clássicas) para poder ser acessado de for

Portanto, tudo funciona, exceto quando o cliente de um colega tenta acessar outro servidor (ou o mesmo) e ambos estão atrás do mesmo NAT.Neste caso, o cliente está tentando acessar seu próprio endereço IP "externo" (público) por trás do NAT, o NAT não faz o encaminhamento de porta e não consegue rotear o pacote I

or enquanto, estou pensando em duas soluçõe

query o NAT com UPnP para ver para qual IP local a porta é encaminhada armazene no servidor principal os IPs internos dos pares

Você consegue pensar em outras soluções? Quais estratégias os aplicativos P2P convencionais implementam para resolver esse problema?

questionAnswers(2)

yourAnswerToTheQuestion