El Border Gateway Protocol (BGP) es el protocolo de enrutamiento que literalmente hace que Internet funcione. A pesar de su complejidad inherente, su énfasis en la seguridad y la escalabilidad lo convierte en un componente esencial para los proveedores de servicios de red IP. Este tutorial ofrece una visión detallada de cómo funciona BGP, desde sus fundamentos hasta opciones avanzadas de solución de problemas, dirigido tanto a principiantes como a expertos.

¿Qué es BGP y por qué es Fundamental?
Si se necesita explicar qué es BGP a alguien nuevo en el entorno del proveedor de servicios, la mejor definición es que BGP, o Protocolo de Puerta de Enlace de Frontera, es el protocolo de enrutamiento que hace que Internet funcione. En comunicaciones, BGP es un protocolo mediante el cual se intercambia información de encaminamiento o ruteo entre sistemas autónomos (AS). Un sistema autónomo es un dominio de enrutamiento independiente, que casi siempre significa una red ISP, o una red administrada por una sola entidad, como una gran corporación.
A diferencia de los protocolos de Gateway Internos (IGP) como RIP, OSPF y EIGRP, que gestionan el enrutamiento dentro de un único sistema autónomo, BGP opera entre estos ASes, facilitando la comunicación a escala global. Los paquetes de datos viajan a través de una compleja red de pares de routers y sistemas para llegar a sus destinos. Este intrincado proceso de dirigir el tráfico de datos es posible gracias a los protocolos de enrutamiento, y en el corazón de este sistema de enrutamiento global se encuentra el Protocolo de Puerta de Enlace de Frontera (BGP). BGP es el protocolo de comando del router que permite que Internet funcione como una familia, usando una red de par unificada.
BGP desempeña un papel vital en el enrutamiento del tráfico IPv4 e IPv6, algo que un IGP no hace. Es crucial para la infraestructura de Internet porque permite que un router de red intercambie información de ruteo, asegurando que los datos puedan llegar a su destino previsto incluso a través de topologías de red increíblemente complejas. Sin BGP, Internet sería una colección fragmentada de redes aisladas, incapaces de comunicarse de manera efectiva. En esencia, BGP es la mano invisible que guía los paquetes de datos a través de Internet, haciendo posible la comunicación global y asegurando el funcionamiento sin problemas de la familia de dispositivos en todo el mundo digital en el que confiamos.
BGP Interno (iBGP) vs. BGP Externo (eBGP)
BGP dirige paquetes entre sistemas autónomos (AS). El tráfico que se enruta dentro de una única red AS se conoce como BGP interno o iBGP. Más a menudo, BGP se utiliza para conectar un AS a otros sistemas autónomos, y luego se denomina BGP externo o eBGP. Los proveedores de servicios grandes también usan BGP como el protocolo de enrutamiento central dentro de sus propias redes, lo que se denomina BGP interno.
Aunque tanto la política de iBGP como la política de BGP externo soportan el mismo protocolo de comando interno de BGP subyacente, tienen características distintas y sirven para diferentes propósitos. El BGP interno no propaga normalmente las rutas aprendidas de un par iBGP a otro, lo que evita posibles bucles de enrutamiento. A diferencia del BGP interno, el BGP externo, por otro lado, propaga las rutas a otros pares BGP externos, lo que permite la accesibilidad global.
¿Cómo Funciona BGP?
La función principal de BGP es intercambiar información de capacidad de alcance de la red con otros sistemas BGP. El Protocolo de Puerta de Enlace de Frontera construye un gráfico de sistemas autónomos basado en la información intercambiada entre routers BGP. Para permitir la transferencia de información de enrutamiento entre ISP vecinos, BGP requiere acuerdos de pares, que comprenden los términos y condiciones necesarios para el intercambio de tráfico. El protocolo se adhiere a estos acuerdos, al tiempo que evalúa las tablas de enrutamiento y la información a lo largo de múltiples rutas entre los ISP.

