Principios básicos de BGP

Principios básicos de BGP

Se recomienda comer el texto original con imágenes.
Enlace original

  • Descripción general de BGP

    BGP (Border Gateway Protocol, Border Gateway Protocol) es un protocolo de enrutamiento dinámico utilizado entre sistemas autónomos

    • BGP puede realizar la optimización de rutas, la evitación de bucles de ruta, el mecanismo de transferencia de alta eficiencia, la capacidad de mantener una gran cantidad de rutas, activar la actualización, etc.
  • Características del protocolo BGP

    protocolo BGP

    • BGP es un protocolo de enrutamiento externo de sistema autónomo, utilizado para transferir información de enrutamiento entre AS

    • El protocolo de enrutamiento de vector de ruta, por diseño, toma la ocurrencia de bucles

    • Llevado por el protocolo TCP, el número de puerto es 179

    • Admite CIDR y agregación de rutas

    • Las rutas vienen con ricas propiedades

    • Enviar solo actualizaciones de enrutamiento incrementales

    • Filtrado de rutas y políticas de enrutamiento

  • términos básicos

    [Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-U7MJBzvu-1670224823634)(image/image_jzSX-fMhC5.png)]

    • Altavoz BGP: un enrutador que ejecuta el protocolo de enrutamiento BGP

    • Identificación del enrutador

    • Pares BGP: los altavoces BGP que tienen conexiones TCP entre sí e intercambian información de enrutamiento entre sí se denominan pares.

    • Pares IBGP: los pares BGP en el mismo sistema autónomo se denominan pares IBGP

    • Pares EBGP: los pares BGP en diferentes sistemas autónomos se denominan pares EBGP

  • par

    par EBGP

    [Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y subirla directamente (img-ATNGDb8K-1670224823636)(image/image_AH9rBsJUCT.png)]

    • Los pares BGP en diferentes AS son pares EBGP y, por lo general, los pares EBGP están físicamente conectados directamente

    • La ruta obtenida por el altavoz BGP del par EBGP se anunciará a todos sus pares BGP (incluidos EBGP e IBGP)

    compañero IBGP

    [Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y subirla directamente (img-U9yEmg6n-1670224823636)(image/image_6kjB0pDnjT.png)]

    • Los pares BGP en el mismo AS son pares IBGP

    • Las rutas obtenidas de IBGP no quieren ser anunciadas por sus pares IBGP

    Conexión completa IBGP

    • Las sesiones BGP son conexiones de unidifusión punto a punto basadas en TCP

    • El altavoz BGP obtiene la ruta del par IBGP pero no la anuncia a otros pares IBGP

  • Mensaje BGP y máquina de estado

    Tipos de mensajes BGP

    Tipo de mensaje Descripción de la función de mensaje
    Abierto Se utiliza para establecer la relación de conexión entre pares BGP
    Mantener viva Envíe periódicamente mensajes Keepalive a los pares BGP para revelar la validez del enlace
    Actualizar Lleva información de actualización de enrutamiento (eliminación, adición)
    Notificación Cuando BGP detecta un estado de error, enviará un mensaje de notificación al par y luego la conexión BGP se cerrará inmediatamente.
    Actualización de ruta Pida al par que vuelva a enviar la información de enrutamiento de la familia de direcciones especificada
    • Mensaje abierto: el mensaje abierto es el primer mensaje que se envía después de que se establece una conexión TCP y se utiliza para establecer una relación de conexión entre pares BGP y realizar la negociación de parámetros. El contenido incluye el número de versión de BGP, AS, ID de enrutador, valor de tiempo de espera, información de autenticación y otra información

    • **Mensaje de Keepalive: **BGP enviará periódicamente mensajes de Keepalive a los pares, la función principal es permitir que los vecinos de BGP sepan su existencia y mantener la estabilidad de la relación de vecinos; otra función es responder al mensaje abierto recibido. Su formato de mensaje solo contiene el encabezado del mensaje, sin ningún otro campo adjunto. La longitud es de 19 bytes en total y solo hay etiquetas, longitudes y tipos en el mensaje, excluyendo el campo de datos.

    • **Mensaje de actualización: **Los mensajes de actualización se utilizan para intercambiar información de enrutamiento entre pares. Puede publicar información sobre rutas alcanzables y cancelar información sobre rutas inalcanzables; un mensaje de actualización puede anunciar una clase de rutas accesibles con el mismo atributo de ruta y un mensaje de actualización también puede transportar varias rutas inalcanzables.

    • Mensaje de notificación: el mensaje de notificación se utiliza para la notificación de errores. Si el altavoz BGP detecta un error en el mensaje enviado por la otra parte o desconecta activamente la conexión BGP, enviará un mensaje de notificación para notificar al vecino BGP, cerrar la conexión y volver al estado inactivo; si recibe un mensaje de notificación del vecino, también cambiará el estado de conexión a inactivo. El contenido del mensaje de notificación incluye información como códigos de error, subcódigos de error y datos de error.

    • Mensaje de actualización de ruta: la actualización de ruta se utiliza para solicitar al par que vuelva a enviar la información de ruta de la familia de direcciones especificada

    Máquina de estado del protocolo BGP

    [Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y subirla directamente (img-hv0XdJop-1670224823637)(image/image_qSI_ubqx-s.png)]

    • Idle state (estado inactivo): Este estado es el estado inicial, no acepta ninguna conexión BGP y espera la generación del evento de inicio. Si ocurre un evento de inicio, el sistema inicia el temporizador ConnectRetry, inicia una conexión TCP con el vecino y cambia el estado a Conectar.

    • **Connect state (estado de conexión): **En el estado Connect, el sistema esperará a que se establezca la conexión TCP. Si el estado de TCP es Establecido, elimine el temporizador ConnectRetry y envíe un mensaje Abierto para cambiar el estado a OpenSent; si la conexión TCP falla, restablezca el temporizador ConnectRetry y póngalo en estado Activo; si el temporizador ConnectRetry expiró (temporizador de retransmisión), se agotó el tiempo de espera , luego vuelva a conectarse, aún en el estado Conectar.

    • **Estado activo (active state): **Si ha habido un evento de inicio y la conexión TCP no se completa, se encuentra en estado Activo. En el estado Activo, el sistema responderá al evento de vencimiento del temporizador ConnectRetry, volverá a conectar la conexión TCP, restablecerá el temporizador ConnectRetry y cambiará al estado Conectar: ​​si la conexión TCP con la otra parte se establece correctamente, enviará un mensaje Abierto. mensaje, cambie el estado a OpenSend y borre el temporizador ConnectRetry, reinicie el temporizador HoldTime.

    • **Estado OpenSent (se ha enviado un mensaje OPEN): **Este estado indica que el sistema ha enviado un mensaje Open y está esperando el mensaje Open que le envió el vecino BGP. Si recibe el mensaje Open del vecino BGP y no hay ningún error, cambiará al estado OpenConfirm y, al mismo tiempo, establecerá el valor del temporizador HoldTime en el valor negociado, enviará un mensaje Keepalive y establecerá el temporizador KeepAlive ; si hay un error, enviará un mensaje de Notificación y desconectará Abra la conexión.

    • Estado OpenConfirm (confirmación de mensaje ABIERTO): este estado indica que el sistema ha enviado mensajes Keepalive y está esperando mensajes Keepalive de vecinos BGP. Si se recibe un mensaje KeepAlive, cambiará al estado Establecido y reiniciará el temporizador HoldTime; si el temporizador KeepAlive expira, se reiniciará y enviará un mensaje KeepAlive, y si recibe un mensaje de notificación, se desconectará

    • **Establecido (establecimiento de la conexión): **Si está en el estado Establecido, significa que la conexión BGP está establecida y puede enviar un mensaje de actualización para intercambiar información de enrutamiento; si el temporizador KeepAlive caduca, reinicie el temporizador KeepAlive y enviar un mensaje KeepAlive: si se recibe un mensaje Keepalive, se restablece el temporizador HoldTime; se desconecta si se detecta un error o se recibe un mensaje de notificación

    Cuando se produce un error en los otros cinco estados, excepto en el estado inactivo, el estado de BGP volverá al estado inactivo.

  • Atributos de enrutamiento BGP

    Clasificación de atributos de ruta BGP

    clasificación de atributos Los principales atributos incluidos
    Propiedades obligatorias bien conocidas Atributos de origen, AS_PATH, Next_hop
    atributos opcionales reconocidos Local_pref, Atomic_aggregate属性
    Propiedades de transición opcionales Atributo de comunidad, atributo de agregador
    Atributos no transicionales opcionales Atributos MED, Cluster_list, Originator_ID
    • Atributos obligatorios reconocidos: todos los dispositivos BGP pueden reconocer este atributo y debe existir en el mensaje de actualización. Si falta el atributo de tipo, la información de enrutamiento será incorrecta

    • Atributo arbitrario reconocido: todos los dispositivos BGP pueden reconocer este atributo, pero no es necesario que exista en los paquetes de actualización.

    • Atributo de transición opcional: Es posible que el dispositivo BGP no reconozca este tipo de atributo. Si el dispositivo BGP no reconoce este tipo de atributo, aún recibirá este tipo de atributo y lo anunciará a otros pares

    • Atributos no transicionales opcionales : Es posible que los dispositivos BGP no reconozcan dichos atributos. Si los dispositivos BGP no reconocen dichos atributos, se ignorarán y no se anunciarán a otros pares.


    • Atributos comunes de enrutamiento BGP

      • Atributo de origen : se utiliza para definir la fuente de información de la ruta, marcando cómo una ruta se convierte en una ruta BGP tiene los siguientes tipos:

        • IGP: Tiene la prioridad más alta. Inyecte en la tabla de enrutamiento BGP a través del comando Red, y el atributo Origen es IGP

        • EGP: Segunda prioridad. Para la información de enrutamiento obtenida a través de EGP , su atributo Origen es EGP.

        • Prioridad más baja. Enrutamiento de información aprendida por otros medios. Por ejemplo, el atributo de origen de la ruta importada por BGP mediante el comando import-route es Incompleto.

      • Atributo AS_Path : el atributo AS_Path registra todos los números AS por los que pasa una ruta desde la dirección local hasta la dirección de destino en orden vectorial. Al recibir una ruta, si el dispositivo encuentra su propio número de AS en la lista AS_Path, no recibirá la ruta, evitando así bucles de enrutamiento entre AS.

        • Cuando el altavoz BGP propaga las rutas importadas por sí mismo :

          • Al notificar a los pares EBGP, se creará una lista AS_Path con el número AS local en el mensaje de actualización

          • Cuando se notifique al par IBGP, se creará una lista AS_Path vacía en el mensaje de actualización

        • Cuando un altavoz BGP propaga rutas aprendidas de paquetes de actualización de otros altavoces BGP :

          • Cuando el altavoz BGP anuncie esta ruta al par EBGP, agregará el número AS local al frente (más a la izquierda) de la lista AS_Path . El dispositivo BGP que recibe esta ruta puede conocer el AS para pasar a la dirección de destino de acuerdo con el atributo AS_Path. El número de AS adyacente más cercano al AS local se enumera primero y los demás números de AS se enumeran en orden

          • Cuando BGP Speaker anuncia esta ruta a IBGP, no cambiará el atributo AS_Path relacionado con esta ruta

      • Atributo Next_Hop : la información del siguiente salto de la ruta registrada. El atributo del siguiente salto de BGP es diferente al de IGP, y no es necesariamente la dirección IP del dispositivo vecino. Normalmente, el atributo Next_Hop sigue las siguientes reglas:

        • Cuando un hablante de BGP anuncia una ruta a un par EBGP , establecerá el atributo de siguiente salto de la información de la ruta en la dirección de la interfaz que establece una relación de vecino BGP entre el extremo local y el extremo del par.

        • Cuando el altavoz BGP anuncia la ruta de origen local al par IBGP , establecerá el atributo de siguiente salto de la información de enrutamiento en la dirección de la interfaz que establece la relación de vecino BGP entre el extremo local y el extremo del par.

        • Cuando un hablante de BGP anuncia una ruta aprendida de un par EBGP a un par IBGP , no cambia el atributo de siguiente salto de la información de la ruta.

      • propiedad Local_Pref:

        • El atributo Local_Pref indica la preferencia BGP del enrutador, que se utiliza para determinar la ruta preferida cuando el tráfico sale del AS. Cuando un dispositivo BGP obtiene múltiples rutas con la misma dirección de destino pero diferentes próximos saltos a través de diferentes pares IBGP, seleccionará preferentemente la ruta con el valor más alto del atributo Local_Pref. El atributo Local_Pref solo es válido entre pares IBGP y no se anuncia a otros AS.

        • El atributo Local_Pref se puede configurar manualmente.Si el atributo Local_Pref no está configurado para la ruta, el valor Local_Pref de la ruta se procesará como el valor predeterminado de 100 durante la selección de ruta BGP.

      • Atributos MED :

        • El atributo MED se utiliza para determinar la ruta preferida cuando el tráfico ingresa al AS. Cuando un dispositivo que ejecuta BGP obtiene múltiples rutas con la misma dirección de destino pero diferentes próximos saltos a través de diferentes pares EBGP, la ruta con el valor MED más pequeño se seleccionará como la ruta preferida si las demás condiciones son las mismas.

        • El atributo MED solo se transmite entre dos AS, y el AS que recibe este atributo no lo anunciará a ningún otro AS de terceros. El atributo MED se puede configurar manualmente.Si la ruta no está configurada con el atributo MED, el valor MED de la ruta se procesará como el valor predeterminado de 0 durante la selección de la ruta BGP.

      • Atributo comunitario : El atributo comunitario (Community) se utiliza para identificar rutas BGP con las mismas características, lo que flexibiliza la aplicación de políticas de enrutamiento y reduce la dificultad de mantenimiento y gestión.

        nombre de atributo de la comunidad Número de atributo de grupo ilustrar
        Internet (0x00000000) Después de que un dispositivo recibe una ruta con este atributo, puede enviar la ruta a cualquier par BGP
        No_exportar 4294967041 (0xFFFFFF01) Después de que el dispositivo reciba una ruta con este atributo, no enviará la ruta fuera del AS
        Sin_anuncio 4294967042 (0xFFFFFF02) Después de que el dispositivo reciba una ruta con este atributo, no enviará la ruta a ningún par BGP.
        No_Export_Subconfed 4294967043 (0xFFFFFF03) Después de recibir una ruta con este atributo, el dispositivo no enviará la ruta fuera del AS ni anunciará la ruta a otros sub-AS en el AS.
      • Atributo Originator_ID y atributo Cluster_List

        • El atributo Originator_ID y el atributo Cluster_List se utilizan para resolver el problema del bucle en el escenario del reflector de ruta.
    • Estrategia de selección de ruta BGP

      Primero descarte la ruta inalcanzable del próximo salto (next_hop)

      1. Preferir la ruta con el mayor valor de valor preferido

      2. Preferir la ruta con el mayor valor de valor preferido

      3. Mira el fabricante

        1. Dispositivos Huawei: seleccione rutas agregadas manuales, rutas agregadas automáticas, rutas importadas por el comando Network, rutas aprendidas por el comando Import-route y rutas aprendidas de pares (

        2. Equipo H3C: seleccione rutas generadas por el comando Network, rutas importadas por el comando import-route y rutas agregadas en secuencia

      4. Preferir la ruta con el AS más corto (AS_Path)

      5. A su vez, se prefieren las rutas con tipos de origen IGP, EGP e Incompleto.

      6. Para rutas desde el mismo AS, se prefiere la ruta con el valor MED más bajo

      7. Preferir rutas EBGP, rutas IBGP, rutas LocalCross y rutas RemoteCross en secuencia.

      8. Preferir la ruta con la métrica de próximo salto más baja

      9. Optimización de la ruta con la Cluster_List más corta

      10. Se prefiere la ruta anunciada por el dispositivo con la ID de enrutador más pequeña.

        1. Si la ruta lleva el atributo Originator_ID, el tamaño de Originator_ID se comparará durante el proceso de selección de ruta (la ID del enrutador ya no se comparará), y se preferirá la ruta con el Originator_ID más pequeño.
      11. Prefiere la ruta anunciada por el par con la dirección IP más pequeña

  • Política de Publicidad de Rutas BGP

    • Solo la mejor ruta se anuncia a los pares.Si el comando de publicidad de rutas activas está configurado, BGP anuncia la ruta óptima en la tabla de enrutamiento de IP; de lo contrario, BGP anuncia la ruta óptima en la tabla de enrutamiento de BGP.

    • Anuncie solo las rutas que usa a sus pares

    • Las rutas obtenidas de EBGP se anunciarán a todos los demás pares BGP

    • Las rutas obtenidas de IBGP no se anuncian a sus pares de IBGP

    • Las rutas obtenidas de IBGP se anuncian a sus pares EBGP

    • Una vez que se establece la sesión, el hablante de BGP anunciará todas las rutas de BGP que cumplan con las condiciones anteriores al nuevo par. Posteriormente, el altavoz BGP anuncia rutas actualizadas a los pares solo cuando las rutas cambian.

  • reflector de ruta

    reflector de ruta

    [Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-vA70Blcr-1670224823638)(image/image_0B2mye9Kaz.png)]

    Para garantizar la conectividad entre los pares de IBGP, se debe establecer una relación de malla completa entre los pares de IBGP. Suponiendo que hay n dispositivos en un AS, el número de conexiones IBGP establecidas es n(n-1)/2. Cuando hay muchos dispositivos, la configuración del dispositivo será muy complicada y el consumo de recursos de la red y de la CPU será muy grande después de la configuración. El uso de reflectores de ruta entre pares de IBGP puede resolver los problemas anteriores.

    Roles relacionados con el reflector de ruta

    Los reflectores de ruta tienen las siguientes funciones dentro de un AS:

    Figura 1 Diagrama esquemático de un reflector de ruta

    [Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-mjgp9R6w-1670224823640)(image/image_zh9YzTNHyD.png)]

    • Route Reflector RR (Route Reflector): un dispositivo BGP que permite que las rutas aprendidas de un par IBGP se reflejen en otros pares IBGP, similar al DR en una red OSPF.

    • Cliente (Cliente): El dispositivo IBGP que forma una relación de vecino reflexivo con el RR. Dentro del AS, el cliente solo necesita estar conectado directamente al RR.

    • No cliente: un dispositivo IBGP que no es ni un RR ni un cliente. Todavía se debe establecer una conexión completa entre los no clientes en el AS y el RR, y entre todos los no clientes.

    • Originador: Un dispositivo que origina rutas dentro de un AS. El atributo Originator_ID se utiliza para evitar bucles de enrutamiento en el clúster.

    • Cluster (Cluster) : Una colección de reflectores de ruta y sus clientes. El atributo Cluster_List se utiliza para evitar bucles de enrutamiento entre clústeres.

    Principio del reflector de ruta

    • Las rutas aprendidas de los no clientes se anuncian a todos los clientes.

    • Una ruta aprendida de un cliente, anunciada a todos los clientes y no clientes, excepto al cliente que originó esta ruta.

    • Las rutas aprendidas de los pares EBGP se anuncian a todos los clientes y no clientes.

    Propiedad Cluster_List

    El reflector de ruta y sus clientes forman un clúster (Cluster), que se identifica mediante el ID de clúster único en el AS. Para evitar bucles de enrutamiento entre clústeres, el reflector de ruta utiliza el atributo Cluster_List para registrar los ID de clúster de todos los clústeres por los que pasan las rutas.

    • Cuando el RR refleja una ruta por primera vez, el RR agregará el ID de clúster local al principio de la lista de clústeres. Si no hay un atributo Cluster_List, RR crea uno.

    • Cuando el RR recibe una ruta actualizada, el RR verificará la Lista de grupos. Si ya hay un ID de clúster local en la Lista de clústeres, descarte la ruta; si no hay un ID de clúster local, agréguelo a la Lista de clústeres y luego refleje la ruta actualizada.

    propiedad Originator_ID

    El ID del originador es generado por el RR, y el valor del ID del enrutador utilizado identifica al originador de la ruta, que se usa para evitar bucles de enrutamiento en el clúster.

    • Cuando el RR refleja una ruta por primera vez, el RR agrega el atributo Originator_ID a esta ruta para identificar el dispositivo de origen de esta ruta. Si el atributo Originator_ID ya existe en una ruta, el RR no creará un nuevo atributo Originator_ID.

    • Cuando el dispositivo recibe esta ruta, comparará la ID del originador recibida con la ID del enrutador local y, si las dos ID son iguales, no recibirá esta ruta.

    reflector de ruta de respaldo

    Para aumentar la confiabilidad de la red y evitar que las fallas de un solo punto afecten la red, a veces es necesario configurar más de un RR en un clúster. Debido a que los RR rompen la restricción de que las rutas recibidas de los pares IBGP no se pueden pasar a otros pares IBGP, pueden existir bucles entre los RR en el mismo clúster. En este momento, todos los RR del clúster deben usar el mismo ID de clúster para evitar bucles de enrutamiento entre los RR.

    [Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-F7sUOU2K-1670224823641)(image/image_Yq-mjroE9d.png)]

    Los reflectores de ruta RR1 y RR2 están en el mismo clúster y están configurados con el mismo ID de clúster.

    • Cuando Client1 recibe una ruta actualizada del par EBGP, anunciará la ruta a RR1 y RR2 a través de IBGP.

    • Después de recibir la ruta actualizada, RR1 y RR2 agregan el ID de clúster local al frente de la Lista de clústeres y luego se reflejan a otros clientes (Cliente2, Cliente3) y se reflejan entre sí al mismo tiempo.

    • Después de recibir la ruta reflejada, RR1 y RR2 verifican la Lista de clústeres y encuentran que sus propios ID de clústeres están incluidos en la Lista de clústeres. Luego, RR1 y RR2 descartan la ruta actualizada, evitando así un bucle de enrutamiento.

    Reflector de ruta multiclúster

    Pueden existir múltiples clústeres en un AS, y los RR en cada clúster establecen relaciones de emparejamiento IBGP. Cuando los RR están ubicados en diferentes capas de red, los RR en capas de red más bajas se pueden configurar como clientes para formar RR jerárquicos. Cuando los RR están en la misma capa de red, los RR en diferentes clústeres se pueden conectar completamente para formar RR en el mismo nivel.

    Reflector de ruta jerárquica

    [Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-j7et1Rei-1670224823642)(image/image_iMFDj1rmRj.png)]

    En la implementación real de RR, los escenarios de RR jerárquicos se usan comúnmente. [ISP proporciona enrutamiento de Internet para AS100. El AS100 está dividido internamente en dos clústeres. Los cuatro dispositivos en el clúster 1 son enrutadores principales y el RR de respaldo se usa para garantizar la confiabilidad.

    reflector de ruta de pares

    reflector de ruta de pares

    [Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-ewlX93IR-1670224823643)(image/image_roDSN5bvMz.png)]

    Una red troncal se divide en varios clústeres. Los RR de cada clúster tienen una relación de no cliente entre sí y establecen una conexión completa. En este momento, aunque cada cliente solo establece una conexión IBGP con el RR en el clúster, todos los RR y clientes pueden recibir toda la información de enrutamiento.

Supongo que te gusta

Origin blog.csdn.net/weixin_45059947/article/details/128187450
Recomendado
Clasificación