Blog de tecnología
, Juniper Distinguished Eng
Blog de tecnología
Enrutamiento por segmentos (SR) con conmutación de etiquetas multiprotocolo (MPLS)
Aug 5, 2019

En el artículo de la semana pasada vimos que una ruta SR (enrutamiento por segmentos) es una lista ordenada de segmentos. También vimos que un segmento es una instrucción que hace que un paquete atraviese uno o más enlaces.

 

Esta semana veremos una clase de implementaciones SR que aprovechan la conmutación de etiquetas multiprotocolo (MPLS). A estas implementaciones las denominamos SR-MPLS. Comprender bien las SR-MPLS lo ayudará a entender el artículo de la próxima semana, en el que explicamos cómo SR soporta aplicaciones de ingeniería de tráfico.

 

Descripción general

En las SR-MPLS, las rutas SR se codifican como pilas de etiquetas MPLS. Cada entrada de la pila de etiquetas representa un segmento en la ruta SR. En el artículo de esta semana veremos cómo se utilizan las etiquetas MPLS para codificar segmentos de adyacencia y de prefijo.

 

Segmentos de adyacencia

 

3Capture1.PNG

 

Figura 1: Segmentos de adyacencia

En la Figura 1, una ruta de SR conecta R1 con R4. La ruta SR contiene tres segmentos de adyacencia. El segmento 1 hace que los paquetes atraviesen el enlace R1->R2, mientras que el segmento 2 hace que los paquetes atraviesen el enlace R2->R3. El segmento 3 hace que los paquetes atraviesen el enlace R3->R4.

 

Cuando R1 recibe un paquete externo al dominio SR, lo somete a la política. La política puede hacer que R1 reenvíe el paquete a través de la ruta SR que se muestra en la figura. Cuando ocurre esto, R1 impone una pila de etiquetas MPLS que contiene dos entradas. La entrada de la parte superior de la pila representa el segmento 2 y lleva la etiqueta MPLS 1002. La entrada de la parte inferior de la pila representa el segmento 3 y lleva la etiqueta MPLS 1003.

 

Tras imponer una pila de etiquetas MPLS, R1 reenvía el paquete a través del segmento 1 (es decir, el enlace R1->R2). Cuando el paquete llega a R2, R2 extrae la etiqueta (es decir, 1002) de la entrada superior de la pila de etiquetas y busca la entrada correspondiente en su base de información de reenvíos (FIB). La entrada correspondiente de FIB incluye una instrucción (POP) y un salto siguiente (R3). Por lo tanto, R2 saca la entrada superior de la pila de etiquetas y reenvía el paquete a través del segmento 2 (es decir, el enlace R2->R3).

 

Cuando el paquete llega a R3, R3 extrae la etiqueta (1003) del resto de la pila de etiquetas y busca la entrada correspondiente en su FIB. La entrada correspondiente de FIB incluye una instrucción (POP) y un salto siguiente (R4). Por lo tanto, R3 saca la entrada restante de la pila de etiquetas y reenvía el paquete a través del segmento 3 (es decir, el enlace R3->R4). El paquete llega a R4 sin encapsulación MPLS.

 

Segmentos de prefijo

 

3Capture2.PNG

Figura 2: Segmentos de prefijo

 

En la Figura 2, una ruta SR conecta R1 con R7 a través de R4. La ruta SR contiene dos segmentos de prefijo. El segmento 1 es un segmento de prefijo que hace que los paquetes atraviesen la ruta de menor costo de R1 a R4. El segmento 2 también es un segmento de prefijo, y hace que los paquetes atraviesen la ruta de menor costo de R4 a R7. En esta red, todos los enlaces están configurados con la misma métrica IGP (es decir, 10). Por lo tanto, la ruta de menor costo de R1 a R4 atraviesa los enlaces R1->R2, R2->R3 y R3->R4, mientras que la ruta de menor costo de R4 a R7 atraviesa los enlaces R4- >R8 y R8->R7.

 

