
Supongamos que existen dos puertas de enlace en la misma red. Si entiendo correctamente, la tabla de enrutamiento IP en la computadora del remitente decide qué paquetes se enrutan a través de qué puerta de enlace.
Las tablas de enrutamiento IP contienen la dirección IP de la puerta de enlace.
¿Cómo se utiliza esta dirección IP de la puerta de enlace al enviar paquetes IP?
Respuesta1
TL;DR: la dirección de la puerta de enlace solo se almacena en una trama Ethernet que contiene ese paquete TCP/IP
El tráfico servidor->conmutador->enrutador, así como el tráfico servidor->conmutador->servidor, es donde la dirección IP en realidad no juega ningún papel significativo. Es el mundo del protocolo subyacente, probablemente Ethernet. Así que es un mundo que funciona con direcciones MAC.
Por lo tanto, sólo necesita resolver la confusión de que una puerta de enlace predeterminada es una dirección IP. Bueno, es algo así como... lo que se muestra a los humanos... pero la IP de esa puerta de enlace essoloHabía que hacer una cosa, que es preguntar: ¿quién tiene 192.168.1.1 por aquí? La respuesta viene diciendo que la puerta de enlace es MAC 88:99:aa:bb:cc:dd:ee:ff. (Esa es la consulta/respuesta ARP, el traductor entre los dos mundos). La MAC es lo que realmente se utiliza. El paquete va a esa MAC en el nivel de Ethernet, a pesar de que en el nivel de IP el paquete especifica una dirección IP de destino completamente independiente de un receptor final.
Entonces, el paquete se marca para ir a una puerta de enlace elegida configurando el campo "MAC de destino" de la trama Ethernet. El campo determina qué puerta de enlace de esa red lo obtendrá, si hay varias puertas de enlace. (El "marco" es una cápsula subyacente que contiene el paquete o parte del paquete).
Generalización: si bien las tablas de rutas son el núcleo de IP, su columna denominada Next Hop esnuncaimplementado con direccionamiento IP cuando el paquete viaja por el cable. El Next Hop siempre utiliza Ethernet, MPLS u otro protocolo subyacente:
$ ip route show
192.168.98.0/24 via 192.168.99.1 dev eth0
| | |
| <- IP world -> | <- underlying world -> |
| | |
Arriba, incluso cuando el mundo subyacente menciona algo como 192.168.99.1
, que es un concepto de mundo IP, en realidad no significan eso literalmente.
Respuesta2
El encabezado del datagrama IP solo contiene información de la dirección de origen y destino. Según el destino, el enrutador debe saber dónde reenviar el paquete a continuación y esta información se almacena en la tabla de enrutamiento.
Podría haberruta estáticainformación de la dirección o su subred y lapuerta de enlace predeterminadase utiliza para el resto. Este suele ser el caso en la red local: puede haber un enrutamiento estático a otras redes locales y una puerta de enlace predeterminada para el resto, es decir, Internet. En caso de variospuertas de enlace predeterminadases decir, rutas a 0.0.0.0
o ::
, la activa es elegida por suPreferenciaoMétricovalor.
Las cosas se complican más cuando existen varias rutas entre los destinos, como ocurre entre los ISP a nivel de Internet. Existen varios métodos para compartir la información entre los enrutadores:Protocolo de información de enrutamiento(ROTURA),Abra primero el camino más corto(OSPF), yProtocolo de puerta de enlace fronteriza(BGP). Independientemente de cómo se comparta esta información, la tabla de enrutamiento conoce el siguiente salto y el paquete IP sólo conoce su destino final.
Respuesta3
Respuesta corta y simple: no se codifica en el paquete o es la dirección de destino de Ethernet, según cómo se mire. La pila IP/Ethernet analiza qué puerta de enlace maneja la dirección IP de destino, envía una solicitud ARP para que la dirección IP de la puerta de enlace obtenga su dirección MAC y luego envía el paquete a la dirección MAC de la puerta de enlace. Luego, la puerta de enlace reenvía el paquete y vuelve a hacer lo mismo. Esto supone una red Ethernet.
Creo que respondí lo que preguntas. Una vez me pregunté lo mismo. Su pregunta también puede interpretarse como cómo un host, dada una tabla de enrutamiento particular, decide a qué puerta de enlace enviar un paquete saliente.
Respuesta4
Por supuesto, un detalle que se analiza es si una ruta coincide. Si envío a 192.0.2.55/24 y hay una ruta disponible para el tráfico a 10.55.0.0/16, entonces esa ruta se ignora porque no se aplica.
El siguiente criterio que normalmente se analiza es que las rutas más específicas tengan prioridad sobre las rutas más generales. Por ruta "específica", me refiero a subredes más pequeñas. En otras palabras, números más grandes cuando se usa la notación /CIDR y máscaras de subred más grandes cuando se usa la notación "máscara de subred". Es decir, redes de destino con menos direcciones posibles.
Por lo tanto, una "puerta de enlace predeterminada", también conocida como "puerta de enlace de último recurso", normalmente especifica un destino para todo el tráfico hacia la red 0.0.0.0/0. Cualquier ruta para una red más pequeña será "más específica" que esa y tendrá prioridad. Entonces, 192.0.2.0/24 tendrá más prioridad.
En tercer lugar, las rutas suelen tener otro campo llamado "métrica" o, a veces, un nombre diferente como "prioridad". Si tiene varias redes del mismo tamaño, esto puede tener un impacto.
Estos valores "métricos" pueden ser algo que se genera automáticamente (por ejemplo, de esa manera se utiliza una red de mayor velocidad para una mayor cantidad de tráfico), pero se pueden ajustar manualmente.
¿Dónde se codifica la información sobre la puerta de enlace dentro de los paquetes IP enviados?
Los paquetes IP no incluyen ninguna información sobre el enrutamiento, excepto para especificar la dirección IP de destino. Los detalles del enrutamiento están determinados por el equipo que maneja el enrutamiento a lo largo del camino y dichos detalles generalmente no se colocan en un paquete IP. (Por lo tanto, el equipo no busca esos detalles, ya que no están allí. Dado que el equipo no busca esa información, no tendría sentido tratar de incluir dicha información).
RFC 791 página 11muestra una tabla estilo "ASCII ART" de la información que se encuentra en un paquete IP. Después de esa tabla, ese documento muestra detalles (por ejemplo, la sección "Opciones" se describe en la página 15).