Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Priorización de rutas BGP

Descripción de la priorización de rutas del BGP

Si bien el BGP es uno de los protocolos de enrutamiento más implementados en la actualidad, ya que no solo transporta información de accesibilidad de la capa de red (NLRI), sino también muchos tipos de información de accesibilidad de VPN, es notable que el protocolo no especifica cómo se ordena la información en los mensajes de actualización del BGP. Esta decisión se deja en la implementación.

En sistemas a gran escala, el BGP puede tardar una cantidad significativa de tiempo en intercambiar su información de enrutamiento entre sistemas. Esto es especialmente cierto durante el inicio del BGP, las operaciones de actualización de rutas y cuando se ayuda con un reinicio agraciado. Para manejar la gran cantidad de información que se debe procesar, el procesamiento de ruta del BGP se realiza con el uso de colas. Las rutas salientes se colocan en colas de salida para el procesamiento. La priorización de rutas del BGP se introduce en la versión 16.1 de Junos OS como un medio para permitir que el usuario priorice deterministamente los mensajes de actualización del BGP. La priorización de rutas del BGP es un proceso que opera estrictamente en las colas de salida, lo que ayuda a ordenar la información que se envía a los enrutadores par BGP.

En la configuración predeterminada, es decir, cuando no existe ninguna output-queue-priority configuración o política que invalide la prioridad, el proceso de protocolo de enrutamiento (rpd) lleva las rutas del BGP a la cola de salida por base de información de enrutamiento (RIB). Una RIB, que también se conoce como tabla de enrutamiento, corresponde tanto a una familia de direcciones específica, como inet.0, como a tablas de instancia de enrutamiento como vrf.inet.0. Mientras procesa las colas de salida, el código de actualización del BGP vacía la cola de salida del RIB actual antes de pasar a la siguiente RIB que tiene una cola de salida no vacía.

Nota:
  • No se intenta priorizar automáticamente las rutas, incluso si existe una posibilidad teórica de hacerlo. Por lo tanto, la priorización de rutas individuales se deja completamente en poder del usuario.

  • Si se cambian las prioridades de ruta del BGP para un grupo par, se restablecen las sesiones de pares del BGP.

Casos de uso para la priorización de rutas del BGP

Tabla 1 muestra los tipos de rutas que se beneficiarían de la priorización de rutas y algunas notas sobre por qué se beneficiarían de ella. También se incluyen ejemplos de ese tipo de rutas. Priorizar estas rutas dentro de un entorno de gran escala determinado puede ayudar a los enrutadores a reaccionar más rápidamente ante cambios de ruta importantes.

Tabla 1: Casos de uso para la priorización de rutas del BGP

Tipo de ruta o actualización

Notas

Ejemplo

Prefijos utilizados para resolver los próximos saltos del BGP a un reenvío inmediato del siguiente salto

Los cambios en estos prefijos deben realizarse lo antes posible.

  • Rutas de host

  • Prefijos que forman parte de los requisitos de resolución recursivos

Rutas utilizadas para puntos de conexión de túnel

Los puntos de conexión de túnel, como GRE o MPLS, se utilizan a menudo como saltos siguientes del BGP.

Rutas de unidifusión etiquetadas por BGP

Tipos de ruta que son fundamentales para el funcionamiento de una función de protocolo

Para algunos protocolos VPN, se utilizan ciertos tipos de ruta para activar cambios sensibles al tiempo dentro del protocolo. Los cambios en estas rutas deben realizarse lo antes posible.

  • Detección automática activa de origen MVPN (tipo 5)

  • Sitios VPLS multihomed

Rutas de infraestructura del proveedor de servicios

Estas rutas son fundamentales para la capacidad de un proveedor de servicios para hacer negocios. Sin rutas precisas y actualizadas, es posible que el operador de telecomunicaciones no pueda ofrecer algunas de sus ofertas de servicios.

  • Redes de administración interna

  • Prefijos de operaciones de red

  • Recursos DNS

