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.
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
Publicar un comentario