Introduccion a BGP

BGP
BGP o Border Gateway Protocol es un protocolo mediante el cual se intercambia información de enrutamiento entre sistemas autónomos. Por ejemplo, los ISP registrados en Internet suelen componerse de varios sistemas autónomos y para este caso es necesario un protocolo como BGP.

Entre los sistemas autónomos de los ISP se intercambian sus tablas de rutas a través del protocolo BGP. Este intercambio de información de encaminamiento se hace entre los routers externos de cada sistema autónomo. Estos routers deben soportar BGP. Se trata del protocolo más utilizado para redes con intención de configurar un EGP (external gateway protocol)

La forma de configurar y delimitar la información que contiene e intercambia el protocolo BGP es creando lo que se conoce como sistema autónomo. Cada sistema autónomo (AS) tendrá conexiones o, mejor dicho, sesiones internas (iBGP) y además sesiones externas (eBGP).

El protocolo de gateway fronterizo (BGP) es un ejemplo de protocolo de gateway exterior (EGP). BGP intercambia información de encaminamiento entre sistemas autónomos a la vez que garantiza una elección de rutas libres de bucles. Es el protocolo principal de publicación de rutas utilizado por las compañías más importantes de ISP en Internet. BGP4 es la primera versión que admite encaminamiento entre dominios sin clase (CIDR) y agregado de rutas. A diferencia de los protocolos de Gateway internos (IGP), como RIP, OSPF y EIGRP, no usa métricas como número de saltos, ancho de banda, o retardo. En cambio, BGP toma decisiones de encaminamiento basándose en políticas de la red, o reglas que utilizan varios atributos de ruta BGP.

Existen cuatro tipos de mensajes BGP:
OPEN: Se utiliza para el establecimiento de una sesión BGP una vez haya sido establecida la conexión TCP. Se suelen negociar ciertos parámetros que caractericen a esa sesión. Por ejemplo es muy posible que los miembros de la sesión no tengan la misma versión de BGP por lo que es importante indicar el número de versión en este mensaje.

UPDATE: Es un mensaje de actualización, es un mensaje clave en las operaciones de BGP ya que contiene los anuncios de nuevos prefijos. Se generarán mensajes de actualización cada vez que se determine una nueva mejor ruta para cierto destino o haya una modificación sobre alguna existente.

KEEPALIVE: Una vez que la sesión BGP está activa se envía periódicamente un mensaje KEEPALIVE para confirmar que el otro extremo sigue estando activo en la sesión BGP. Generalmente se acuerda un tiempo máximo de espera (hold time) durante el intercambio inicial de mensajes OPEN. El KEEPALIVE suele ser aproximadamente una vez cada tercio del tiempo de espera, pero no más de una vez cada segundo. Los mensajes KEEPALIVE no se deben generar si el tiempo de espera es cero ya que en ese caso se entiende que la sesión es completamente fiable.

NOTIFICATION: Se envía al cerrar una sesión BGP y ésto sucede cuando ocurre algún error que requiera el cierre de la misma. De modo que es un mensaje que permite informar de los errores.

Ingeniería de tráfico
La ingeniería de tráfico en BGP es el modo en que se gestiona la red a partir de los atributos con los que cuenta dicho protocolo para satisfacer determinadas características o imposiciones de un escenario BGP.
Se definen características para el tráfico saliente y para el entrante, siendo este último algo más difícil de controlar. De modo que esta gestión de la red se hace a partir de la selección de las rutas que cualquier router va a propagar en una red y de las rutas que va a escoger como preferentes y alternativas.

Para ello se cuenta con un conjunto de atributos que dan información para la toma de decisión para filtrar o seleccionar rutas. Se definen a continuación dichos atributos:

ORIGIN: Identifica el mecanismo por el cual por el cual se anunció el prefijo IP por primera vez. Se puede especificar como IGP (0), EGP(1) o INCOMPLETE(2). IGP indica que el prefijo IP se aprendió por un protocolo interior al sistema autónomo como por ejemplo OSFP. EGP indica que el prefijo IP se aprendió por un protocolo exterior como podría ser BGP, por ejemplo puede ser debido a que se ha realizado agregación. Generalmente si el ORIGIN es INCOMPLETE es porque se ha aprendido de forma estática. Si se quisiera decidir una selección de rutas en base a este prefijo se escoge la que tiene un valor de ORIGIN más bajo, es decir, se prefieren las rutas aprendidas por IGP antes que las de EGP y éstas ultimas antes que INCOMPLETE.