Cambios en la topología de red

Estas deben priorizarse antes de actualizaciones simples de rutas.

  • Nuevo enrutador agregado a la red

  • Enrutadores eliminados de la red

Propiedades de la priorización de ruta del BGP

La priorización de rutas del BGP en Junos OS se implementa mediante un conjunto de 17 colas de salida priorizadas (numeradas) que son administradas por un mecanismo de token configurable por el usuario. En esta sección se describen las colas de salida priorizadas, el funcionamiento del sistema de token y la asignación de rutas a colas.

Colas de salida priorizadas

Tabla 2 muestra las colas de salida disponibles y su función dentro del sistema de priorización. El sistema de priorización funciona en una escala tradicional de prioridad baja, media y alta, con 1 siendo la prioridad más baja y 16 la prioridad más alta.

Tabla 2: Colas de salida priorizadas

Cola

Función

Acelerado

Esta es la cola de salida de mayor prioridad. Las rutas de esta clase tienen garantizada alguna parte del procesamiento de la cola de salida mientras se vacía la cola de salida. Esta cola no tiene número y se hace referencia en la configuración por su nombre.

1 (prioridad más baja)

Esta es la cola de salida de prioridad más baja. Esta es la cola de prioridad predeterminada, lo que significa que las rutas sin asignación explícita de colas de la determinación automática del protocolo o la política de usuario se colocan en esta cola de forma predeterminada. Los mensajes de actualización de ruta se colocan en esta cola de forma predeterminada.

2 - 16 (baja - alta prioridad)

Estas colas de salida varían en prioridad de la prioridad más baja (2) a la prioridad más alta (16). Se les asignan rutas según la política de usuario o la configuración par del BGP. Las rutas en una cola de salida de mayor prioridad pueden adelantarse a las rutas en colas de menor prioridad.

Asignación de rutas a colas

La asignación de rutas a las distintas colas se puede lograr estableciendo y asignando políticas de exportación del BGP. Esto significa que la prioridad de la ruta puede variar en cada grupo par del BGP, así como en configuraciones de vecinos específicos dentro de los grupos de pares del BGP. También puede asignar rutas a colas mediante la parte de acción de una instrucción de política. La asignación de rutas a colas mediante la acción de una instrucción de política anulará las asignaciones realizadas por la configuración del BGP.

Mecanismo de token de trabajo

Los tokens corresponden al trabajo para crear un mensaje de actualización del BGP. A todas las colas se les asignan tokens que se almacenan en buckets. La cantidad de tokens en un bucket determinado es configurable por el usuario. De esta manera, los usuarios pueden diseñar políticas que permiten que sus rutas se atienden en las proporciones que prefieran. La configuración del programador de prioridades se realiza globalmente dentro del BGP en el [edit protocols bgp] nivel jerárquico. De forma predeterminada, todas las colas de prioridad tienen al menos 1 token en su bucket para garantizar que las prioridades mal configuradas no se den hambre.

Descripción de la prioridad y equidad de las colas

El esquema utilizado por la priorización de rutas del BGP se centra en dos elementos: equidad y prioridad:

  • La equidad significa que cuando hay trabajo por hacer en una cola determinada, se garantiza que otras colas harán algo de trabajo en algún momento. La cantidad de trabajo que se permite realizar cada cola está determinada por la cantidad de tokens asignados a cada prioridad.

  • La prioridad significa que cuando hay trabajo en competencia y se ha garantizado la equidad, siempre se elige la obra más importante.

