Protocolo de Puerta de Enlace (BGP)

Border Gateway Protocol 
(BGP)


      1.      INTRODUCCIÓN


Protocolo de enlace de puerta frontera o Border Gateway Protocol es un protocolo complejo usado para la interconexión de redes conectadas por una red troncal.

Dicho protocolo, usa pares de punto a punto con otros enrutadores configurados con BGP y son los administradores de red quienes crean estos pares manualmente.
Su función más relevante es el intercambio de información entre sistemas autónomos, que son un conjunto de routers bajo una misma política de rutas propias e independientes.
Y se puede distinguir entre:
-          BGP externo (eBGP): entre sistemas autónomos.
-          BGP interno (iBGP): dentro del sistema autónomo.


Ilustración 1. Ejemplo de Topología BGP

2.      CARACTERÍSTICAS

  • Usa TCP (en el puerto 179) como protocolo de transporte para conseguir entregar la información de forma fiable.
  • BGP soporta VLSM, CIDR y sumarización.
  • Aprende rutas para que un router sepa hacia donde encaminar un paquete y las incorpora en la tabla BGP una vez aprendidas.
  • Anuncia rutas, es decir comunica que se está haciendo uso de las redes. No basta sólo con tener la ruta en la tabla BGP, sino también se debe tener en la tabla de ruteo.
  • Routers vecinos, se establece entre un par de routers una sesión TCP abierta para el intercambio de información de ruteo BGP.
  • Poseen muchas organizaciones (redes).
  • La versión actual del protocolo es la 4 y viene definido en la RFC4271.
  • No interesa comunicar un conocimiento de cada subred, si no usar suficiente información para encontrar un sistema autónomo.
2.1.                       Mensajes

BGP usa sus propios mensajes, en vez de RIP, para establecer la conexión e intercambiar información entre routers cercanos y no tan cercanos.
Existen 4 tipos de mensajes:
-          Open: Cuando dos enrutadores BGP hayan completado un protocolo de enlace TCP, se procederá a establecer una sesión BGP por medio de mensajes abiertos. Dichos mensajes abiertos contienen la información del enrutador.
-          Update: Cuando dos enrutadores se han convertido en vecinos de BGP, se procederá intercambiar información por medio de mensaje de actualización. Dichos mensajes de actualización contienen información sobre los prefijos que se anuncian.
-          Keepalive: Cuando no existen rutas para anunciarse o retirarse, se usan mensajes de actividad periódica. Por defecto, BGP envía mensajes de keepalive, cuando un vecino de BGP remoto pierde 3 keepalives, vaciará las rutas del vecino BGP.
-          Notification: Es usado si ocurre un error que hará que la sesión finalice.

Todos estos mensajes poseen un tamaño variable entre 19 y 4096 bytes dependiendo del TCP/IP usado, del secuenciamiento y de la fragmentación, la cabecera que usan tiene un tamaño fijo de 19 bytes:

-       Un campo de Marcado (Marker) de 16 bytes: para detectar la pérdida o autenticación de mensajes entrantes.
-          Un campo longitud (Length) de 2 bytes.
-          Un campo de 1 byte indicando qué tipo de mensaje es.


2.2.                       Atributos para la selección de rutas

Las métricas usadas en BGP, llamadas atributos, permiten la selección del camino.
A través de estos atributos es posible manipular el flujo de tráfico, esto quiere decir que una ruta no puede enviar trafico si el siguiente salto no quiere.
Se encuentran en el mensaje UPDATE para elegir la mejor ruta hacia un destino.

Los atributos se clasifican en 4 grupos:

Well-Known Mandatory (WKM): son atributos requeridos y deben ser reconocidos por
todas las implementaciones de BGP.

-          NEXT_HOP: identifica la dirección IP del router correspondiente al siguiente nodo para llegar al destino.


Ilustración 2. Ejemplo del atributo NEXT-HOP

-          AS_PATH: cada AS añade su número ASN en este atributo para cada una de las rutas que aprende antes de reenviarlas para que así este atributo contenga una lista con los números de los AS que el anuncio de ruta ha atravesado para llegar al destino.


Ilustración 3. Ejemplo del atributo AS_PATH

También sirve para la detección de bucles y para el filtrado de rutas según las políticas de encaminamiento.

-          ORIGIN: indica la forma por la que se ha aprendido la ruta.
§  “i” si la ruta ha sido aprendida por un protocolo IGP.
§  “e” si se ha aprendido por un protocolo EGP.
§  “?” en el caso de que el origen sea desconocido o se haya aprendido de una forma desconocida.

 Well-Known Discretionary (WKD): son atributos no requeridos, pero en el caso de estar
en el mensaje, deben ser reconocidos por todos los routers que implementen BGP.

