Como o endereço IP de um gateway em uma rota estática afeta o roteamento

Como o endereço IP de um gateway em uma rota estática afeta o roteamento

Tenho usado um computador com Windows 7 para conectar-me a um computador com Windows 10 que está na mesma rede física, mas em uma sub-rede diferente. Antes de adicionar uma rota estática ao Windows 7, todo o tráfego subia para o roteador principal e depois voltava para o Windows 10. Isso estava causando um longo atraso no início de uma conexão RDP, então adicionei uma rota estática ao Windows 7 para evitar o roteador superior . Cometi um erro que acabou funcionando e não sei por quê.

Diagrama de rede

Diagrama de rede

Rotas estáticas para Windows 7

1. None
2. route add 10.1.1.0 mask 255.255.255.0 10.1.0.99
3. route add 10.1.1.0 mask 255.255.255.0 10.1.1.3
  • Usando route 1 tracertprogramas10.1.0.98 -> 10.1.0.1 -> 10.1.0.99 -> 10.1.1.4
  • Usando route 2 tracertprogramas10.1.0.98 -> 10.1.0.99 -> 10.1.1.4
  • Usando route 3 tracertprogramas10.1.0.98 -> 10.1.0.99 -> 10.1.1.4

Entendo por que route 2funciona, mas não sei por que route 3também funciona.

PS: Se alguém puder sugerir um título mais claro, por favor, faça.

Responder1

A Rota 3 funciona devido à forma como os pacotes ARP são processados ​​pelo computador Ubuntu. Uma solicitação ARP para 10.1.1.3 é enviada em 10.1.0.0/24 e recebida na interface 10.1.0.99. Desde aquele computadortambémpossui 10.1.1.3 e responde com o endereço de hardware para seu 10.1.0.99. Quando o computador Windows 7 tenta fazer uma conexão RDP com o computador Windows 10, ele envia pacotes destinados ao gateway 10.1.1.3, mas carregando o endereço MAC do computador na mesma sub-rede, que o switch é capaz de encaminhar diretamente.

Para tentar verificar isso

No Windows 7

.\Arping.exe -i 10.1.0.98 -T 10.1.1.3

No Ubuntu

22:19:51.275116 (Windows 7 MAC) > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: Request who-has 10.1.1.3 tell 10.1.0.98, length 46

Responder2

A mágica da rota 3 funciona em parte por causa do protocolo de resolução de endereços e em parte por causa da tabela de encaminhamento e em parte por causa dos algoritmos de roteamento.

Wikipédiadiz:

O Address Resolution Protocol (ARP) é um protocolo de comunicação usado para descobrir o endereço da camada de enlace, como um endereço MAC, associado a um determinado endereço da camada de Internet (normalmente um endereço IPv4).

Muitos sistemas operacionais executam ARP gratuito durante a inicialização. Isso ajuda a resolver problemas que de outra forma ocorreriam se, por exemplo, uma placa de rede fosse alterada recentemente (alterando o mapeamento de endereço IP para endereço MAC) e outros hosts ainda tivessem o mapeamento antigo em seus caches ARP.

O Ubuntu, ao iniciar, anunciou sua presença e interfaces em ambas as sub-redes às quais está conectado, ou seja, em toda a sua rede. Qualquer anúncio semelhante feito pelo Windows 10 ocorreu apenas dentro de sua sub-rede, portanto nunca chegou ao Windows 7. Mesmo que tal anúncio nunca tenha sido recebido, o Windows 7, para encontrar uma correspondência, enviará um pacote de transmissão para a rede usando o protocolo ARP para perguntar "quem tem 10.1.1.4".

Uma grande dica aqui é que o tracertcomando não listou o roteador entre os saltos. O pedido 10.1.1.4foi direto para o computador Ubuntu, embora o Windows 7 não saiba disso 10.1.1.4.

O que vemos aqui em funcionamento é o Windows Tabela de roteamento IP: processo de determinação de rota:

  • Para cada entrada em uma tabela de roteamento, execute um AND lógico bit a bit entre o endereço IP de destino e a máscara de rede. Compare o resultado com o ID de rede da entrada para uma correspondência.

  • A lista de rotas correspondentes é compilada.A rota que tem a correspondência mais longa(a rota que correspondeu à maior quantidade de bits com o endereço IP de destino) é escolhida. A rota correspondente mais longa é a rota mais específica para o endereço IP de destino. Se forem encontradas múltiplas entradas com a correspondência mais longa (várias rotas para o mesmo ID de rede, por exemplo), o roteador usará a métrica mais baixa para selecionar a melhor rota. Se existirem múltiplas entradas que sejam a correspondência mais longa e a métrica mais baixa, o roteador estará livre para escolher qual entrada da tabela de roteamento usar.

O roteamento do Windows 7 encontrou um prefixo comum entre 10.1.1.4e 10.1.1.3que era 10.1.1. As outras possibilidades eram o roteador ou Ubuntu em 10.1.0.99, mas cujo prefixo comum era apenas 10.1, por isso não foram escolhidos.

Vemos aqui em operação a tabela de encaminhamento que é construída sobre a tabela de roteamento. Enquanto o tabela de roteamento compila rotas com base em endereços IP, a tabela de encaminhamento contém os endereços MAC correspondentes. Portanto, a tabela de encaminhamento continha uma entrada dizendo: "Para 10.1.1.X, encaminhe o pacote para o endereço MAC do computador Ubuntu". Assim que o pacote chegou ao computador Ubuntu, ele sabia muito bem como encaminhá-lo para o 10.1.1.4.

Então é assim que os pacotes do Windows 7 acabariam no Windows 10 e vice-versa.

informação relacionada