Introducción al atributo AS-PATH
AS-PATH es un atributo obligatorio bien conocido que describe los AS a través de los cuales una ruta pasa del dispositivo local al destino. El atributo AS-PATH tiene dos funciones importantes: prevenir los loops entre los AS y elegir una ruta óptima. Si un Router recibe una ruta BGP en la que el atributo AS-PATH contiene el número AS del Router, sabe que se produce un loop y, por lo tanto, ignora la información de actualización de la ruta. AS-PATH también se puede utilizar para la selección de ruta. AS-PATH es en realidad una lista de números AS y, por lo tanto, tiene una longitud. Cuando se utiliza AS-PATH como regla general para la selección de ruta BGP, un AS-PATH más corto indica una mejor ruta, ya que indica un número menor de saltos hacia el destino.
Como se muestra en la figura anterior, hay una ruta 10.1.1.0/24 en el AS 500, y esta ruta es transmitida por el ASBR (no se muestra en la figura) a sus peers EBGP R1 y R3. Al transmitir la ruta desde AS 500, el ASBR adjunta el atributo AS_PATH, con el valor 500, a la ruta. R1 recibe la ruta y la actualiza a su igual R2 de IBGP. Como la ruta no se transmite fuera de AS 100, AS_PATH no cambia y el valor sigue siendo 500. R2 envía la ruta a su par EBGP R5. Debido a que la ruta necesita ser transmitida fuera de AS 100, R2 inserta un número 100 al frente de la lista AS_PATH de la ruta. De esta manera, el atributo AS_PATH de la ruta BGP 10.1.1.0/24 enviado por R2 a R5 se convierte en una lista (100,500). Después de que R5 recibe la ruta, sabe que el tráfico a 10.1.1.0/24 debe enrutarse a través de dos AS: AS 100 y luego AS 500.
De manera similar, R5 también recibe el mensaje de actualización acerca de 10.1.1.0/24, con AS_PATH siendo 300 200 500. R5 sabe que 10.1.1.0/24 puede alcanzarse a través de AS 300, pero se requieren otros dos AS en esta ruta.
Un Router BGP agrega su número AS a la lista AS_PATH solo cuando se envía un mensaje de actualización a sus peers EBGP. Esto significa que si se desea modificar el atributo AS_PATH, debe configurar la política relacionada en el ASBR. La política para modificar el atributo AS_PATH del peer IBGP no es válida. (Esta restricción no se aplica a los dispositivos Huawei).
Cuatro tipos de atributo AS-PATH
AS_SET: registra en orden aleatorio todos los AS a través de los cuales una ruta pasa del dispositivo local al destino.
AS_SEQENCE: registra en orden inverso todos los números de los AS a través de los cuales una ruta pasa del dispositivo local al destino.
AS_CONFED_SEQUENCE: un tipo AS_PATH único dentro de una confederación BGP, que registra en orden inverso todos los sub-AS a través de los cuales pasa una ruta desde el dispositivo local hasta el destino. Este atributo es el mismo que AS_SEQUENCE, excepto que los AS en la lista AS_CONFED_SEQUENCE pertenecen a la confederación local.
AS_CONFED_SET: un tipo AS_PATH único dentro de una confederación, que registra en orden aleatorio todos los sub-AS dentro de una confederación BGP a través de los cuales una ruta pasa del dispositivo local al destino. Este atributo es el mismo que AS_SET, excepto que los AS en la lista AS_CONFED_SET pertenecen a la confederación local.
Los cuatro tipos se distinguen por el código de tipo en el atributo AS_PATH. Lo siguiente ilustra los dos primeros tipos de AS_PATH.
AS_SEQENCE es fácil de entender. En la figura anterior, cuando no se configura una política, el tipo de AS_PATH transportado en la ruta BGP transmitida a R4 es AS_SEQENCE, que es una lista de números AS ordenados. Cuando R4 recibe el mensaje de actualización de ruta con el AS_PATH siendo 300 100, R4 sabe que el tráfico debe enrutarse a través del AS 300 y luego el AS 100 antes de llegar al destino.
Como se muestra en la figura anterior, R1 anuncia rutas específicas 172.16.1.0/24 y 172.16.2.0/24 a R3, y R2 anuncia rutas específicas 172.16.10.0/24 y 172.16.11.0/24 a R3. Estas rutas se anuncian a R3. Las rutas se resumen manualmente en R3, y la ruta de resumen es generada por R3 y enviada a R4. El AS_PATH de la ruta de resumen es 300, y los atributos AS_PATH de las rutas específicas se pierden. Si hay conexiones EBGP entre R4 y R1 o R2, se produce un loop de enrutamiento cuando R1 y R2 reciben la ruta resumida y aceptan la actualización de la ruta. El loop se produce porque la ruta de resumen no contiene ninguna información sobre AS 100 y AS 200.
Para evitar el loop, los valores AS_PATH de rutas específicas deben mantenerse en la ruta de resumen, sin ningún requisito en la secuencia de los números AS. Si la palabra clave as-set se agrega al comando aggregate, la ruta de resumen generada hereda algunos atributos de ruta de las rutas específicas, incluido el valor del atributo AS_PATH. De esta manera, la ruta de resumen generada en R3 lleva dos tipos AS_PATH. Uno es AS_Seq, con el valor 300. El otro es AS_set, que contiene dos números AS, {100,200}, ordenados al azar. El AS_PATH recibido por R4 es 300 {100,200}. Tenga en cuenta que los números AS en las llaves se consideran un salto durante la selección de ruta basada en AS_PATH.
AS_PATH Tipo 2: AS_SEQENCE
La figura anterior muestra solo la configuración básica de BGP. R1 anuncia las rutas 170.16.1.0/24 y 170.16.2.0/24, y estas rutas no están resumidas. R4 recibe las rutas 170.16.1.0/24 y 170.16.2.0/24. En el mensaje de actualización de BGP que se muestra a continuación, el valor de la ruta AS es 300 100. AS_SEQUENCE indica que se trata de una lista de AS ordenada.