-          LOCAL_PREFERENCE: es un parámetro local a un AS y sirve para ponderar la prioridad de las rutas que se anuncian internamente en el AS mediante I-BGP, así, se podrá configurar la preferencia de las rutas que han sido anunciadas desde el exterior hacia el interior.
Este atributo se tiene en cuenta antes que el AS_PATH a la hora de seleccionar la mejor ruta hacia un destino.

Ilustración 4. Ejemplo del atributo LOCAL_PREFERENCE

-          ATOMIC AGGREGATE: indica que la ruta correspondiente se ha obtenido mediante la agregación de rutas más precisas.

Optional Transitive (OT): el router no tiene que reconocer este tipo de atributos, pero si
lo hace, se debe actualizar y enviar esta información al siguiente router.

-          AGGREGATOR: indica el AS que ha formado la ruta agregada y la dirección IP del router en el que se ha realizado esta agregación.

-          COMMUNITY: es opcional y permite agrupar los destinos en comunidades de destino para ayudar a escalar la aplicación de decisiones de encaminamiento. Cada destino puede ser miembro de varias comunidades.

Optional Nontransitive (ON): este tipo de atributos si los recibe un router que no
entiende o no le reconoce son eliminados.

-          MULTI EXIT DISCRIMINATOR (MED): se usa sólo cuando se tengan dos AS multiconectados. Selecciona una ruta en el caso de que se reciban por E-BGP varias rutas iguales anunciadas desde el mismo AS por varios enlaces. De este modo, al configurar los routers en el AS que envía los mensajes, se da privilegios a un enlace respecto a otro para anunciar una ruta si se configura un valor del atributo MED más bajo para dicha ruta.
Ilustración 5. Ejemplo del atributo MED

Como se ha comentado, al hacer uso de estos atributos, se pueden seleccionar rutas, pero se debe imponer un orden de preferencia.
Cuando se selecciona una ruta como la mejor para el destino, esta se guarda en la tabla de encaminamiento del router, haciéndola llegar a los vecinos BGP, cuando se tenga que escoger entre dos rutas, se tienen en cuenta los siguientes criterios:

1-      Se ignora la ruta si el NEXT_HOP es inaccesible.
2-      Se escoge una ruta con el valor más grande de WEIGHT. (Criterio específico para los routers Cisco).
3-      Se eligen las rutas con mayor LOCAL_PREF y se eliminan las rutas con el valor menor de este atributo.
Si se tiene el mismo valaor de LOCAL_PREF se escoge la ruta que ha sido originada en el propio router.
4-      Se escoge la ruta con el mínimo número de AS_PATH, eliminando las rutas más largas.
5-      Se elige la ruta según el modo en que se aprendió, es decir, con menor ORIGIN y se eliminan las rutas con ORIGIN más alto.
6-      Se escogen las rutas con menor MED, en el caso de que se tenga el mismo origen para la ruta.
7-      Se elige una ruta aprendida por E-BGP antes que una aprendida por I-BGP.
8-      Se escoge la ruta de IGP METRIC más próxima a NEXT-HOP.
9-      Ruta hacia el router BGP con la dirección IP más pequeña.

3.      CASOS PRÁCTICOS

También es utilizada por grandes proveedores de servicios de Internet (ISP) para mover la información de prefijo entre otros proveedores.
Por ejemplo, una empresa tiene alquilada una línea a Telefónica-Data.
Esta empresa no hace BGP y seguramente los routers que se encuentren más cercanos, tampoco usarán BGP, pero sí los que interconecten Telefónica-Data con Hispanix (punto neutro de interconexión en España).
Otro caso donde aparece un fallo en el BGP es, por ejemplo, cuando una persona envía un correo electrónico desde Madrid a Montevideo, los sistemas de su proveedor de Internet buscaran el camino más rápido para que este e-mail llegue al destinatario.
Alguien con el equipo necesario podría engañar al router del proveedor haciéndole creer que ese es el camino más corto, esta información llegará al destinatario, pero el usuario intermedio podría monitorizar los datos.
La solución que se propone para este ejemplo es la siguiente, cifrar los datos enviados haciendo uso de un cortafuegos (firewall), un antivirus y fundamental saber algo sobre el sistema operativo que se está usando.

4.      CONCLUSIÓN

Se puede concluir que el BGP es un protocolo bueno y adecuado para establecer la conexión entre dos sistemas autónomos usando cualquier tipo de topología de red.
Además de evitar las cuentas al infinito entre otros.
Es importante destacar que tiene numerosos problemas de seguridad y dada la importancia del uso de Internet en nuestra sociedad, varias empresas muestran interés en realizar un BGP seguro.

5.      BIBLIOGRAFÍA


Comentarios

Entradas populares de este blog

Multiplexación y conmutación en redes de acceso de banda ancha

Sistema de Señalización nº7 (SS7)

INTERNET PROTOCOL VERSION 6 (IPv6)