Dos rutas en la misma caja pueden apuntar a 198.51.100.77 y aun así responder preguntas distintas. Una describe dónde es alcanzable una dirección MAC y, opcionalmente, qué IP está vinculada a ella. La otra describe un prefijo que se resuelve mediante un siguiente salto, incluso cuando ese prefijo es un único host. Confundirlas produce un ticket que parece un error de enrutamiento pero en realidad es un tipo de ruta mal leído.

La forma más rápida de distinguirlas es leer la clave sobre la que se construye el NLRI, no la máscara al final.

La clave de la ruta dice qué afirma la ruta

El tipo 2 es la ruta de anuncio MAC/IP de RFC 7432, y su clave es la dirección MAC de 48 bits dentro del NLRI. Detrás de esa clave hay un campo de dirección IP cuya longitud puede ser 0, 32 o 128 bits, por lo que un anuncio solo de MAC es una ruta completa y no una entrada de host con partes faltantes. La pila de etiquetas que sigue apunta al contexto de puente donde vive esa MAC.

Que el campo IP esté relleno cambia lo que la ruta declara, no qué tipo de ruta es. Con una longitud de 32 o 128 bits, el emisor también afirma que esa IP pertenece a esa MAC dentro de una instancia EVPN. Con longitud cero, el emisor no hace ninguna afirmación sobre IP. Ninguna de las dos versiones dice que un prefijo sea alcanzable a través de un enrutador.

El tipo 5 es la ruta de prefijo IP de RFC 9136, y su clave es un prefijo escrito como una longitud más ese número de bits. La longitud va de 0 a 32 para IPv4 y de 0 a 128 para IPv6.

Ambos extremos de ese rango son legales, y ninguno implica una MAC. Un prefijo de longitud cero afirma alcanzabilidad sin nombrar un host, mientras que un /32 nombra exactamente una dirección. El NLRI también lleva una dirección IP de puerta de enlace que el lado de salida usa para construir el índice overlay, más una etiqueta para el contexto de reenvío. No hay campo MAC sobre el que conmutar, por eso un receptor trata el tipo 5 como un destino enrutado.

Una ruta de prefijo /32 no es un tipo 2 renombrado

Los prefijos de tamaño de host son rutas de tipo 5 ordinarias. Una ruta de prefijo /32 y un tipo 2 para la misma dirección pueden coexistir en una instancia EVPN, y llevan información de reenvío distinta.

Tome 198.51.100.77 en una instancia EVPN con VNI 10100. Un tipo 2 puede emparejarla con la MAC 02:00:00:00:00:77 y una etiqueta que identifique el dominio de puente donde se aprendió esa MAC. Un tipo 5 puede anunciar 198.51.100.0/24 para toda la subred, o 198.51.100.77/32 solo para esa dirección, con una dirección de puerta de enlace que apunta al VTEP de salida. Las direcciones se solapan a propósito porque las rutas responden preguntas distintas.

Una ruta dice que existe una vinculación de extremo y que es alcanzable a través de un puente concreto. La otra dice que un prefijo es alcanzable a través de un enrutador concreto, se haya aprendido o no algún extremo dentro de él.

Esa diferencia decide dónde mirar primero cuando falla el tráfico. Si un solo host es inalcanzable mientras la ruta de su subred parece correcta, el tipo 5 nunca debió transportar ese host; busque el tipo 2 que falta. Si la ruta del host existe pero toda la subred es inalcanzable, compruebe si el tipo 5 se originó siquiera. Leer los campos en orden es mejor que adivinar por la longitud de la máscara.

Leer ambas rutas sin adivinar

En NX-OS, show bgp l2vpn evpn route type 2 y show bgp l2vpn evpn route type 5 dividen la tabla exactamente por esta línea, y show l2route evpn mac ip muestra las vinculaciones locales de MAC a IP detrás de las rutas de tipo 2. En Junos, show evpn database enumera las vinculaciones de MAC e IP aprendidas mientras que show route table bgp.evpn.0 muestra lo que se anunció y se recibió.

Filtre por route distinguisher y etiqueta Ethernet antes de sacar conclusiones. La misma MAC o prefijo puede aparecer en varias instancias EVPN, y una ruta que parece incorrecta en una instancia puede ser correcta en otra.

Luego lea el NLRI en orden: tipo de ruta, clave, campos de puerta de enlace o etiqueta, y después los route targets de los atributos. Un tipo 2 que lleva un ESI distinto de cero le dice que la MAC es multi-homed, y ese valor es el que une los anuncios de distintos enrutadores PE. Un tipo 5 que lleva una dirección de puerta de enlace le dice qué VTEP de salida debe recibir el tráfico.

Si falta una ruta, compruebe el origen antes de la codificación. Confirme que la fuente tiene la vinculación o el prefijo localmente, y luego confirme que el route target asociado se importa en esta caja. La mayoría de los informes de un tipo 5 roto terminan en una política de importación, no en el formato del NLRI.

Anote el contexto, no solo el tipo de ruta

Anote juntos el tipo de ruta, la instancia EVPN, el route distinguisher, los route targets importados y exportados y el siguiente salto resuelto. Un tipo 2 sin su instancia es ambiguo, y un siguiente salto sin la familia de rutas invita a una conclusión equivocada.

Ambas son rutas EVPN incluso cuando la carga útil es una dirección IPv4. La familia de direcciones dentro del NLRI y la familia de direcciones de la propia ruta son propiedades separadas, y un tipo 5 no se convierte en una ruta IPv4-unicast o VPN-IPv4 solo porque lleve un prefijo IPv4.

Esa distinción se ve en la frontera entre un plano de control EVPN y una IP-VRF. El route target decide qué VRF importa el prefijo, mientras que la dirección de puerta de enlace y la etiqueta deciden cómo se encapsula el paquete hacia la salida. Léalos juntos y la decisión de reenvío deja de parecer arbitraria.

La próxima vez que aparezca un /32 en la tabla EVPN, compruebe la clave antes de la máscara. Una clave MAC con una IP opcional es una vinculación de tipo 2; una clave de prefijo es una ruta de tipo 5 sea cual sea su longitud. Escriba el route target y el siguiente salto al lado, y el próximo ingeniero no tendrá que volver a deducir toda la historia.

Artículos relacionados