Como o NAT funciona com pacotes UDP recebidos de IP desconhecido


8

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?


11
Olá Sentinel, seja bem-vindo à NESE. A resposta dependerá de qual tipo de NAT está configurado - parece que você está se referindo a um PAT dinâmico (embora diferentes fornecedores chamem coisas diferentes ). Esta resposta em outras perguntas e respostas fornece mais detalhes sobre por que o PAT dinâmico é unidirecional e não permitiria que o terminal "ainda desconhecido" iniciasse uma conexão com o servidor (TCP ou UDP). A terceira ilustração em particular parece relevante para sua pergunta.
Eddie

@ Eddie Muito obrigado pela sua informação útil. Penso que, para o benefício daqueles que possam chegar aqui no futuro, seria uma boa ideia adicionar isso como resposta.
Sentinel

Se você acha que seria uma resposta mais adequada do que as postadas, posso escrever outra. Sua escolha =).
Eddie

11
Eddie escreveu A resposta dependerá de qual tipo de NAT está configurado : @Sentinel Alguns tipos de NATs estão listados na Wikipedia: en.wikipedia.org/wiki/… É óbvio que um "NAT de cone completo" reagirá de maneira diferente de um "NAT simétrico" aqui.
Martin Rosenau

@MartinRosenau Obrigado. Parece que vou gastar muito tempo estudando NATs. Acho milagroso que programas como o BitTorrent funcionem nesse campo minado de truques de rede.
Sentinel

Respostas:


6

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.


OK, vejo obrigado. Deixarei isso em votação por um tempo antes de marcar como resposta aceita mais tarde, para permitir outras opiniões, se houver alguma. Estou surpreso que tanto software P2P depende de descoberta UDP, mas não parecem adotar estratégias NAT-relacionados, além de UPnP
Sentinela

3

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.


Você poderia ajudar com uma coisa? Para roteadores domésticos típicos, por que o 'encaminhamento de porta' (pat estático, estático napt?) Não resulta no tráfego inicial de saída seguindo essa regra? Parece que eles ignoram a regra e continuam com entradas dinâmicas de qualquer maneira. Essa é a norma?
Sentinel

11
O encaminhamento de porta é uma regra para o tráfego iniciado fora, para permitir que hosts externos iniciem uma conexão com um host interno especificado na regra, não para o tráfego iniciado internamente. É basicamente uma entrada estática na tabela NAPT para um dos três protocolos que podem usar o NAPT (TCP, UDP, ICMP). Consulte RFC 2663, terminologia e considerações do Conversor de endereços de rede IP (NAT) .
Ron Maupin
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.