Por que a rota padrão é necessária para acessar as portas de entrada

0

Eu tenho esta configuração de rede:

- Local router 10.0.0.1, public IP 1.2.3.4
  forwarding port 1002 to 10.0.0.2
  forwarding port 1003 to 10.0.0.3
- Local host 10.0.0.2, server on port 1002, no default route
- Local host 10.0.0.3, server on port 1003, default route via 10.0.0.1
- Remote host public IP 5.6.7.8

Nenhum firewall está configurado.

Posso ligar de 10.0.0.3 a 10.0.0.2:1002 sem problemas.

A partir de 5.6.7.8 eu me conecto a 1.2.3.4:1003 sem problema, mas 1.2.3.4:1002 não responde. No entanto, se eu adicionar uma rota padrão via 10.0.0.1 no host 10.0.0.2, a conexão começará a funcionar.

Portanto, a conexão a um 10.0.0.2:1002 sempre funciona na rede local, mas funciona somente a partir de hosts remotos quando a rota padrão está ativada.

Eu não entendo a diferença: da perspectiva 10.0.0.2, por que e o pacote de entrada é diferente quando vem de outro IP local ou quando está sendo encaminhado?

    
por Wizard79 20.03.2018 / 19:18

1 resposta

1

Quando o 10.0.0.2 recebe o pedido do 5.6.7.8 e tenta responder, se ele não tiver uma rota explícita para 5.6.7.8 ou uma rota padrão para a qual voltar, ele não saberá para onde enviar a resposta .

Explicação: Supondo que 10.0.0.2 e 10.0.0.3 estão na mesma sub-rede (determinada pela máscara de sub-rede)

Um exemplo de tabela de rotas no 10.0.0.2 (ROUTE PRINT no Windows)

Network Destination        Netmask          Gateway       Interface
          0.0.0.0          0.0.0.0         10.0.0.1        10.0.0.2
         10.0.0.0    255.255.255.0         On-link         10.0.0.2
(added by me)10.0.2.0    255.255.255.0         10.0.0.99       10.0.0.2  

A partir da 10.0.0.2, a máquina .3 está no destino de rede de "10.0.0.0". Isso é "On-Link", o que significa que 10.0.0.2 e 10.0.0.3 estão no mesmo link lógico. Assim, os pacotes de e para .2 e .3 não precisam ser roteados. Eles os enviam diretamente para o outro. Nenhum roteamento está envolvido.

Quando .3 ou .2 tentam enviar um pacote de volta para 5.6.7.8 em resposta a um pedido de 5.6.7.8 (seja ele encaminhado ou realmente roteado), porque 5.6.7.8 não está diretamente no link nem dentro as outras rotas na tabela de roteamento, ele se encaixa no destino de Rede "0.0.0.0" e precisaria saber para onde enviar o pacote para roteamento para o destino final - nesse caso, a rota padrão.

Na tabela de rotas acima, se 10.0.0.2 estivesse tentando enviar para 10.0.2.50, ele rotearia o pacote por meio de outro roteador em 10.0.0.99, porque essa rota é especificada na tabela de rotas. Se essa rota não fosse especificada, voltaria para a rota padrão.

Portanto, se não houver rotas explicitamente definidas para um destino e o destino não estiver na sub-rede local, ele será enviado para o roteador padrão.

    
por 21.03.2018 / 00:57