Siempre hacen falta estáticas en eBGP entre AS distintos? No, casi nunca. (Casi siempre son directamente conectadas.)

Configuración de eBGP

Configuración para establecer una sesión eBGP entre dos routers en diferentes Autonomous Systems. Los peers eBGP normalmente están directamente conectados y sus IPs deben tener alcance a nivel de capa 3.

1. Inicia el proceso BGP para un AS determinado

  • Comando: R1(config)# router bgp <as-number(AS-Local)>
  • Ejemplo: R1(config)# router bgp 10

El <as-number> es el AS local, Solo se puede configurar un proceso BGP por router.
Intentar un segundo router bgp con un AS distinto genera error.

2. Configura el Router ID de BGP manualmente

  • Comando: R1(config-router)# bgp router-id <ipv4-address>
  • Ejemplo: R1(config-router)# bgp router-id 1.1.1.1

Los Router IDs deben ser únicos entre peers.
Es best practice configurarlo siempre. Si no se hace, se elige automáticamente (loopback más alta, luego interfaz física más alta). Una vez elegido no se actualiza solo si aparece una interfaz mejor; requiere reset.

3. Define un vecino eBGP (AS del vecino)

  • Comando: R1(config-router)# neighbor <ipv4-peer(vecino)> remote-as <as-peer(vecino)>
  • Ejemplo: R1(config-router)# neighbor 1.1.1.2 remote-as 20

El tipo de sesión se deduce de la comparación de AS: si <as-peer> es distinto del AS local, la sesión es eBGP.
La IP de origen del paquete que inicia el 3-way handshake debe coincidir con la IP configurada en el neighbor, o la sesión no levanta.

4. Anuncia un prefijo en BGP

  • Comando: R1(config-router)# network <red> mask <máscara>
  • Ejemplo: R1(config-router)# network 10.1.1.0 mask 255.255.255.0

El comando network en BGP hace exact match contra la tabla de routing: solo anuncia el prefijo si existe una entrada exactamente igual (misma red y máscara). Si no existe exacto, no se anuncia.

Configuración de eBGP (Situacional)

  • Peering entre loopbacks.
  • Peers a múltiples saltos:
  • Load balancing sobre varios enlaces físicos:

Origina la sesión desde la interfaz indicada

Fuerza que la sesión BGP se origine desde una interfaz específica (típicamente una loopback), en vez de la interfaz física de salida.

  • Comando: R1(config-router)# neighbor <ip-peer(vecina)> update-source <interfaz>
  • Ejemplo: R1(config-router)# neighbor 22.22.22.22 update-source loopback 1

La IP de origen del paquete TCP debe coincidir con la IP que el peer tiene en su comando neighbor. Si el router origina desde una interfaz distinta a la esperada, la sesión no levanta.

Desactiva la verificación de subred directamente conectada

Usarlo cuando los peers están a un solo salto (directamente conectados físicamente), pero peereas loopback-a-loopback Solo desactiva la verificación de subred directa. No toca el TTL. (Solo usarlo si usaras Loopback hacia Loopback.)

  • Comando: R1(config-router)# neighbor <ip-loopback-peer(vecina)> disable-connected-check
  • Ejemplo: R1(config-router)# neighbor 22.22.22.22 disable-connected-check

Solo desactiva el chequeo de subred directa; no modifica el TTL. Se usa cuando los peers están a un solo salto pero peerean loopback-a-loopback.

Subir el TTL al número de saltos permitido

  • Comando: R1(config-router)# neighbor <ipv4-peer(vecina)> ebgp-multihop <valor-TTL>
  • Ejemplo: R1(config-router)# neighbor 33.33.33.33 ebgp-multihop 2

Si se omite el valor, el default en IOS es 255.
Se configura en ambos extremos
TTL=1 por defecto.

Ejemplo

Caso 1: Dos routers en AS distintos, directamente conectados (Clasico)

