Comunidades BGP

Última actualización: (UTC)

El propósito principal de los enrutadores habilitados para BGP es anunciar prefijos a otros enrutadores. Estos prefijos pueden ser de varias familias de direcciones diferentes, como IPv4 y VPNv4. Al anunciar un prefijo, BGP adjunta información adicional, denominada atributos. BGP utiliza estos atributos para seleccionar la mejor ruta.

BGP puede incluir más información con cada prefijo, en forma de Cadenas de Comunidad. Una cadena de comunidad es un valor numérico que el par usa como una etiqueta.

Las comunidades crean políticas de enrutamiento entre pares. Al etiquetar prefijos con comunidades, le decimos al par que maneje los prefijos de una manera especial.

Como ejemplo, digamos que un grupo específico de prefijos debe tener su peso establecido en 10 por un enrutador de pares. Podemos elegir un número de comunidad para usar y etiquetar los prefijos con él. Si ve un prefijo de nosotros etiquetado con esta comunidad, establecerá el peso en 10.

Tenemos que estar de acuerdo con nuestros pares sobre qué comunidades usar. Desde una perspectiva técnica, depende de ellos decidir cómo manejarán cualquier cadena de la comunidad. Podrían optar por ignorarlos por completo si lo desean.

Los proveedores pueden tener una lista de comunidades predefinidas que usan y acciones que realizan. Como cliente, podemos configurar nuestras comunidades para que coincidan con sus políticas, para ajustar cómo manejan nuestros prefijos.

las Comunidades son opcionales y transitiva. Son transitivos, por lo que un par puede pasarlos al siguiente.

Cada comunidad estándar tiene un valor de 32 bits. A menudo se dividen en dos valores de 16 bits, para que sean más fáciles de leer. Por ejemplo, la comunidad 4259840100 es lo mismo que 65000:100. A menudo, los primeros 16 bits representan el AS, y los segundos 16 bits son un valor personalizado.

También hay comunidades extendidas, que son para fines especiales, como las VPN MPLS. Estos son valores de 64 bits. Se componen de un valor de tipo de 16 bits, un valor de 16 bits COMO o IP y 32 bits para el valor de comunidad personalizado.

Algunas comunidades están reservados:

  • 0:0 – 0:65535
  • 65535:0 – 65535:63335

Configuración

Vamos a laboratorio para ver cómo funciona. Tenga en cuenta que este no es un escenario del mundo real.

Para este laboratorio, usaremos dos enrutadores con ASN diferentes. R1 tiene varias redes que desea anunciar a R2.

R2 asigna pesos a los prefijos, dependiendo de las comunidades adjuntas:

  • Si la comunidad se establece en 10:100, establecerá el peso en 100
  • Si la comunidad se establece en 10:200, fijará el peso a 10

Descargue el Laboratorio de Comunidades de BGP

R1-Asignar comunidades

Las listas de prefijos identifican las rutas a las que asignar comunidades. En este caso, 172.16.0.0 y 172.16.10.0 están en el Grupo 1, y 172.16.20.0 está en el Grupo 2.

Los mapas de ruta coinciden con las listas de prefijos y, a continuación, establecen la comunidad en la ruta. Al grupo 1 se le asigna la comunidad 100, y al Grupo 2 se le asigna la comunidad 200.

De forma predeterminada, las comunidades son un gran número, lo que es difícil de leer. El comando ip bgp-community new-format cambia este valor al formato ASN:Community. Esto facilita la verificación más adelante.

De forma predeterminada, los routers Cisco no envían comunidades. Habilite esto por vecino con los comandos extended send-community y send-community.

Finalmente, el mapa de ruta se aplica al vecino saliente. Al enviar rutas al vecino, las comunidades están unidas.

R1-Asignar comunidades
! Identify networks with prefix listsip prefix-list Group1 seq 5 permit 172.16.0.0/24ip prefix-list Group1 seq 10 permit 172.16.10.0/24ip prefix-list Group2 seq 5 permit 172.16.20.0/24! Match networks, and set community valuesroute-map R2_Peer permit 10 match ip address prefix-list Group1 set community 10:100route-map R2_Peer permit 20 match ip address prefix-list Group2 set community 10:200! Enable the new community formatip bgp-community new-formatrouter bgp 10 ! Enable sending communities neighbor 10.10.10.2 send-community neighbor 10.10.10.2 send-community extended ! Apply the route map to this neighbour neighbor 10.10.10.2 route-map R2_Peer out

