Descripción de expresiones regulares de ruta de AS para usarlas como condiciones de coincidencia de políticas de enrutamiento
Una ruta de AS BGP es la secuencia de sistemas autónomos que los paquetes de red atraviesan para llegar a un enrutador especificado. Los números del AS se ensamblan en una secuencia que se lee de derecha a izquierda. Por ejemplo, para que un paquete llegue a un destino mediante una ruta con una ruta de AS 5 4 3 2 1, el paquete primero recorre el AS 5 y así sucesivamente hasta que llega al AS 1. En este caso, el AS 1 es el último AS antes del destino del paquete; es el AS con el que se emparejaría el origen del paquete.
Cuando trabaje con rutas de AS y condiciones de coincidencia de políticas de enrutamiento, puede usar expresiones regulares para buscar rutas. Para ello, cree una o varias condiciones de coincidencia basadas en parte o en la totalidad de la ruta del AS y, a continuación, inclúyala en una directiva de enrutamiento.
En las siguientes secciones se describen las expresiones regulares de ruta de AS y se dan ejemplos de configuración.
Configuración de expresión regular de ruta del AS
Puede crear una expresión regular de ruta de AS con nombre y, a continuación, incluirla en una directiva de enrutamiento con la condición de as-path
coincidencia (descrita en Condiciones de coincidencia de políticas de enrutamiento). Para crear una expresión regular de ruta de AS con nombre, incluya la as-path
instrucción:
[edit policy-options] as-path name regular-expression;
Para incluir la expresión regular de la ruta del AS en una política de enrutamiento, incluya la condición de as-path
coincidencia en la from
instrucción.
Además, puede crear un grupo de ruta de AS con nombre formado por expresiones regulares de ruta de AS y, a continuación, incluirlo en una directiva de enrutamiento con la as-path-group
condición de coincidencia. Para crear un grupo de ruta de AS con nombre, incluya la as-path-group
instrucción.
[edit policy-options] as-path-group group-name { name [ regular-expressions ]; }
Para incluir las expresiones regulares de la ruta del AS dentro del grupo de rutas del AS en una política de enrutamiento, incluya la condición de as-path-group
coincidencia en la from
instrucción.
No puede incluir ambas as-path
instrucciones y as-path-group
en el mismo término de directiva.
Puede incluir los nombres de varias expresiones regulares de ruta de AS en la as-path
condición de coincidencia de la from
instrucción. Si hace esto, solo una expresión regular de ruta de AS debe coincidir para que se produzca una coincidencia. La coincidencia de expresiones regulares de ruta del AS es efectivamente una operación OR lógica.
El nombre de ruta del AS identifica la expresión regular. Puede contener letras, números y guiones (-), y puede tener hasta 65.536 caracteres. Para incluir espacios en el nombre, escriba el nombre completo entre comillas (" ").
La expresión regular se usa para hacer coincidir la totalidad o partes de la ruta del AS. Consta de dos componentes, que se especifican en el siguiente formato:
term <operator>
term
: identifica un AS. Puede especificarlo de una de las siguientes maneras:Número AS: todo el número AS compone un término. No se puede hacer referencia a caracteres individuales dentro de un número AS, que difiere de las expresiones regulares definidas en POSIX 1003.2.
Carácter comodín: hace coincidir cualquier número de AS. El carácter comodín es un punto (.). Puede especificar varios caracteres comodín.
Ruta del AS: un solo número de AS o un grupo de números de AS entre paréntesis. Agrupar la expresión regular de esta manera permite realizar una operación común en el grupo como un todo y dar prioridad al grupo. La ruta agrupada puede incluir operadores.
En Junos OS versión 9.1 y posteriores, puede especificar números de AS de 4 bytes como se define en RFC 4893, Compatibilidad BGP con espacio de número de AS de cuatro octetos, así como los números de AS de 2 bytes compatibles con versiones anteriores de Junos OS. Puede configurar un valor en el intervalo de 1 a 4.294.967.295.
operator
—(Opcional) Un operador que especifica cómo debe coincidir el término. La mayoría de los operadores describen cuántas veces se debe encontrar el término para ser considerado una coincidencia (por ejemplo, cualquier número de ocurrencias, o cero, o una ocurrencia). Tabla 1 enumera los operadores de expresión regular admitidos para las rutas de AS. Coloque los operadores inmediatamente despuésterm
sin espacio intermedio, excepto los operadores de tubería ( | ) y guión (–), que se colocan entre dos términos, y paréntesis, con los que se incluyen términos.
Puede especificar uno o varios pares término-operador en una sola expresión regular.
Tabla 2 muestra ejemplos de cómo definir expresiones regulares para que coincidan con rutas de AS.
Operador |
Definición del partido |
---|---|
|
Al menos |
|
Exactamente |
|
|
|
Cero o más repeticiones de |
|
Una o más repeticiones de |
|
Cero o una repetición de |
|
Uno de los dos términos a cada lado de la tubería. |
|
Entre un rango inicial y final, inclusive. |
|
Un carácter al principio de una expresión regular de atributo de comunidad. Este carácter se añade implícitamente; por lo tanto, el uso de la misma es opcional. |
|
Un carácter al final de una expresión regular de atributo de comunidad. Este carácter se añade implícitamente; por lo tanto, el uso de la misma es opcional. |
|
Un grupo de términos que se incluyen entre paréntesis. Se omite el espacio intermedio entre los paréntesis y los términos. Si un conjunto de paréntesis está entre comillas sin espacio intermedio "()", indica una ruta nula. |
|
Conjunto de números AS. Un número de AS del conjunto debe coincidir. Para especificar el inicio y el final de un intervalo, utilice un guión (-). Se puede usar un símbolo de intercalación (^) para indicar que no coincide con un número AS particular del conjunto, por ejemplo [^123]. |
Ruta del AS para coincidir |
Expresión regular |
Coincidencias de muestra |
---|---|---|
La ruta del AS es 1234 |
1234 |
1234 |
Cero o más ocurrencias del número de AS 1234 |
1234* |
1234 1234 1234 1234 1234 1234 Ruta de AS nula |
Cero o una ocurrencia del número de AS 1234 |
1234? o 1234{0,1} |
1234 Ruta de AS nula |
De una a cuatro ocurrencias del número de AS 1234 |
1234{1,4} |
1234 1234 1234 1234 1234 1234 1234 1234 1234 1234 |
De una a cuatro ocurrencias del AS número 12, seguidas de una ocurrencia del número de AS 34 |
12{1,4} 34 |
12 34 12 12 34 12 12 12 34 12 12 12 12 34 |
Intervalo de números de AS para hacer coincidir con un único número de AS |
123–125 |
123 124 125 |
[123–125]* |
Ruta de AS nula 123 124 124 125 125 125 123 124 125 123 |
|
Ruta cuyo segundo número de AS debe ser 56 o 78 |
(. 56) | (. 78) o . (56 | 78) |
1234 56 1234 78 9876 56 3857 78 |
Ruta cuyo segundo número de AS podría ser 56 o 78 |
. (56 | 78)? |
1234 56 52 34 56 1234 1234 78 39 794 78 2 |
Ruta cuyo primer número de AS es 123 y el segundo número de AS es 56 o 78 |
123 (56|78) |
123 56 123 78 |
Ruta de cualquier longitud, excepto no existente, cuyo segundo número de AS puede ser cualquiera, incluidos los no existentes |
. .*o. . {0,} |
1234 1234 5678 1234 5 6 7 8 |
La ruta del AS es 1 2 3 |
1 2 3 |
1 2 3 |
Una aparición de los números de AS 1 y 2, seguida de una o más ocurrencias del número de AS 3 |
1 2 3+ |
1 2 3 1 2 3 3 1 2 3 3 3 |
Una o más ocurrencias del AS número 1, seguidas de una o más ocurrencias del AS número 2, seguidas de una o más ocurrencias de AS Número 3 |
1+ 2+ 3+ |
1 2 3 1 1 2 3 1 1 2 2 3 1 1 2 2 3 3 |
Ruta de cualquier longitud que comience con los números de AS 4, 5 o 6 |
4 5 6 .* |
4 5 6 4 5 6 7 8 9 |
Ruta de cualquier longitud que termine con los números de AS 4, 5 y 6 |
.* 4 5 6 |
4 5 6 1 2 3 4 5 6 4 9 4 5 6 |
Ruta del AS 5, 12 o 18 |
5 | 12 | 18 |
5 12 18 |
Configurar una ruta de AS nula
Puede usar expresiones regulares de ruta de AS para crear una ruta de AS nula que coincida con rutas (prefijos) que se originaron en su AS. Estas rutas no han sido anunciadas a su AS por ningún par externo. Para crear una ruta de AS nula, use el operador de paréntesis entre comillas sin espacios intermedios:
[edit policy-options] as-path null-as “()";
En el ejemplo siguiente, el AS 2 administrado localmente está conectado al AS 1 (10.2.2.6) y al AS 3. El AS 3 anuncia sus rutas al AS 2, pero el administrador del AS 2 no desea anunciar las rutas del AS 3 al AS 1 y, por lo tanto, permitir el tráfico de tránsito del AS 1 al AS 3 al AS 2. Para evitar el tráfico de tránsito, la política only-my-routes
de exportación se aplica a la NA 1. Permite la publicidad de rutas del AS 2 al AS 1, pero impide la publicidad de rutas para el AS 3 (o rutas para cualquier otro AS conectado) al AS 1:
[edit policy-options] as-path null-as "()"; policy-statement only-my-routes { term just-my-as { from { protocol bgp; as-path null-as; } then accept; } term nothing-else { then reject; } } protocol { bgp { neighbor 10.2.2.6 { export only-my-routes; } } }
Cómo se evalúan las expresiones regulares de ruta de AS
Las expresiones regulares de ruta AS implementan las expresiones regulares extendidas (modernas) definidas en POSIX 1003.2. Son idénticas a las expresiones regulares de UNIX con las siguientes excepciones:
La unidad básica de coincidencia en una expresión regular de ruta de AS es el número AS y no un carácter individual.
Una expresión regular sólo coincide con una ruta si la ruta del AS de la ruta coincide
regular-expression
exactamente. La expresión regular equivalente de UNIX es^regular-expression$
. Por ejemplo, la expresión1234
regular de ruta de acceso de AS es equivalente a la expresión^1234$
regular de UNIX.Puede especificar una expresión regular mediante operadores comodín.
Ejemplos: Configuración de expresiones regulares de ruta de AS
Haga coincidir exactamente las rutas con la ruta del AS 1234 56 78 9 y acéptelas:
[edit] policy-options { as-path wellington "1234 56 78 9"; policy-statement from-wellington { term term1 { from as-path wellington; } then { preference 200; accept; } term term2 { then reject; } } }
Haga coincidir rutas alternativas con un AS y acéptelas después de modificar la preferencia:
[edit] policy-options { as-path wellington-alternate “1234{1,6} (56|47)? (78|101|112)* 9+”; policy-statement from-wellington { from as-path wellington-alternate; } then { preference 200; accept; } } }
Haga coincidir rutas con una ruta de AS de 123, 124 o 125 y acéptelas después de modificar la preferencia:
[edit] policy-options { as-path addison "123–125"; policy-statement from-addison { from as-path addison; } then { preference 200; accept; } } }