BGP Remove-private (Parte 2 - Diferentes implementaciones)



Continuando con la entrada anterior, en esta veremos cómo funciona BGP remove-private según las diferentes implementaciones en Cisco IOS, IOS-XR y Juniper.

El escenario se complica cuando tenemos AS Path algo más complejos como vemos en el dibujo. Aquí sí vamos a ver variaciones según la implementación de remove-private en el PE B.


En la imagen vemos que sólo en Cisco IOS-XR se ha eliminado el número de AS privado, mientras que en Cisco IOS y Juniper se ha mantenido. ¿Por qué sucede esto? Veamos qué dice la documentación de cada fabricante:
  •  Cisco IOS: Sólo borra los números de AS privados en el caso de que en el AS-Path no haya ninguno público. “If the AS_PATH includes both private and public AS numbers, BGP doesn't remove the private AS numbers. This situation is considered a configuration error.”
  • Cisco IOS-XR: Borra los números de AS privados incluso si hay públicos en el AS-Path. “The remove-private-as command removes private AS numbers from the AS path even if the path contains both public and private ASNs.” (ver página 60 del documento enlazado).
  • Juniper: El algoritmo recorrerá de izquierda a derecho el AS-Path eliminando los números de AS Privados hasta encontrar alguno público. Como vemos, la implementación no es idéntica a la de IOS, aunque en este caso el resultado haya sido el mismo. “The AS numbers are stripped from the AS path starting at the left end of the AS path (the end where AS paths have been most recently added). The routing device stops searching for private ASs when it finds the first nonprivate AS or a peer’s private AS.”

En determinadas ocasiones necesitaremos igualar el comportamiento del remove-private entre implementaciones, como por ejemplo en el caso de tener equipos redundantes cuya versión no sea la misma y que nuestro diseño de routing utilice MED para decidir cuál es principal y cuál es backup.

Cómo igualar remove-private: IOS-XR y Juniper


En este caso añadiremos a la configuración del equipo Juniper el parámetro “all”, que hace que el comportamiento sea el mismo que en IOS-XR, es decir, elimina todos los números de AS privados independientemente de si hay AS públicos.



Cómo igualar remove-private: IOS-XR e IOS
En este caso podemos igualar el comportamiento, pero haremos el remove-private en IOS-XR tan restrictivo como en IOS. Es decir, añadiremos el parámetro entire-aspath al equipo IOS-XR, de forma que sólo se eliminen los números de AS privados en caso de que no haya ninguno público.



En este último caso, podría parecer que nuestra configuración no es correcta, ya que estaríamos anunciando la ruta con el AS 65000 en el path, de forma que no tendríamos visibilidad entre las sedes. Sin embargo, los acuerdos entre proveedores contemplan que de un proveedor a otro no se deben anunciar los números de AS privados, por lo que el proveedor A debería tener configurado remove-private en el router de la interconexión con el proveedor B. Asimismo, en la propia documentación de Cisco para IOS a este respecto esta situación se considera un error de configuración. 

Comentarios

Entradas populares