Qué es Border Gateway Protocol y por qué puede ser tan catastrófico un error en su funcionamiento | IT Masters Mag

Qué es Border Gateway Protocol y por qué puede ser tan catastrófico un error en su funcionamiento

El protocolo de ruteo Border Gateway Protocol (BGP) es uno de los principales responsables de que internet funcione. BGP permite que los sistemas autónomos (AS, por sus siglas en inglés) de los ISP intercambien información de manera segura con prefijos IP. BGP es muy complejo y difícil de configurar, forma parte de la familia de protocolos TCP/IP en la capa de aplicación. La primera versión de este protocolo apareció en 1989, pero no fue hasta la monumental caída de Facebook hace pocas semanas que muchos escucharon de él.

Publicado el 19 Oct 2021

BGP

El protocolo de ruteo Border Gateway Protocol (BGP) es uno de los principales responsables de que internet funcione. BGP permite que los sistemas autónomos (AS, por sus siglas en inglés) de los ISP intercambien información de manera segura con prefijos IP. BGP es muy complejo y difícil de configurar, forma parte de la familia de protocolos TCP/IP en la capa de aplicación. La primera versión de este protocolo apareció en 1989, pero no fue hasta la monumental caída de Facebook hace pocas semanas que muchos escucharon de él.

Es un protocolo interdominio, es decir, entre sistemas autónomos, e intradominio, dentro de las redes administradas por una sola empresa o proveedor de servicios. Los sistemas intercambian sus tablas de enrutamiento a través de BGP. La primera vez que se conectan, cada ruteador envía toda su información de encaminamiento a los ISP vecinos con los que debe intercambiar tráfico. Para hacerlo utiliza un algoritmo de selección que determina la mejor ruta en función de comandos y atributos especificados, después de eso solo manda las nuevas rutas, actualizaciones o la eliminación de rutas empleadas con anterioridad. Periódicamente se comunica con el resto de los sistemas para garantizar la conectividad.

Cómo funciona BPG

En una sesión BPG participan solo dos ruteadores, aunque una red puede tener muchas sesiones concurrentes. En la sesión BGP un AS informa a otro acerca de las redes que puede alcanzar a partir de él. BPG ofrece estabilidad a la red para que los ruteadores puedan adaptarse rápidamente en el envío de paquetes mediante re-conexiones si se cae una ruta de internet. Si una conexión TCP se interrumpe por alguna razón, cada extremo de la comunicación deja de utilizar la información que ha recibido del otro extremo.

La sesión TCP sirve como un enlace virtual entre dos sistemas autónomos vecinos, y cuando hay una falta de intercambio de comunicación significa que el enlace virtual se ha caído.

Para almacenar información de encaminamiento, el protocolo BGP necesita un conjunto de tablas de datos denominadas Routing Information Bases, RIB, de alguno de estos tres tipos:

  • Adj-RIB-in: En esta tabla se almacenan prefijos aprendidos de un vecino particular. Hay tantas tablas de este tipo como pares BGP.
  • Loc-RIB: Almacena las mejores rutas seleccionadas (prefijos + longitud máscara) que conoce el proceso BGP bien porque las ha obtenido de la tabla de encaminamiento (comandos network, agregate-address y redistribute), o bien porque se han aprendido por BGP (I-BGP o E-BGP), tras pasar los filtros de entrada. Estas rutas pueden ser anunciadas si la política de encaminamiento a la salida lo permite. Hay solo uno por cada AS.
  • Adj-RIB-out: Almacena prefijos para ser anunciados a otros vecinos. Esta tabla se construye a partir de las informaciones de la tabla Loc-RIB que han sido filtrados y cuyos atributos han sido modificados según configuración. Se tiene una tabla de este tipo por cada par BGP.

Mensajes del protocolo