Verificar Comunidades

Aquí, podemos ver que las comunidades están configuradas en las rutas que recibe R2.

Verificación R2
! Enable the new community formatip bgp-community new-format! Verify that the community is setR2#show ip bgp 172.16.0.0BGP routing table entry for 172.16.0.0/24, version 2Paths: (1 available, best #1, table default) Not advertised to any peer Refresh Epoch 1 10 10.10.10.1 from 10.10.10.1 (172.16.20.1) Origin IGP, metric 0, localpref 100, valid, external, best Community: 10:100 rx pathid: 0, tx pathid: 0x0R2#show ip bgp 172.16.20.0BGP routing table entry for 172.16.20.0/24, version 4Paths: (1 available, best #1, table default) Not advertised to any peer Refresh Epoch 1 10 10.10.10.1 from 10.10.10.1 (172.16.20.1) Origin IGP, metric 0, localpref 100, valid, external, best Community: 10:200 rx pathid: 0, tx pathid: 0x0

Establecer políticas

Ahora que R2 está recibiendo rutas con comunidades, puede aplicarles políticas.

Primero, creamos una lista de comunidades para identificar comunidades específicas. Estos son como usar ACLs o listas de prefijos para identificar direcciones IP. En este ejemplo usamos una lista de comunidad con nombre. A diferencia de las listas comunitarias numeradas, admiten expresiones regulares y pueden tener entradas ilimitadas. Las listas numeradas tienen un límite de 100 entradas.

Los mapas de ruta coinciden con la comunidad y establecen el peso.

El mapa de ruta se aplica al vecino para prefijos entrantes.

Directivas de conjunto de R2
! Create a named community list to identify the communitiesip community-list expanded High_Weight permit 10:100ip community-list expanded Low_Weight permit 10:200! Create a route-map to match the communities, and set the weightroute-map R1_Peer permit 10 match community High_Weight set weight 100route-map R1_Peer permit 20 match community Low_Weight set weight 10 ! Apply the route map to the neighbourrouter bgp 20 neighbor 10.10.10.1 route-map R1_Peer in

Estos cambios no se realizarán para las rutas que ya están en la tabla de rutas. La forma más fácil de forzar que esto se aplique es restablecer la relación de vecindad. Ten en cuenta que esto es disruptivo, así que no lo hagas en una red de producción.

Verificar políticas

Si observa la tabla BGP en R2, puede ver que los pesos se han establecido como se esperaba.

R2-Verificación
! Verify that the weights are setR2#show ip bgpBGP table version is 4, local router ID is 10.10.10.2Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incompleteRPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 172.16.0.0/24 10.10.10.1 0 100 10 i *> 172.16.10.0/24 10.10.10.1 0 100 10 i *> 172.16.20.0/24 10.10.10.1 0 10 10 i

Comunidades conocidas

Hay varias comunidades predefinidas, llamadas Comunidades Conocidas. Estas comunidades tienen significados especiales predefinidos que admiten todos los hablantes de BGP.

Los más comunes incluyen:

Internet-Una comunidad propietaria de Cisco. Esto permite que el enrutador anuncie el prefijo a todos los vecinos. Se trata de una comunidad «general» al final de una lista comunitaria. Esta es una excepción, ya que no todos los proveedores la admitirán.

Sin exportación: Evita que se anuncie el prefijo a cualquier vecino de eBGP. Esto mantiene un prefijo en el AS.

Sin publicidad: esto evita que se anuncie el prefijo a cualquier vecino.

Local-AS – Usado con confederaciones para mantener el prefijo dentro del local AS. Permite compartir prefijos con vecinos de eBGP dentro de la confederación.

Diseñando para Comunidades

Al diseñar comunidades, considere estos pasos básicos:

  1. Definir la política administrativa de enrutamiento
    • Decidir qué filtrar y dónde filtrar
    • Decidir qué atributos cambiar para influir en el flujo de tráfico
  2. Diseñar el régimen comunitario
    • , es decir, decidir qué valores utilizar, en función de la política
  3. Despliegue el esquema mediante mapas de ruta
  4. Crear documentación

Cuando reciba rutas de una fuente externa, considere etiquetarlas en función del sitio en el que se recibieron. Del mismo modo, cuando origine rutas, considere etiquetarlas con un ID para el sitio que las originó.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.