El protocolo de puerta de enlace de frontera (BGP) es el protocolo de enrutamiento de Internet. Al igual que la oficina de correos que procesa el correo, el BGP elige las rutas más eficientes para entregar el tráfico de Internet.
Después de leer este artículo podrás:
Contenido relacionado
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el enlace del artículo
El BGP es el servicio postal de Internet. Cuando alguien deposita una carta en un buzón, el servicio postal procesa esa correspondencia, y elige una ruta rápida y eficiente para entregar esa carta a su destinatario. Del mismo modo, cuando alguien envía datos a través de Internet, el BGP se encarga de buscar todas las rutas disponibles por las que podrían viajar los datos y elegir la mejor, lo que suele implicar saltar entre sistemas autónomos.
El BGP es el protocolo que hace que Internet funcione ya que permite el enrutamiento de datos. Cuando un usuario de Singapur carga un sitio web con servidores de origen en Argentina, el BGP es el protocolo que permite que esa comunicación se produzca de forma rápida y eficaz.
Internet es una red de redes. Está dividida en cientos de miles de redes más pequeñas conocidas como sistemas autónomos (AS). Cada una de estas redes es, en esencia, un gran conjunto de enrutadores gestionados por una única organización.
Si seguimos pensando en el BGP como el servicio postal de Internet, los AS son como las sucursales individuales de correos. Una ciudad puede tener cientos de buzones, pero el correo de esos buzones debe pasar por la sucursal postal local antes de ser encaminado a otro destino. Los enrutadores internos de un AS son como buzones de correo. Reenvían sus transmisiones salientes al AS que, a su vez, utiliza el enrutamiento del BGP para hacer llegar estas transmisiones a sus destinos.
El diagrama anterior ilustra una versión simplificada del BGP. En esta versión, solo hay seis AS en Internet. Si AS1 necesita enrutar un paquete a AS3, tiene dos opciones diferentes:
Saltar a AS2 y luego a AS3:
AS2 → AS3
O saltar a AS6, luego a AS5, AS4 y, por último, a AS3:
AS6 → AS5 → AS4 → AS3
En este modelo simplificado, la decisión parece sencilla. La ruta AS2 requiere menos saltos que la ruta AS6 y, por lo tanto, es la ruta más rápida y eficiente. Ahora imagina que hay cientos de miles de AS y que el recuento de saltos es solo una parte de un complejo algoritmo de selección de rutas. Esa es la realidad del enrutamiento del BGP en Internet.
La estructura de Internet cambia constantemente, aparecen nuevos sistemas y dejan de estar disponibles los existentes. Por ello, cada AS debe mantenerse al día con la información de las nuevas rutas, y la de las rutas obsoletas. Esto se hace mediante sesiones de emparejamiento en las que cada AS se conecta a los AS vecinos con una conexión TCP/IP con el fin de compartir información de enrutamiento. Con esta información, cada AS está equipado para enrutar adecuadamente las transmisiones de datos salientes provenientes del interior.
Aquí es donde parte de nuestra analogía se desmorona. A diferencia de las oficinas de correos, los sistemas autónomos no forman parte de la misma organización. De hecho, a menudo pertenecen a empresas competidoras. Por esta razón, las rutas del BGP a veces tienen en cuenta consideraciones comerciales. Los AS se suelen facturar entre sí por transportar el tráfico a través de sus redes, y el precio del acceso puede tenerse en cuenta a la hora de elegir la ruta.
Los AS suelen pertenecer a proveedores de servicios de Internet (ISP) u otras organizaciones grandes, como empresas tecnológicas, universidades, agencias gubernamentales e instituciones científicas. Cada AS que desee intercambiar información de enrutamiento debe tener un número de sistema autónomo (ASN) registrado. La Autoridad para la asignación de números de Internet (IANA) asigna los ASN a los Registros regionales de Internet (RIR), que a su vez los asignan a los ISP y a las redes. Los ASN son números de 16 bits entre 1 y 65.534 y de 32 bits entre 131.072 y 4.294.967.294. Desde 2018, hay alrededor de 64.000 ASN en uso en todo el mundo. Estos ASN solo son necesarios para el BGP externo.
Las rutas se intercambian y el tráfico se transmite por Internet mediante el BGP externo (eBGP). Los sistemas autónomos también pueden utilizar una versión interna del BGP para enrutar a través de sus redes internas, lo que se conoce como el BGP interno (iBGP). Hay que tener en cuenta que el uso del BGP interno NO es un requisito para utilizar el BGP externo. Los sistemas autónomos pueden elegir entre varios protocolos internos para conectar los enrutadores de su red interna.
El BGP externo es como el envío internacional. Existen ciertos estándares y pautas que se deben seguir al enviar un correo de forma internacional. Una vez que ese correo llega al país de destino, tiene que pasar por el servicio postal local del país de destino para llegar a su destino final. Cada país tiene su propio servicio de correo interno que no necesariamente sigue las mismas pautas que los de otros países. Del mismo modo, cada sistema autónomo puede tener su propio protocolo de enrutamiento interno para dirigir los datos dentro de su propia red.
En general, BGP intenta encontrar la ruta más eficiente para el tráfico de la red. Sin embargo, como ya se ha indicado, el recuento de saltos no es el único factor que utilizan los enrutadores BGP para encontrar esas rutas. BGP asigna atributos a cada ruta y estos atributos ayudan a los enrutadores a seleccionar una ruta cuando hay varias opciones. Muchos enrutadores permiten a los administradores personalizar los atributos para tener un control más granular sobre cómo fluye el tráfico en sus redes. Algunos ejemplos de atributos BGP incluyen:
También existen otros tantos atributos BGP. Todos estos atributos están ordenados por prioridad para los enrutadores BGP — de modo que, por ejemplo, un enrutador BGP comprueba primero qué ruta tiene el peso más alto, luego comprueba la preferencia local, luego comprueba si el enrutador originó la ruta, etc. (Así, si todas las rutas recibidas tienen el mismo peso, el enrutador selecciona en su lugar una ruta basada en la preferencia local).
En 2004, un ISP turco llamado TTNet anunció de forma accidental rutas BGP incorrectas a sus vecinos. Estas rutas afirmaban que el propia TTNet era el mejor destino para todo el tráfico de Internet. A medida que estas rutas se fueron extendiendo a más sistemas autónomos, se produjo una interrupción masiva que creó una crisis durante todo un día en la que muchas personas de todo el mundo no pudieron acceder a una parte o a la totalidad de Internet.
De manera similar, en 2008, un ISP paquistaní intentó utilizar una ruta del BGP para impedir que los usuarios paquistaníes visitaran YouTube. El ISP entonces anunció, de manera errónea, estas rutas a sus AS vecinos y la ruta se extendió con rapidez por la red del BGP de Internet. Esta ruta envió a los usuarios que intentaban acceder a YouTube a un callejón sin salida, lo que provocó que no se pudiera acceder a YouTube durante varias horas.
Otro incidente en esta línea ocurrió en junio de 2019, cuando una pequeña empresa de Pensilvania se convirtió en la ruta preferida para los enrutadores a través de la red de Verizon, provocando que gran parte de Internet dejara de estar disponible para los usuarios durante varias horas.
Estos son ejemplos de una práctica llamada secuestro del BGP, que no siempre se produce de forma accidental. En abril de 2018, los atacantes crearon deliberadamente rutas de BGP incorrectas para redirigir el tráfico destinado al servicio de DNS de Amazon. Los atacantes lograron robar más de 100.000 dólares en criptomonedas redirigiendo el tráfico hacia ellos mismos.
El secuestro de BGP se puede utilizar para diversos tipos de ataques:
Este tipo de incidentes pueden ocurrir porque la función de compartir rutas del BGP se basa en la confianza, y los sistemas autónomos confían, de forma implícita, en las rutas que se comparten con ellos. Cuando los números de sistemas del mismo nivel anuncian información sobre la ruta incorrecta (de manera intencional o no), el tráfico llega a donde no se supone que debe hacerlo, con resultados potencialmente maliciosos.
Por fortuna, se han hecho algunos progresos en la seguridad del BGP. En particular, en 2008 se implementó un marco de seguridad para el enrutamiento denominado Infraestructura de clave pública de recursos (RPKI). La RPKI emplea registros firmados mediante cifrado que se llaman Autorizaciones de origen de rutas (ROA) para validar qué operador de red está autorizado a anunciar las direcciones IP de una organización utilizando el BGP. Esto garantiza que solo los autorizados anuncien los prefijos de una organización.
Pero la existencia de la RPKI no es suficiente. Si las grandes redes no implementan las mejores prácticas de seguridad BGP, pueden propagar ataques de secuestro a gran escala. En la actualidad, más del 50 % de los principales proveedores de Internet admiten la RPKI en cierta medida, pero se necesita una mayoría más amplia para asegurar completamente el BGP. Los operadores de red pueden proteger sus redes implementando la RPKI y utilizando tecnología de alerta de red, como la Detección de fugas de ruta de Cloudflare. Esta función ayuda a prevenir los ataques de secuestro del BGP, ya que permite a los clientes saber cuándo usuarios no autorizados están anunciando sus prefijos.