Cuando R1 recibe un paquete externo al dominio SR, lo somete a la política. La política puede hacer que R1 reenvíe el paquete a través de la ruta SR que se muestra en la figura. Cuando ocurre esto, R1 impone una pila de etiquetas MPLS que contiene dos entradas. La entrada de la parte superior de la pila de etiquetas representa el segmento 1 y lleva la etiqueta 2001. La entrada de la parte inferior de la pila de etiquetas representa el segmento 2 y lleva la etiqueta 2002.

 

Tras imponer una pila de etiquetas MPLS, R1 reenvía el paquete al segmento 1 a través del enlace R1->R2. Cuando el paquete llega a R2, R2 extrae la etiqueta (2001) de la entrada superior de la pila de etiquetas y busca la entrada correspondiente en su FIB. La entrada FIB correspondiente incluye una instrucción (SWAP - 3001) y un salto siguiente (R3). Por lo tanto, R2 sobrescribe la etiqueta superior con un nuevo valor (3001) y reenvía el paquete a R3.

 

Cuando el paquete llega a R3, R3 extrae la etiqueta (3001) de la entrada superior de la pila de etiquetas y busca la entrada correspondiente en su FIB. La entrada correspondiente de FIB incluye una instrucción (POP) y un salto siguiente (R4). Por lo tanto, R4 saca la entrada superior de la pila de etiquetas y reenvía el paquete al segmento 2 a través del enlace R3-->R4.

 

Cuando el paquete llega a R4, R4 extrae la etiqueta (2002) del resto de la pila de etiquetas y busca la entrada correspondiente en su FIB. La entrada FIB correspondiente incluye una instrucción (SWAP - 3002) y un salto siguiente (R8). Por lo tanto, R4 sobrescribe la etiqueta restante con un nuevo valor (3002) y reenvía el paquete a R8.

 

Cuando el paquete llega a R8, R8 extrae la etiqueta (3002) del resto de la pila de etiquetas y busca la entrada correspondiente en su FIB. La entrada correspondiente de FIB incluye una instrucción (POP) y un salto siguiente (R7). Por lo tanto, R8 saca la entrada restante de la pila de etiquetas y reenvía el paquete a R7 sin encapsulación MPLS.

 

Penultimate Hop Popping (PHP) y etiqueta Explicit Null

En los ejemplos anteriores, cada segmento ejecuta procedimientos PHP. Cuando un paquete atraviesa un segmento, el penúltimo nodo del segmento saca la etiqueta asociada con el segmento.

 

Si la ruta SR contiene otro segmento que aún no ha sido atravesado, el nodo de salida del segmento actual también es el nodo de entrada del segmento siguiente. En este caso, el paquete llega a ese nodo con la etiqueta del siguiente segmento expuesta en la parte superior de la pila. Si la ruta SR no contiene ningún otro segmento que aún no ha sido atravesado, el nodo de salida del segmento también es el nodo de salida de la ruta. En ese caso, el paquete llega al nodo de salida de la ruta sin encapsulación MPLS.

 

Puede darse el caso de que el enlace final de la ruta SR no sea capaz de transportar el paquete sin encapsulación MPLS. Por ejemplo, es posible que el paquete sea IPv6 y que el enlace solo sea compatible con IPv4 . Para evitar este problema, el nodo de entrada SR puede agregar una etiqueta Explicit Null en la parte superior de la pila de etiquetas MPLS.

 

Cuando el penúltimo nodo del segmento final saca la etiqueta asociada con el segmento final, expone la etiqueta Explicit Null. Posteriormente, reenvía el paquete al nodo de salida de la ruta. El nodo de salida de la ruta saca la etiqueta Explicit Null y sigue procesando el paquete.

 

Conclusión

Esta semana hemos visto cómo SR-MPLS codifica las rutas SR como pilas de etiquetas MPLS. También hemos visto cómo SR- MPLS utiliza su FIB para procesar los paquetes.

 

La próxima semana veremos cómo se aplica el SR a las aplicaciones de ingeniería de tráfico.

0 Kudos