Unidad 03 — BGP (Border Gateway Protocol)

BGP es el protocolo de ruteo que sostiene Internet: conecta Sistemas Autónomos (AS) entre sí. A diferencia de los IGP vistos antes (RIP, OSPF, IS-IS), BGP es un protocolo exterior (EGP), de tipo path vector, diseñado para escalar a redes enormes y para decidir la mejor ruta en base a atributos configurables en vez de una métrica única.

Conceptos clave

Sistema Autónomo (AS)
Conjunto de redes bajo una misma administración, identificado por un número único (1–65535 en AS de 16 bits, privados 64512–65535; desde 2007 existen AS de 32 bits, 1 a 4.294.967.295).
iBGP / eBGP
iBGP corre entre routers del mismo AS; eBGP corre entre routers de AS distintos. Las vecindades BGP siempre son punto a punto, sobre TCP puerto 179.
AS-Path
Lista de AS por los que pasó la ruta. Detecta loops (repetición no contigua descarta la ruta) y permite prepends (repetición contigua del propio AS para empeorar artificialmente una ruta). Well-known mandatory.
MED (Multi Exit Discriminator)
Influye en vecinos eBGP directos para indicarles por qué enlace enviar el tráfico. No se transfiere a otros AS (optional non-transitive). Gana el valor menor.
Local Preference (LP)
Se intercambia solo dentro del mismo AS. Define la salida preferida del AS. Well-known discretionary. Gana el valor más alto.
Weight
Atributo propietario de Cisco, local al router (no se anuncia ni siquiera dentro del AS). Gana el valor más alto. Se evalúa antes que Local Preference.
Origin
Indica cómo se originó la ruta: IGP (i) > EGP (e) > Incomplete (?), en orden de preferencia. Well-known mandatory.
Route Reflector (RR)
Router iBGP que redistribuye rutas aprendidas de un vecino iBGP a sus clientes reflectores, rompiendo de forma controlada la regla del horizonte dividido de BGP. Evita el full-mesh iBGP.

Vecindades: iBGP y eBGP

Las vecindades BGP siempre son punto a punto. El BGP que corre entre neighbors del mismo sistema autónomo se llama iBGP; el que corre entre neighbors de sistemas autónomos distintos se llama eBGP. BGP corre sobre TCP (puerto 179), por lo que hereda confiabilidad y control de flujo del transporte, y solo envía actualizaciones incrementales cuando hay cambios.

Vecindades iBGP y eBGP entre routers de dos sistemas autónomos
Vecindades BGP: iBGP dentro del AS, eBGP entre AS distintos.
Encapsulado BGP sobre TCP puerto 179 sobre IP sobre Ethernet
Encapsulado: BGP (puerto 179) sobre TCP (protocolo 6) sobre IP sobre Ethernet.
Comparación de protocolos de ruteo: IS-IS, OSPF y BGP
CaracterísticaIS-ISOSPFBGP
TipoIGPIGPEGP (también iBGP)
AlgoritmoEstado de enlaceEstado de enlaceVector distancia mejorado (path vector)
MétricaCostoCosto (ancho de banda)AS-Path + atributos
EscalabilidadMuy altaAltaMuy alta (diseñado para Internet)
ConvergenciaRápidaMedia/rápidaLenta comparada con IGPs
TransporteDirecto sobre capa 2IP protocolo 89TCP puerto 179
Tabla comparativa IS-IS, OSPF y BGP del material original
Tabla original del curso (fuente para comparar contra la tabla de arriba).

Atributos BGP

Los atributos se clasifican en Well-known (deben ser reconocidos por todas las implementaciones: mandatory si deben estar en todo update, discretionary si son opcionales de incluir) y Optional (no todas las implementaciones los reconocen: transitive si se reenvían aunque no se reconozcan, non-transitive si se descartan).

Árbol de clasificación de atributos BGP
Clasificación de atributos BGP: Well-known (Mandatory/Discretionary) y Optional (Transitive/Non-transitive).

AS-Path: loops y prepends