R1(config)# router bgp 10
R1(config-router)# bgp router-id 1.1.1.1
R1(config-router)# neighbor 40.50.58.2 remote-as 20
R2(config)# router bgp 20
R2(config-router)# bgp router-id 2.2.2.2
R2(config-router)# neighbor 40.50.58.1 remote-as 10
R2(config-router)# network 200.40.38.0 mask 255.255.255.0

En R1, No configuramos Network porque no tiene red privada, en cambio R2 si tiene su server u otros tipos de redes privadas.

Caso 2: Load balancing con Loopbacks (Avanzado)

  • Requisito: Crear direccion Loopback en cada router, luego hacer rutas estaticas por las interfaces fisicas con destino hacia las Loopback pero a traves de las interfaces fisicas.
R1(config)# ip route 22.22.22.22 255.255.255.255 1.1.1.2
R1(config)# ip route 22.22.22.22 255.255.255.255 2.2.2.2

R1(config)# router bgp 10                                             (AS-Local)
R1(config-router)# neighbor 22.22.22.22 remote-as 20                  (IP-peer-vecina) + (AS-peer)
R1(config-router)# neighbor 22.22.22.22 update-source loopback 1      (IP-peer-vecina)
R1(config-router)# neighbor 22.22.22.22 disable-connected-check       (IP-peer-vecina)
R2(config)# ip route 11.11.11.11 255.255.255.255 1.1.1.1
R2(config)# ip route 11.11.11.11 255.255.255.255 2.2.2.1

R2(config)# router bgp 20                                             (AS-Local)
R2(config-router)# neighbor 11.11.11.11 remote-as 10                  (IP-peer-vecina) + (AS-peer)
R2(config-router)# neighbor 11.11.11.11 update-source loopback 1      (IP-peer-vecina)
R2(config-router)# neighbor 11.11.11.11 disable-connected-check       (IP-peer-vecina)

Verificar: #Show ipbgp neighbor = BGP State: Established. / Show ip route = Revisar que ambas rutas salgan.

Caso 3: eBGP Multi-hop

En este caso no es necesario el comando disable-connected-check.
Se tiene que configurar rutas estaticas en los 3 routers o mas, dependiendo del caso.
Probar ping: ping 33.33.33.33 source loopback 1

R1(config)# ip route 33.33.33.33 255.255.255.255 1.1.1.2

R1(config)# router bgp 10                                             (AS-Local)
R1(config-router)# neighbor 33.33.33.33 remote-as 20                  (IP-peer-vecina) + (AS-peer-vecina)
R1(config-router)# neighbor 33.33.33.33 update-source loopback 1      (IP-peer-vecina)
R1(config-router)# neighbor 33.33.33.33 ebgp-multihop 2               (IP-peer-vecina) + (Valor-TTL)
R2(config)# ip route 11.11.11.11 255.255.255.255 1.1.1.1
R2(config)# ip route 33.33.33.33 255.255.255.255 2.2.2.1
R3(config)# ip route 11.11.11.11 255.255.255.255 2.2.2.2

R3(config)# router bgp 20                                             (AS-Local)
R3(config-router)# neighbor 11.11.11.11 remote-as 10                  (IP-peer-vecina) + (AS-peer-vecina)
R3(config-router)# neighbor 11.11.11.11 update-source loopback 1      (IP-peer-vecina)
R1(config-router)# neighbor 11.11.11.11 ebgp-multihop 2               (IP-peer-vecina) + (Valor-TTL)

Verificar: #Show ipbgp neighbor = External BGP neighbor may be up to 2 hops away. (El valor de TTL puede cambiar.)

Verificación

  • Estado resumido de las sesiones (ver si el peer llegó a Established): R1# show ip bgp summary

En la columna State/PfxRcd, un número indica que la sesión está Established y muestra cuántos prefijos se recibieron. Un estado como Idle, Active o Connect indica que la sesión no está completa.

  • Detalle de un vecino específico: R1# show ip bgp neighbors <ip-peer>

En la salida, el campo de la interfaz/IP local de la sesión debe corresponder a la loopback configurada con update-source.

  • Tabla BGP (prefijos aprendidos y originados): R1# show ip bgp