Introduccin
El Border Gateway Protocol juega un papel crtico en las comunicaciones en Internet. Facilita el intercambio de informacin sobre redes IP, la comunicacin entre sistemas autnomos (AS). Por tanto BGP es un protocolo interdominio (entre sistemas autnomos) e intradominio (dentro del mismo sistema autnomo). El protocolo BGP se utiliza para intercambiar informacin. El intercambio de informacin en la red se realiza mediante el establecimiento de una sesin de comunicacin entre los routers de borde de los sistemas autnomos. Para conseguir una entrega fiable de la informacin, se hace uso de una sesin de comunicacin basada en TCP en el puerto nmero 179. Esta sesin debe mantenerse conectada debido a que ambos extremos de la comunicacin peridicamente se intercambian y actualizan informacin. De modo que al principio, cada router enva al vecino toda su informacin de encaminamiento y despus nicamente se enviarn las nuevas rutas, las actualizaciones o la eliminacin de rutas transmitidas con anterioridad. Adems peridicamente se envan mensajes para garantizar la conectividad. Cuando una
conexin TCP se interrumpe por alguna razn, cada extremo de la comunicacin est obligado a dejar de utilizar la informacin que ha aprendido por el otro lado. En otras palabras, la sesin TCP sirve como un enlace virtual entre dos sistemas autnomos vecinos, y la falta de medios de comunicacin indica que el enlace virtual se ha cado. Cabe destacar que esa unin virtual tendr mas de un enlace fsico que conecte a los dos routers frontera, pero si una conexin virtual se cae no indica necesariamente que la conexin fsica se haya cado.
Desde este punto de vista la topologa de Internet se puede considerar como un grfico de conexin de sistemas autnomos conectados mediante enlaces virtuales. En la figura podemos ver seis sistemas autnomos llamados AS1, AS2, ..., AS6 conectados por enlaces virtuales. Es decir, que mantienen sesiones BGP sobre TCP para la comunicacin entre los sistemas autnomos. Cada sistema autnomo contiene una o ms redes que se identificaron como N1, N2 y N3 en AS1 y as sucesivamente. Simplemente observando la figura se puede mostrar que existe ms de una ruta posible entre dos sistemas autnomos determinados. Como tambin es posible tener uno o ms de un router de borde en el mismo sistema autnomo. Para la puesta en funcionamiento de la red anterior se debe proveer de un mecanismo de intercambio de rutas que permita comunicar correctamente ambos sistemas. El protocolo BGP utiliza el protocolo de vector de caminos (path vector) para el intercambio de informacin de enrutamiento en la red. Se transmite una lista con identificacin de los ASs por los que pasa el anuncio. De esa manera se conseguir saber cmo llegar a cualquier direccin del prefijo propagado as como se dispondr para cursar trfico para cualquier direccin del prefijo.
Antes de enunciar la mecnica de seleccin de rutas se deben introducir las dos formas de proceder cuando se cuenta con un escenario en el que implantar BGP. Se debe distinguir entre External BGP (EBGP) e Internal BGP (IBGP). EBGP hace referencia al intercambio de informacin entre sistemas autnomos sin embargo IBGP hace referencia al intercambio de informacin dentro de un sistema autnomo. Hasta ahora nos hemos centrado en EBGP pero para qu tipo de escenarios se destaca la importancia de IBGP? Podemos observar una figura como la siguiente, donde por ejemplo el sistema autnomo AS1 debe propagar tres prefijos IP (N1, N2 y N3) para que sean alcanzables desde otros sistemas autnomos. Adems estas tres redes debern establecer cierta poltica de decisin de rutas hacia otros sistemas autnomos. IBGP conforma una topologa virtual mallada de modo que todos los routers de un sistema autnomo se encuentren conectados para que el intercambio de rutas sea directo desde el router al que le llega el anuncio hacia todo los de su sistema autnomo.
Relaciones entre AS
Las relaciones que existen entre distintos sistemas autnomos son principalmente de peering y de trnsito. Bsicamente una relacin de trnsito es la que existe entre un proveedor y un cliente, de modo que el cliente pague por los recursos de Internet que le puede suministrar su proveedor. Las relaciones de peering no suelen se pagadas y consisten en un enlace para comunicar dos sistemas autnomos con el fin de reducir costes, latencia, prdida de paquetes y obtener caminos redundantes. Se suele hacer peering con sistemas autnomos
potencialmente similares, es decir, no se hace peering con un cliente potencial ya que saldra uno de los dos sistemas autnomos beneficiado. En la figura se muestra una topologa de red con diferentes tipos de relaciones. Los proveedores llamador Tier 1 son los que por definicin no pagan a otros proveedores y ofrecen servicio y conectividad a muy larga distancia. Los dems proveedores mostrados pagan al menos el trnsito con un Tier 1. Los clientes pagarn a los proveedores con los que tengan un enlace de trnsito.
BGP adems permite la agregacin de rutas de modo que las rutas manejadas por un router en concreto sean las menores posibles. Un escenario que se suele repetir es uno llamado Multihoming. Este trmino hace referencia a un cliente que contrata a dos proveedores de trnsito, lo que implica que existen dos rutas de salida, de modo que se deber decidir entre un camino u otro dependiendo de ciertas especificaciones, necesidades o simples polticas que se impongan en el sistema autnomo. Un ejemplo se puede ver en la figura prestando atencin a Cliente A. Las especificaciones pueden ser para balancear el trfico, para poner un enlace como preferido antes que otro (por ejemplo porque tenga ms velocidad), por tolerancia a fallos, etc. El manejo de estas prioridades es lo que se llama ingeniera de trfico y se consigue gracias a los atributos BGP que se definen en el protocolo.
Tipos de mensajes
Existen cuatro tipos de mensajes BGP que son los siguientes: OPEN: se utiliza para el establecimiento de una sesin BGP una vez haya sido establecida la conexin TCP. Se suelen negociar ciertos parmetros que caractericen a esa sesin. Por ejemplo es muy posible que los miembros de la sesin no tengan la misma versin de BGP por lo que es importante indicar el nmero de versin en este mensaje. UPDATE: Es un mensaje de actualizacin, es un mensaje clave en las operaciones de BGP ya que contiene los anuncios de nuevos prefijos. Se generarn mensajes de actualizacin cada vez que se determine una nueva mejor ruta para cierto destino o haya una modificacin sobre alguna existente. KEEPALIVE: Una vez que la sesin BGP est activa se enva peridicamente un mensaje KEEPALIVE para confirmar que el otro extremo sigue estando activo en la sesin BGP. Generalmente se acuerda un tiempo mximo 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 ms 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 sesin es completamente fiable. NOTIFICATION: Se enva al cerrar una sesin BGP y esto sucede cuando ocurre algn error que requiera el cierre de la misma. De modo que es un mensaje que permite informar de los errores.
Ingeniera de trfico
La ingeniera de trfico 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 caractersticas o imposiciones de un escenario BGP. Se definen caractersticas para el trfico saliente y para el entrante, siendo este ltimo algo ms difcil de controlar. De modo que esta gestin de la red se hace a partir de la seleccin 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 informacin para la toma de decisin para filtrar o seleccionar rutas. Se definen a continuacin dichos atributos: ORIGIN: Identifica el mecanismo 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 autnomo como por ejemplo OSFP. EGP indica que el prefijo IP se aprendi por un protocolo exterior como podra ser BGP, por ejemplo puede ser debido a que se ha realizado agregacin. Generalmente si el ORIGIN es INCOMPLETE es porque se ha aprendido de forma esttica. Si se quisiera decidir una seleccin de rutas en base a este prefijo se escoge la que tiene un valor de ORIGIN ms 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 nmeros 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 aade a este atributo su numero de AS constituyendo as la lista de ASs que se pretenda tener. La lista permanece intacta si se usa IBGP, es decir, si no se sale del sistema autnomo. Si se quisiera utilizar el AS-PATH como mtodo de seleccin de rutas se escogera el que tuviera una lista AS-PATH ms pequea. 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 autnomo. NEXT-HOP: Identifica la direccin 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 autnomo, por lo que el nexthop es el destino que se conoce y al que hay que enviar el trfico de los usuarios que quieran llegar a un destino final. La informacin 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 seleccionara la que
suponga menor coste hacia el NEXT-HOP, es decir, menor nmero de saltos hacia el NEXTHOP. MULTI-EXIT-DISCRIMINATOR (MED) Es un indicador diseado para ser utilizado cuando desde un sistema autnomo existen mltiples enlaces hacia un mismo sistema autnomo. Se puede observar ms fcilmente en la siguiente figura.
Como puede verse desde un mismo sistema autnomo se realizan dos enlaces a otro sistema autnomo. 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 mtrica es local entre dos sistemas autnomos, no se propaga fuera de ese mbito. Si se quisiera seleccionar una ruta por medio de este atributo se considerara preferida la que tuviese un valor de MED menor. LOCAL-PREF: Este atributo es til en un escenario en el que un sistema autnomo tiene conectividad con mltiples sistemas autnomos, de manera que pueda haber mltiples rutas hacia un mismo destino. Este atributo dar preferencia al envo de trfico por un enlace en concreto, por tanto solo tendr sentido dentro de un mismo sistema autnomo, luego solo se transmite por IBGP. Se escoger el envo de datos por el enlace que tenga un LOCAL-PREF ms alto, siendo el LOCAL-PREF por defecto de valor 100. COMMUNITY: Se puede gestionar la distribucin de informacin 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 poltica de routing concreta. De ese modo se simplifica el trabajo agregando informacin de routing as como se proporciona una herramienta para tener un entorno ms vigilado en la red. Se consigue mediante un nmero que acta como una etiqueta que califica a la ruta.
Seleccin de rutas
Todos estos atributos pueden ser utilizados conjuntamente para la seleccin de rutas, sin embargo se debe imponer un orden de preferencia de manera que si se tienen varias rutas que pueden ser preferente solo se elija una. Se recorrer la siguiente lista y se eliminarn las rutas que no empatan en el mejor valor de cada uno de los criterios. Se ha de tener en cuenta que los criterios de decisin de enrutamiento que incluyen normas de desempate se aplican a cada prefijo IP o conjunto de prefijos IP destino. 1. Si el siguiente NEXT-HOP no est disponible se ignora la ruta. 2. Eliminar las rutas con menor LOCAL-PREF. 3. Eliminar las rutas con AS-PATH ms largo. 4. Eliminar las rutas con ORIGIN ms alto. 5. Eliminar las rutas con mayor MED. 6. Eliminar las rutas aprendidas por IBGP si las hay aprendidas por EBGP. 7. Eliminar las rutas con mayor coste hacia el NEXT-HOP. 8. Preferir la ruta que ha anunciado el router con menor identificador BGP. 9. Preferir la ruta recibida desde el interfaz con menor direccin para el vecino. Las ltimas dos entradas de la lista son una forma de seleccin de rutas de alguna manera arbitrarias, ya que no indican una poltica regulada como tal por un administrador. Sin embargo es una manera que pone BGP para en el caso en que no se pueda decidir, se seleccione alguna ruta.