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 de BGP

Si bien BGP es uno de los protocolos de enrutamiento más ampliamente implementados en uso hoy en día, que contiene no solo información de accesibilidad de la capa de red (NLRI) sino también muchos tipos de información de accesibilidad VPN, es notable que el protocolo no especifique cómo se ordena la información en los mensajes de actualización de BGP. Esta decisión se deja a la implementación.

En sistemas a gran escala, BGP puede tardar mucho tiempo en intercambiar su información de enrutamiento entre sistemas. Esto es especialmente cierto durante el inicio de BGP, las operaciones de actualización de rutas y cuando se ayuda con un reinicio correcto. Para manejar la gran cantidad de información que necesita ser procesada, el procesamiento de rutas BGP se logra con el uso de colas. Las rutas salientes se colocan en colas de salida para su procesamiento. La priorización de rutas de BGP se introdujo en Junos OS versión 16.1 como un medio para permitir al usuario priorizar de forma determinística los mensajes de actualización de BGP. La priorización de rutas 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 pares BGP.

En la configuración predeterminada, es decir, cuando no existe ninguna configuración o política que invalide la prioridad, el proceso de protocolo de enrutamiento (rpd) pone en cola BGP en la cola de salida por base de información de enrutamiento (RIB).output-queue-priority 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 para la RIB actual antes de pasar a la siguiente RIB que tiene una cola de salida no vacía.

Nota:
  • No hay ningún intento de priorizar automáticamente las rutas, incluso si existe una posibilidad teórica de hacerlo. Por lo tanto, priorizar rutas individuales se deja completamente en manos del usuario.

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

Casos de uso para la priorización de rutas 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 esos tipos de rutas. Priorizar estas rutas dentro de un entorno determinado a gran escala puede ayudar a los enrutadores a reaccionar más rápidamente a los cambios importantes de ruta.

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

Tipo de ruta o actualización

Notas

Ejemplo

Prefijos utilizados para resolver los siguientes saltos del BGP a un siguiente salto de reenvío inmediato

Los cambios en estos prefijos deben hacerse tan pronto como sea posible.

  • Rutas de acogida

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

Rutas usadas para extremos de túnel

Los extremos de túnel, como GRE o MPLS, se utilizan a menudo como próximos saltos de BGP.

Rutas de unidifusión etiquetadas con BGP

Tipos de ruta que son críticos para el funcionamiento de una característica de protocolo

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

  • Autodescubrimiento activo de origen MVPN (tipo 5)

  • Sitios VPLS de host múltiple

Rutas de infraestructura de proveedores de servicios

Estas rutas son fundamentales para la capacidad de un proveedor de servicios para llevar a cabo negocios. Sin rutas precisas y actualizadas, es posible que el proveedor de servicios no pueda proporcionar algunas de sus ofertas de servicios.

  • Redes internas de gestión

  • Prefijos de operaciones de red

  • Recursos DNS

Cambios en la topología de red

Estos deben priorizarse antes de las actualizaciones de ruta simples.

  • Nuevo enrutador añadido a la red

  • Enrutadores retirados de la red

Propiedades de la priorización de rutas BGP

La priorización de rutas de BGP en Junos OS se implementa mediante un conjunto de 17 colas de salida priorizadas (numeradas) que son atendidas 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 tokens y la asignación de rutas a las 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, donde 1 es la prioridad más baja y 16 es 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 una 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 a ella en la configuración por su nombre.

1 (prioridad más baja)

Esta es la cola de salida de menor prioridad. Esta es la cola de prioridad predeterminada, lo que significa que las rutas sin asignación de cola explícita desde la determinación automática de protocolos 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 (prioridad baja - alta)

Estas colas de salida varían en prioridad desde la prioridad más baja (2) hasta la prioridad más alta (16). Se les asignan rutas según la política de usuario o la configuración del par BGP. Las rutas en una cola de salida de mayor prioridad pueden tener preferencia sobre 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 BGP. Esto significa que la prioridad de ruta puede variar en cada grupo par BGP, así como en configuraciones de vecinos específicas dentro de los grupos pares BGP. También puede asignar rutas a colas mediante la parte action 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 de BGP. A todas las colas se les asignan tokens que se almacenan en buckets. El número de tokens en un bucket determinado es configurable por el usuario. De esta manera, los usuarios pueden elaborar políticas que permitan que sus rutas se sirvan en las proporciones que prefieran. La configuración del programador de prioridades se realiza globalmente dentro de BGP en el nivel jerárquico .[edit protocols bgp] De forma predeterminada, todas las colas de prioridad tienen al menos 1 token en su bucket para garantizar que las prioridades mal configuradas no mueran de hambre.

Descripción de la prioridad y equidad de las colas

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

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

  • Prioridad significa que cuando hay trabajo competitivo y se ha garantizado la equidad, elegir siempre el trabajo más importante.

Por ejemplo, supongamos tres clases de prioridad: Bajo, medio y alto. Estos podrían asignarse a las colas 1, 2 y 3, respectivamente. Alternativamente, podrían asignarse a las colas 3, 6 y 9. Para ser justos, si la decisión es que la prioridad alta 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, los tokens se pueden asignar como 5 a alto, 4 a medio y 2 a bajo. Puede asignar a cualquiera de las 17 colas cualquier valor entre 1 y 100. La relación entre el número de tokens en una sola cola y 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 proceso de ser gastados en otra cola por el programador de trabajo. muestra el punto de partida para un ejemplo de esto.Tabla 3

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 la cola

Alto (9)

50

50

0

Mediano (6)

35

15

5000

Bajo (3)

