¿Qué es BGP? | Enrutamiento BGP explicado

Border Gateway Protocol (BGP) es el protocolo de enrutamiento para Internet. Al igual que la oficina de correos procesa el correo, BGP elige las rutas más eficientes para distribuir el tráfico de Internet.

¿Qué es BGP?

Border Gateway Protocol (BGP) es el servicio postal de Internet. Cuando alguien deja una carta en un buzón, el Servicio Postal procesa ese correo y elige una ruta rápida y eficiente para entregar esa carta a su destinatario. De manera similar, cuando alguien envía datos a través de Internet, BGP es responsable de observar todas las rutas disponibles que los datos podrían recorrer y elegir la mejor ruta, lo que generalmente significa saltar entre sistemas autónomos.

BGP es el protocolo que hace que Internet funcione al permitir el enrutamiento de datos. Cuando un usuario en Singapur carga un sitio web con servidores de origen en Argentina, BGP es el protocolo que permite que esa comunicación se realice de manera rápida y eficiente.

¿Qué es un sistema autónomo?

Internet es una red de redes. Está dividido en cientos de miles de redes más pequeñas conocidas como sistemas autónomos (AS). Cada una de estas redes es esencialmente un gran conjunto de enrutadores administrados por una única organización.

 

 

Si seguimos pensando en BGP como el Servicio Postal de Internet, los AS son como sucursales de correos individuales. Una ciudad puede tener cientos de buzones de correo, pero el correo que se encuentra en esos buzones debe pasar por la sucursal postal local antes de ser enviado a otro destino. Los enrutadores internos dentro de un AS son como buzones de correo. Reenvían sus transmisiones salientes al AS, que luego utiliza el enrutamiento BGP para llevar estas transmisiones a sus destinos.

 

 

El diagrama anterior ilustra una versión simplificada de BGP. En esta versión sólo hay seis AS en Internet. Si AS1 necesita enrutar un paquete a AS3, tiene dos opciones diferentes:

Saltando a AS2 y luego a AS3:

AS2 → AS3

O saltar a AS6, luego a AS5, AS4 y finalmente 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 imagine que hay cientos de miles de AS y que el recuento de saltos es sólo una parte de un complejo algoritmo de selección de ruta. Ésa es la realidad del enrutamiento BGP en Internet.

La estructura de Internet cambia constantemente: aparecen nuevos sistemas y los sistemas existentes dejan de estar disponibles. Por este motivo, cada AS debe mantenerse actualizado con información tanto de rutas nuevas como de rutas obsoletas. Esto se hace a través de sesiones de peering 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. Utilizando 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 sucursales de las oficinas postales, los sistemas autónomos no son todos parte de la misma organización. De hecho, a menudo pertenecen a empresas que compiten entre sí. Por este motivo, las rutas BGP a veces tienen en cuenta consideraciones comerciales. Los AS suelen cobrarse entre sí por transportar tráfico a través de sus redes, y el precio del acceso puede ser un factor a la hora de elegir la ruta que se elija en última instancia.

¿Quién opera los sistemas autónomos BGP?

Los AS suelen pertenecer a proveedores de servicios de Internet (ISP) u otras grandes organizaciones, como empresas de tecnología, 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 de Números Asignados de Internet (IANA) asigna ASN a los Registros Regionales de Internet (RIR), que luego los asignan a los ISP y las redes. Los ASN son números de 16 bits entre uno y 65534 y números de 32 bits entre 131072 y 4294967294. A partir de 2018, hay aproximadamente 64.000 ASN en uso en todo el mundo. Estos ASN solo son necesarios para BGP externo.

¿Cuál es la diferencia entre BGP externo y BGP interno?

Se intercambian rutas y el tráfico se transmite a través de Internet mediante BGP externo (eBGP). Los sistemas autónomos también pueden utilizar una versión interna de BGP para enrutar a través de sus redes internas, lo que se conoce como BGP interno (iBGP). Cabe señalar que el uso de BGP interno NO es un requisito para usar BGP externo. Los sistemas autónomos pueden elegir entre varios protocolos internos para conectar los enrutadores en su red interna.

El BGP externo es como el envío internacional. Existen ciertos estándares y pautas que deben seguirse al enviar un envío de correo internacional. Una vez que ese correo llega a su país de destino, tiene que pasar por el servicio de correo 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. De manera similar, cada sistema autónomo puede tener su propio protocolo de enrutamiento interno para enrutar datos dentro de su propia red.

¿Qué son los atributos BGP?

