Qué es BGP y qué problema resuelve
BGP, Border Gateway Protocol, es el protocolo que permite intercambiar información de alcanzabilidad entre sistemas autónomos y aplicar políticas sobre qué rutas se anuncian o aceptan. BGP-4 está especificado por RFC 4271 y es una pieza central del routing interdominio de Internet.
A diferencia de un IGP como OSPF, BGP no intenta descubrir simplemente “el camino más corto” dentro de una red. Transporta prefijos junto con atributos que permiten tomar decisiones de política. Esa diferencia es esencial: Internet está formado por redes administradas por organizaciones distintas, con relaciones comerciales y objetivos propios.
Sistemas autónomos, eBGP e iBGP
Un sistema autónomo (AS) es un conjunto de redes bajo una política de routing común identificado por un ASN. Cuando dos routers de AS diferentes intercambian rutas hablamos de eBGP. Cuando BGP distribuye información entre routers del mismo AS hablamos de iBGP.
eBGP e iBGP cumplen papeles distintos. Un borde puede aprender rutas de proveedores mediante eBGP y después propagar la información necesaria dentro de la organización mediante iBGP. Para redes pequeñas con una única salida, BGP puede ser innecesario: una ruta por defecto puede resolver el problema con mucha menos complejidad.
Sesiones BGP sobre TCP
BGP establece sesiones entre peers y utiliza TCP, tradicionalmente el puerto 179, para transportar sus mensajes. TCP aporta entrega fiable del flujo BGP, pero no sustituye la lógica del protocolo: BGP mantiene su propia máquina de estados, intercambia OPEN, KEEPALIVE, UPDATE y NOTIFICATION y decide qué rutas acepta o retira.
Un problema de peering puede estar por debajo de BGP: falta de ruta hacia la IP del vecino, ACL/firewall bloqueando TCP, source address incorrecta o MTU. Por eso antes de analizar atributos conviene confirmar conectividad IP y el estado de la sesión.
Prefijos y atributos de ruta
Los anuncios BGP transportan información de alcanzabilidad y atributos. AS_PATH registra la secuencia de AS atravesados y ayuda a evitar bucles. NEXT_HOP indica el siguiente salto asociado a la ruta. Otros atributos como LOCAL_PREF, MED y communities permiten expresar preferencias y etiquetar rutas para políticas.
No todos los atributos tienen el mismo alcance ni semántica. LOCAL_PREF suele utilizarse dentro de un AS; MED puede sugerir una preferencia de entrada a un AS vecino; las communities permiten clasificar rutas de manera flexible. El diseño debe documentar qué atributos utiliza y con qué intención.
Selección de rutas: evita memorizar una lista universal
Las implementaciones siguen reglas para elegir un best path, pero los detalles y el orden pueden variar por plataforma y configuración. La idea segura es distinguir dos niveles: política local que modifica preferencias y atributos BGP que describen el camino. Después de elegir el mejor candidato BGP, el router todavía necesita resolver el next hop mediante su tabla de routing subyacente.
Por eso no conviene memorizar una secuencia de desempates como si fuese una propiedad universal del protocolo. Consulta la documentación de la plataforma y valida qué atributo provoca una decisión concreta.
Políticas, filtros y anuncios controlados
Un peer BGP no debería aceptar ni anunciar cualquier prefijo sin intención explícita. Los filtros de entrada limitan qué rutas se incorporan; los de salida controlan qué prefijos se publican. Prefix-lists, route-maps/policies y communities son herramientas habituales para expresar esas decisiones.
Una política de borde sólida también evita convertir accidentalmente a la organización en tránsito entre proveedores. El principio es parecido a una ACL: definir qué debe ocurrir y denegar lo demás de forma consciente. La guía de ACL ayuda a entender el valor de políticas explícitas aunque BGP utilice mecanismos distintos.
Agregación, rutas más específicas y default
BGP puede anunciar agregados para reducir el número de prefijos, siempre que la organización pueda respaldar la alcanzabilidad representada por el resumen. Los prefijos más específicos siguen ganando por Longest Prefix Match en el forwarding. La agregación incorrecta puede atraer tráfico hacia direcciones para las que realmente no existe camino.
Repasa sumarización y supernetting para entender alineación de prefijos. En un sitio pequeño, recibir únicamente una ruta por defecto desde el proveedor puede ser más apropiado que importar una tabla de Internet completa.
Seguridad de BGP: filtros, límites y validación de origen
BGP exige defensas operativas. Los límites de prefijos reducen el impacto de anuncios inesperados; los filtros de bogons y de prefijos propios evitan errores comunes; la autenticación o protección de la sesión depende de capacidades de la plataforma. Además, RPKI permite validar si el AS que origina un prefijo está autorizado por un Route Origin Authorization.
La validación de origen no demuestra que todo el AS_PATH sea legítimo ni reemplaza políticas de peering. Es una capa adicional. Un diseño de seguridad debe combinar filtros, control de cambios, monitorización de anuncios y procedimientos para retirar rápidamente una ruta problemática.
Escalabilidad: tablas, route reflectors y familias de direcciones
Una malla iBGP completa no escala bien a medida que crece el número de routers. Los route reflectors permiten reducir el número de sesiones manteniendo distribución de rutas. BGP también soporta múltiples familias de direcciones mediante extensiones multiprotocolo, por lo que el mismo marco puede transportar rutas IPv4, IPv6 y otros tipos de NLRI.
Estas funciones aumentan la potencia y también el riesgo de una política mal aplicada. Conviene introducirlas cuando existe una necesidad concreta y mantener observabilidad de qué rutas aprende, selecciona y anuncia cada nodo.
Troubleshooting de una sesión y de una ruta BGP
Separa “la sesión no sube” de “la sesión está estable pero falta una ruta”. Para lo primero revisa reachability, TCP, ASN, direcciones de peer y parámetros de seguridad. Para lo segundo comprueba si el prefijo se recibe, si un filtro lo descarta, si sus atributos lo hacen perder frente a otro candidato y si el next hop es alcanzable.
- Comprueba estado y uptime del vecino.
- Busca cambios frecuentes de sesión o flaps.
- Inspecciona rutas recibidas y anunciadas según las capacidades de tu plataforma.
- Valida filtros antes de modificarlos en producción.
- Correlaciona la decisión BGP con la tabla de routing efectiva.