¿Cómo afecta la dirección IP de una puerta de enlace en una ruta estática al enrutamiento?

¿Cómo afecta la dirección IP de una puerta de enlace en una ruta estática al enrutamiento?

He estado usando una computadora con Windows 7 para conectarme a una computadora con Windows 10 que está en la misma red física pero en una subred diferente. Antes de agregar una ruta estática a Windows 7, todo el tráfico subía al enrutador principal y luego regresaba a Windows 10. Esto causaba un gran retraso al iniciar una conexión RDP, por lo que agregué una ruta estática a Windows 7 para evitar el enrutador superior. . Cometí un error que terminó funcionando y no estoy seguro de por qué.

Diagrama de Red

Diagrama de Red

Rutas 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 tracertespectáculos10.1.0.98 -> 10.1.0.1 -> 10.1.0.99 -> 10.1.1.4
  • Usando route 2 tracertespectáculos10.1.0.98 -> 10.1.0.99 -> 10.1.1.4
  • Usando route 3 tracertespectáculos10.1.0.98 -> 10.1.0.99 -> 10.1.1.4

Entiendo por qué route 2funciona, pero no sé por qué route 3también funciona.

PD: Si alguien puede sugerir un título más claro, que lo haga.

Respuesta1

La ruta 3 funciona debido a cómo la computadora Ubuntu procesa los paquetes ARP. Se envía una solicitud ARP para 10.1.1.3 en 10.1.0.0/24 y se recibe en la interfaz 10.1.0.99. Desde esa computadoratambiénposee 10.1.1.3, responde con la dirección de hardware de su 10.1.0.99. Cuando la computadora con Windows 7 intenta posteriormente establecer una conexión RDP a la computadora con Windows 10, envía paquetes destinados a la puerta de enlace 10.1.1.3 pero que llevan la dirección MAC de la computadora en la misma subred, que el conmutador puede reenviar directamente.

Para intentar verificar que

En Windows 7

.\Arping.exe -i 10.1.0.98 -T 10.1.1.3

En 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

Respuesta2

La magia de la ruta 3 funciona en parte gracias al Protocolo de resolución de direcciones, en parte gracias a la tabla de reenvío y en parte gracias a los algoritmos de enrutamiento.

Wikipediadice:

El Protocolo de resolución de direcciones (ARP) es un protocolo de comunicación utilizado para descubrir la dirección de la capa de enlace, como una dirección MAC, asociada con una dirección de capa de Internet determinada (normalmente una dirección IPv4).

Muchos sistemas operativos realizan ARP gratuito durante el inicio. Esto ayuda a resolver problemas que de otro modo ocurrirían si, por ejemplo, se cambiara recientemente una tarjeta de red (cambiando la asignación de dirección IP a dirección MAC) y otros hosts todavía tuvieran la asignación anterior en sus cachés ARP.

Por lo tanto, Ubuntu al comenzar ha anunciado su presencia e interfaces en ambas subredes a las que está conectado, es decir, en toda su red. Cualquier anuncio similar realizado por Windows 10 solo estaba dentro de su subred, por lo que nunca llegó a Windows 7. Incluso si tal anuncio nunca se recibió, Windows 7, para encontrar una coincidencia, enviará un paquete de transmisión a la red utilizando el protocolo ARP para preguntar. "quién tiene 10.1.1.4".

Una gran pista aquí es que el tracertcomando no incluyó el enrutador entre los saltos. La solicitud 10.1.1.4fue directamente a la computadora con Ubuntu a pesar de que Windows 7 no lo sabe 10.1.1.4.

Lo que vemos aquí en funcionamiento es el Windows Tabla de enrutamiento IP: proceso de determinación de ruta:

  • Para cada entrada en una tabla de enrutamiento, realice un AND lógico bit a bit entre la dirección IP de destino y la máscara de red. Compare el resultado con el ID de red de la entrada para una coincidencia.

  • Se compila la lista de rutas coincidentes.La ruta que tiene el partido más largo.(Se elige la ruta que coincidió con la mayor cantidad de bits con la dirección IP de destino). La ruta coincidente más larga es la ruta más específica hacia la dirección IP de destino. Si se encuentran varias entradas con la coincidencia más larga (varias rutas al mismo ID de red, por ejemplo), el enrutador utiliza la métrica más baja para seleccionar la mejor ruta. Si existen varias entradas que son la coincidencia más larga y la métrica más baja, el enrutador es libre de elegir qué entrada de la tabla de enrutamiento usar.

El enrutamiento de Windows 7 encontró un prefijo común entre 10.1.1.4y 10.1.1.3cuál era 10.1.1. Las otras posibilidades eran el router o Ubuntu en 10.1.0.99, pero cuyo prefijo común era only 10.1, por lo que no fueron elegidos.

Vemos aquí en funcionamiento la tabla de reenvío que está construida sobre la tabla de enrutamiento. Mientras que la tabla de ruteo compila rutas basadas en direcciones IP, la tabla de reenvío contiene las direcciones MAC correspondientes. Entonces, la tabla de reenvío contenía una entrada que decía: "Para 10.1.1.X, reenvíe el paquete a la dirección MAC de la computadora Ubuntu". Una vez que el paquete llegó a la computadora Ubuntu, sabía muy bien cómo reenviarlo 10.1.1.4.

Así es como los paquetes de Windows 7 terminarían en Windows 10 y viceversa.

información relacionada