MP-BGP (Multiprotocol BGP) extiende BGP para transportar múltiples familias de direcciones (IPv4, IPv6, VPNv4, etc.) sobre las mismas sesiones. Cada familia se configura en su propia sección address-family, y cada vecino debe activarse por familia.
Familias de direcciones principales
ipv4 unicast— la familia por defecto, el BGP clásico.ipv6 unicast— rutas IPv6, la más común después de IPv4.vpnv4/vpnv6— para MPLS L3VPN (rutas de clientes en VPN).l2vpn evpn— para VXLAN en data centers.
La sintaxis es la misma para todas; solo cambia la familia declarada.
El caso más común es correr IPv4 e IPv6 juntos (dual stack). El método recomendado es usar sesiones separadas por familia. Dos sesiones TCP separadas entre los mismos routers: una IPv4 sobre transporte IPv4, otra IPv6 sobre transporte IPv6. Cada familia viaja por su propia sesión.
Configuración
Desactiva la activación automática en IPv4 unicast
- Comando:
R1(config-router)# no bgp default ipv4-unicast
Obliga a activar explícitamente cada vecino en cada familia, evitando activaciones accidentales.
Recomendado
Usar siempre
no bgp default ipv4-unicasten configuraciones MP-BGP. La activación explícita por familia es más limpia y evita activaciones accidentales.
Configura el Router ID manualmente
- Comando:
R1(config-router)# bgp router-id <ipv4-address> - Ejemplo:
R1(config-router)# bgp router-id 1.1.1.1
El Router ID es único por proceso BGP (no por familia). Conviene fijarlo para que no dependa de qué interfaces existan.
Declara ambos vecinos (fuera de las address-family)
-
Comando:
R1(config-router)# neighbor <ip-peer-v4> remote-as <as> -
Comando:
R1(config-router)# neighbor <ipv6-peer> remote-as <as> -
Ejemplo:
R1(config-router)# neighbor 10.0.0.2 remote-as 200 -
Ejemplo:
R1(config-router)# neighbor 2001:DB8::2 remote-as 200
Activa cada vecino solo en su familia
- Comando:
R1(config-router)# address-family ipv4 unicast
R1(config-router-af)# neighbor <ip-peer-v4> activate
R1(config-router-af)# network <red-v4> mask <máscara>
R1(config-router-af)# exit-address-family
R1(config-router)# address-family ipv6 unicast
R1(config-router-af)# neighbor <ipv6-peer> activate
R1(config-router-af)# network <red-v6>/<longitud>
R1(config-router-af)# exit-address-family
- Ejemplo:
R1(config-router)# address-family ipv4 unicast
R1(config-router-af)# neighbor 10.0.0.2 activate
R1(config-router-af)# network 192.0.2.0 mask 255.255.255.0
R1(config-router-af)# exit-address-family
R1(config-router)# address-family ipv6 unicast
R1(config-router-af)# neighbor 2001:DB8::2 activate
R1(config-router-af)# network 2001:DB8:AAAA::/48
R1(config-router-af)# exit-address-family
La sesión con el vecino es una sola, pero se activa por cada familia que quieras intercambiar (neighbor <ip> activate dentro de la address-family).
Ejemplo
R1 (AS 100) peerea con R2 (AS 200) en dual stack
/bgp---border-gateway-protoco/photos/pasted-image-20260814191440.png)
R1(config)# router bgp 100
R1(config-router)# no bgp default ipv4-unicast
R1(config-router)# bgp router-id 1.1.1.1
R1(config-router)# neighbor 10.0.0.2 remote-as 200
R1(config-router)# neighbor 2001:DB8::2 remote-as 200
R1(config-router)# address-family ipv4 unicast
R1(config-router-af)# neighbor 10.0.0.2 activate
R1(config-router-af)# network 192.0.2.0 mask 255.255.255.0
R1(config-router-af)# exit-address-family
R1(config-router)# address-family ipv6 unicast
R1(config-router-af)# neighbor 2001:DB8::2 activate
R1(config-router-af)# network 2001:DB8:AAAA::/48
R1(config-router-af)# exit-address-family
R2(config)# router bgp 200
R2(config-router)# no bgp default ipv4-unicast
R2(config-router)# bgp router-id 2.2.2.2
R2(config-router)# neighbor 10.0.0.1 remote-as 100
R2(config-router)# neighbor 2001:DB8::1 remote-as 100
R2(config-router)# address-family ipv4 unicast
R2(config-router-af)# neighbor 10.0.0.1 activate
R2(config-router-af)# network 203.0.113.0 mask 255.255.255.0
R2(config-router-af)# exit-address-family
R2(config-router)# address-family ipv6 unicast
R2(config-router-af)# neighbor 2001:DB8::1 activate
R2(config-router-af)# network 2001:DB8:BBBB::/48
R2(config-router-af)# exit-address-family
Cómo se vería la topología completa (con las redes internas):
[192.0.2.0/24] Sesion IPv4 [203.0.113.0/24]
[2001:DB8:AAAA::/48] === (10.0.0.x) === [2001:DB8:BBBB::/48]
\ /
R1 ========================================= R2
AS 100 Sesion IPv6 AS 200
(2001:DB8::x)
El Router ID es único por proceso
El Router ID es único por proceso BGP, no por familia. Se configura una vez y aplica a todas. Si BGP no tiene interfaces IPv4 para elegirlo automáticamente, hay que configurarlo manualmente con
bgp router-id.
El patrón clave
El peer IPv4 (10.0.0.2) se activa solo en la familia IPv4, y el peer IPv6 (2001:DB8::2) solo en la familia IPv6. Cada uno en su sesión y su familia. Eso es lo que
no bgp default ipv4-unicasthace posible y limpio.
Verificación
-
Ver la tabla BGP de una familia específica:
R1# show bgp ipv6 unicast -
Ver el resumen de sesiones de una familia
R1# show bgp ipv6 unicast summary -
Confirmar que un vecino está activado en la familia:
R1# show bgp ipv6 unicast neighbors <ip-peer>
Si un vecino no aparece activo en la familia esperada, casi siempre es porque falta el neighbor <ip> activate dentro de esa address-family.