ECMP hacia un solo VTEP: de dónde viene la entropía de VXLAN
Un VTEP remoto puede tener varios saltos siguientes de igual coste, pero una /32 no los hace útiles. La distribución depende de la tupla exterior y del hash del puerto de origen.
La afirmación de que el multipath de igual coste no sirve para una ruta de host se repite lo suficiente como para sonar cierta. Una /32 selecciona una dirección de destino, y nada en esa selección restringe el paquete a un solo enlace físico. Cuando el destino es un extremo remoto de túnel VXLAN, varios saltos siguientes pueden transportar flujos de superposición distintos, y si lo hacen depende de lo que el hash de reenvío tenga permiso para ver. El resto es aritmética sobre la cabecera exterior, no una propiedad del prefijo.
La ruta decide la alcanzabilidad; el hash decide la distribución.
El mito: una /32 significa un solo camino
OSPF puede anunciar alcanzabilidad de igual coste hacia un loopback de VTEP mientras la tabla de reenvío instala un grupo de saltos siguientes para ese mismo prefijo. El protocolo aporta los candidatos; la plataforma decide cuáles son utilizables y cómo se asigna un paquete. Ningún protocolo de enrutamiento calcula un hash nuevo para cada trama encapsulada. Esa separación explica por qué dos routers con rutas idénticas pueden repartir el tráfico de forma distinta.
Mire la entrada de reenvío instalada y no solo la visualización de la ruta, porque los límites de hardware o de política pueden descartar candidatos que el plano de control sigue anunciando.
De dónde tiene que venir la entropía
Entre dos VTEP las direcciones exterior de origen y destino permanecen fijas, y el puerto de destino UDP es 4789 en un despliegue convencional. Un hash que solo lee esos valores ve una entrada constante y devuelve un camino constante. Algo de la cabecera exterior tiene que variar, y el VTEP es el dispositivo que puede hacerlo variar.
RFC 7348 propone derivar el puerto de origen UDP a partir de campos dentro de la trama encapsulada. Distintas conversaciones internas producen entonces tuplas exteriores distintas, lo que da a un hash de transporte ordinario algo con lo que trabajar.
Si el hardware de reenvío puede mirar más adentro del paquete, compruebe qué campos internos admite su implementación de hash. Esa profundidad no debería tratarse como un requisito para cada dispositivo de underlay, ya que la variación del puerto de origen por sí sola ya expone diferencias útiles.
Compruebe el hash que realmente obtiene
Mida en lugar de suponer. Capture una muestra de tráfico encapsulado y observe los puertos de origen exteriores, y luego compare el resultado con las entradas de reenvío y los contadores por enlace.
show ip route 10.255.0.5/32 show ip cef 10.255.0.5 internal ip route show 10.255.0.5 tcpdump -ni eth0 -c 200 'udp port 4789' -vv
Un solo puerto de origen que aparece en muchas conversaciones internas distintas significa que el VTEP no varía el campo, y ningún ajuste del underlay repartirá la carga. Muchos puertos distintos con un solo salto siguiente en uso apuntan más bien al grupo de reenvío.
Anote los contadores antes y después de la muestra, y tenga en cuenta el tráfico no relacionado que comparte los enlaces ascendentes, o las cifras parecerán peores de lo que el hash merece.
Qué no significa una distribución uniforme
Un hash por flujo está diseñado para mantener una conversación en un camino mientras sus entradas y el conjunto de caminos disponibles no cambien. Por eso una única transferencia TCP grande no agrega todos los enlaces ascendentes, y añadir enlaces no acelerará ese flujo. Es un comportamiento normal, no un fallo.
Varios flujos también pueden colisionar por casualidad en el mismo salto siguiente. Una muestra corta puede parecer muy sesgada mientras el hash hace exactamente aquello para lo que se configuró, y un fallo de enlace o un cambio del conjunto de caminos puede mover flujos establecidos en mitad de una transferencia.
Pruebe con pares de direcciones, transportes y tasas representativos bajo un plan aprobado, y mantenga la selección de miembros de agregación de enlaces separada de la selección de multipath enrutado, porque dos etapas de hash componen su propio patrón. Un grupo de saltos siguientes poblado más entropía exterior visible explican el resultado; la longitud del prefijo no.