Qué ocurre cuando una red tiene varios caminos equivalentes, cómo se reparte el tráfico y por qué dos enlaces no significan el doble de velocidad para cada conexión.
Cuando una red tiene dos caminos igualmente válidos hacia el mismo destino, no siempre tiene sentido elegir uno y dejar el otro sin usar. ECMP, siglas de Equal-Cost Multi-Path, permite instalar varios siguientes saltos con el mismo coste y utilizarlos en paralelo.
La idea parece sencilla, pero tiene implicaciones importantes: cómo se reparte el tráfico, qué ocurre cuando falla un enlace, por qué un único flujo no suele usar todo el ancho de banda disponible y qué diferencias hay entre “tener dos rutas” y “balancear bien”.
1. ¿Qué es ECMP?
ECMP es un mecanismo mediante el cual un router o un switch de capa 3 puede mantener varias rutas activas hacia un mismo prefijo cuando esas rutas tienen el mismo coste según el protocolo de enrutamiento.
Imagina que R1 puede llegar a la red 10.20.0.0/16 por dos vecinos:
• vía R2 con coste 20;
• vía R3 con coste 20.
Si el equipo admite ECMP y la política de enrutamiento lo permite, ambas rutas pueden instalarse en la tabla de reenvío. Desde ese momento, los paquetes destinados a 10.20.0.0/16 podrán salir por R2 o por R3.
La palabra importante es “igual”. ECMP no significa “usar cualquier camino disponible”. Significa usar, simultáneamente, varios caminos que el proceso de routing considera equivalentes en coste.
2. ¿Por qué es importante el ECMP?
ECMP aparece en muchos diseños de red porque resuelve dos necesidades muy habituales: aprovechar capacidad y reducir dependencia de un único camino.
En un centro de datos, por ejemplo, es común que un switch leaf tenga varios uplinks hacia switches spine. Si todos ofrecen un coste equivalente hacia determinados destinos, ECMP permite repartir miles de flujos entre esos enlaces en vez de mantener uno activo y otro como simple respaldo.
También es útil en redes IP tradicionales con enlaces redundantes. Si dos enlaces de 10 Gbit/s conducen al mismo destino y las rutas tienen el mismo coste, ECMP puede permitir que distintos flujos usen ambos enlaces. Eso no convierte automáticamente la conexión en un “enlace de 20 Gbit/s” para cada sesión, pero sí puede aumentar la capacidad agregada de la red.
Además, cuando uno de los caminos desaparece de la tabla de routing, el tráfico puede continuar por los restantes. La rapidez de esa recuperación depende de cuánto tarde la red en detectar la caída y retirar la ruta, no solamente de ECMP.
3. Cómo funciona ECMP paso a paso
El proceso puede entenderse en cuatro fases.
Primero, el protocolo de routing calcula las mejores rutas. OSPF puede encontrar dos caminos con el mismo coste hacia un prefijo. BGP también puede llegar a conservar varios caminos si su configuración y proceso de selección lo permiten. El protocolo concreto cambia, pero el concepto es el mismo: hay más de un siguiente salto considerado válido y equivalente.
Segundo, el router instala esos siguientes saltos en su tabla de reenvío. La tabla de routing describe qué rutas conoce y cómo las ha aprendido; la FIB, o Forwarding Information Base, contiene la información optimizada que el hardware o el sistema utiliza para reenviar paquetes.
Un resultado simplificado podría verse así:
10.20.0.0/16
next-hop 192.0.2.2 via uplink-1
next-hop 192.0.2.6 via uplink-2
Tercero, el equipo decide qué camino utilizar para cada tráfico. En redes modernas, el reparto suele hacerse mediante un hash calculado a partir de campos del paquete. Es frecuente utilizar la llamada 5-tupla:
IP origen + IP destino + puerto origen + puerto destino + protocolo
El resultado del hash asigna el flujo a uno de los siguientes saltos disponibles.
Cuarto, los paquetes del mismo flujo suelen mantenerse en el mismo camino. Esto evita que un paquete tome un enlace y el siguiente otro, algo que podría introducir diferencias de latencia y provocar reordenamiento. Por eso, en la práctica, ECMP suele ser balanceo por flujo y no balanceo paquete a paquete.
4. Ejemplo práctico de ECMP
Supongamos una red en la que un router de acceso tiene dos uplinks de 10 Gbit/s hacia el core.
Ambos caminos llegan al prefijo 172.16.50.0/24 con el mismo coste. El router instala dos next hops:
Destino: 172.16.50.0/24
Camino A: 10.0.0.2 por enlace A
Camino B: 10.0.0.6 por enlace B
Coste: 30 en ambos casos
Ahora aparecen cuatro conexiones TCP independientes:
Flujo 1: 192.168.10.10:51001 -> 172.16.50.20:443
Flujo 2: 192.168.10.11:51002 -> 172.16.50.20:443 Flujo 3: 192.168.10.12:51003 -> 172.16.50.21:443
Flujo 4: 192.168.10.13:51004 -> 172.16.50.22:443
El hash podría asignar los flujos 1 y 4 al camino A, y los flujos 2 y 3 al camino B. No existe obligación de obtener un reparto exactamente 50/50: el resultado depende de los valores de entrada del hash y del número de flujos.
Aquí aparece una limitación importante. Si solo existe una única transferencia TCP muy grande, ese flujo normalmente permanece en un único camino. Aunque haya dos enlaces de 10 Gbit/s, esa sesión no suma automáticamente los dos y no obtiene 20 Gbit/s. ECMP mejora la distribución agregada cuando existen múltiples flujos.
Si el enlace A cae, el protocolo de routing o un mecanismo de detección rápida debe advertirlo. Cuando el siguiente salto por A desaparece de la FIB, los nuevos cálculos de hash solo disponen del camino B. Los flujos que estaban usando A tendrán que continuar por el camino superviviente, aunque algunas sesiones pueden experimentar pérdida temporal o retransmisiones durante la convergencia.
5. Errores típicos y cómo evitarlos
El primer error es pensar que ECMP duplica el ancho de banda de cualquier conexión individual. No lo hace. Su ventaja aparece principalmente cuando hay suficientes flujos independientes para repartir entre los caminos disponibles.
El segundo error es asumir que dos rutas parecidas son automáticamente rutas ECMP. Deben cumplir las condiciones que exija el protocolo y el equipo para considerarlas equivalentes. En OSPF, por ejemplo, el coste hacia el destino debe ser el mismo. En BGP, el multipath depende de atributos y configuración adicionales.
El tercer error es esperar un reparto matemáticamente perfecto. Con pocos flujos, un hash puede producir 70/30, 80/20 o incluso una distribución más desigual. Eso no implica necesariamente que ECMP esté roto. Cuantos más flujos independientes existan, más probable es que la utilización agregada se aproxime a una distribución razonable.
El cuarto error es ignorar el tipo de hash. Si todo el tráfico se produce entre muy pocas direcciones IP y el equipo solo calcula el hash con IP origen e IP destino, muchos flujos pueden terminar en el mismo enlace. Incluir puertos de capa 4 suele proporcionar más variación, siempre que la plataforma lo soporte.
El quinto error es confundir balanceo con detección de fallos. ECMP sabe utilizar varios next hops presentes en la FIB, pero necesita que otros mecanismos retiren un camino defectuoso. Si un enlace físico sigue “up” aunque el trayecto remoto esté roto, puede ser necesario un protocolo de routing, BFD u otra forma de detección para acelerar la convergencia.
Por último, conviene vigilar la asimetría. El camino de ida y el de vuelta no tienen por qué coincidir. Para IP puro esto puede ser perfectamente válido, pero algunos firewalls stateful, sistemas NAT o dispositivos que esperan ver ambos sentidos de una sesión pueden tener problemas si el diseño no contempla esa asimetría.
6. Checklist rápido que debes revisar
• Comprueba que realmente existen varios caminos con el mismo coste hacia el mismo prefijo.
• Verifica cuántos next hops ECMP soporta la plataforma y cuántos está instalando.
• Revisa qué campos utiliza el hash: solo IP, 3-tupla, 5-tupla u otro algoritmo.
• No midas ECMP con una sola sesión; utiliza múltiples flujos independientes.
• Observa contadores por interfaz para detectar una distribución persistentemente desequilibrada.
• Prueba qué ocurre cuando cae uno de los caminos y mide el tiempo de convergencia.
• Confirma que firewalls, NAT y servicios stateful toleran el posible routing asimétrico.
• Diferencia siempre capacidad agregada de ancho de banda por flujo.
ECMP no es una técnica exótica. Es una de las piezas que permiten construir redes con varios caminos activos sin obligar a elegir permanentemente uno solo. Entender que el reparto suele hacerse por flujo, que depende de un hash y que la recuperación ante fallos depende del routing ayuda a interpretar mucho mejor lo que ocurre cuando una red redundante empieza a transportar tráfico real.