En general, BGP intenta encontrar la ruta más eficiente para el tráfico de red. Pero como se señaló anteriormente, 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 múltiples opciones. Muchos enrutadores permiten a los administradores personalizar atributos para lograr un control más granular sobre cómo fluye el tráfico en sus redes. Algunos ejemplos de atributos BGP son:

  • Peso: un atributo propiedad de Cisco que le indica al enrutador qué rutas locales son preferidas.

  • Preferencia local: esto le indica al enrutador qué ruta de salida seleccionar.

  • Originar: esto le dice al enrutador que elija las rutas que agregó al BGP.

  • Longitud de la ruta AS: similar al diagrama de ejemplo anterior, este atributo le dice al enrutador que prefiera rutas más cortas.

También hay varios otros atributos BGP. Todos estos atributos están ordenados por prioridad para los enrutadores BGP, de modo que, por ejemplo, un enrutador BGP primero verifica qué ruta tiene el mayor peso, luego verifica la preferencia local, luego verifica si el enrutador originó la ruta, y así sucesivamente. . (Por lo tanto, si todas las rutas recibidas tienen el mismo peso, el enrutador selecciona una ruta según las preferencias locales).

Defectos de BGP y cómo solucionarlos

En 2004, un ISP turco llamado TTNet anunció accidentalmente rutas BGP incorrectas a sus vecinos. Estas rutas afirmaban que la propia TTNet era el mejor destino para todo el tráfico de Internet. A medida que estas rutas se extendieron cada vez más hacia sistemas más autónomos, se produjo una interrupción masiva que creó una crisis de un día en la que muchas personas en todo el mundo no pudieron acceder a Internet en parte o en su totalidad.

De manera similar, en 2008, un ISP paquistaní intentó utilizar una ruta BGP para impedir que los usuarios paquistaníes visitaran YouTube. Luego, el ISP anunció accidentalmente estas rutas con sus AS vecinos y la ruta se extendió rápidamente por la red BGP de Internet. Esta ruta envió a los usuarios que intentaban acceder a YouTube a un callejón sin salida, lo que provocó que YouTube permaneciera inaccesible durante varias horas.

Otro incidente en esta línea se produjo en junio de 2019, cuando una pequeña empresa de Pensilvania se convirtió en la vía preferida para las rutas a través de la red de Verizon, provocando que gran parte de Internet quedara indisponible para los usuarios durante varias horas.

Estos son ejemplos de una práctica llamada secuestro de BGP, que no siempre ocurre de forma accidental. En abril de 2018, los atacantes crearon deliberadamente rutas BGP incorrectas para redirigir el tráfico destinado al servicio DNS de Amazon. Los atacantes pudieron 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 varios tipos de ataques:

  • Phishing e ingeniería social mediante el redireccionamiento de usuarios a sitios web falsos.

  • Denegación de servicio (DoS) mediante blackholing o redirección de tráfico.

  • Ataques en ruta para modificar los datos intercambiados y subvertir los sistemas de filtrado basados ​​en la reputación.

  • Ataques de suplantación de identidad para escuchar las comunicaciones.

Incidentes como estos pueden ocurrir porque la función de compartir rutas de BGP se basa en la confianza, y los sistemas autónomos confían implícitamente en las rutas que se comparten con ellos. Cuando los pares anuncian información de ruta incorrecta (intencionalmente o no), el tráfico va a donde no debe, lo que puede generar resultados maliciosos.

Cómo proteger BGP

Afortunadamente, se han logrado algunos avances para asegurar BGP. En particular, en 2008 se introdujo un marco de seguridad para el enrutamiento llamado Infraestructura de clave pública de recursos (RPKI). RPKI utiliza registros firmados criptográficamente llamados Autorización de origen de ruta (ROA) para validar qué operador de red puede anunciar las direcciones IP de una organización utilizando BGP. Esto garantiza que sólo las partes autorizadas anuncien los prefijos de una organización.

Pero la existencia de RPKI por sí sola no es suficiente. Si las redes grandes no siguen las mejores prácticas de seguridad de BGP, pueden propagar ataques de secuestro a gran escala. Actualmente, más del 50% de los principales proveedores de Internet admiten RPKI en cierta medida, pero se necesita una mayoría más grande para proteger completamente BGP. Los operadores de red pueden proteger sus redes implementando RPKI y utilizando tecnología de alerta de red como Cloudflare Route Leak Detection. Esta función ayuda a prevenir ataques de secuestro de BGP al informar a los clientes cuando partes no autorizadas están publicitando sus prefijos.

 

Fuente: https://www.cloudflare.com/en-gb/learning/security/glossary/what-is-bgp/