Por ejemplo, suponga tres clases de prioridad: baja, media y alta. Estas se podrían asignar a las colas 1, 2 y 3, respectivamente. Alternativamente, se podrían asignar a las colas 3, 6 y 9. Para la equidad, si la decisión es que la alta prioridad obtiene el 50 % del trabajo disponible, el medio obtiene el 35 % y el bajo obtiene el 15 % restante, los tokens se pueden asignar como 50 a alto, 35 a medio y 15 a bajo. Alternativamente, se pueden asignar tokens como 5 a alto, de 4 a medio y de 2 a bajo. Puede asignar cualquiera de las 17 colas cualquier valor entre 1 y 100. La proporción del número de tokens en una sola cola con el número total de tokens en todas las colas da el porcentaje de trabajo que se realizará en cada cola.

La prioridad es más importante cuando el trabajo aparece en una cola mientras los tokens están en el proceso de ser gastados en otra cola por el programador de trabajo. Tabla 3 muestra el punto de partida de un ejemplo de esto.

Tabla 3: Colas y tokens

Cola de prioridad (número de cola)

Número de tokens asignados a la cola

Número de tokens que quedan en la cola

Número de entradas en cola

Alto (9)

50

50

0

Medio (6)

35

15

5000

Baja (3)

15

15

10000

Si suponemos que el programador de trabajo está procesando la cola media (número de cola 6) y ha gastado 20 tokens, quedan 15 tokens por gastar en las entradas restantes de la cola media y 15 tokens que quedan por gastar en la cola de prioridad baja. Si 5 entradas llegan a la cola acelerada antes de la siguiente ejecución del programador de trabajo, esas 5 entradas se enviarán primero porque aún quedan 50 tokens en la cola acelerada.

Procedimiento de servicio de colas

El procedimiento de mantenimiento de colas funciona por grupo par del BGP, y cada grupo mantiene sus propios buckets de token.

  • Los buckets de token para cada prioridad comienzan completos, ya sea en el número configurado de tokens o en el valor predeterminado de 1.

  • Cada vez que se extrae una entrada de ruta de una cola para iniciar una actualización del BGP, se resta un token de esa cola.

  • Mientras que la cola acelerada tiene tokens, todas las demás entradas de cola se extraen de la cola acelerada, sujeto a las reglas de empaquetado de ruta.

  • Las entradas se toman de la cola que tiene la prioridad más alta. Esto significa que si se agregan entradas a una cola de mayor prioridad entre las corridas del mecanismo de servicio de colas y hay tokens disponibles en esa cola de mayor prioridad, las nuevas entradas en la cola de prioridad más alta se envían primero, lo que se antepone a las entradas en colas de menor prioridad. Si la cola de mayor prioridad no tiene tokens de trabajo disponibles cuando llegan las nuevas entradas, las nuevas entradas no se envían hasta después de la siguiente actualización de token.

  • Los tokens se actualizan después de atender todas las colas de prioridad (no quedan entradas en ninguna cola) o cuando se agotan todos los tokens.

Ejemplo: Configuración del programador de prioridad de salida del BGP y la prioridad de la familia de direcciones globales

En este ejemplo, se muestra cómo configurar y probar el programador de prioridad de ruta del BGP en todo el sistema.

Requisitos

En este ejemplo, se utilizan los siguientes componentes de hardware y software:

  • Un enrutador serie MX (R1) que ejecuta Junos OS versión 16.1 o posterior

Antes de configurar el programador de priorización de rutas del BGP, asegúrese de que el protocolo BGP se está ejecutando en el enrutador.

Descripción general

El programador de prioridad de ruta del BGP se utiliza para controlar la cantidad de trabajo realizado dentro de las 17 colas de salida del sistema de priorización de rutas. El sistema usa un conjunto de 17 colas de salida priorizadas, por instancia de enrutamiento a la cual se asignan tokens de trabajo. Las 17 colas de salida priorizadas (1-16 y aceleradas) tienen 1 token asignado de forma predeterminada. Se puede asignar cualquier número de tokens entre 1 y 100 a cada una de las 17 colas. La asignación de tokens a las colas permite equilibrar la cantidad de trabajo realizado en las rutas dentro de las colas. Además, la configuración predeterminada para las colas de alta, media y baja prioridad se puede configurar asignando cada palabra clave a una cola de salida numerada específica. En este ejemplo, configuraremos cada una de las 17 colas de prioridad con números distintos de tokens de trabajo y también configuraremos prioridades de salida globales para rutas de unidifusión inet y demostraremos la herencia configurando algunos grupos de BGP para invalidar la configuración de prioridad global.