El Proceso de Peering y la Selección de Rutas
BGP se basa en el concepto de "peering" para establecer conexiones entre routers en diferentes sistemas autónomos (ASes). El proceso del mismo nivel implica un proceso en el que dos enrutadores acuerdan intercambiar información de enrutamiento. Establecen una conexión TCP y se autentican mutuamente, formando un canal de comunicación estable y confiable. En BGP, un vecino hace referencia a otro router con el que un router BGP establece una conexión para intercambiar información de enrutamiento con el vecino.
BGP realiza tres tipos de Enrutamiento: Enrutamiento Interautónomo, Enrutamiento Intraautónomo y Enrutamiento de Pasarela. El protocolo se adhiere a estos acuerdos, al tiempo que evalúa las tablas de enrutamiento y la información a lo largo de múltiples rutas entre los ISP. Lo hace utilizando un algoritmo de selección que determina la mejor ruta para dirigir el tráfico en función de comandos y atributos especificados. Sin embargo, el mejor camino no siempre es el más corto.
Todos los demás protocolos de enrutamiento se ocupan únicamente de encontrar la ruta óptima hacia todos los destinos conocidos. BGP no puede adoptar este enfoque simplista porque los acuerdos de pares entre ISP casi siempre resultan en políticas de enrutamiento complejas. Para ayudar a los operadores de red a implementar estas políticas, BGP lleva una gran cantidad de atributos con cada prefijo IP.
Atributos Clave de BGP
Un atributo BGP es un fragmento de información conectado a cada ruta anunciada por un router BGP. Un atributo desempeña un papel crucial en el proceso de selección de paths: un atributo puede ser ASPATH, ORIGIN, LOCALPREF, etc. Este rango de atributos ayuda a los routers a determinar la mejor ruta para llegar a un destino específico.
- AS_PATH (Ruta del Sistema Autónomo): Es la ruta completa que documenta los sistemas autónomos por los que un paquete tendría que viajar para llegar al destino. Es uno de los atributos más importantes para evitar bucles.
- LOCAL_PREF (Preferencia Local): Es el costo interno de un destino, que se utiliza para garantizar la coherencia en todo el AS. Se utiliza para influir en la elección de rutas de salida dentro de un AS.
- MED (Discriminador de Múltiples Salidas): Les da a los ISP adyacentes la posibilidad de preferir un punto de interconexión sobre otro. Es un atributo que se utiliza para influir en la entrada de tráfico desde un AS vecino.
- Comunidades: Son un conjunto de etiquetas genéricas que pueden indicar varias políticas administrativas entre routers BGP. Permiten etiquetar rutas para aplicar políticas de manera más granular.
El Proceso de Seis Estados de BGP
BGP establece sesiones con vecinos siguiendo un proceso de seis estados para asegurar una comunicación robusta:
- Idle (Inactivo): Estado inicial donde el router está esperando que ocurra un evento (como una solicitud de inicio de sesión) para pasar al siguiente estado.
- Connect (Conectar): El router ha iniciado un intento de conexión TCP con un vecino y está esperando la respuesta.
- Active (Activo): El router está intentando establecer una conexión TCP con un vecino, enviando paquetes de solicitud.
- OpenSent (Abierto Enviado): Se ha establecido una conexión TCP y el router ha enviado su mensaje de apertura BGP, esperando la respuesta del vecino.
- OpenConfirm (Abierto Confirmado): Ambos routers han intercambiado mensajes de apertura y están esperando un mensaje de Keepalive para confirmar la sesión.
- Established (Establecido): La sesión BGP está activa y los routers intercambian mensajes de actualización de rutas y Keepalive.
BGP opera sobre TCP (puerto 179) para asegurar la entrega confiable de mensajes de enrutamiento.
¿Por Qué Usar BGP? Ventajas y Beneficios
BGP ofrece estabilidad de red que garantiza que los routers puedan adaptarse rápidamente para enviar paquetes a través de otra re-conexión si una ruta de Internet se cae. BGP toma decisiones de enrutamiento basadas en rutas, reglas o políticas de red configuradas por un administrador de red. Cada router BGP mantiene una tabla de enrutamiento estándar utilizada para dirigir paquetes en tránsito. Esta tabla se usa junto con una tabla de enrutamiento separada, conocida como la Routing Information Base (RIB), que es una tabla de datos almacenada en un servidor en el router BGP. El RIB contiene información de ruta tanto de pares externos conectados directamente como de pares internos, y actualiza continuamente la tabla de enrutamiento a medida que ocurren cambios.

