Descripción de las expresiones regulares de ruta del AS para su uso como condiciones de coincidencia de política de enrutamiento
Una ruta de AS BGP es la secuencia de sistemas autónomos que atraviesan los paquetes de red 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 atraviesa el AS 5 y así sucesivamente hasta que alcanza el 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ítica de enrutamiento, puede usar expresiones regulares para localizar rutas. Para ello, cree una o más condiciones de coincidencia basadas en algunas o todas las rutas del AS y, luego, incluyándolas en una política de enrutamiento.
En las siguientes secciones se describen expresiones regulares de ruta del AS y se proporcionan ejemplos de configuración.
Configuración de expresiones regulares de ruta de AS
Puede crear una expresión regular de ruta del AS denominada y, luego, incluirla en una política de enrutamiento con la as-path condición de coincidencia (descrita en Condiciones de coincidencia de la política de enrutamiento). Para crear una expresión regular de ruta del AS denominada, incluya la as-path instrucción:
[edit policy-options] as-path name regular-expression;
Para incluir la expresión regular de ruta del AS en una política de enrutamiento, incluya la as-path condición de coincidencia en la from instrucción.
Además, puede crear un grupo de ruta de AS denominado compuesto por expresiones regulares de ruta del AS y, luego, incluirlo en una política de enrutamiento con la as-path-group condición de coincidencia. Para crear un grupo de ruta de AS denominado, 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 ruta del AS en una política de enrutamiento, incluya la as-path-group condición de coincidencia en la from instrucción.
No puede incluir las instrucciones as-path y as-path-group en el mismo término de política.
Puede incluir los nombres de varias expresiones regulares de ruta del AS en la as-path condición de coincidencia en la from instrucción. Si hace esto, solo debe coincidir una expresión regular de ruta del AS para que se produzca una coincidencia. La coincidencia de expresión regular de ruta del AS es efectivamente una operación O lógica.
El nombre de la 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, encierre el nombre completo entre comillas (" ").
La expresión regular se usa para hacer coincidir todas o partes de la ruta del AS. Se compone 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: el número as completo compone un término. No puede hacer referencia a caracteres individuales dentro de un número de AS, que difiere de las expresiones regulares como se definen en POSIX 1003.2.
Carácter comodín:hace coincidir con cualquier número de AS único. El carácter comodín es un punto (.). Puede especificar varios caracteres comodín.
Ruta del AS: un único número AS o un grupo de números AS entre paréntesis. Agrupar la expresión regular de esta manera le permite realizar una operación común en el grupo como un todo y darle prioridad al grupo. La ruta agrupada puede incluir operadores por sí misma.
En la versión 9.1 y posteriores de Junos OS, puede especificar números de AS de 4 bytes según se define en RFC 4893, compatibilidad con BGP para espacio de número de AS de cuatro octetos, así como números de AS de 2 bytes compatibles con versiones anteriores de Junos OS. Puede configurar un valor en el intervalo del 1 al 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 compatibles con las rutas del AS. Coloca a los operadores inmediatamente despuéstermsin espacio intermedio, a excepción de los operadores de canalización ( | ) y guión (–), que se colocan entre dos términos, y paréntesis, con los que se adjuntan 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 de coincidencia |
|---|---|
|
Al menos |
|
Exactamente |
|
|
|
Cero o más repeticiones de |
|
Una o más repeticiones de |
|
Cero o una repetición de |
|
Uno de dos términos a cada lado de la tubería. |
|
Entre el inicio y el final, inclusive. |
|
Un carácter al principio de una expresión regular de atributo de comunidad. Este carácter se agrega implícitamente; por lo tanto, su uso es opcional. |
|
Un carácter al final de una expresión regular de atributo de comunidad. Este carácter se agrega implícitamente; por lo tanto, su uso es opcional. |
|
Un grupo de términos que se adjuntan entre paréntesis. Se omite el espacio intermedio entre los paréntesis y los términos. Si un conjunto de paréntesis se adjunta entre comillas sin espacio intermedio "()", indica una ruta null. |
|
Conjunto de números de AS. Debe coincidir un número de AS del conjunto. Para especificar el inicio y el final de un intervalo, utilice un guión (-). Puede usarse una careta (^) para indicar que no coincide con un número de AS determinado en el conjunto, por ejemplo [^123]. |
Ruta del AS a coincidir |
Expresión regular |
Coincidencias de ejemplo |
|---|---|---|
La ruta del AS es 1234 |
1234 |
1234 |
Cero o más ocurrencias de 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 número de AS 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 |
Rango de números de AS para que coincidan con un solo número de AS |
123–125 |
1 2 3 124 125 |
[123–125]* |
Ruta de AS nula 1 2 3 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 puede 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 la no existente, cuyo segundo número de AS puede ser cualquier cosa, incluido el no existente |
. .*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 ocurrencia 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 de número de AS 1, seguidas de una o más ocurrencias de número de AS 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 comienza con los números de AS 4, 5, 6 |
4 5 6 .* |
4 5 6 4 5 6 7 8 9 |
Ruta de cualquier longitud que termina con números de AS 4, 5, 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 |
Configuración de una ruta de AS nula
Puede usar expresiones regulares de ruta del AS para crear una ruta de AS nula que coincida con rutas (prefijos) que se hayan originado en el AS. No se han anunciado estas rutas al AS por ningún par externo. Para crear una ruta de AS nula, utilice el operador entre paréntesis entre comillas sin espacios intermedios:
[edit policy-options] as-path null-as “()";
En el ejemplo siguiente, el AS 2 administrado localmente se conecta 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 rutas del AS 3 al AS 1 y, por lo tanto, permitir el tránsito de tráfico del AS 1 al AS 3 a as 2. Para evitar el tráfico de tránsito, la política only-my-routes de exportación se aplica al AS 1. Permite la publicidad de rutas del AS 2 al AS 1, pero impide el anuncio de rutas del 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 la ruta del AS
Las expresiones regulares de ruta del AS implementan las expresiones regulares extendidas (modernas) tal como se definen 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 del AS y no un carácter individual.
Una expresión regular solo coincide con una ruta si la ruta del AS de la ruta coincide
regular-expressionexactamente. La expresión regular equivalente de UNIX es^regular-expression$. Por ejemplo, la expresión1234regular de la ruta del 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
Hacer coincidir exactamente las rutas con la ruta del AS 1234 56 78 9 y aceptarlas:
[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;
}
}
}
Hacer coincidir rutas alternativas a un AS y aceptarlas 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 aceptarlas 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;
}
}
}