Configuración

  • Asigne update-tokens a cada una de las 17 colas de salida.

  • Especifique qué colas numeradas se usarán como colas predeterminadas highmediumy low de prioridad.

  • Configure las prioridades de salida globales para inet unicast las rutas.

  • Configure un grupo de BGP denominado test1 que mostrará las capacidades de anulación de grupo.

  • Configure un grupo de BGP denominado test2 que mostrará la herencia global.

Configuración rápida de CLI

Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red y, luego, copie y pegue los comandos en la CLI en el [edit] nivel de jerarquía.

Configurar las colas de prioridad de salida individuales

Procedimiento paso a paso

El siguiente ejemplo requiere que navegue por varios niveles en la jerarquía de configuración. Para obtener más información acerca de cómo navegar por la CLI, consulte Uso del editor de CLI en el modo de configuración en la Guía del usuario de la CLI de Junos OS.

  1. Asignar tokens de actualización a cada una de las 17 colas de salida priorizadas

Configurar colas predeterminadas para usar en las actualizaciones de rutas de prioridad alta, media y baja

Procedimiento paso a paso

Resultados

Para confirmar la configuración, emita el comando desde el show bgp output-scheduler modo operativo:

Configurar prioridades de salida globales para una familia de rutas

Procedimiento

Procedimiento paso a paso
  1. Configure el global output-queue-priority para inet unicast rutas:

Configurar una prueba de grupo BGP con nombre1

Procedimiento

Procedimiento paso a paso
  1. Configure el grupo test1 para que invalide las prioridades de salida globales e incluya un vecino que invalide el grupo y un vecino que no lo haga.

Configurar una prueba con nombre de grupo BGP2

Procedimiento paso a paso
  1. Configure el grupo test2 BGP para que acepte valores predeterminados globales.

Verificación

Verificar la configuración del programador de salida del BGP

Propósito

Para comprobar la configuración del programador de salida del BGP, emita el comando desde el show bgp output-scheduler modo operativo.

Acción

Significado

El resultado muestra que la configuración del programador de salida fue correcta al aplicar el número adecuado de tokens a cada cola de salida y que las palabras clave de prioridad alta, media y baja se asignaron a las colas de salida adecuadas.

Verificar la configuración de grupo, la anulación de grupo y la sustitución de vecino

Propósito

Para comprobar que los grupos configurados demuestran la anulación de grupo, la sustitución de vecinos y la herencia, emita el comando desde el show bgp group group-name modo operativo.

Acción
Significado

El resultado muestra que la prioridad de la cola de salida para el par 224.223.2.2 es 7, la prioridad de actualización de ruta es 8 y la prioridad de retirada se acelera. Mientras que la prioridad de la cola de salida para el vecino 224.223.1.1 es 4, la prioridad de actualización de ruta es 6 y la prioridad de retiro es la configuración predeterminada para la familia inet unicast, o 3.

Verificar la herencia desde la configuración de prioridad global

Propósito

Para comprobar que los grupos que no están configurados para invalidar la configuración de priorización de ruta global del BGP, emita el show bgp group group-name comando en el nivel operativo.

Acción
Significado

El resultado muestra que las prioridades de ruta predeterminadas para inet unicast las rutas del test2 grupo coinciden con la configuración global.

Ejemplo: Control de convergencia de tabla de enrutamiento mediante priorización de ruta BGP

En el siguiente ejemplo, se configura la priorización de rutas del BGP para permitir que inet labeled-unicast las rutas converjan antes que inet unicast las rutas.