Control Granular y Optimización de Red
BGP potencia a los administradores de red con un control granular sobre su tráfico de red y su tabla de enrutamiento. Este nivel de control permite la optimización de la red, la ingeniería del tráfico y una calidad de servicio (QoS) mejorada. BGP es fundamental para la estabilidad y para las soluciones de enrutamiento seguro en Internet. Al intercambiar continuamente información de enrutamiento, BGP permite que las redes se adapten rápidamente a fallas y mantengan la conectividad de la nube.
Casos de Uso Comunes
Debido a la complejidad inherente de BGP, los clientes y los ISP pequeños a menudo implementan BGP solo donde es necesario, por ejemplo, en puntos de interconexión y en un subconjunto mínimo de routers centrales, los que se encuentran entre los puntos de interconexión.
- Multihoming: Implica conectar una red a varios proveedores de servicios de Internet (ISP) para aumentar la redundancia y mejorar la disponibilidad de la red. Con la política BGP, las organizaciones pueden soportar el balanceo de carga de su tráfico de Internet a través de múltiples conexiones de ISP.
- Interconexión de ISP: Es el uso principal de eBGP, permitiendo que diferentes redes de proveedores se comuniquen y dirijan tráfico entre sí.
- Enrutamiento dentro de Grandes Empresas: Algunas corporaciones multinacionales con redes extensas y complejas pueden utilizar BGP internamente para gestionar su enrutamiento.
Problemas y Vulnerabilidades de BGP
Border Gateway Protocol se creó originalmente en 1989 como una solución rápida para Internet, pero se ha mantenido como el protocolo principal para el tráfico de larga distancia. Desde entonces, sin embargo, las amenazas cibernéticas han evolucionado y BGP no ha seguido el ritmo.
BGP Hijacking (Secuestro de BGP)
El abuso del BGP se llama BGP hijacking, que es posible porque el protocolo se basa en confiar en las rutas anunciadas. El secuestro de BGP se produce cuando un atacante anuncia maliciosamente información de enrutamiento falsa, redirigiendo el tráfico de Internet a su propia red. Se puede utilizar para diversos fines malintencionados, como la escucha, el robo de datos o los ataques de denegación de servicio.
BGP Hijack Explained
Fugas de Rutas (Route Leaks)
Las fugas de rutas ocurren cuando una red anuncia involuntariamente rutas que no debería soportar, lo que puede interrumpir el flujo de tráfico y causar problemas de conectividad. Esto puede suceder debido a configuraciones erróneas o políticas de enrutamiento mal definidas.
Implementación de Versiones Más Seguras
Ha habido múltiples intentos de hacer una versión más segura de BGP, pero la implementación es extremadamente problemática. La mayoría de las nuevas versiones no pueden comunicarse con BGP estándar, lo que significa que todos los AS de todo el mundo tendrían que adoptar el nuevo protocolo simultáneamente.
Incidentes Históricos de BGP
Algunos incidentes de BGP que han tenido lugar en el pasado incluyen:
- 2004, TTNet (Turquía): Un proveedor turco de servicios de Internet (ISP), TTNet, anunció malas rutas BGP que afirmaban que eran el mejor destino para todo el tráfico en Internet. Los problemas solo duraron un día, pero muchas personas en todo el mundo no pudieron acceder a Internet.
- 2008, YouTube: Un ISP paquistaní intentó bloquear el acceso de los usuarios paquistaníes a YouTube enrutando el tráfico a un agujero negro. La ruta se anunció accidentalmente a los routers vecinos que propagaron la ruta en todo el mundo. En este caso, YouTube estuvo inaccesible durante varias horas.
- 2018, Amazon DNS: En 2018, los atacantes crearon deliberadamente malas rutas BGP para redirigir el tráfico destinado al servicio DNS de Amazon. Al redirigir el tráfico a ellos mismos, pudieron robar $100,000 de criptomonedas.
Configuración y Comandos de BGP
Esta sección te dará una pequeña idea de cómo implementar realmente el protocolo y crear relaciones entre pares. BGP-4, la versión actual de BGP, definida en RFC 1105 y ratificada en 2006, admite IPv6 y enrutamiento entre dominios sin clases (CIDR), lo que permite la viabilidad continua de IPv4. El uso del CIDR es una forma de tener más direcciones dentro de la red que con el esquema actual de asignación de direcciones IP.
Comandos en Cisco IOS
Para configurar BGP en routers Cisco, se utilizan los siguientes comandos básicos:
router bgp <número_AS> network <prefijo_red> mask <máscara_red> neighbor <dirección_IP_vecino> remote-as <número_AS_vecino>Ejemplo de configuración básica en Cisco:
Router# configure terminalEnter configuration commands, one per line. End with CNTL/Z.Router(config)# router bgp 100Router(config-router)# network 192.168.0.0 mask 255.255.255.0Router(config-router)# neighbor 10.10.10.2 remote-as 200Router# copy running-config startup-configComandos en Juniper Junos OS
Juniper Networks, otro proveedor popular, tiene su propio sistema operativo llamado Junos OS. La línea de comandos del sistema operativo varía ligeramente de la de Cisco.
set protocols bgp group <nombre_grupo> neighbor <dirección_IP_vecino> peer-as <número_AS_vecino>Ejemplo de configuración básica en Juniper:
set protocols bgp group external-peers neighbor 209.165.201.1 peer-as 64497Ejemplo Práctico con Packet Tracer
Este tutorial ofrece una guía paso a paso para configurar BGP en routers Cisco utilizando el programa de simulación Packet Tracer. El esquema de red emulado consta de 3 routers (ROUTER100, ROUTER200 y ROUTER300), cada uno con 2 equipos clientes y un switch.