Si un AS aparece más de una vez de forma no contigua en el AS-Path, hay un loop y la ruta se descarta automáticamente. Si un AS se repite de forma contigua (prepend), es una técnica deliberada para empeorar la métrica de esa ruta y desalentar que otros AS la elijan.

Ejemplo de AS-Path con loop y con prepends
Ejemplo 1 (loop): AS-Path = 2003 1040 4012 2003 → descartada. Ejemplo 2 (prepends): AS 2003 se repite 3 veces para empeorar la ruta.

MED, Local Preference y Weight

Estos tres atributos son los que más se prestan a confusión en los exámenes porque compiten entre sí con distinto alcance: Weight es local al router, LP es interno al AS, y MED influye solo al vecino eBGP directo.

Ejemplo de MED entre AS 4012 y AS 2003
MED: gana el valor menor (90 sobre 110). Solo comparable si el AS de origen es el mismo.
Ejemplo de Local Preference con LP=90 y LP=150
Local Preference: gana el valor más alto (150 sobre 90); se propaga a todo el AS.
Ejemplo de Weight ganando sobre Local Preference
Weight: A gana con Weight=100 aunque B tenga mayor LP — Weight se evalúa antes.
Ejemplo de Next Hop en eBGP e iBGP
Next Hop: en eBGP es quien anuncia; en iBGP se mantiene salvo next-hop-self.

Criterios de selección de la mejor ruta

Cuando hay más de una ruta hacia el mismo destino, BGP evalúa estos criterios en orden hasta encontrar un desempate:

Tabla de los 10 criterios de selección de rutas BGP
Los 10 criterios de selección de ruta BGP, de mayor a menor prioridad.
  1. Weight más alto
  2. Local Preference más alta
  3. Ruta generada localmente (network o redistribute)
  4. AS-Path más corto
  5. Origin menor (IGP < EGP < Incomplete)
  6. MED menor (solo si mismo AS de origen)
  7. Ruta eBGP preferida sobre iBGP
  8. Menor costo al next-hop según el IGP
  9. Ruta más antigua
  10. Menor Router ID del vecino
Proceso de selección de rutas: políticas de ingreso, decisión, rutas seleccionadas, políticas de egreso
Visión general del proceso: políticas de ingreso → proceso de decisión → rutas seleccionadas → políticas de egreso.

Sincronización y horizonte dividido

La regla de sincronización evita "agujeros negros" dentro de un AS: un router no debe anunciar a un vecino externo una ruta aprendida por iBGP hasta que una ruta equivalente exista en el IGP interno. Hoy se desactiva habitualmente, exigiendo full-mesh iBGP (o Route Reflectors).

Regla de sincronización BGP
Regla de sincronización: previene black holes dentro del AS.

La regla del horizonte dividido en BGP indica que un router no debe reenviar anuncios recibidos por iBGP a otros vecinos iBGP, para prevenir loops dentro del AS.

Regla del horizonte dividido en BGP
Horizonte dividido: no reenviar por iBGP lo aprendido por iBGP.

Route Reflectors

Los Route Reflectors rompen deliberadamente la regla del horizonte dividido para evitar el full-mesh iBGP. Sin RR, N routers iBGP necesitan N×(N−1)/2 sesiones (10 routers → 45 sesiones). Con M Route Reflectors, alcanza con (N−M)×M sesiones.

Diagrama de Route Reflector con clientes R2 y R3
R1 enseña la ruta al RR, y el RR la refleja a sus clientes R2 y R3.
Configuración de Route Reflector en Cisco IOS
Configuración: neighbor <ip> route-reflector-client en el router A para B y C.
router bgp 65000
 neighbor 172.24.12.1 remote-as 65000
 neighbor 172.24.12.1 route-reflector-client
 neighbor 172.16.17.2 remote-as 65000
 neighbor 172.16.17.2 route-reflector-client

¿De dónde obtiene un router las rutas que publica por BGP?

Tabla de los orígenes de las rutas publicadas por BGP
Cinco orígenes: peer eBGP/iBGP, comando network, redistribución de estáticas, de IGP dinámico, o de redes conectadas.

Cheat sheet — BGP