Como um roteador decide para qual dispositivo rotear dados se ambos os dispositivos têm programas escutando na mesma porta?

0

Digamos que eu tenha dois dispositivos em um roteador que tenham software escutando na porta 999. Um cliente fora da minha rede local tenta se conectar ao meu endereço IP público pela porta 999.

Como o roteador sabe para qual dispositivo encaminhar a solicitação de conexão? Ambos os dispositivos estão escutando na porta 999, mas o tráfego só pode acabar em um dos dispositivos, não é?

Eu sei que o encaminhamento de porta seria a maneira correta de garantir que os dados estão chegando ao dispositivo correto, mas e se nenhuma configuração de encaminhamento de porta estiver configurada? O pacote é rejeitado pelo roteador, pois não sabe qual dispositivo é o "correto"?

    
por Rudy 27.02.2017 / 11:19

2 respostas

0

Depende de como o roteador está configurado. A configuração mais comum resultará no pacote sendo ignorado ou resultando na conexão sendo redefinida. Normalmente, os roteadores SoHo que fazem NAT só aceitam conexões de entrada se o encaminhamento de portas for especificamente configurado ou se a conexão for com o próprio roteador.

Uma ruga seria se o roteador tivesse um destino padrão ou DMZ configurado. Nesse caso, a conexão seria encaminhada para o destino padrão.

Outra ruga seria se o roteador suportasse UPnP. Nesse caso, a conexão seria encaminhada para qualquer host que primeiro solicitasse que essa porta fosse encaminhada, se houver.

Por fim, alguns roteadores têm NAT permissivo. Nesse caso, o roteador faria seu melhor palpite. Por exemplo, se houver apenas um dispositivo ativo recentemente, esse dispositivo poderá obter a conexão. Ou, se um dispositivo tiver se comunicado anteriormente com o endereço IP dessa conexão, esse dispositivo poderá obter a conexão.

Depende completamente de como o roteador está configurado e quais recursos o roteador suporta.

    
por 27.02.2017 / 11:25
-1

Para conexões de entrada (note que estou usando a palavra conexões, não pacotes), sem nenhum encaminhamento de porta / configuração UPnP, ele rejeitaria ou descartaria o pacote.

Para conexões de saída (usando SNAT), o roteador permanecerá 'state'. Ele irá olhar para todas as conexões de saída (por simplicidade, um pacote TCP indo de dentro para fora com um sinalizador SYN), reescrever o endereço / porta de origem para a conexão WAN e enviar o pacote em diante. Ele sabe para que ele reescreveu o endereço de origem / porta e quando um pacote volta, ele inverte esse processo para o endereço / porta original.

Então, para meu roteador NAT, eu obteria a seguinte tabela:

TCP state codes: SS - SYN SENT, SR - SYN RECEIVED, ES - ESTABLISHED,
                 FW - FIN WAIT, CW - CLOSE WAIT, LA - LAST ACK,
                 TW - TIME WAIT, CL - CLOSE, LI - LISTEN

CONN ID    Source                 Destination            Protocol         TIMEOUT             
201805472  10.100.0.95:62110      83.69.0.50:42018       udp [17]         7                   
213891648  10.100.0.95:43327      176.68.233.117:53228   tcp [6] ES       4631                
213891928  10.100.0.95:38139      213.101.14.165:54764   tcp [6] ES       6995                
213223160  10.100.0.95:35725      176.68.233.117:53228   tcp [6] ES       386                 
215913952  10.100.0.1:38340       10.100.0.11:53         udp [17]         8                   
205319000  10.100.0.95:62110      95.22.94.199:22634     udp [17]         41                  
214931472  10.100.0.95:60500      213.101.14.165:5524    tcp [6] ES       6478                
205547536  10.100.1.26:37992      141.138.198.177:993    tcp [6] ES       7118                
387202720  10.100.1.26:58156      141.138.198.177:993    tcp [6] ES       7122                
[output omitted]

Se houver um pacote retornando de 176.68.233.117 com a porta de destino 53228, ele irá reescrever o endereço / porta de destino para 10 10.100.0.95:43327.

    
por 27.02.2017 / 11:28