Configuración de Routers en Packet Tracer:
ROUTER100:
Router>enableRouter#configure terminalEnter configuration commands, one per line. End with CNTL/Z.Router(config)#router bgp 100Router(config-router)#network 192.168.0.0 mask 255.255.255.0Router(config-router)#neighbor 10.10.10.2 remote-as 200Router(config-router)#neighbor 10.10.20.2 remote-as 300ROUTER200:
Router>enableRouter#configure terminalEnter configuration commands, one per line. End with CNTL/Z.Router(config)#router bgp 200Router(config-router)#network 192.168.1.0 mask 255.255.255.0Router(config-router)#neighbor 10.10.10.1 remote-as 100Router(config-router)#neighbor 10.10.30.2 remote-as 300ROUTER300:
Router>enableRouter#configure terminalEnter configuration commands, one per line. End with CNTL/Z.Router(config)#router bgp 300Router(config-router)#network 192.168.2.0 mask 255.255.255.0Router(config-router)#neighbor 10.10.20.1 remote-as 100Router(config-router)#neighbor 10.10.30.1 remote-as 200Para comprobar las rutas dinámicas de BGP configuradas en cada uno de los routers, se ejecuta el comando: Router#show ip bgp.
Mitigación de Riesgos y Mejores Prácticas de Seguridad
La implementación de prácticas de seguridad sólidas es crucial para mitigar los riesgos relacionados con BGP.
Técnicas para Evitar el Secuestro de BGP
- Filtrado de Rutas: Implemente políticas estrictas de filtrado de rutas para aceptar solo rutas legítimas de pares autorizados. Esto implica configurar routers para rechazar cualquier anuncio BGP que se origine en orígenes inesperados o reclamar la propiedad de prefijos que no pertenecen al anunciador.
- Infraestructura de Clave Pública de Recursos (RPKI): RPKI permite a los operadores de red verificar criptográficamente el origen de los anuncios de ruta, asegurándose de que solo los AS autorizados puedan anunciar prefijos específicos. Al publicar y validar las autorizaciones de origen de ruta (ROA), los operadores de red pueden reducir significativamente el riesgo de secuestro.
- Supervisión BGP: Monitoree continuamente las rutas BGP y los patrones de tráfico en busca de anomalías que puedan indicar intentos de secuestro. Las herramientas de monitoreo en tiempo real pueden detectar cambios sospechosos en la información de enrutamiento y alertar a los administradores de red, lo que les permite tomar medidas correctivas con prontitud.
Resolución de Fugas de Rutas
- Agregación de Rutas: Agregue prefijos para reducir el número de rutas anunciadas y minimizar el riesgo de fugas. Al resumir varios prefijos en un único prefijo más general, los operadores de red pueden simplificar las tablas de enrutamiento y reducir las posibilidades de filtrar rutas específicas sin darse cuenta.
- Etiquetas de la Comunidad BGP: Utilice etiquetas de comunidad para marcar rutas y controlar su propagación, evitando que se filtren a partes no deseadas de la red. Estas etiquetas proporcionan una manera flexible de agregar información a las rutas y aplicar políticas de enrutamiento específicas, limitando el alcance de la propagación de rutas.
Mejores Prácticas Adicionales
- Sesiones BGP Seguras: Utilice mecanismos de autenticación como MD5 o TCP MD5 para proteger las sesiones del par BGP y evitar el acceso local y externo no autorizado. Esto garantiza que solo los routers de confianza puedan establecer conexiones BGP e información de enrutamiento de intercambio externo.
- Auditorías Periódicas: Realice auditorías locales regulares de las configuraciones y políticas de enrutamiento para identificar y rectificar posibles vulnerabilidades. Esto implica revisar las configuraciones BGP, las reglas de filtrado y las políticas de enrutamiento para garantizar que estén actualizadas y alineadas con las mejores prácticas de seguridad.
- Colaboración y Coordinación: Participe en iniciativas del sector y colabore con otros operadores de red para compartir información y responder a incidentes de seguridad locales. Esto fomenta un enfoque colaborativo para la seguridad BGP y ayuda a mejorar la resiliencia general del ecosistema de enrutamiento de Internet.
Gestión y Monitoreo de BGP
La administración y monitoreo de los procesos de comando BGP implica el uso de diversas herramientas y tecnologías para asegurar un funcionamiento eficiente y mantener la estabilidad de la red. Las herramientas de monitoreo BGP especializadas ofrecen visibilidad en tiempo real de las rutas BGP, las sesiones de peering y el performance de la red. Al aprovechar estas herramientas y tecnologías, los ingenieros de redes pueden administrar BGP de manera efectiva, optimizar el performance de la red y garantizar la estabilidad y seguridad de su infraestructura de enrutamiento.
Herramientas y Soluciones de Red
Mejore su entorno de servidores dedicados y cloud público con nuestras potentes soluciones de cloud y redes. Controle el tráfico de red con nuestro rentable Public Cloud Gateway, asigne direcciones IP estáticas con IP flotantes y aísle la comunicación de instancias con la red privada. Estas herramientas proporcionan la seguridad, la flexibilidad de comandos y la optimización del rendimiento que sus aplicaciones necesitan. Controle el tráfico de su red con Public Cloud Gateway.
Configuración en Mikrotik
En Mikrotik, se accede a la configuración de BGP a través del menú "routing->bgp". Se debe configurar el AS local y definir las redes que se anunciarán.
/routing bgp instanceadd as=6969 name=default/routing bgp networkadd network=200.100.48.0/22 synchronize=yesLos filtros BGP son diferentes de los filtros de paquetes o filtros de firewall, y sirven para restringir qué prefijos se aprenden y/o publican hacia otro peer BGP. Para verificar el estado de las sesiones BGP, se utiliza el comando /routing bgp peer print status para verificar si están "established" u otro estado.
En resumen, BGP es un protocolo complejo pero indispensable para el funcionamiento de Internet. Su configuración y gestión requieren un conocimiento profundo, pero las ventajas en términos de escalabilidad, control y estabilidad de la red son invaluables para cualquier organización con presencia en Internet.
tags: #bgp #configuracion #de #router