El término Nexthop Lookup se refiere al proceso mediante el cual un router o dispositivo de red determina la siguiente dirección IP o interfaz a la que debe enviar un paquete para alcanzar su destino final. Es un componente clave en el encaminamiento (routing) de paquetes en redes IP.
Cuando un paquete de datos llega a un router, este consulta su tabla de enrutamiento (routing table) para identificar la mejor ruta hacia el destino y decide a qué siguiente salto (nexthop) debe enviar el paquete.
Al final del artículo encontrarás un pequeño test que te permitirá evaluar los conocimientos adquiridos en esta lectura
1. Conceptos Claves en Nexthop Lookup
Para comprender en profundidad el Nexthop Lookup, es importante conocer los siguientes términos:
- Tabla de Enrutamiento: Contiene una lista de prefijos de red y sus nexthops correspondientes.
- Prefijo de Red: Una dirección de red junto con una máscara (ejemplo: 192.168.1.0/24).
- Longest Prefix Match (LPM): Técnica que selecciona la ruta con la máscara más específica para el destino.
- Nexthop (Próximo Salto): Dirección IP o interfaz donde debe enviarse el paquete para seguir su camino.
- FIB (Forwarding Information Base): Estructura optimizada del router que almacena información de la tabla de enrutamiento para un reenvío más rápido de paquetes.
2. Funcionamiento del Nexthop Lookup
El proceso del Nexthop Lookup ocurre en varias etapas:
- Recepción del Paquete
- Un router recibe un paquete con una dirección IP de destino.
- Consulta en la Tabla de Enrutamiento
- El router busca en su Routing Table la mejor coincidencia para la dirección de destino.
- Utiliza el Longest Prefix Match (LPM) para encontrar la ruta más específica.
- Determinación del Nexthop
- Si el destino está en una red directamente conectada, el router envía el paquete directamente.
- Si no, consulta la tabla de enrutamiento y encuentra el Nexthop más adecuado.
- Reenvío del Paquete
- El router encapsula el paquete con la dirección MAC del siguiente salto y lo envía a través de la interfaz correspondiente.
3. Ejemplo Práctico de Nexthop Lookup
Supongamos que un router tiene la siguiente tabla de enrutamiento:
Red de Destino | Máscara | Nexthop | Interfaz |
10.0.0.0 | /8 | 192.168.1.1 | eth0 |
10.1.1.0 | /24 | 192.168.1.2 | eth1 |
10.1.1.128 | /25 | 192.168.1.3 | eth2 |
Si el router recibe un paquete con destino 10.1.1.150, hará lo siguiente:
- Busca en la tabla de enrutamiento.
- Encuentra varias coincidencias (10.0.0.0/8, 10.1.1.0/24 y 10.1.1.128/25).
- Selecciona la coincidencia más específica (10.1.1.128/25).
- Determina que el Nexthop es 192.168.1.3 y lo reenvía a través de eth2.
4. Nexthop en Protocolos de Enrutamiento
El concepto de Nexthop Lookup se aplica en distintos protocolos de enrutamiento:
- Estático: Se configura manualmente (ip route 192.168.2.0/24 via 10.0.0.1).
- Dinámico: Se actualiza automáticamente con protocolos como:
- RIP (Routing Information Protocol): Utiliza distancia en saltos.
- OSPF (Open Shortest Path First): Utiliza métricas de costo y nexthops en su base de datos de estado de enlace.
- BGP (Border Gateway Protocol): Propaga información de nexthops entre sistemas autónomos.
5. Optimización del Nexthop Lookup
Para mejorar la eficiencia del Nexthop Lookup, se aplican optimizaciones como:
- FIB (Forwarding Information Base): Reduce el tiempo de búsqueda con estructuras optimizadas como árboles y tries.
- Caching de Nexthops: Permite reducir la cantidad de búsquedas repetitivas.
- Hardware de aceleración (ASICs, TCAMs): Usados en routers de alto rendimiento para búsquedas en paralelo.
6. Nexthop Lookup en MikroTik RouterOS
En RouterOS la búsqueda de próximo salto (Nexthop Lookup) es una parte del proceso de selección de rutas. Su propósito principal es encontrar una dirección de puerta de enlace directamente alcanzable (next-hop). Solo después de que se selecciona un next-hop válido, el router sabe qué interfaz utilizar para el reenvío de paquetes.
La búsqueda de next-hop se vuelve más complicada si las rutas tienen una dirección de puerta de enlace que está a varios saltos de distancia de este router (por ejemplo, en iBGP o eBGP multihop). Dichas rutas se instalan en la FIB (Forwarding Information Base) solo después de que el algoritmo de selección de next-hop determina la dirección de la puerta de enlace directamente alcanzable (next-hop inmediato).
Restricción de rutas utilizadas para la búsqueda de Next-Hop
Es necesario restringir el conjunto de rutas que pueden usarse para buscar next-hops inmediatos. Por ejemplo, los valores de next-hop de rutas de RIP o OSPF se supone que deben ser directamente alcanzables y solo deben buscarse utilizando rutas conectadas. Esto se logra mediante las propiedades scope y target-scope.
- Scope (Alcance): Las rutas con un scope mayor al valor máximo aceptado no se utilizan para la búsqueda de next-hop.
- Target-Scope: Cada ruta especifica el valor máximo aceptado de scope para su next-hop en la propiedad target-scope.
El valor predeterminado de target-scope solo permite la búsqueda de next-hop a través de rutas conectadas, con la excepción de las rutas de iBGP, que tienen un valor predeterminado mayor y pueden buscar next-hop también a través de rutas IGP y estáticas.
Cambios en la Búsqueda de Next-Hop en RouterOS v7
En RouterOS v7, las rutas se procesan en orden de scope, y las actualizaciones a rutas con un scope mayor no pueden afectar el estado de la búsqueda de next-hop de rutas con un scope menor.
Ejemplo de RouterOS v6
Supongamos el siguiente escenario en RouterOS v6:
- La puerta de enlace 10.0.0.1 se resuelve de manera recursiva a través de C, utilizando el scope más pequeño que la referencia (scope 20 desde la ruta B), y ambas rutas están activas.
/ip route add dst-address=10.0.1.0/24 gateway=10.0.0.1
scope=50 target-scope=30 comment=A
/ip route add dst-address=10.0.2.0/24 gateway=10.0.0.1
scope=30 target-scope=20 comment=B
/ip route add dst-address=10.0.0.0/24 scope=20 gateway=WHATEVER
comment=C
- Ahora realizamos un cambio en ambas rutas A y B al mismo tiempo.
/ip route set A target-scope=10
Problema en RouterOS v6:
- Aplicar una actualización a la ruta A puede hacer que la puerta de enlace de la ruta B se vuelva inactiva.
- Esto sucede porque en RouterOS v6 solo hay un objeto de puerta de enlace por dirección.
Mejoras en RouterOS v7
En RouterOS v7, se mantiene múltiples objetos de puerta de enlace por dirección, uno para cada combinación de scope y verificación de puerta de enlace.
- Cuando el target-scope o la verificación de puerta de enlace de una ruta cambian, RouterOS v7 no afectará otras rutas, a diferencia de v6.
- En v7, el target-scope y la verificación de puerta de enlace son propiedades internamente asociadas a la puerta de enlace, no a la ruta.
Correcciones Automáticas en Valores de Scope
RouterOS v7 corrige automáticamente valores de scope considerados inválidos:
- Si el scope de la puerta de enlace está configurado en 255, RouterOS corregirá este error internamente estableciendo el scope en 254.
- Si el scope de la ruta es menor que el scope de la puerta de enlace, RouterOS corregirá este error internamente configurando el scope de la ruta en (scope de la puerta de enlace + 1).
Los valores de scope y target-scope utilizados realmente se pueden visualizar en el menú:
/routing/nexthop
Verificación de la Puerta de Enlace (Gateway Check)
La verificación de puerta de enlace se puede ampliar mediante el parámetro check-gateway. La alcanzabilidad de la puerta de enlace se puede comprobar mediante:
- Envío de sondas ARP (Address Resolution Protocol).
- Envío de mensajes ICMP (ping).
- Verificación de sesiones BFD (Bidirectional Forwarding Detection) activas.
El router verifica periódicamente (cada 10 segundos) la puerta de enlace mediante ICMP echo request (ping) o ARP request (arp):
- Si no se recibe una respuesta del gateway en 10 segundos, la solicitud expira.
- Después de dos expiraciones consecutivas, el gateway se considera inaccesible.
- Si se recibe una respuesta, el gateway se considera accesible y el contador de expiraciones se restablece.
Conclusión
- El Nexthop Lookup es un proceso fundamental en el enrutamiento de redes, permitiendo que los routers determinen eficientemente la mejor ruta para reenviar paquetes. Su optimización es clave en redes de alto rendimiento, especialmente en grandes infraestructuras donde el enrutamiento dinámico y el uso de hardware especializado pueden mejorar la velocidad y eficiencia del tráfico de red.
- Las mejoras en RouterOS v7 han optimizado el proceso de Nexthop Lookup, reduciendo los problemas de dependencia entre rutas y mejorando la estabilidad del sistema. Ahora, cada dirección puede tener múltiples objetos de puerta de enlace, evitando los errores de inactivación inesperada que ocurrían en versiones anteriores. Además, las verificaciones de puerta de enlace se han vuelto más flexibles y eficientes mediante ARP, ICMP y BFD.
Breve cuestionario de conocimientos
¿Qué te pareció este artículo?
¿Te atreves a evaluar tus conocimientos aprendidos?
Libros recomendados para éste artículo
(Book) Networking with MikroTik RouterOS: A Practical Approach to Understanding and Implementing RouterOS
Study material for the MTCNA Certification Course, updated to RouterOS v7
Libro Control de Tráfico Avanzado, RouterOS v7
Material de estudio para el Curso de Certificación MTCTCE, actualizado a RouterOS v7