15

15

10000

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

Procedimiento de mantenimiento de colas

El procedimiento de mantenimiento de cola opera por grupo par BGP y cada grupo mantiene sus propios buckets de token.

  • Los buckets de tokens para cada prioridad comienzan llenos con el número configurado de tokens o con el valor predeterminado de 1.

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

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

  • 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 ejecuciones del mecanismo de mantenimiento de colas y hay tokens disponibles en esa cola de mayor prioridad, las nuevas entradas de la cola de mayor prioridad se envían primero, con lo que se evita que las entradas de las colas de menor prioridad se envíen. Si la cola de prioridad más alta 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 del token.

  • Los tokens se actualizan después de que se hayan atendido 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 BGP y la prioridad de familia global de direcciones

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

Requisitos

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

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

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

Descripción general

El programador de prioridad de ruta 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 utiliza un conjunto de 17 colas de salida priorizadas, por instancia de enrutamiento a la que 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 le permite equilibrar la cantidad de trabajo realizado en las rutas dentro de las colas. Además, la configuración predeterminada de las colas de prioridad alta, media y baja 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 BGP para anular la configuración de prioridad global.

Configuración

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

  • Especifique qué colas numeradas se usarán como colas predeterminadas , y de prioridad.highmediumlow

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

  • Configure un grupo BGP denominado test1 que mostrará las capacidades de reemplazo de grupo.

  • Configure un grupo 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, a continuación, copie y pegue los comandos en la CLI en el nivel de jerarquía.[edit]

Configuración de las colas de prioridad de salida individuales

Procedimiento paso a paso

En el ejemplo siguiente, debe explorar por varios niveles en la jerarquía de configuración. Para obtener información acerca de cómo navegar por la CLI, consulte Uso del editor de CLI en modo de configuración en la Guía del usuario de CLI de Junos OS.Usar el editor de CLI en el modo de configuraciónhttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

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

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

Procedimiento paso a paso

Resultados

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

Configurar prioridades de salida globales para una familia de rutas

Procedimiento

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

Configurar un grupo BGP denominado test1

Procedimiento

Procedimiento paso a paso
  1. Configure el grupo para anular las prioridades de producción globales e incluya un vecino que invalide al grupo y un vecino que no.test1

Configurar un grupo BGP denominado test2

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

Verificación

Comprobación de la configuración del programador de salida BGP

Propósito

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

Acción

Significado

El resultado muestra que la configuración del programador de salida se realizó correctamente 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.

Comprobar la configuración del grupo, la anulación de grupo y la anulación de vecinos

Propósito

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

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 retiro 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 , o 3.inet unicast

Verificar la herencia a partir de la configuración de prioridad global

Propósito

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

Acción
Significado

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

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

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

Requisitos

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

  • Un enrutador serie MX (R1) que ejecute Junos OS versión 16.1 o posterior que será el foco del ejemplo.

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

  • Un reflector de ruta (RR) BGP que se usará 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 de BGP está diseñada para permitir la priorización de mensajes salientes de actualización de BGP en un enrutador. El uso de la priorización de rutas BGP permite al usuario asegurarse de que las actualizaciones de rutas BGP más importantes, como los cambios de extremo de túnel GRE o MPLS, se envían antes de las actualizaciones de rutas BGP menos importantes, como las actualizaciones de actualización de ruta.

En este ejemplo, configuraremos R1 para tratar las actualizaciones de ruta a R2 como de mayor prioridad que las actualizaciones de ruta.inet labeled-unicastinet unicast Para hacer esto, configuraremos el enrutador R2 para aceptar ambos y enrutar desde su enrutador par, R1.inet unicastinet labeled-unicast Luego rellenaremos la tabla de enrutamiento en R1 desde un reflector de ruta e importaremos una parte de esa tabla a la tabla, usando importar.inet.0labeled-unicastinet.3rib-group Como las rutas están en cola en R1, podemos validar la operación observando si las rutas en la RIB se vacían antes que el resto de las rutas en la RIB.inet.3inet.0

Configurar la priorización de rutas BGP

Configure R2 como un par BGP de R1.

En R1:

  • Configure el enrutador R2 como par del enrutador R1.

  • Cree un grupo BGP denominado reflector que se usará para obtener rutas de Internet a partir de un reflector de ruta.

  • Cree un grupo BGP denominado internal 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 determine qué parte de la RIB se importa al grupo RIB.inet.0

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, a continuación, copie y pegue los comandos en la CLI en el nivel de jerarquía.[edit]

Enrutador R2

Enrutador R1

Procedimiento

Procedimiento paso a paso

En el ejemplo siguiente, debe explorar por varios niveles en la jerarquía de configuración. Para obtener información acerca de cómo navegar por la CLI, consulte Uso del editor de CLI en modo de configuración en la Guía del usuario de CLI de Junos OS.Usar el editor de CLI en el modo de configuraciónhttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

Para configurar R2:

  1. Configure un grupo BGP denominado internal.

Procedimiento paso a paso

Para configurar R1:

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

  2. Configurar un grupo BGP denominado interno

  3. Configurar un grupo RIB denominado into3

  4. Configurar una directiva 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 rutas se colocan en las colas adecuadas y que las colas se están actualizando.

Acción

Para ver las actualizaciones de ruta que están en cola para el BGP vecino 192.0.2.2, emita el comando desde el modo operativoshow bgp neighbor output-queue 192.0.2.2

Significado

El resultado de 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 las actualizaciones de ruta de unidifusión que se encuentran en la cola de salida de prioridad 1.show bgp neighbor output-queue 192.0.2.2