Los mensajes que se intercambian en una sesión BGP sirven para informar acerca de nuevas rutas activas, para suprimir rutas que ya no están activas, para indicar la viabilidad actual de la conexión o para informar sobre la existencia de condiciones inusuales en la conexión TCP.

Los estados posibles son los siguientes:

  • Estado libre
  • En conexión: Uno de los extremos intenta una conexión TCP.
  • Activo: Cuando uno de los extremos no puede establecer conexión y lo reintenta periódicamente.
  • OpenSent: Un extremo envía un mensaje de identificación.
  • OpenConfirm: Se recibe respuesta al mensaje de identificación.
  • Stablished: Se aceptan las identificaciones. De aquí en adelante, la sesión se considera completamente activa.

Cada vez que se recibe un anuncio de ruta, el proceso BGP se encarga de calcular el grado de preferencia de cada ruta aprendida, elegir las mejores rutas para guardarlas en la tabla RIB-Loc y definir las rutas que van a ser anunciadas.

Las rutas BGP deben estar sincronizadas, es decir, estar en la tabla de encaminamiento de todos los ruteadores de un mismo AS. De manera que, BGP no anunciará una ruta mediante E-BGP a un vecino externo antes de que todos los ruteadores del AS la hayan aprendido mediante Internal Gateway Protocol. Cuando se selecciona una ruta como la mejor para llegar a un destino, esta se guarda en la tabla de encaminamiento del ruteador y, posteriormente, se propaga a los vecinos BGP.

Una falla es igual a desastre

Si el protocolo BGP falla o no se configura correctamente puede aislar por completo a una red interna del resto de internet. Eso fue lo que vivieron miles de usuarios de WhatsApp, Facebook e Instagram cuando estos servicios estuvieron caídos alrededor de seis horas el pasado 4 de octubre. Habrá que imaginarse que si tal situación causó malestar en usuarios de esta parte del mundo, la dimensión fue muchísimo mayor en los países del África subsahariana, donde desde 2016, Facebook brinda acceso sencillo a internet en asociación con la firma israelita Eutelsat y representa “la” puerta de acceso a la red de redes. O sea, si Facebook se cae, internet se cae.

En este incidente, de un momento a otro, Facebook dejó de anunciar el prefijo de encaminamiento de sus DNS a través del BGP y no fue posible conectar a los servidores, todos daban error. Literalmente, “desaparecieron de internet”. Aquello hizo que plataformas de comunicación como Telegram o sitios como Twitter y Signal tuvieran un incremento radical en las peticiones de servicio.

En cuanto se dieron cuenta de que la red de Facebook era inaccesible, en Cloudflare detectaron que también habían dejado de funcionar el sistema de nombres de dominio (DNS) y la infraestructura de direcciones IP de la empresa de Mark Zuckerberg.

Horas después de la falla, Facebook emitió un comunicado para explicar las causas de la situación. En él decía que la interrupción también había afectado muchas de las herramientas y sistemas internos que utiliza en sus operaciones diarias, lo que complicó sus intentos de diagnosticar y resolver rápidamente el problema.

La compañía señaló que los cambios de configuración en los ruteadores que coordinan el tráfico de red entre sus centros de datos provocaron problemas que interrumpieron esta comunicación. Dicha interrupción del tráfico de red tuvo un efecto en cascada en la forma en que se comunican sus centros de datos y provocó la interrupción de sus servicios. Este hecho fue una muestra de que BPG debe estar configurado adecuadamente siempre.

¿Qué te ha parecido este artículo?

Si piensas que este post es útil...

¡Síguenos en nuestras redes sociales!

Maricela Ochoa Serafín
Maricela Ochoa Serafín

Reportera de tecnología. Suele buscar temas de innovación, nuevas aplicaciones IT y seguridad de la información. Periodista por la UNAM; estudió Marketing en el ITAM y Branding en la Universidad de Bogotá Jorge Tadeo Lozano. Storyteller apasionada por la astronomía.

email Contácteme

Artículos relacionados

Artículo 1 de 2