Requisitos

En este ejemplo, se utilizan los siguientes componentes de hardware y software:

  • Un enrutador de la serie MX (R1) que ejecuta Junos OS versión 16.1 o posterior que será el enfoque del ejemplo.

  • Un segundo enrutador (R2) configurado como un par BGP interno con R1.

  • Un reflector de ruta BGP (RR) que se utilizará para rellenar las tablas de enrutamiento de R1. En este ejemplo, no configuraremos el reflector de ruta.

Descripción general

La función de priorización de rutas del BGP está diseñada para permitir la priorización de mensajes de actualización del BGP saliente en un enrutador. El uso de la priorización de rutas del BGP permite al usuario asegurarse de que las actualizaciones de rutas de BGP más importantes, como los cambios de punto de conexión de túnel GRE o MPLS, se envíen antes de las actualizaciones de rutas de BGP menos importantes, como las actualizaciones de actualización de ruta.

En este ejemplo, configuraremos R1 para que trate inet labeled-unicast las actualizaciones de ruta a R2 como mayor prioridad que las actualizaciones de inet unicast rutas. Para ello, configuraremos el enrutador R2 para que acepte ambos inet unicast y inet labeled-unicast rutas desde su enrutador par, R1. Luego, completaremos la inet.0 tabla de enrutamiento en R1 desde un reflector de ruta e importaremos una parte de esa tabla en la tabla, inet.3 usando rib-group la labeled-unicast importación. A medida que las rutas se colan en R1, podemos validar la operación observando si las rutas en el inet.3 RIB se vacían antes que el resto de las rutas en el inet.0 RIB.

Configurar la priorización de ruta del BGP

Configure R2 como un par BGP de R1.

En R1:

  • Configure el enrutador R2 como un par del enrutador R1.

  • Cree un grupo de BGP denominado reflector que se utilizará para obtener rutas de Internet desde un reflector de ruta.

  • Cree un grupo de BGP denominado interno que se utilizará para asignar el tráfico de unidifusión etiquetado a una cola de salida de mayor prioridad.

  • Cree un grupo RIB en el que se importen las rutas recibidas del reflector.

  • Cree la política que determina qué parte del inet.0 RIB se importa al grupo RIB.

Configuración rápida de CLI

Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red y, luego, copie y pegue los comandos en la CLI en el [edit] nivel de jerarquía.

Enrutador R2

Enrutador R1

Procedimiento

Procedimiento paso a paso

El siguiente ejemplo requiere que navegue por varios niveles en la jerarquía de configuración. Para obtener más información acerca de cómo navegar por la CLI, consulte Uso del editor de CLI en el modo de configuración en la Guía del usuario de la CLI de Junos OS.

Para configurar R2:

  1. Configure un grupo de BGP denominado interno.

Procedimiento paso a paso

Para configurar R1:

  1. Configure un grupo de BGP denominado reflector que reciba rutas del RR.

  2. Configurar un grupo de BGP denominado interno

  3. Configurar un grupo RIB denominado en3

  4. Configurar una política de enrutamiento denominada match-long

  5. Configurar una política de enrutamiento denominada match-all

Verificación

Verificar que las actualizaciones de vecinos tengan la prioridad adecuada

Propósito

Para confirmar que las actualizaciones de ruta se están colocando en las colas adecuadas y que las colas se están actualizando.

Acción

Para ver las actualizaciones de ruta que se hacen en cola para el vecino del BGP 192.0.2.2, emita el comando desde el show bgp neighbor output-queue 192.0.2.2 modo operativo

Significado

El resultado de show bgp neighbor output-queue 192.0.2.2 muestra que las actualizaciones de ruta de unidifusión etiquetadas se colocan en la cola de salida de prioridad 2 y que la cola de salida de prioridad 2 se vacía antes de que las actualizaciones de ruta de unidifusión que se encuentran en la cola de salida de prioridad 1.