Ya hemos comentado como funciona BGP en los anteriores artículos dando detalles de los atributos BGP más importantes y lo que hacen. Si has trabajado o estudiado el protocolo de enrutamiento dinámico BGP con anterioridad, seguramente sabrás lo que es un route reflector. Un route reflector es un router que envía actualizaciones a routers clientes.
Cuando un cliente envía una actualización al route reflector, es enviado a su vez o reflectado a otros clientes. El route reflector es el único router que es configurado en un grupo de routers con varios clientes. Un cliente es un router que recibe actualizaciones de rutas de un route reflector que este a su vez ha aprendido de otro cliente. Por tanto, tanto el cliente como el route reflector forman una unidad que comparte información.
Esta unidad forma lo que se llama cluster. Un sistema autónomo puede ser dividido en clusters y tienen que haber al menos un route reflector por cluster, ya que de otro modo los clientes no recibirán las actualizaciones reflectadas de ellos.
En este escenario, el route reflector y el cliente ya no necesitan tener un una conexión completa de vecindad, ya que hay un intercambio de rutas con otros clientes mediante el route reflector. El hecho es que un route reflector puede estar conectado a otros routers vecinos (peers) de los que no está recibiendo rutas. Estos son routers vecinos normales, aunque desde el punto de vista del route reflector, no son clientes.
Los no clientes deben estar totalmente interconectados con el route reflector y entre ellos. Los route reflector conectan con otros route reflectors, los cuales si deben estar totalmente interconectados debido a la regla BGP de propagar rutas que no estén definidos en el comando network. Esto es para asegurarse que la tabla de ruta iBGP esté completa.
Cuando un route reflector envía una actualización, el atributo de origen es configurado. Este es el identificador BGP del router que originó el camino a seguir. El propósito de este atributo es por si recibe la actualización, podrá ver su propio número de identificación e ignorará el paquete. Esto previene de la posibilidad de un bucle de routing. Si hay múltiples route reflector en el cluster para proveer de redundancia, entonces el router originador es identificado por el atributo Cluster-ID. Esto sirve para el mismo propósito que el otro atributo (Originator-ID) a la hora de prevenir bucles de routing.
Hay algunas reglas por las que los route reflector propagan actualizaciones. Si un route reflector recibe varias posibles rutas al mismo destino, elige el mejor camino. Si la ruta es recibida por un cliente, entonces el route reflector envía la actualización a clientes y a no clientes, excepto para el originador de la ruta. Si la ruta es recibida de un no cliente, entonces el route reflector reflecta la actualización solo a los clientes.
Si la ruta es recibida del protocolo eBGP, entonce la ruta es reflejada a todos los clientes y no clientes. Por lo tanto y para resumir lo que hemos visto, lo que más nos encontraremos si alguna vez tenemos que trabajar con route reflectors, son las siguientes denominaciones y términos:
- Router reflector – Este es el router que es configurado para enviar rutas de otros clientes iBGP. Esto elimina la necesidad para tener una red iBGP completamente interconectada, lo cual ayuda a ahorrar recursos de red.
- Cliente – Un cliente es un router que tiene una sesión TCP con su vecino iBGP. Envía rutas al route reflector, el cual las propaga a otros routers. El cliente no tiene conexiones con otros clientes.
- Cluster – Un cluster es un grupo de route reflector y clientes. Puede haber más de un route reflector dentro del cluster.
- Cluster-ID – Es otro atributo usado en la configuración de route reflectors. Si el cluster tiene más de un route reflector, este atributo es usado para reconocer actualizaciones de otros route reflectors dentro del cluster.
- Originator-ID – Es creado por el route reflector. Este atributo contiene el identificador del router (Router ID) que originó la ruta en la actualización. Es para prevenir bucles de routing. Si un router que ha enviado una actualización recibe la misma que ha enviado, simplemente la ignora.
Por supuesto, hay muchas opciones a la hora de configurar un route reflector al igual que BGP en su totalidad. Normalmente se configuran filtros mediante prefix-lists para controlar las actualizaciones de routing, lo cual puede ser algo complejo si no se tiene experiencia, pero eso lo dejaremos para otro artículo.
Como se ha podido comprobar, BGP es un protocolo completo y muy útil para manejar el enrutamiento en redes grandes, sobre todo en Internet. Para saber más sobre este extenso protocolo, la Web de Cisco tiene mucha información sobre su funcionamiento y configuración.