Configuración de iBGP

Configuración para establecer una sesión iBGP entre dos routers dentro del mismo Autonomous System. Lo que hace la sesión iBGP es que el remote-as del vecino es igual al AS local.

1. Inicia el proceso BGP para un AS local

  • 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 iBGP (mismo AS que el local)

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

Al ser <as-local> igual al AS del proceso, la sesión es iBGP. No existe un comando router ibgp separado: el tipo se deduce de la comparación de AS.

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.

5. Origina la sesión desde la loopback local

  • Comando: R1(config-router)# neighbor <ipv4-loopback-peer> update-source loopback <número-interface>
  • Ejemplo: R1(config-router)# neighbor 30.30.30.30 update-source loopback 1

update-source en ambos extremos

Para que la sesión iBGP por loopback levante, ambos routers deben apuntar a la loopback del otro en su comando neighbor y ambos deben usar update-source loopback. Además, cada router necesita una ruta (vía IGP) hacia la loopback del peer.

Configuración Avanzada (Situacional)

Reescribe el next-hop con la IP propia al anunciar a peers iBGP

Se aplica en el router de borde, hacia sus peers iBGP. Reescribe el next-hop con la IP del router de borde (típicamente su loopback, que el IGP interno sí propaga y todos pueden alcanzar).

  • Comando: R1(config-router)# neighbor <ipv4-peer-ibgp> next-hop-self
  • Ejemplo: R1(config-router)# neighbor 30.30.30.30 next-hop-self

Ejemplo de iBGP

Caso 1: Dos routers en el mismo AS (65001), peereando por loopback

Requisito: Crear Loopback en los 3 Routers, luego configurar OSPF en R2, R3 y R4 con las interfaces Loopback creadas.

R1(config)# router ospf 1
R1(config-router)# network 1.1.1.1 0.0.0.0 area 0

R1(config)# router bgp 65001
R1(config-router)# bgp router-id 1.1.1.1
R1(config-router)# neighbor 2.2.2.2 remote-as 65001
R1(config-router)# neighbor 2.2.2.2 update-source loopback 0
R2(config)# router ospf 1
R2(config-router)# network 2.2.2.2 0.0.0.0 area 0

R2(config)# router bgp 65001
R2(config-router)# bgp router-id 2.2.2.2
R2(config-router)# neighbor 1.1.1.1 remote-as 65001
R2(config-router)# neighbor 1.1.1.1 update-source loopback 0
  • La Loopback 0 de R2 es 2.2.2.2,
  • La Loopback 0 de R1 es 1.1.1.1

Caso 2: Clasico iBGP

Requisito: Crear Loopback en los 3 Routers, luego configurar OSPF en R2, R3 y R4 con las interfaces Loopback creadas.

R1(config)# router bgp 10
R1(config-router)# bgp router-id 1.1.1.1
R1(config-router)# neighbor 12.12.12.2 remote-as 20
R1(config-router)# network 6.6.6.0 mask 255.255.255.0
R2(config)# interface loopback 1
R2(config)# ip address 20.20.20.20 255.255.255.255

R2(config)#router ospf 1 
R2(config-router)# network 20.20.20.20 0.0.0.0 area 0
R2(config-router)# network 23.23.23.0 0.0.0.3 area 0

R2(config)# router bgp 20
R2(config-router)# bgp router-id 2.2.2.2
R2(config-router)# neighbor 30.30.30.30 remote-as 20
R2(config-router)# neighbor 30.30.30.30 update-source loopback 1
R2(config-router)# neighbor 30.30.30.30 next-hop-self

R2(config-router)# neighbor 40.40.40.40 remote-as 20
R2(config-router)# neighbor 40.40.40.40 update-source loopback 1
R2(config-router)# neighbor 40.40.40.40 next-hop-self

R2(config-router)# neighbor 12.12.12.1 remote-as 10
R3(config)# interface loopback 1
R3(config)# ip address 30.30.30.30 255.255.255.255

R3(config)#router ospf 1 
R3(config-router)# network 30.30.30.30 0.0.0.0 area 0
R3(config-router)# network 23.23.23.0 0.0.0.3 area 0
R3(config-router)# network 34.34.34.0 0.0.0.3 area 0

R3(config)# router bgp 20
R3(config-router)# bgp router-id 3.3.3.3
R3(config-router)# neighbor 20.20.20.20 remote-as 20
R3(config-router)# neighbor 20.20.20.20 update-source loopback 1
R3(config-router)# neighbor 40.40.40.40 remote-as 20
R3(config-router)# neighbor 40.40.40.40 update-source loopback 1
R4(config)# interface loopback 1
R4(config)# ip address 40.40.40.40 255.255.255.255

R4(config)#router ospf 1 
R4(config-router)# network 40.40.40.40 0.0.0.0 area 0
R4(config-router)# network 34.34.34.0 0.0.0.3 area 0

R4(config)# router bgp 20
R4(config-router)# bgp router-id 4.4.4.4
R4(config-router)# neighbor 30.30.30.30 remote-as 20
R4(config-router)# neighbor 30.30.30.30 update-source loopback 1
R4(config-router)# neighbor 30.30.30.30 next-hop-self

R4(config-router)# neighbor 20.20.20.20 remote-as 20
R4(config-router)# neighbor 20.20.20.20 update-source loopback 1
R4(config-router)# neighbor 20.20.20.20 next-hop-self

R4(config-router)# neighbor 45.45.45.1 remote-as 30
R5(config)# router bgp 30
R5(config-router)# bgp router-id 5.5.5.5
R5(config-router)# neighbor 45.45.45.2 remote-as 20
R5(config-router)# network 8.8.8.0 mask 255.255.255.0

Caso 3: Clasico iBGP con Loopback

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