Pedimos desculpas antecipadamente pela pergunta relativamente noob e se esse tópico não estiver em discussão aqui (não tenho certeza ...)
A situação é que eu tenho um cliente e servidor UDP vinculados à mesma porta.
Meu entendimento do NAT é que pacotes UDP saindo do cliente para um endpoint específico resultarão em uma entrada temporária na tabela NAT, mapeando a porta de origem para o endpoint de destino. (Isto está certo?)
Isso também significa que, se um ponto de extremidade ainda desconhecido inicia uma comunicação UDP com meu servidor na mesma porta pela qual o pacote UDP passará? Existe alguma razão pela qual o NAT impediria isso? O NAT aparece no bloqueio / permissão desses pacotes recebidos?
Respostas:
O NAT usual funciona criando mapeamentos para cada par de hosts que se comunicam como 5 tuplas (protocolo, endereço interno, porta interna, endereço externo, porta externa). Normalmente essa entrada é adicionada à tabela pelo primeiro pacote de saída.
Se o host externo ainda desconhecido enviar um pacote UDP, não haverá entrada na tabela para ele e, portanto, o dispositivo NAT normalmente o descartará, dependendo de seus recursos e configuração.
Esse tipo de NAT normalmente é chamado de "sobrecarga NAT" ou "tradução do endereço da porta" para distingui-lo de outras variedades. Uma boa descrição é http://www.ciscozine.com/nat-and-pat-a-complete-explanation/
Se você deseja aceitar pacotes recebidos no seu servidor, precisará configurar uma entrada estática no dispositivo NAT para esse servidor nessa porta. Efetivamente, isso indica que as entradas podem ser adicionadas à tabela NAT pelos pacotes recebidos.
Os detalhes dependem do dispositivo e do software.
fonte
Como jonathanjo aponta, uma entrada da tabela UDP NAPT consistirá em mais do que apenas um número de porta UDP (com NAPT, existem tabelas separadas para UDP, TCP e ICMP, e a porta UDP 12345 é diferente da porta TCP 12345, enquanto o ICMP não use portas, mas use um ID de consulta em vez do número da porta).
Sem o endereço IP externo específico em uma entrada da tabela NAPT, o dispositivo NAPT assumirá que o pacote é destinado a si próprio, porque é o dispositivo que é realmente endereçado com o endereço IP recebido. Se o dispositivo NAPT, por si só, não tiver a porta UDP aberta, ele deverá eliminar o pacote, mas isso depende do sistema operacional do dispositivo NAPT e de como está configurado.
Esta é uma grande razão pela qual o NAPT não é segurança. Você realmente precisa de um firewall também. O firewall usará como padrão o bloqueio de todas as conexões de origem externa, protegendo o próprio dispositivo NAPT. Se o dispositivo NAPT estiver comprometido, ele terá acesso total à rede interna e um invasor terá acesso total à rede interna, mesmo que seja uma rede endereçada em particular.
fonte