¿Qué es SRv6?¶
SRv6 (Segment Routing over IPv6, o Segment Routing sobre IPv6) es una forma de dirigir y programar el tráfico de red escribiendo dentro del propio paquete IPv6 una lista ordenada de instrucciones, llamadas segmentos. Cada instrucción es una dirección IPv6 de 128 bits (un SID). Un router ejecuta la instrucción que está en la dirección de destino del paquete y luego toma su lugar la siguiente. Así, las rutas, las VPN y la protección rápida (fast reroute) funcionan sin estado por flujo en el núcleo, sin LDP ni RSVP-TE y sin plano de datos MPLS. SRv6 es un estándar del IETF (RFC 8402, RFC 8754, RFC 8986) construido sobre el reenvío IPv6 de siempre.
En esta guía
SRv6 de un vistazo¶
| Qué es | Segment Routing (RFC 8402) aplicado al plano de datos IPv6 |
| Idea central | El origen codifica la ruta y los servicios como una lista de direcciones IPv6 (SID) dentro del paquete |
| Formato de la instrucción | SID de 128 bits = Locator (a dónde) + Function (qué hacer) + Arguments (datos opcionales) |
| Cabecera | Cabecera IPv6 normal, más la Segment Routing Header (SRH, RFC 8754) cuando hay que llevar más de un SID |
| Comportamientos | End, End.X, End.DT4/DT6/DT46, End.DX2, H.Encaps…, definidos en RFC 8986 |
| Plano de control | IS-IS (RFC 9352), OSPFv3 (RFC 9513), servicios BGP (RFC 9252), SR Policy (RFC 9256). Sin LDP ni RSVP-TE |
| Compresión | uSID / SID comprimidos (RFC 9800): varias instrucciones en una sola dirección de 128 bits |
| Bloque de direcciones para SID | 5f00::/16, reservado por la IANA para SID de SRv6 (RFC 9602) |
| Usos típicos | Ingeniería de tráfico, L3VPN/EVPN, fast reroute con TI-LFA, network slicing, transporte 5G, fabrics de IA |
| Quién lo usa | Operadores como SoftBank, Bell Canada, Swisscom y China Mobile, además de redes de nube e IA de Microsoft, Meta y OpenAI (despliegues, en inglés) |
IPv6 Segment Routing, Segment Routing v6, SRv6: una sola tecnología¶
También verás SRv6 como IPv6 Segment Routing, Segment Routing v6 o SR v6. Todos esos nombres se refieren a la misma tecnología del IETF. Segment Routing tiene dos planos de datos:
| Nombre que verás | Qué significa |
|---|---|
| SRv6, Segment Routing over IPv6, IPv6 Segment Routing, Segment Routing v6, SR v6 | Los segmentos son direcciones IPv6. La lista viaja en la dirección de destino y, cuando hace falta, en la SRH (RFC 8754) |
| SR-MPLS, Segment Routing MPLS | Los segmentos son etiquetas MPLS en una pila de etiquetas (RFC 8660) |
El "v6" indica la versión de IP del plano de datos. No significa una sexta versión de Segment Routing. Los dos planos de datos comparten las funciones del plano de control: extensiones de IS-IS/OSPFv3, Flex-Algo, TI-LFA y SR Policy. Por eso las guías de los fabricantes suelen cubrir ambos bajo un mismo título de "Segment Routing".
Por qué existe SRv6¶
Una red MPLS clásica de proveedor de servicios usa cuatro o cinco protocolos para lo que en realidad es un solo trabajo: llevar los paquetes por la ruta elegida y entregarlos en la VPN correcta.
| Tarea | Red MPLS clásica | Red SRv6 |
|---|---|---|
| Topología y alcanzabilidad | IS-IS u OSPF | IS-IS u OSPFv3, que además anuncian los locators SRv6 |
| Etiquetas de transporte | LDP, una etiqueta por FEC en cada salto | Ninguna. Los locators son prefijos IPv6 comunes |
| Ingeniería de tráfico | RSVP-TE, con estado de cada túnel en todos los routers intermedios | SR Policy. El estado vive solo en el nodo de cabecera |
| Servicios VPN | BGP con etiquetas VPN | BGP con SID de servicio SRv6 (RFC 9252) |
| Protección rápida | FRR de RSVP-TE o LFA, con huecos de cobertura | TI-LFA, con cobertura completa e independiente de la topología |
| Plano de datos | MPLS, habilitado salto a salto en cada dominio | IPv6. Los routers de tránsito solo necesitan reenviar IPv6 |
Cada protocolo adicional suma estado, configuración y modos de falla. RSVP-TE es el peor caso: una malla completa de túneles entre N routers de borde implica del orden de N² túneles, y cada router intermedio guarda estado de todos los túneles que lo atraviesan. Además, MPLS se detiene en los bordes de cada dominio. Los centros de datos, los servidores y muchas redes de acceso usan IP puro, así que los servicios se tienen que unir en cada frontera con VXLAN, GRE u opciones inter-AS.
Segment Routing resolvió el problema del estado con enrutamiento de origen (source routing). El nodo de cabecera escribe la ruta en el paquete y el núcleo no guarda estado por ruta. SR-MPLS sigue necesitando MPLS en todas partes. SRv6 da un paso más y expresa las instrucciones como direcciones IPv6. El resultado:
- Un solo plano de datos de punta a punta. La misma encapsulación cruza WAN, metro, centro de datos e incluso servidores Linux. El tráfico IPv4 viaja como carga útil.
- El servicio vive en la dirección. Un SID de SRv6 puede significar "desencapsula y busca en la VRF Azul", así que una VPN no necesita una etiqueta aparte.
- Los locators se pueden sumarizar como cualquier prefijo IPv6, lo que ayuda a escalar redes grandes con varias áreas y dominios.
- La red se vuelve programable. Operadores y aplicaciones pueden encadenar instrucciones para armar un "programa de red" (RFC 8986).
Una analogía que encaja
Piensa en SRv6 como una ruta en el GPS del auto con paradas intermedias. El conductor (el nodo de cabecera) marca algunas paradas. Entre una parada y otra, el GPS elige el mejor camino (la ruta más corta del IGP), y nadie en la carretera necesita conocer el itinerario completo. En cada parada puede pasar algo, como "recoger a un pasajero" o "tomar el carril exprés". En SRv6, eso es la función del SID.
Cómo funciona SRv6: las piezas¶
Segmentos y SID¶
Un segmento es una instrucción. En SRv6 cada segmento se identifica con un SID (Segment Identifier), un valor de 128 bits que se escribe como una dirección IPv6. RFC 8986 lo divide en tres partes:
| Parte | Función | Ejemplo |
|---|---|---|
| Locator | Prefijo enrutable que lleva al nodo dueño del SID. Se forma con un bloque común del dominio más un ID de nodo | 5f00:0:5::/48 |
| Function | Elige el comportamiento que ejecuta el nodo, como End, End.X o End.DT4 | 0x100 → End.DT4 en la VRF Azul |
| Arguments | Datos opcionales por paquete que usan algunos comportamientos (por ejemplo, split-horizon de EVPN o MUP) | Normalmente 0 |
El largo de cada campo lo elige el operador. Lo único fijo es el total de 128 bits. Los routers anuncian sus locators en el IGP como prefijos IPv6 comunes. Cada router guarda sus propios SID en una tabla local, la "My SID table" de RFC 8986. Un SID no es la dirección de una interfaz, y RFC 9602 reservó 5f00::/16 para que los SID sean fáciles de reconocer y filtrar. Los detalles están en Estructura del SID.
El segmento activo vive en la dirección de destino¶
Esta es la idea clave de SRv6. La dirección de destino IPv6 (DA) siempre contiene el SID activo, es decir, la próxima instrucción a ejecutar. Los routers que no son dueños de ese SID enrutan el paquete como cualquier otro paquete IPv6. El router dueño del SID ejecuta la función, escribe el siguiente SID en la DA y vuelve a reenviar el paquete.
Por eso, un programa de una sola instrucción no necesita ninguna cabecera extra: basta con un SID en la DA. El tráfico VPN entre dos PE muchas veces se ve exactamente así.
La Segment Routing Header (SRH)¶
Cuando una ruta necesita más de un SID, los demás viajan en la Segment Routing Header. La SRH es una cabecera de extensión de enrutamiento de IPv6 (Next Header 43, Routing Type 4) definida en RFC 8754.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Routing Type=4| Segments Left |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Last Entry | Flags | Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Segment List[0] (último SID de la ruta, 128 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Segment List[n] (primer SID de la ruta, 128 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV opcionales (por ejemplo, HMAC, padding) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Campo | Para qué sirve |
|---|---|
| Segments Left (SL) | Índice del SID activo. Cada endpoint lo reduce en uno |
| Last Entry | Índice del último elemento de la lista de segmentos |
| Segment List | Los SID, guardados en orden inverso: [0] es el SID final y [n] es el primero |
| Tag / Flags | Marcado de paquetes. Todavía no hay flags definidos |
| TLV | Datos opcionales, como el TLV HMAC para autenticar la SRH |
En el tráfico encapsulado, la sobrecarga es de 40 bytes de cabecera IPv6 externa, más 8 bytes fijos de SRH, más 16 bytes por cada SID de la lista. Muchas veces la SRH es más chica o directamente no está:
- H.Encaps.Red (encapsulación reducida) deja el primer SID fuera de la SRH porque ya está en la DA. Con un solo SID, esto elimina la SRH por completo.
- uSID mete varias instrucciones en una sola dirección, así que muchas rutas no necesitan SRH. Ver más abajo.
En Cabecera SRH se explican todos los campos y los flavors PSP/USP/USD.
Tres roles: origen, tránsito y endpoint¶
| Rol | Qué hace el nodo | ¿Necesita soporte SRv6? |
|---|---|---|
| Nodo de origen / cabecera | Clasifica el paquete, elige la lista de SID (de BGP, de una SR Policy o de un controlador) y agrega la cabecera IPv6 externa y la SRH (H.Encaps) | Sí |
| Nodo de tránsito | Reenvía según la DA con una búsqueda IPv6 normal por prefijo más largo. No revisa la SRH (RFC 8754 §4.2) | No, alcanza con IPv6 |
| Endpoint de segmento | La DA coincide con uno de sus SID locales, así que ejecuta el comportamiento: actualiza SL y DA, desencapsula, hace cross-connect… | Sí |
Como los nodos de tránsito solo necesitan IPv6, SRv6 puede cruzar partes de la red que nunca oyeron hablar de él. En la práctica, esta es una gran diferencia con MPLS.
Programación de red: los SID como instrucciones¶
RFC 8986 define lo que un SID puede hacer. Una lista de segmentos es, en la práctica, un pequeño programa, y cada SID es una instrucción.
| Comportamiento | Qué significa | Uso típico |
|---|---|---|
| End | Pasar al siguiente SID (reducir SL y copiar el siguiente SID en la DA) | Pasar por un nodo, como en TE laxa |
| End.X | Igual que End, pero sacar el paquete por una adyacencia concreta | TE estricta, rutas de reparación de TI-LFA |
| End.DT4 / End.DT6 / End.DT46 | Desencapsular y buscar el paquete interno en una tabla VRF | L3VPN |
| End.DX4 / End.DX6 | Desencapsular y enviar a un next hop concreto | L3VPN por CE |
| End.DX2 / End.DT2U / End.DT2M | Desencapsular una trama Ethernet hacia un cross-connect o un bridge | EVPN VPWS / E-LAN |
| End.B6.Encaps | Aplicar otra SR Policy (Binding SID) | Escalado y TE entre dominios |
| H.Encaps / H.Encaps.Red | Cabecera: envolver el paquete en IPv6 + SRH | Dirigir tráfico hacia SRv6 |
RFC posteriores agregan comportamientos para SID comprimidos (RFC 9800), el plano de usuario móvil (RFC 9433) y la replicación multicast (RFC 9524). El catálogo completo está en Network Programming (en inglés).
El plano de control: quién le dice al nodo de cabecera qué SID usar¶
SRv6 no tiene un protocolo de señalización propio. La información la llevan protocolos que ya existen:
- IS-IS / OSPFv3 anuncian el locator de cada nodo y sus SID End/End.X (RFC 9352, RFC 9513). Flex-Algo le da a cada locator su propia topología con restricciones.
- BGP anuncia los SID de servicio junto con las rutas VPN y EVPN (RFC 9252). En el modo más simple, SRv6 BE (best effort), un PE pone en la DA el SID de servicio del PE remoto y la ruta más corta del IGP hace el resto.
- SR Policy (RFC 9256) define listas de SID explícitas para SRv6 TE. Un controlador puede entregarlas por BGP (RFC 9830) o PCEP (RFC 9603), usando la topología que aprende por BGP-LS (RFC 9514). El tráfico entra a una política según su color.
Recorrido de un paquete SRv6, salto a salto¶
Veamos un ejemplo completo: un paquete L3VPN que debe tomar una ruta con ingeniería de tráfico a través de P3, por ejemplo porque P3 está en el camino de menor latencia.
- PE1 (cabecera) aprendió por BGP que
10.2.2.0/24en la VRF Azul está detrás de PE5, con el SID de servicio5f00:0:5:100::(End.DT4). - Una SR Policy en PE1 indica llegar a PE5 pasando por P3, cuyo SID End es
5f00:0:3:1::. - P2 y P4 son routers de tránsito. Solo conocen por IS-IS los prefijos de locator
5f00:0:3::/48y5f00:0:5::/48.
sequenceDiagram
participant PE1 as PE1 cabecera
participant P2 as P2 tránsito
participant P3 as P3 End
participant P4 as P4 tránsito
participant PE5 as PE5 End.DT4
Note over PE1: IPv4 hacia 10.2.2.2<br/>en la VRF Azul<br/>H.Encaps<br/>DA = 5f00:0:3:1::<br/>SL = 1
PE1->>P2: IPv6 + SRH + IPv4
Note over P2: No es un SID local<br/>búsqueda IPv6<br/>5f00:0:3::/48
P2->>P3: sin cambios
Note over P3: SID End local<br/>SL 1 → 0<br/>DA = 5f00:0:5:100::
P3->>P4: IPv6 + SRH + IPv4
Note over P4: No es un SID local<br/>búsqueda IPv6<br/>5f00:0:5::/48
P4->>PE5: sin cambios
Note over PE5: SID End.DT4 local<br/>quita IPv6 + SRH<br/>busca 10.2.2.2<br/>en la VRF Azul Este es el paquete que arma PE1:
IPv6 externa SA = 2001:db8::1 (PE1) DA = 5f00:0:3:1:: Next Header = 43
SRH Routing Type = 4 Segments Left = 1 Last Entry = 1
Segment List[0] = 5f00:0:5:100:: (PE5: End.DT4, VRF Azul)
Segment List[1] = 5f00:0:3:1:: (P3: End)
IPv4 interna 10.1.1.1 → 10.2.2.2
Carga útil
| Paso | Nodo | Rol | DA después del nodo | SL | Qué pasa |
|---|---|---|---|---|---|
| 1 | PE1 | Cabecera, H.Encaps | 5f00:0:3:1:: | 1 | Envuelve el paquete IPv4 en IPv6 + SRH, con el primer SID en la DA |
| 2 | P2 | Tránsito | 5f00:0:3:1:: | 1 | Búsqueda IPv6 normal por prefijo más largo. Ignora la SRH |
| 3 | P3 | Endpoint, End | 5f00:0:5:100:: | 0 | La DA es un SID local: reduce SL, copia Segment List[0] en la DA y reduce el hop limit |
| 4 | P4 | Tránsito | 5f00:0:5:100:: | 0 | Búsqueda IPv6 normal hacia el locator de PE5 |
| 5 | PE5 | Endpoint, End.DT4 | (desencapsulado) | – | Quita la cabecera IPv6 externa y la SRH, y reenvía 10.2.2.2 con la tabla de la VRF Azul |
Qué cambia en la práctica
- Flavor PSP: P3 es el penúltimo endpoint, así que con Penultimate Segment Pop quita la SRH. PE5 recibe entonces un paquete IPv6 simple cuya DA es su SID End.DT4.
- Sobrecarga: el ejemplo cuesta 40 + 8 + 2 × 16 = 80 bytes. Con H.Encaps.Red son 64 bytes. Con uSID las dos instrucciones caben en la DA, así que son 40 bytes y sin SRH.
- Sin TE (SRv6 BE): PE1 pondría solo
5f00:0:5:100::en la DA, sin SRH, y la ruta más corta del IGP llevaría el paquete hasta PE5.
uSID: SRv6 con SID comprimidos¶
Al principio, SRv6 recibió críticas por su sobrecarga. Dieciséis bytes por SID suman rápido en una ruta de TE larga, y algunos equipos solo pueden agregar unos pocos SID. Los micro-SID (uSID) resuelven esto. Son el flavor NEXT-C-SID de RFC 9800, que también define el flavor REPLACE-C-SID (G-SRv6).
Con el formato más común, F3216, una dirección de 128 bits contiene un bloque uSID de 32 bits seguido de hasta seis microinstrucciones de 16 bits:
fcbb:bb00 : 0003 : 0005 : e004 : 0000 : 0000 : 0000
bloque P3 PE5 desencap. en VRF de PE5 fin del contenedor
Cada nodo consume su propio uSID, desplaza el resto de la dirección hacia la izquierda y reenvía según la nueva DA. Los nodos de tránsito siguen haciendo una búsqueda IPv6 normal. Despliegues recientes como los de Rakuten Mobile, Swisscom, Bell Canada, Telefônica VIVO y Rijkswaterstaat usan uSID, y con él una ruta típica de VPN sobre TE cabe solo en la cabecera IPv6.
→ La explicación completa, con tablas de sobrecarga, está en uSID.
SRv6 vs IPv6¶
SRv6 no es una nueva versión de IP ni una alternativa a IPv6. Es una forma de usar IPv6: las direcciones adquieren un segundo significado como instrucciones, y la cabecera de enrutamiento de tipo 4 lleva la lista.
| IPv6 | SRv6 | |
|---|---|---|
| Qué es | El protocolo de Internet, versión 6 (RFC 8200) | Segment Routing implementado con paquetes IPv6 |
| Significado de la dirección de destino | Un host o una interfaz | La instrucción activa: un nodo y una función |
| Selección de ruta | Salto a salto: cada router elige el siguiente salto | El origen elige paradas intermedias. Entre ellas, se aplica el enrutamiento IPv6 normal |
| Cabeceras | Cabecera IPv6 + cabeceras de extensión opcionales | Las mismas, más la SRH (Routing Type 4) cuando hace falta |
| Soporte en routers | Todo router IPv6 | Los nodos de cabecera y los endpoints necesitan SRv6. Los de tránsito solo necesitan IPv6 |
| Servicios | Ninguno incorporado | VPN, TE, protección rápida y slicing codificados en los SID |
SRv6 vs MPLS y SR-MPLS¶
| MPLS con LDP / RSVP-TE | SR-MPLS | SRv6 | |
|---|---|---|---|
| Plano de datos | Etiquetas MPLS | Etiquetas MPLS | IPv6 |
| Tamaño de la instrucción | Entrada de etiqueta de 4 bytes | Entrada de etiqueta de 4 bytes | SID de 16 bytes, o uSID de 2 bytes |
| Distribución de etiquetas/SID | LDP, RSVP-TE | Extensiones del IGP | Extensiones del IGP (los locators son prefijos) |
| Estado de TE en el núcleo | Por túnel (RSVP-TE) | Ninguno | Ninguno |
| Cruza redes solo IP | No | No | Sí |
| Sumarización de direcciones de nodo | No con LDP (requiere rutas de host /32) | No (un prefix SID por nodo) | Sí, los locators son prefijos sumarizables |
| Programación de red | Solo etiquetas VPN | Limitada | Amplia (función + argumentos) |
| Sobrecarga de encapsulación | La menor | La menor | Mínimo 40 bytes de cabecera IPv6; uSID elimina el costo por SID |
| Madurez | Décadas | Muy desplegado | En producción desde 2019, crece rápido |
SRv6 cambia una cabecera fija más grande por un único plano de datos en todas partes y la eliminación de LDP y RSVP-TE. La comparación completa, con recomendaciones de cuándo elegir cada uno, está en SRv6 vs SR-MPLS. Los caminos de migración están en Interworking & Migration (en inglés).
Para qué se usa SRv6¶
| Caso de uso | Qué aporta SRv6 | Más información (en inglés, salvo IA) |
|---|---|---|
| Ingeniería de tráfico | Rutas explícitas o con restricciones sin estado en los nodos intermedios. Rutas de baja latencia y disjuntas con SR Policy y Flex-Algo | Traffic Engineering, SR Policy, Flex-Algo |
| L3VPN y EVPN | Servicios VPN y EVPN transportados por un SID de servicio, sin MPLS y sin VXLAN | VPN Services, BGP Overlay, EVPN Multihoming |
| Protección rápida | Protección TI-LFA, normalmente por debajo de 50 ms, en cualquier topología, reparando sobre la ruta posconvergencia | TI-LFA, Micro-Loop Avoidance |
| Network slicing | Topologías y SLA por slice con Flex-Algo, QoS y SR Policy | Network Slicing |
| Transporte 5G y MUP | Un solo transporte desde la RAN hasta el núcleo. SRv6 MUP reemplaza los túneles GTP-U (RFC 9433) | 5G Transport |
| Fabrics de IA | Ubicación determinista de cada flujo en los fabrics de GPU y entre centros de datos de IA | SRv6 para IA, AI/ML Networks |
| Encadenamiento de servicios | Pasar el tráfico por firewalls y otras funciones de red como SID de la lista | Service Chaining |
| Nube y servidores | SRv6 desde el servidor o desde una VPC en la nube a través del backbone | Cloud Backbone, Host-Based SRv6 |
Quién usa SRv6¶
SRv6 está en servicio comercial desde 2019 y lo usan:
- Operadores de telecomunicaciones, entre ellos SoftBank y Rakuten Mobile (Japón), China Mobile, Reliance Jio, Bell Canada, Swisscom, Iliad, Telefônica VIVO (Brasil) y Verizon, que está llevando SRv6 a todos sus dominios.
- Redes de nube e IA: Microsoft (centros de datos de IA Fairwater), OpenAI (MRC en clústeres de más de 100.000 GPU), Meta (TE en el backbone), Google (fabric de IA Virgo), Alibaba Cloud y Nebius.
- Sector público: Rijkswaterstaat (Países Bajos), que migró su backbone nacional de MPLS a SRv6 uSID.
Cada caso, con enlace al anuncio original, está en Real-World Deployments (en inglés). Entre las implementaciones están Cisco IOS XR e IOS XE, Juniper Junos, Nokia SR OS, Arista EOS, Huawei, el kernel de Linux, FRRouting, VPP y SONiC. Ver Implementaciones (en inglés).
Breve historia¶
| Año | Hito |
|---|---|
| 2013 | El IETF crea el grupo de trabajo SPRING para estandarizar Segment Routing |
| 2017 | Linux 4.10 incluye un plano de datos SRv6, y la versión 4.14 agrega los comportamientos de endpoint |
| 2018 | RFC 8402, arquitectura de Segment Routing |
| 2019 | Primeras redes SRv6 comerciales, como la red greenfield de Iliad en Italia |
| 2020 | RFC 8754, la Segment Routing Header |
| 2021 | RFC 8986, SRv6 Network Programming |
| 2022–2023 | Servicios BGP (RFC 9252), SR Policy (RFC 9256), IS-IS (RFC 9352), MUP (RFC 9433), OSPFv3 (RFC 9513) |
| 2024 | RFC 9602 reserva 5f00::/16 para los SID de SRv6 |
| 2025 | Se publican los SID comprimidos (RFC 9800) y TI-LFA (RFC 9855). SRv6 llega a las supercomputadoras de IA de Microsoft y OpenAI |
Lo que hay que tener en cuenta¶
SRv6 no es gratis. Una evaluación honesta incluye:
- MTU. La encapsulación agrega al menos 40 bytes, y más si hay SRH. Los enlaces del núcleo necesitan una MTU mayor que el borde. Hay que planificarlo (Performance & Scaling, en inglés).
- Profundidad de SID en el hardware. Cada ASIC puede agregar o procesar una cantidad limitada de SID. uSID elimina en gran parte este límite, así que conviene verificar que tus equipos lo soporten.
- Balanceo de carga. Los routers del núcleo calculan el hash sobre la cabecera IPv6 externa, así que el nodo de cabecera debe completar el flow label a partir del paquete interno para que ECMP siga funcionando.
- Frontera de seguridad. Igual que MPLS, SRv6 confía en su propio dominio. El filtrado en el borde es obligatorio (ver las preguntas frecuentes y Security, en inglés).
- Operación. Ping y traceroute funcionan sobre los SID porque son direcciones IPv6 (RFC 9259), pero algunas herramientas de monitoreo todavía asumen MPLS. Ver OAM & Troubleshooting (en inglés).
Cómo probar SRv6¶
Puedes correr SRv6 en tu laptop. El kernel de Linux lo implementa de forma nativa:
# Cabecera: dirigir 10.2.2.0/24 por el SID End de P3 y luego el SID End.DT4 de PE5
ip route add 10.2.2.0/24 vrf blue encap seg6 mode encap \
segs 5f00:0:3:1::,5f00:0:5:100:: dev eth0
# P3: instalar el SID End
ip -6 route add 5f00:0:3:1::/128 encap seg6local action End dev eth0
# PE5 de salida: asociar el SID End.DT4 a la VRF blue (requiere net.vrf.strict_mode=1)
ip -6 route add 5f00:0:5:100::/128 encap seg6local \
action End.DT4 vrftable 100 dev blue
iproute2 recibe los segmentos en el orden del recorrido y arma la SRH invertida por su cuenta. Para entornos completos que funcionan (en inglés):
- SRv6 en Linux: soporte del kernel por versión y un laboratorio probado con dos network namespaces
- netlab: topologías SRv6 multifabricante listas en minutos
- Containerlab y GNS3: para armar tu propio laboratorio
- Todos los labs
Preguntas frecuentes¶
¿Qué es SRv6 en redes?¶
SRv6 (Segment Routing over IPv6) es una tecnología de enrutamiento de origen en la que el router de entrada escribe una lista de instrucciones dentro del paquete IPv6. Cada instrucción es una dirección IPv6 de 128 bits llamada SID. Los routers ejecutan el SID que está en la dirección de destino y reenvían el paquete hacia el siguiente. Así, los operadores pueden armar rutas con ingeniería de tráfico, VPN y protección rápida sobre una red IPv6 normal, sin MPLS, LDP ni RSVP-TE.
¿Cómo funciona SRv6?¶
El router de cabecera encapsula el paquete en una cabecera IPv6 externa cuya dirección de destino es el primer SID. Si la ruta tiene más de un SID, los demás van en una Segment Routing Header. Los routers de tránsito reenvían el paquete según esa dirección, como a cualquier paquete IPv6. El router dueño del SID ejecuta su función: pasa al siguiente SID, saca el paquete por un enlace concreto o lo desencapsula dentro de una VPN. El proceso se repite hasta el último SID.
¿Cuál es la diferencia entre IPv6 y SRv6?¶
IPv6 es el protocolo de Internet. SRv6 es una forma de usar IPv6 en la que las direcciones también funcionan como instrucciones y una cabecera de extensión de enrutamiento de IPv6 (la SRH, tipo 4) puede llevar una lista de ellas. Todo paquete SRv6 es un paquete IPv6 válido, y los routers intermedios solo necesitan reenvío IPv6 común. Solo los nodos que agregan o ejecutan SID necesitan soporte SRv6.
¿SRv6 es un protocolo?¶
No en el sentido de un protocolo que intercambia sus propios mensajes. SRv6 es una arquitectura y un plano de datos: paquetes IPv6 con la Segment Routing Header (RFC 8754) y un conjunto de comportamientos estandarizados para los SID (RFC 8986). La información que necesita la transportan protocolos existentes, como IS-IS y OSPFv3 para los locators, BGP para los SID de servicio de las VPN, y BGP o PCEP para las SR Policies.
¿SRv6 reemplaza a MPLS?¶
Puede hacerlo. SRv6 ofrece los servicios para los que los operadores usan MPLS, como VPN, ingeniería de tráfico y protección rápida, sin plano de datos MPLS, LDP ni RSVP-TE. Varios operadores y redes públicas ya migraron su backbone de MPLS a SRv6. Aun así, MPLS y SR-MPLS siguen muy desplegados, y la mayoría de las migraciones hace convivir ambos durante años mediante gateways de interworking y PE con doble plano de datos.
¿SRv6 es seguro?¶
SRv6 es tan seguro como el filtrado que lo rodea. Igual que MPLS, asume un dominio de confianza (RFC 8402, RFC 8754), así que los routers de borde deben descartar los paquetes que llegan de afuera con una SRH o dirigidos a SID internos. Usar el bloque de SID 5f00::/16 de RFC 9602 simplifica ese filtro. La SRH también admite un TLV HMAC opcional que autentica la lista de segmentos cuando los enlaces atraviesan infraestructura no confiable.
¿Qué es un SID en SRv6?¶
Un SID (Segment Identifier) es un valor de 128 bits, escrito como una dirección IPv6, que nombra una instrucción. Tiene tres partes: un locator que lleva el paquete al nodo correcto, una función que elige el comportamiento a ejecutar allí (por ejemplo, End.DT4, desencapsular en una VRF) y argumentos opcionales.
¿Qué es uSID en SRv6?¶
uSID (micro-SID) es la compresión de SRv6, estandarizada como el flavor NEXT-C-SID en RFC 9800. Mete hasta seis instrucciones de 16 bits en una sola dirección IPv6 de 128 bits. Cada nodo consume su propia instrucción y desplaza el resto. Así, una ruta de TE de varios saltos más un servicio VPN pueden caber en la dirección de destino IPv6, sin SRH.
Para seguir leyendo¶
- Estructura del SID: el formato del SID de 128 bits y el bloque
5f00::/16 - Cabecera SRH: todos los campos de la SRH y los flavors PSP/USP/USD
- uSID: micro-SID y RFC 9800
- SRv6 vs SR-MPLS: cuándo elegir cada uno
- SRv6 para IA: quién usa SRv6 en redes de IA y por qué
- Network Programming: todos los comportamientos SRv6 (en inglés)
- Interworking & Migration: cómo pasar de MPLS a SRv6 (en inglés)
- Security: filtrado, HMAC y vectores de ataque (en inglés)
- Implementaciones: guías de configuración para Cisco, Juniper, Arista, Nokia, FRR y Linux (en inglés)
Referencias¶
- RFC 8402 - Segment Routing Architecture - Define la arquitectura de Segment Routing para los planos de datos MPLS e IPv6, incluido el modelo de confianza del dominio SR
- RFC 8754 - IPv6 Segment Routing Header (SRH) - Especifica la SRH, el procesamiento en origen, tránsito y endpoint, y el TLV HMAC
- RFC 8986 - SRv6 Network Programming - Define la estructura del SID, los comportamientos de endpoint y de cabecera, y los flavors PSP/USP/USD
- RFC 9252 - BGP Overlay Services Based on SRv6 - Cómo BGP señaliza los SID de servicio SRv6 para L3VPN y EVPN
- RFC 9602 - SRv6 Segment Identifiers in the IPv6 Addressing Architecture - Reserva
5f00::/16para los SID de SRv6 - RFC 9800 - Compressed SRv6 Segment List Encoding - Estandariza la compresión NEXT-C-SID (uSID) y REPLACE-C-SID
- What is SRv6 network programming? - APNIC Blog - Introducción de Clarence Filsfils (2020) al modelo de programación de red (en inglés)