Porta NAT de perfuração de furo UDP

8

Acabei de ler um artigo sobre o processo de "fazer furos" com o protocolo UDP. Entendo como é feito, mas tenho uma última pergunta para esclarecer as coisas. Temos o servidor de encontro e o cliente A, B.

O cliente A já fez um furo no cliente B. O cliente B recebe o IP NAT e a porta NAT do servidor de encontro e começa a enviar dados para a mesma porta que o servidor de encontro. Digamos que conheço uma segunda porta que o NAT abriu para conexões UDP. Também posso enviar meus pacotes por essa segunda porta? Ou a porta é diferenciada para todas as conexões UDP de saída? Em caso afirmativo, como podemos usar a mesma porta para o Cliente B e o servidor de encontro? O NAT não abriria uma nova porta quando o Cliente A perfurasse o buraco e o Cliente B tivesse que saber qual nova porta o NAT abriu para essa conexão específica?

Espero que minha pergunta seja um pouco compreensível.

Tagaeyan Tagan
fonte

Respostas:

6

O dispositivo NAT manterá uma tabela com conexões atualmente abertas, para que possa enviar pacotes de retorno ao host interno que abriu a conexão. Uma entrada na tabela de estado pode ser algo como isto:

IP de origem interna | Porta S interna | Porta S externa | IP de destino | D-Port
192.168.1.12 10123 10123 203.0.113.1 5555

Quando um pacote é recebido (do lado externo) o dispositivo NAT irá verificar o IP de origem , porta de origem e porta de destino do pacote e compará-lo com o Destination IP, D-Porte External S-Portcampos em sua tabela de conexão. Quando encontrar uma correspondência, encaminhará o pacote para Internal Source IPon Internal S-Port.

A perfuração do furo UDP depende do fato de que as portas de origem interna e externa são iguais. Normalmente, esse é o caso, a menos que você tenha um segundo host interno que use a mesma porta de origem para conectar-se à mesma combinação de destino / porta D externa.

Quando assumimos que a porta S interna e externa são as mesmas, os dois clientes A, B podem comunicar sua porta de origem ao servidor de encontro, que retransmitirá as informações para o outro cliente, respectivamente.

Sebastian Wiesinger
fonte