BGP multirruta con diferentes ASN factibles para las redes de producción?

15

en Cisco (este comando está oculto por alguna razón)

#bgp bestpath as-path multipath-relax

El comportamiento BGP predeterminado solo instala solo rutas con exactamente el mismo AS_PATH en RIB. Con multipath-relax, el AS_PATH solo necesita ser de la misma longitud.

¿Qué problemas puede causar potencialmente? ¿Por qué no se usa con más frecuencia?

Como proveedor de tránsito, ¿esta característica complica la resolución de problemas (estoy pensando en las quejas de los usuarios finales sobre el rendimiento de la red)? ¿Hace que sea más difícil saber la ruta que tomó el tráfico específico en un momento dado? ¿Hay algo más que pueda ayudar a solucionar problemas? No estoy seguro acerca de la escalabilidad y el costo de NetFlow en la red SP.

sdaffa23fdsf
fuente
1
He dado instrucciones a varios clientes para que lo usen, no he oído hablar de ningún problema. draft-lapukhov-bgp-routing-large-dc-05 depende en gran medida de esta característica
ytti
Estoy buscando una función similar en Juniper JunOS ... ¿Hay alguna? networkengineering.stackexchange.com/questions/6735/…
Everton
¿Alguna respuesta te ayudó? Si es así, debe aceptar la respuesta para que la pregunta no siga apareciendo para siempre, buscando una respuesta. Alternativamente, puede proporcionar su propia respuesta y aceptarla.
Ron Maupin

Respuestas:

15

bgp bestpath as-path multipath-relaxfue introducido por CSCea19918. Normalmente, el equilibrio de carga de eBGP requiere que las rutas candidatas sean rutas de igual costo; es decir, atributos BGP idénticos:

  • mismo peso
  • mismo Local-Pref
  • misma ruta AS (tanto los números AS como la longitud de la ruta AS)
  • mismo origen
  • mismo MED
  • diferente siguiente salto

Como mencionó, este comando relaja el mismo requisito de AS-Path, por lo que cualquier candidato AS-Path eBGP con la misma longitud de AS-path podría usarse para el equilibrio de carga de eBGP (esto no equilibrará la carga entre las rutas eBGP e iBGP). Si ejecuta BGP entre múltiples ISP y está buscando un mejor equilibrio de carga de salida entre sus conexiones ascendentes, esto puede ayudarlo.

¿Qué problemas puede causar potencialmente?

No hay mucho peligro mientras sea un cliente empresarial que no brinde servicio de tránsito a otro ASN; para un proveedor de tránsito puede ser perfectamente seguro, pero no puedo estar seguro de que no haya bucles de enrutamiento si un ASN de tránsito usa esta función . Al principio, pensé que fácilmente habría un bucle en los casos de ASN en tránsito, en una reflexión más profunda no puedo encontrar un problema real.

¿Por qué rara vez se usa?

Buena pregunta, ha existido desde al menos 2005.

Mike Pennington
fuente
1
¿Podría explicar cómo puede causar bucles con #bgp bestpath as-path multipath-relax (no ignorar #bgp bestpath as-path)?
sdaffa23fdsf
0
The   basic  issue   is   that  the   BGP   speaker  configured   with
"multipath-relax"   gets  into   a  control   plane  <->   data  plane
inconsistency; i.e.  it advertises  only the  best path,  but installs
multiple paths in the forwarding  that have different ASPATHs than the
best. This breaks the basic tool BGP has to detect loops - ASPATH loop
check.

A (distorted) scenario below. I am sure you can come up with
a better example with a bit more time at hand.

            ...............
            : R4  AS1 (10/8)
           /:..............
     ..../......
     :  R5 AS2
     :....\.....
       /   \  ...............
     /      --:--R1
  R6 AS4      :    \    AS3
     \--------:--- R2
              :    /
              : R3 (10/8)
              :..............

In this example,
- R3 in AS3 and R4 in AS1 announce a prefix 10/8. R5 in AS2 receives
  the prefix from R1(AS3) and R4(AS1).
- AS2 is configured with 'multipath-relax' and chooses both paths
  for multipath forwarding, though it selects AS1's path as best.
- R5 advertises the prefix with AS_PATH "2 1" to R6, and R6 in turn
   to R2.
- Because of some specific policy, it is possible that R2(AS3)
  chooses R6's path as best. If it happens, there is a loop.
  Note that R1-R2-R3 represents the physical connectivity of
  the routers in AS3.
Pradosh Mohapatra
fuente
Gracias por el ejemplo ¿Quiere decir que R3 selecciona R4 como la mejor ruta para 10/8, R5 reenvía parte del tráfico a 10/8 de regreso a AS3 en R1? ¿Por qué es esto causado por multipath-relax? Sin multipath-relax, el bucle R2 - R6 - R5 - R1 aún puede existir si no hay un filtrado de salida adecuado (o simple 10/8 a null0 en el AS de origen). Me parece que el problema aquí es el secuestro de BGP. ¿Lo estoy entendiendo mal?
sdaffa23fdsf
No. Lo que quiero decir es: (a) R3 tiene su mejor camino externo, (b) R1 elige a R3 como el mejor, pero debido a la conectividad física, tiene que enviar tráfico hacia R2 para llegar a R3, (c) R2 selecciona la ruta externa (recibida de R6) como la mejor. Esto está relacionado con la relajación de múltiples rutas, ya que R5 elige una ruta de AS3 para el reenvío de múltiples rutas que no revela. Por lo tanto, la técnica de prevención de bucles ASPATH falla en AS3.
Pradosh Mohapatra
Todavía no entiendo cómo podría prevenirse esto sin la relajación por trayectos múltiples. R1 envía tráfico a 10/8 a través de R2 y R2 elige R6 como salida (peso), R5 puede elegir R1 como el mejor para 10/8 incluso sin relajación de trayectos múltiples y causar un bucle. ASPATH loop prevent no puede evitar los bucles causados ​​por preferir un punto de salida externo para la red interna. Si R1 elige R5, R2 elige R6 como el mejor para 10/8, el bucle se forma independientemente, ¿no?
sdaffa23fdsf
No estoy seguro de cómo sería un bucle. R1 elige a R5 como el mejor => implica que R5 elige a R4 como la salida para el tráfico (de lo contrario, se habría detectado un bucle AS_PATH). Por lo tanto, las rutas de flujo de tráfico serán: R1-> R5-> R4 o R2-> R6-> R5-> R4 o R5-> R4 o R3.
Pradosh Mohapatra