Referencia de atributos de la política de ruta de BGP

En esta página, se muestran ejemplos de políticas de ruta de BGP con el Common Expression Language (CEL) para Cloud Router.

Atributos de coincidencia

En la siguiente tabla, se describen los atributos de coincidencia disponibles para las políticas de ruta de BGP:

Atributos

Descripción

communities

Es la lista de comunidades atribuidas a la ruta de BGP.

destination

Rango de IP para la ruta BGP

Operaciones de coincidencia

En la siguiente tabla, se describen las operaciones de coincidencia disponibles para las políticas de ruta de BGP:

Operación

Descripción

communities.matchesEvery('65001:1234')

Muestra verdadero si las comunidades son un superconjunto de la lista '65001:1234'.

Un community_value es un campo de 32 bits dividido en dos secciones de 16 bits. De manera convencional, los primeros 16 bits del valor codifican el número de sistema autónomo (AS) de la red de la que proviene la comunidad, pero Cloud Router no aplica esta convención. Los segundos 16 bits del valor codifican un número único asignado por el AS de origen.

Solo se puede importar.

destination == '192.168.0.0/24'

Muestra true si una ruta de BGP coincide con 192.168.0.0/24 (coincidencia exacta).

destination != '192.168.0.0/24'

Muestra true si una ruta de BGP no coincide con 192.168.0.0/24 (coincidencia exacta).

destination.inAnyRange(r)

Muestra true si una ruta de BGP está en el rango r, en el que r es una de las siguientes opciones:

  • Una cadena con un prefijo codificado en CIDER, como 192.168.0.0/24.
  • El tipo abstracto que muestra prefix() o uno de los métodos de flujo que puedes llamar en prefix(), como longer().
  • Una lista heterogénea en la que cada elemento debe ser cualquiera de los valores descritos antes.

Negable con !.

prefix('192.168.0.0/24')

Muestra un objeto de prefijo que representa el rango CIDR 192.168.0.0/24, usado con destination.inAnyRange().

prefix('192.168.0.0/24').longer()

Muestra un objeto de rango de prefijos que es una copia de prefix() con el final del rango establecido en el máximo de familia por dirección del prefijo de entrada (/32 o /128) y el start del rango establecido en la longitud del prefijo de entrada más uno.

prefix().orLonger()

Muestra un objeto de rango de prefijos que es una copia de prefix() con el final del rango establecido en el máximo de familia por dirección del prefijo de entrada (/32 o /128).

prefix().lengthRange(20, 30)

Muestra un objeto de rango de prefijo que es una copia de prefix() con el inicio del rango establecido en /20 y el final establecido en /30.

prefix().upTo(30)

Muestra un objeto de rango de prefijo que es una copia de prefix() con el final del rango establecido en el prefijo /30 de entrada.

x || y

Muestra true si x o y es true.

x y y deben ser expresiones booleanas que usen el atributo communities o destination.

Debido a las reglas para las operaciones || (OR), todas las condiciones son, efectivamente, cero o más operaciones de coincidencia destination conectadas por OR.

(D0 || D1 || ... || Dm)

La siguiente tabla muestra un ejemplo del uso de prefix para compilar expresiones regulares complejas en comparación con algunos proveedores de routers:

Cloud Router Cisco Juniper Explicación

'192.168.0.1'

192.168.0.1

192.168.0.1

Coincide exactamente con el prefijo 192.168.0.1/32

'192.168.0.0/24'

prefix('192.168.0.0/24')

192.168.0.0/24

192.168.0.0/24 exact

Coincide exactamente con el prefijo 192.168.0.0/24

prefix('192.168.0.0/24').longer()

192.168.0.0/24 ge 25 le 32

192.168.0.0/24 longer

Haz coincidir el rango de 192.168.0.0/25 a 192.168.0.0/32

prefix('192.168.0.0/24').orLonger()

192.168.0.0/24 le 32

192.168.0.0/24 orlonger

Haz coincidir el rango de 192.168.0.0/24 a 192.168.0.0/32

prefix('192.168.0.0/24').lengthRange(25, 30)

192.168.0.0/24 ge 25 le 30

192.168.0.0/24 prefix-length-range /25-/30

Haz coincidir el rango de 192.168.0.0/25 a 192.168.0.0/30

prefix('192.168.0.0/24').upTo(30)

192.168.0.0/24 le 30

192.168.0.0/24 up to /30

Haz coincidir el rango de 192.168.0.0/24 a 192.168.0.0/30

Atributos de acciones

En la siguiente tabla, se describen los atributos de acción disponibles para las políticas de ruta de BGP:

Atributo

Descripción

Restricciones

asPath

La lista de números de AS que recorrió la actualización de la ruta de BGP

Importar y exportar

communities

La lista de comunidades de la ruta

Solo exportar

med

El discriminante de salida multiruta (MED) de la ruta

Importar y exportar

Operaciones de acción

En la siguiente tabla, se describen las operaciones de acción disponibles para las políticas de ruta de BGP:

Operación

Descripción

Restricciones

accept()

Acepta la ruta de BGP y detiene la evaluación adicional de las políticas o los términos de ruta de BGP, incluidas las acciones que surjan después de esta.

Ninguna

drop()

Filtra la ruta de BGP y detiene la evaluación adicional de las políticas o los términos de BGP, incluidas las acciones que surjan después de esta.

Ninguna

nextPolicy()

Detiene la ejecución de los términos restantes en esta política de ruta de BGP (incluidas las acciones después de este término) y pasa a la siguiente política de ruta de BGP aplicada (si la hay).

Ninguna

asPath.prependSequence([1, 2, 3])

Antepone una lista de números de AS al atributo AS-PATH, como una secuencia.

Los argumentos deben ser números enteros dentro del rango de 32 bits.

Ninguna

communities.add('65001:1234')

Agrega el valor de la comunidad a la lista de comunidades.

El valor de la comunidad puede ser una sola comunidad o una lista.

Cloud Router ignora los valores de comunidad que son comunidades privadas asignadas a los siguientes ASN de Google:

6432, 15169, 16550, 16591, 19448, 19527, 22859, 26910, 32381, 36039, 36384, 36385, 36492, 55023

Solo exportar

communities.remove('65001:1234')

Quita el valor de la comunidad de la lista de comunidades.

El valor de la comunidad puede ser una sola comunidad o una lista.

Cloud Router ignora los valores de comunidad que son comunidades privadas asignadas a los siguientes ASN de Google:

6432, 15169, 16550, 16591, 19448, 19527, 22859, 26910, 32381, 36039, 36384, 36385, 36492, 55023

Solo exportar

communities.replaceAll('65001:1234')

Reemplaza la lista de comunidades por el valor de la comunidad, que puede ser vacío.

Cloud Router ignora los valores de comunidad que son comunidades privadas asignadas a los siguientes ASN de Google:

6432, 15169, 16550, 16591, 19448, 19527, 22859, 26910, 32381, 36039, 36384, 36385, 36492, 55023

Solo exportar

med.set(12345)

Establece MED en 12345.

Ninguna