AS-PATH: Este atributo almacena una secuencia de números de AS que identifican la ruta de ASs por los que ha pasado el anuncio. Cada vez que un router de borde propaga una ruta hacia otro lado añade a este atributo su numero de AS constituyendo así la lista de ASs que se pretendía tener. La lista permanece intacta si se usa IBGP, es decir, si no se sale del sistema autónomo. Si se quisiera utilizar el AS-PATH como método de selección de rutas se escogería el que tuviera una lista AS-PATH más pequeña. Esto es una forma de medir que haya menos saltos hacia el destino aunque no es exactamente así porque no se tienen en cuenta los posibles saltos debidos a los routers dentro de un sistema autónomo.

NEXT-HOP: Identifica la dirección IP del router correspondiente al siguiente salto hacia el destino. Se debe tener en cuenta que un prefijo IP se anuncia fuera de un sistema autónomo, por lo que el next-hop es el destino que se conoce y al que hay que enviar el tráfico de los usuarios que quieran llegar a un destino final. La información del NEXT-HOP se procesa con los datos de tabla de encaminamiento IP. Ahora se contará con una tabla IP (con la que ya se contaba anteriormente) y con una tabla BGP que contendrá el NEXT-HOP para cada destino. Se obtendrá una ruta hacia el destino BGP pasando por los saltos que indique la tabla de encaminamiento IP. Si se quisiera seleccionar una ruta por este atributo se seleccionaría la que suponga menor coste hacia el NEXT-HOP, es decir, menor número de saltos hacia el NEXT-HOP.

MULTI-EXIT-DISCRIMINATOR (MED): Es un indicador diseñado para ser utilizado cuando desde un sistema autónomo existen múltiples enlaces hacia un mismo sistema autónomo. Se puede observar más fácilmente en la siguiente figura. 

Como puede verse desde un mismo sistema autónomo se realizan dos enlaces a otro sistema autónomo. Este atributo se puede utilizar para como balanceo de carga, de modo que hacia unos prefijos se tenga un valor de MED que haga preferente cierto prefijo y hacia otros prefijos se haga preferente otro diferente. Esta métrica es local entre dos sistemas autónomos, no se propaga fuera de ese ámbito. Si se quisiera seleccionar una ruta por medio de este atributo se consideraría preferida la que tuviese un valor de MED menor.

LOCAL-PREF: Este atributo es útil en un escenario en el que un sistema autónomo tiene conectividad con múltiples sistemas autónomos, de manera que pueda haber múltiples rutas hacia un mismo destino. Este atributo dará preferencia al envío de tráfico por un enlace en concreto, por tanto solo tendrá sentido dentro de un mismo sistema autónomo, luego solo se transmite por IBGP. Se escogerá el envío de datos por el enlace que tenga un LOCAL-PREF más alto, siendo el LOCAL-PREF por defecto de valor 100.

COMMUNITY: Se puede gestionar la distribución de información de routing a un grupo de destinatarios llamados COMMUNITIES. La idea es que una vez sustrito a un grupo de destinatarios se les pueda aplicar una política de routing concreta. De ese modo se simplifica el trabajo agregando información de routing así como se proporciona una herramienta para tener un entorno más vigilado en la red. Se consigue mediante un número que actúa como una etiqueta que califica a la ruta.

Sincronización de BGP
Por defecto la sincronización de BGP está habilitada en los routers Cisco.
El proposito de la sincronización es que el AS proporcione transito a otro AS: BGP no debe de anunciar una ruta hasta que todas las rutas del AS no se hayan aprendido por IGP.
Es posible desactivar la sincronización de BGP para acelerar el proceso de convergencia (BGP no tiene que esperar al IGP). Esto sólo se puede hacer si el AS no es de transito o si todos los routers corren BGP.
La sincronización podemos deshabilitarla con el comando no bgp synchronization.

Ver Guia de configuracion BGP

Tags: 

Predefined Sections

Seccion Cisco   Seccion Linux   Seccion Microsoft   Seccion Redes   Seccion Seguridad   Seccion General