Contenido

Introducción

1. Se necesita una ruta estática para las opciones B y C de VPN MPLS entre AS

2. Conservar los Destinos de Ruta en los ASBRs para la Opción B de Inter-AS

3. ASBR no anuncia direcciones unidifusión etiquetadas IPv4

4. Se necesita un Vecino iBGP Dummy para eBGP-eBGP (eBGP adosado) Vpnv4

5. Opción C de Inter-AS - La etiqueta BGP es preferida sobre la etiqueta LDP

6. Inter-AS Option B - La etiqueta BGP es Preferida sobre la Etiqueta LDP

7. Sesión BGP multisalto sobre VPN (o 6PE o EVPN) subyacente

8. Redistribución de BGP en LDP

9. Comando MPLS Activate Interface

Ejemplo 1. IGP pero sin LDP

Ejemplo 2. Confederación

Introducción

Este documento describe algunos escenarios que tienen un comportamiento y una configuración especiales para la combinación de Multiprotocol Label Switching (MPLS) y Border Gateway Protocol (BGP) en Cisco IOS®-XR.

1. Se necesita una ruta estática para las opciones B y C de VPN MPLS entre AS

Esta imagen muestra una configuración de la opción B de Inter-AS.

Imagen 1.

El router PE1 de borde del proveedor (PE) tiene una ruta para el prefijo VRF 10.200.1.2/32, pero no se ha resuelto.

RP/0/0/CPU0:PE1#show cef vrf one 10.200.1.2

10.200.1.2/32, version 3, internal 0x5000001 0x0 (ptr 0xa140be74) [1], 0x0 (0x0), 0x208 (0xa14a7118)

Updated Apr  7 14:36:45.628

Prefix Len 32, traffic index 0, precedence n/a, priority 3

via 10.3.1.4/32, 0 dependencies, recursive [flags 0x6000]

path-idx 0 NHID 0x0 [0xa0d87468 0x0]

recursion-via-/32

next hop VRF - 'default', table - 0xe0000000

unresolved

labels imposed {24004}

PE1 no tiene una ruta para 10.3.1.4/32. Tiene una ruta para 10.3.1.0/24.

RP/0/0/CPU0:PE1#show route 10.3.1.4

Routing entry for 10.3.1.0/24

Known via "ospf 1", distance 110, metric 3, type intra area

Installed Apr  7 14:07:01.140 for 00:32:48

Routing Descriptor Blocks

10.1.1.2, from 10.100.1.3, via GigabitEthernet0/0/0/0

Route metric is 3

No advertising protos.

Debe haber una ruta estática en la ruta de borde del sistema autónomo (ASBR) para el salto siguiente. Debe configurar esta ruta estática en cada ASBR y redistribuirla en el protocolo de gateway interior (IGP).

router static

address-family ipv4 unicast

10.3.1.4/32 GigabitEthernet0/0/0/1

!

!

router ospf 1

redistribute static

La ruta se ha resuelto.

RP/0/0/CPU0:PE1#show cef vrf one 10.200.1.2

10.200.1.2/32, version 3, internal 0x5000001 0x0 (ptr 0xa140be74) [1], 0x0 (0x0), 0x208 (0xa14a7118)

Updated Apr  7 14:36:45.628

Prefix Len 32, traffic index 0, precedence n/a, priority 3

via 10.3.1.4/32, 3 dependencies, recursive [flags 0x6000]

path-idx 0 NHID 0x0 [0xa150f9f4 0x0]

recursion-via-/32

next hop VRF - 'default', table - 0xe0000000

next hop 10.3.1.4/32 via 24005/0/21

next hop 10.1.1.2/32 Gi0/0/0/0    labels imposed {24003 24004}

ASBR1 instala una etiqueta saliente de POP hacia ASBR2 para los prefijos VPNv4/6:

RP/0/0/CPU0:ASBR1#show mpls forwarding prefix 10.3.1.4/32

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24005  Pop         10.3.1.4/32        Gi0/0/0/1    10.3.1.4        2506

Incluso con next-hop-self en el ASBR hacia los vecinos iBGP, el reenvío de etiquetas entre los ASBRs se romperá, si la ruta estática no se configura en el ASBR.

Con next-hop-self en ASBR1 hacia PE1 y sin ruta estática:

RP/0/0/CPU0:ASBR1#show mpls forwarding labels 24006 detail

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24006  24004       2:2:10.200.1.2/32               10.3.1.4        0

Updated: Apr  7 14:49:58.190

Path Flags: 0x6000 [  ]

Label Stack (Top -> Bottom): { }

MAC/Encaps: 0/0, MTU: 0

Packets Switched: 0

Observe que falta la interfaz saliente en la columna Interfaz saliente. La ruta estática se necesita en los ASBR para la opción B y C de Inter-AS.

2. Conservar los Destinos de Ruta en los ASBRs para la Opción B de Inter-AS

Se necesita un comando para asegurarse de que el ASBR almacena/mantiene las rutas vpnv4/6 y luego las anuncia. Sin este comando, el ASBR no almacena las rutas si no hay ningún VRF local configurado en el ASBR que importe alguno de los destinos de ruta de las rutas o si no es un reflector de ruta (RR) para la familia de direcciones vpnv4/6.

router bgp 1

address-family ipv4 unicast

!

address-family vpnv4 unicast

retain route-target all

!

3. ASBR no anuncia direcciones unidifusión etiquetadas IPv4

La unidifusión etiquetada IPv4 es necesaria en las redes de la opción C de Inter-AS o MPLS (Unified MPLS) transparente. Esto se debe a que los prefijos vpnv4/6 están etiquetados de forma predeterminada, pero no es el caso de la unidifusión IPv4 (IPv6). Si este no es el caso, se interrumpe el trayecto conmutado por etiquetas (LSP) de extremo a extremo y se produce un error en el flujo de tráfico de extremo a extremo.

Observe la imagen 2, muestra una configuración de la opción C de Inter-AS.

Imagen 2.

Los routers P1 y P2 también son los Reflectores de Ruta en su Sistema Autónomo (AS) para vpnv4.

La unidifusión etiquetada (LU) se utiliza para transportar los prefijos de loopback de un AS al otro.

ASBR1 tiene esta familia de direcciones configurada, pero no hay rutas en ella:

RP/0/0/CPU0:ASBR1#show bgp ipv4 labeled-unicast

RP/0/0/CPU0:ASBR1#

RP/0/0/CPU0:ASBR1#show bgp ipv4 labeled-unicast summary

BGP router identifier 10.100.1.3, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0000000   RD version: 41

BGP main routing table version 41

BGP NSR Initial initsync version 2 (Reached)

BGP NSR/ISSU Sync-Group versions 0/0

BGP scan interval 60 secs

BGP is operating in STANDALONE mode.

Process       RcvTblVer   bRIB/RIB   LabelVer  ImportVer  SendTblVer  StandbyVer

Speaker              41         41         41         41          41           0

Neighbor        Spk    AS MsgRcvd MsgSent   TblVer  InQ OutQ  Up/Down  St/PfxRcd

10.3.1.4          0     2     150     151       41    0    0 00:06:29          0

10.100.1.2        0     1      52      52       41    0    0 00:06:42          0

La razón es que el ASBR debe tener el siguiente comando para poder asignar una etiqueta de switching de etiquetas multiprotocolo (MPLS) para cada ruta y luego anunciar las rutas.

RP/0/0/CPU0:ASBR1#show run router bgp

router bgp 1

address-family ipv4 unicast

redistribute ospf 1

allocate-label all

!

Nota: El comando puede asignar etiquetas a prefijos específicos si se especifica una política de ruta.

El resultado de este comando es:

RP/0/0/CPU0:ASBR1#show bgp ipv4 labeled-unicast

BGP router identifier 10.100.1.3, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0000000   RD version: 52

BGP main routing table version 52

BGP NSR Initial initsync version 2 (Reached)

BGP NSR/ISSU Sync-Group versions 0/0

BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best

i - internal, r RIB-failure, S stale, N Nexthop-discard

Origin codes: i - IGP, e - EGP, ? - incomplete

Network            Next Hop            Metric LocPrf Weight Path

*> 10.1.1.0/24        10.1.2.2                 2         32768 ?

*> 10.1.2.0/24        0.0.0.0                  0         32768 ?

*> 10.2.1.0/24        10.3.1.4                 0             0 2 ?

*> 10.2.2.0/24        10.3.1.4                 2             0 2 ?

*> 10.3.1.0/24        0.0.0.0                  0         32768 ?

*                     10.3.1.4                 0             0 2 ?

*> 10.100.1.1/32      10.1.2.2                 3         32768 ?

*> 10.100.1.2/32      10.1.2.2                 2         32768 ?

*> 10.100.1.3/32      0.0.0.0                  0         32768 ?

*> 10.100.1.4/32      10.3.1.4                 0             0 2 ?

*> 10.100.1.5/32      10.3.1.4                 2             0 2 ?

*> 10.100.1.6/32      10.3.1.4                 3             0 2 ?

Processed 11 prefixes, 12 paths

RP/0/0/CPU0:ASBR1#show bgp ipv4 labeled-unicast 10.100.1.6/32

BGP routing table entry for 10.100.1.6/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                 48          48

Local Label: 24008

Last Modified: Apr  7 16:20:04.509 for 00:00:49

Paths: (1 available, best #1)

Advertised to peers (in unique update groups):

10.100.1.2

Path #1: Received by speaker 0

Advertised to peers (in unique update groups):

10.100.1.2

2

10.3.1.4 from 10.3.1.4 (10.100.1.4)

Received Label 24002

Origin incomplete, metric 3, localpref 100, valid, external, best, group-best

Received Path ID 0, Local Path ID 1, version 48

Origin-AS validity: not-found

Así que, en resumen:

- Se debe configurar la asignación de etiquetas (en todos los ASBR y routers PE)

- La familia de direcciones ipv4 etiquetada-unicast se debe configurar para el vecino BGP

4. Se necesita un Vecino iBGP Dummy para eBGP-eBGP (eBGP adosado) Vpnv4

Miren la imagen 3.

Imagen 3.

Hay tres ASBR seguidos. ASBR3 ejecuta unicast eBGP vpnv4 a ASBR1 y ASBR2.

Nota: También debe configurar las rutas estáticas en ASBR3.

RP/0/0/CPU0:ASBR3#show bgp vpnv4 unicast

BGP router identifier 10.100.1.7, local AS number 3

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0x0   RD version: 0

BGP main routing table version 3

BGP NSR Initial initsync version 2 (Reached)

BGP NSR/ISSU Sync-Group versions 0/0

BGP scan interval 60 secs

Status codes: s suppressed, d damped, h history, * valid, > best

i - internal, r RIB-failure, S stale, N Nexthop-discard

Origin codes: i - IGP, e - EGP, ? - incomplete

Network            Next Hop            Metric LocPrf Weight Path

Route Distinguisher: 1:1

*> 10.200.1.1/32      10.4.1.3                               0 1 ?

Route Distinguisher: 2:2

*> 10.200.1.2/32      10.4.2.4                               0 2 ?

Processed 2 prefixes, 2 paths

RP/0/0/CPU0:ASBR3#show bgp vpnv4 unicast rd 1:1 10.200.1.1/32

BGP routing table entry for 10.200.1.1/32, Route Distinguisher: 1:1

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                  2           2

Last Modified: Apr  7 18:45:21.510 for 00:03:30

Paths: (1 available, best #1)

Not advertised to any peer

Path #1: Received by speaker 0

Not advertised to any peer

1

10.4.1.3 from 10.4.1.3 (10.100.1.3)

Received Label 24009

Origin incomplete, localpref 100, valid, external, best, group-best, import-candidate, not-in-vrf

Received Path ID 0, Local Path ID 1, version 2

Extended community: RT:1:1

Hay un problema con la publicidad de las rutas vpnv4 desde ASBR3: ASBR3 no anuncia las rutas vpnv4 externas.

La solución es configurar un vecino iBGP falso en ASBR3 y habilitar next-hop-self: El vecino iBGP falso no necesita estar activo.

router bgp 3

address-family vpnv4 unicast

retain route-target all

!

neighbor 10.4.1.3

remote-as 1  address-family vpnv4 unicast

route-policy PASS in

route-policy PASS out

!

!

neighbor 10.4.2.4

remote-as 2

address-family vpnv4 unicast

route-policy PASS in

route-policy PASS out

!

!

neighbor 10.99.99.99

remote-as 3

description dummy-iBGP neighbor for back-to-back eBGP vpnv4

update-source Loopback0

address-family vpnv4 unicast

next-hop-self

!

!

!

El resultado es que la ruta vpnv4 se anuncia ahora:

RP/0/0/CPU0:ASBR3#show bgp vpnv4 unicast rd 1:1 10.200.1.1/32

BGP routing table entry for 10.200.1.1/32, Route Distinguisher: 1:1

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                 12          12

Local Label: 24002

Last Modified: Apr  7 18:58:04.510 for 00:01:46

Paths: (1 available, best #1)

Advertised to update-groups (with more than one peer):

0.2

Path #1: Received by speaker 0

Advertised to update-groups (with more than one peer):

0.2

1

10.4.1.3 from 10.4.1.3 (10.100.1.3)

Received Label 24009

Origin incomplete, localpref 100, valid, external, best, group-best, import-candidate, not-in-vrf

Received Path ID 0, Local Path ID 1, version 12

Extended community: RT:1:1

5. Opción C de Inter-AS - La etiqueta BGP es preferida sobre la etiqueta LDP

Consulte esta imagen para ver una configuración con los dos ASBR conectados a través de links múltiples. Para hacer que esto funcione, la sesión de eBGP ipv4 LU entre los ASBRs debe ser multisalto ya que hay links paralelos entre ellos.

Imagen 4.

Esta es la opción Inter-AS C. Los routers P1 y P2 son también los Reflectores de Ruta para vpnv4.

Hay unicast etiquetado IPv4 entre los routers PE y los ASBR. Los ASBR están conectados directamente a través de varios links.

En el ASBR, verá:

router bgp 1

…

neighbor 10.100.1.4

remote-as 2

ebgp-multihop 2

update-source Loopback0

address-family ipv4 labeled-unicast

route-policy PASS in

route-policy PASS out

No se necesita un protocolo de distribución de etiquetas (LDP) entre los ASBR. BGP se ocupará del reenvío MPLS en los links entre los ASBR.

RP/0/0/CPU0:ASBR1#show mpls interfaces

Interface                  LDP      Tunnel   Static   Enabled

-------------------------- -------- -------- -------- --------

GigabitEthernet0/0/0/0     Yes      No       No       Yes

GigabitEthernet0/0/0/1     No       No       No       Yes

GigabitEthernet0/0/0/2     No       No       No       Yes

GigabitEthernet0/0/0/3     No       No       No       Yes

GigabitEthernet0/0/0/4     No       No       No       Yes

Hasta ahora todo bien. El problema es con el escenario como se muestra en esta imagen.

Imagen 5.

Esta es la opción Inter-AS C. Los routers P1 y P2 son también los Reflectores de Ruta para vpnv4.

Hay unicast etiquetado IPv4 entre los routers PE y los ASBR. ASBR1 y ASBR2 no están conectados directamente. Se conectan con varios saltos, a través de una red que ejecuta un IGP y un LDP. En la imagen 5, esta red intermedia está representada por el router ASBR3, que ejecuta un IGP y un LDP con ASBR1 y ASBR2.

Con el multisalto eBGP en los ASBR, hay un problema. La sesión BGP entre los RR en cada AS ni siquiera aparece.

RP/0/0/CPU0:P1#show cef 10.100.1.5

10.100.1.5/32, version 263, internal 0x1000001 0x0 (ptr 0xa13bde74) [1], 0x0 (0xa1389560), 0xa28 (0xa14a72a8)

Updated Apr  8 09:38:02.551

local adjacency 10.1.2.3

Prefix Len 32, traffic index 0, precedence n/a, priority 3

via 10.1.2.3/32, GigabitEthernet0/0/0/1, 5 dependencies, weight 0, class 0 [flags 0x0]

path-idx 0 NHID 0x0 [0xa0e8b2a4 0x0]

next hop 10.1.2.3/32

local adjacency

local label 24004      labels imposed {24007}

Para llegar de P1, el RR en AS 1, a P2, el RR en AS 2, la etiqueta saliente es 24007. En ASBR1, esta etiqueta se intercambia con la etiqueta 24000.

RP/0/0/CPU0:ASBR1#show mpls forwarding labels 24007

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24007  24000       10.100.1.5/32                   10.100.1.4      1404

RP/0/0/CPU0:ASBR1#show cef 10.100.1.5

10.100.1.5/32, version 155, internal 0x5000001 0x0 (ptr 0xa13be174) [1], 0x0 (0xa138965c), 0xa08 (0xa14a72d0)

Updated Apr  8 10:02:38.101

Prefix Len 32, traffic index 0, precedence n/a, priority 4

via 10.100.1.4/32, 5 dependencies, recursive, bgp-ext [flags 0x6020]

path-idx 0 NHID 0x0 [0xa150f874 0x0]

recursion-via-/32

next hop 10.100.1.4/32 via 24004/0/21

local label 24007

next hop 10.4.1.7/32 Gi0/0/0/4    labels imposed {ImplNull 24000}

La etiqueta 24000 es la etiqueta recibida en ASBR1 por BGP LU de ASBR2.

RP/0/0/CPU0:ASBR1#show bgp ipv4 labeled-unicast 10.100.1.5

BGP routing table entry for 10.100.1.5/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                 76          76

Local Label: 24007

Last Modified: Apr  8 09:37:57.509 for 00:04:05

Paths: (1 available, best #1)

Advertised to update-groups (with more than one peer):

0.3

Advertised to peers (in unique update groups):

10.100.1.1      10.100.1.2

Path #1: Received by speaker 0

Advertised to update-groups (with more than one peer):

0.3

Advertised to peers (in unique update groups):

10.100.1.1      10.100.1.2

2

10.100.1.4 from 10.100.1.4 (10.100.1.4)

Received Label 24000

Origin incomplete, metric 2, localpref 100, valid, external, best, group-best

Received Path ID 0, Local Path ID 1, version 76

Origin-AS validity: not-found

Sin embargo, el router ASBR en el medio no ejecuta BGP y, por lo tanto, no puede reenviar los paquetes que recibe con esta etiqueta, ya que no asignó la etiqueta 24000. La etiqueta que se debe utilizar para hacer que los paquetes lleguen a 10.100.1.5, es la del LDP:

RP/0/0/CPU0:ASBR1#show route 10.100.1.5/32

Routing entry for 10.100.1.5/32

Known via "bgp 1", distance 20, metric 2, [ei]-bgp, labeled unicast (3107)

Tag 2, type external

Installed Apr  8 10:02:38.082 for 01:24:37

Routing Descriptor Blocks

10.100.1.4, from 10.100.1.4, BGP external

Route metric is 2

No advertising protos.

Esto se repite al salto siguiente 10.100.1.4, el loopback de ASBR2.

Se debe utilizar la etiqueta recibida de ASBR3 por LDP, pero no lo es.

La pila de etiquetas agregada es {ImplNull 24000} en lugar de {24002 24000}.

RP/0/0/CPU0:ASBR1#show mpls ldp bindings 10.100.1.4/32

10.100.1.4/32, rev 146

Local binding: label: 24004

Remote bindings: (2 peers)

Peer                Label

-----------------   ---------

10.100.1.2:0        24003

10.100.1.7:0        24002

ASBR1 debe estar imponiendo la etiqueta LDP 24002 que recibió del router ASBR3. Para inhabilitar el reenvío MPLS BGP, usted agrega la palabra clave mpls al comando multisalto eBGP.

ASBR1:

router bgp 1

…

neighbor 10.100.1.4

remote-as 2

ebgp-multihop 2 mpls

update-source Loopback0

address-family ipv4 labeled-unicast

route-policy PASS in

route-policy PASS out

!

ASBR1 ahora tiene la reescritura de etiqueta correcta:

RP/0/0/CPU0:ASBR1#show cef 10.100.1.5

10.100.1.5/32, version 155, internal 0x5000001 0x0 (ptr 0xa13be174) [1], 0x0 (0xa138965c), 0xa08 (0xa14a72d0)

Updated Apr  8 10:02:38.102

Prefix Len 32, traffic index 0, precedence n/a, priority 4

via 10.100.1.4/32, 5 dependencies, recursive, bgp-ext [flags 0x6020]

path-idx 0 NHID 0x0 [0xa150f874 0x0]

recursion-via-/32

next hop 10.100.1.4/32 via 24004/0/21

local label 24007

next hop 10.4.1.7/32 Gi0/0/0/4    labels imposed {24002 24000}

Desde la referencia de comandos:

El uso de la opción mpls en el comando ebgp-multihop evita que BGP habilite MPLS en la interfaz de peering y también evita la asignación de etiquetas de reescritura Implicit-NULL para las direcciones de salto siguiente aprendidas del peer. Esto es útil en algunos escenarios en los que las etiquetas de reenvío MPLS a los nexthops ya se han aprendido a través de BGP etiquetado como unicast o LDP.

En otras palabras, en IOS-XR, cuando BGP se ofrece a asignar una etiqueta al LFIB, tendrá prioridad sobre el LDP. El escenario de la Opción C de Inter-AS con saltos múltiples entre los routers ASBR es tal escenario.

6. Inter-AS Option B - La etiqueta BGP es Preferida sobre la Etiqueta LDP

Imagen 6.

Esta es la opción B de Inter-AS. Sin embargo, hay varios links paralelos entre los dos ASBR. Hay RFC3107 (intercambio de rutas IPv4 y etiquetas MPLS) entre los ASBR, en lugar de utilizar un IGP y un LDP.

Para activar la sesión multisalto eBGP entre las interfaces de loopback de ASBR1 y ASBR2, se necesita LU eBGP entre los dos ASBR. Hay dos links entre los ASBRs, por lo que se necesitan dos sesiones de LU eBGP. El comando asignar-label es necesario para la familia de direcciones IPv4.

router bgp 65001

address-family ipv4 unicast

network 10.100.1.3/32

allocate-label all

!

neighbor 10.3.1.4

remote-as 65002

address-family ipv4 labeled-unicast

route-policy pass in

route-policy pass out

!

!

neighbor 10.3.2.4

remote-as 65002

address-family ipv4 labeled-unicast

route-policy pass in

route-policy pass out

!

!

Las rutas estáticas de la sección 1 siguen siendo necesarias:

router static

address-family ipv4 unicast

10.3.1.4/32 GigabitEthernet0/0/0/1

10.3.2.4/32 GigabitEthernet0/0/0/2

!

!

La sesión eBGP vpnv4 entre los ASBRs:

router bgp 65001

address-family ipv4 unicast

network 10.100.1.3/32

allocate-label all

!

address-family vpnv4 unicast

retain route-target all

!

neighbor 10.100.1.4

remote-as 65002

ebgp-multihop 255

update-source Loopback0

address-family vpnv4 unicast

route-policy pass in

route-policy pass out

!

!

Observe que la palabra clave mpls no es necesaria aquí, como en la sección 5. Además, que las sesiones de LU de iBGP entre PE y ASBRs no son necesarias si next-hop-self se configura para las sesiones de vpnv4 de iBGP. La etiqueta anunciada por ASBR2 para 10.100.1.4/32 es la etiqueta 3:

RP/0/0/CPU0:ASBR1#show bgp ipv4 labeled-unicast 10.100.1.4/32

Fri Jun  2 11:50:16.178 UTC

BGP routing table entry for 10.100.1.4/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                  8           8

Local Label: 24005

Last Modified: Jun  2 11:48:39.920 for 00:01:36

Paths: (4 available, best #1)

Advertised to update-groups (with more than one peer):

0.3

Advertised to peers (in unique update groups):

10.100.1.7

Path #1: Received by speaker 0

Advertised to update-groups (with more than one peer):

0.3

Advertised to peers (in unique update groups):

10.100.1.7

65002

10.3.1.4 from 10.3.1.4 (10.100.1.4)

Received Label 3

Origin IGP, metric 0, localpref 100, valid, external, best, group-best

Received Path ID 0, Local Path ID 1, version 8

Origin-AS validity: not-found

Path #2: Received by speaker 0

Not advertised to any peer

65002

10.3.2.4 from 10.3.2.4 (10.100.1.4)

Received Label 3

Origin IGP, metric 0, localpref 100, valid, external

Received Path ID 0, Local Path ID 0, version 0

Origin-AS validity: not-found

Path #3: Received by speaker 0

Not advertised to any peer

65003 65002

10.3.3.9 from 10.3.3.9 (10.100.1.9)

Received Label 24001

Origin IGP, localpref 100, valid, external, group-best

Received Path ID 0, Local Path ID 0, version 0

Origin-AS validity: not-found

Path #4: Received by speaker 0

Not advertised to any peer

65003 65002

10.3.4.9 from 10.3.4.9 (10.100.1.9)

Received Label 24001

Origin IGP, localpref 100, valid, external

Received Path ID 0, Local Path ID 0, version 0

Origin-AS validity: not-found

RP/0/0/CPU0:ASBR1#show cef 10.100.1.4

Fri Jun  2 11:51:06.994 UTC

10.100.1.4/32, version 254, internal 0x1000001 0x0 (ptr 0xa13be474) [1], 0x0 (0xa13896ec), 0xa20 (0xa14a70f0)

Updated Jun  2 11:48:39.634

local adjacency 10.3.1.4

Prefix Len 32, traffic index 0, precedence n/a, priority 4

via 10.3.1.4/32, GigabitEthernet0/0/0/1, 5 dependencies, weight 0, class 0 [flags 0x0]

path-idx 0 NHID 0x0 [0xa0e8b1fc 0xa0e8b34c]

next hop 10.3.1.4/32

local adjacency

local label 24005      labels imposed {ImplNull}

RP/0/0/CPU0:ASBR1#show mpls forwarding labels 24005

Fri Jun  2 11:51:20.204 UTC

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24005  Pop         10.100.1.4/32      Gi0/0/0/1    10.3.1.4        610

Cuando hay otra trayectoria entre los ASBRs, y esa trayectoria utiliza IGP + LDP o MPLS TE, la palabra clave mpls es necesaria para el comando multihop eBGP.

Imagen 7.

Una política de ruta BGP en ASBR1 hacia P3 se utiliza para establecer el peso muy alto de modo que se prefieran los prefijos de P3 sobre los de ASBR2 directamente.

RP/0/0/CPU0:ASBR1#show bgp ipv4 labeled-unicast 10.100.1.4/32

Fri Jun  2 11:57:23.789 UTC

BGP routing table entry for 10.100.1.4/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                  9           9

Local Label: 24005

Last Modified: Jun  2 11:51:58.920 for 00:05:24

Paths: (4 available, best #3)

Advertised to update-groups (with more than one peer):

0.3

Advertised to peers (in unique update groups):

10.100.1.7

Path #1: Received by speaker 0

Not advertised to any peer

65002

10.3.1.4 from 10.3.1.4 (10.100.1.4)

Received Label 3

Origin IGP, metric 0, localpref 100, valid, external, group-best

Received Path ID 0, Local Path ID 0, version 0

Origin-AS validity: not-found

Path #2: Received by speaker 0

Not advertised to any peer

65002

10.3.2.4 from 10.3.2.4 (10.100.1.4)

Received Label 3

Origin IGP, metric 0, localpref 100, valid, external

Received Path ID 0, Local Path ID 0, version 0

Origin-AS validity: not-found

Path #3: Received by speaker 0

Advertised to update-groups (with more than one peer):

0.3

Advertised to peers (in unique update groups):

10.100.1.7

65003 65002

10.3.3.9 from 10.3.3.9 (10.100.1.9)

Received Label 24001

Origin IGP, localpref 100, weight 65535, valid, external, best, group-best

Received Path ID 0, Local Path ID 1, version 9

Origin-AS validity: not-found

Path #4: Received by speaker 0

Not advertised to any peer

65003 65002

10.3.4.9 from 10.3.4.9 (10.100.1.9)

Received Label 24001

Origin IGP, localpref 100, valid, external

Received Path ID 0, Local Path ID 0, version 0

Origin-AS validity: not-found

ASBR1 debe utilizar ahora la etiqueta 24001 como etiqueta de salida para 10.100.1.4/32. No:

RP/0/0/CPU0:ASBR1#show cef 10.100.1.4

Fri Jun  2 11:59:46.519 UTC

10.100.1.4/32, version 255, internal 0x1000001 0x0 (ptr 0xa13be474) [1], 0x0 (0xa13896ec), 0xa20 (0xa14a7140)

Updated Jun  2 11:51:58.741

local adjacency 10.3.3.9

Prefix Len 32, traffic index 0, precedence n/a, priority 4

via 10.3.3.9/32, GigabitEthernet0/0/0/3, 7 dependencies, weight 0, class 0 [flags 0x0]

path-idx 0 NHID 0x0 [0xa0e8b544 0xa0e8b5ec]

next hop 10.3.3.9/32

local adjacency

local label 24005      labels imposed {ImplNull}

La solución es la misma que en la sección 5: utilice la palabra clave mpls para el comando multihop eBGP.

RP/0/0/CPU0:ASBR1# conf t

Fri Jun  2 13:56:45.618 UTC

RP/0/0/CPU0:ASBR1(config)#router bgp 65001

RP/0/0/CPU0:ASBR1(config-bgp)# neighbor 10.100.1.4

RP/0/0/CPU0:ASBR1(config-bgp-nbr)#ebgp-multihop 255 mpls

RP/0/0/CPU0:ASBR1(config-bgp-nbr)#commit

ASBR1 ahora utiliza la etiqueta 24001 como etiqueta de salida para 10.100.1.4/32.

RP/0/0/CPU0:ASBR1#show cef 10.100.1.4

Fri Jun  2 13:58:13.402 UTC

10.100.1.4/32, version 200, internal 0x5000001 0x0 (ptr 0xa13be474) [1], 0x0 (0xa13895cc), 0xa08 (0xa14a71b8)

Updated Jun  2 13:56:59.378

Prefix Len 32, traffic index 0, precedence n/a, priority 15

via 10.3.3.9/32, 3 dependencies, recursive, bgp-ext [flags 0x6020]

path-idx 0 NHID 0x0 [0xa15102f4 0x0]

recursion-via-/32

next hop 10.3.3.9/32 via 24014/0/21

local label 24005

next hop 10.3.3.9/32 Gi0/0/0/3    labels imposed {ImplNull 24001}

ASBR1 impulsa esta etiqueta extra. Un traceroute en el routing y reenvío virtuales (VRF) de PE1 a PE2 muestra las etiquetas adicionales introducidas.

RP/0/0/CPU0:PE1#trace vrf one 10.99.1.2

Fri Jun  2 13:49:38.959 UTC

Type escape sequence to abort.

Tracing the route to 10.99.1.2

1  10.1.1.5 [MPLS: Labels 24002/24012 Exp 0] 29 msec  39 msec  39 msec

2  10.1.2.3 [MPLS: Label 24012 Exp 0] 29 msec  29 msec  39 msec

3  10.3.1.4 [MPLS: Label 24007 Exp 0] 39 msec  39 msec  39 msec

4  10.2.1.6 [MPLS: Labels 24001/24005 Exp 0] 39 msec  39 msec  29 msec

5  10.2.2.2 39 msec  *  239 msec

Se utilizó IGP y LDP entre ASBR1 y P3 y ASBR2 y P3. El mismo problema y solución existen cuando se utiliza MPLS Traffic Engineering (TE) entre estos routers.

No hay LDP de ASBR1 a P3, pero hay MPLS TE.

Sin la palabra clave mpls en el comando multihop eBGP, el mismo problema vuelve:

Los paquetes reenviados a 10.100.1.4 no reciben la etiqueta BGP LU 24000 presionada.

RP/0/0/CPU0:ASBR1#show cef 10.100.1.4

Tue Jun  6 10:36:56.528 UTC

10.100.1.4/32, version 50, internal 0x1000001 0x0 (ptr 0xa12cc1fc) [1], 0x0 (0xa12b18c0), 0xa20 (0xa14a7258)

Updated Jun  6 10:36:32.930

Prefix Len 32, traffic index 0, precedence n/a, priority 4

via 10.3.3.9/32, tunnel-te1, 7 dependencies, weight 0, class 0 [flags 0x0]

path-idx 0 NHID 0x0 [0xa15d58f8 0xa15d5840]

next hop 10.3.3.9/32

local adjacency

local label 24012      labels imposed {ImplNull}

Mientras que con la palabra clave mpls, la etiqueta 24000 está presente:

RP/0/0/CPU0:ASBR1#show cef 10.100.1.4

Tue Jun  6 10:36:03.241 UTC

10.100.1.4/32, version 34, internal 0x5000001 0x0 (ptr 0xa12cc1fc) [1], 0x0 (0xa12b15a8), 0xa08 (0xa14a70f0)

Updated Jun  6 09:39:24.56

Prefix Len 32, traffic index 0, precedence n/a, priority 15

Extensions: context-label:24012

via 10.3.3.9/32, 3 dependencies, recursive, bgp-ext [flags 0x6020]

path-idx 0 NHID 0x0 [0xa150fecc 0x0]

recursion-via-/32

next hop 10.3.3.9/32 via 24011/0/21

local label 24012

next hop 10.3.3.9/32 tt1          labels imposed {ImplNull 24000}

Con la palabra clave mpls, la reescritura tiene el siguiente aspecto:

RP/0/0/CPU0:ASBR1#show mpls forwarding labels 24012

Tue Jun  6 10:43:50.559 UTC

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24012  24000       10.100.1.4/32      tt1          10.3.3.9        0

Sin la palabra clave mpls, la reescritura tiene el siguiente aspecto:

RP/0/0/CPU0:ASBR1#show mpls forwarding labels 24012

Tue Jun  6 10:45:08.734 UTC

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24012  Pop         10.100.1.4/32      tt1          10.3.3.9        0

Esta etiqueta 14012 no se utiliza para el tráfico de VRF a VRF, o de PE a PE, pero si se detecta, puede ser una indicación de que la entrada de Base de instancia de reenvío de etiquetas (LFIB) está o estuvo equivocada.

RP/0/0/CPU0:PE1# trace vrf one 10.99.1.2

Type escape sequence to abort.

Tracing the route to 10.99.1.2

1  10.1.1.5 [MPLS: Labels 24001/24015 Exp 0] 129 msec  229 msec  129 msec

2  10.1.2.3 [MPLS: Label 24015 Exp 0] 219 msec  439 msec  349 msec

3  10.3.3.9 [MPLS: Labels 24000/24011 Exp 0] 169 msec  249 msec  139 msec

4  10.3.5.4 [MPLS: Label 24011 Exp 0] 89 msec  129 msec  109 msec

5  10.2.1.6 [MPLS: Labels 24004/24008 Exp 0] 139 msec  99 msec  139 msec

6  10.2.2.2 129 msec  *  219 msec

La conmutación de la palabra clave mpls en el comando multihop eBGP podría causar la colisión de etiquetas de syslog:

bgp[1051]: %ROUTING-BGP-4-LABEL_COLLISION : Label 24012 collision: prev: [T: 3 RD:0:0:0 PFX/NHID:10.100.1.4/32] curr: [T: 13 RD:0:0:0 PFX/NHID:10.100.1.4/32]

Este mensaje es para la etiqueta local 24012.

La verificación se realiza para asegurarse de que BGP no asigne otra cosa a una etiqueta activa propiedad de BGP. Esta verificación es sólo para las etiquetas por prefijo.

Este mensaje es un síntoma y no la causa de ningún problema de este artículo.

7. Sesión BGP multisalto sobre VPN (o 6PE o EVPN) subyacente

Si hay una sesión multisalto eBGP, la ruta para la dirección de salto siguiente no se puede aprender a través de una ruta vpnv4/6 o 6PE (IPv6 sobre MPLS) o Ethernet Virtual Private Network (EVPN), a menos que el router tenga la versión Cisco IOS®-XR 6.3.2 o posterior. Consulte esta imagen.

Imagen 8.

Posibles escenarios de falla:

1. Sesión multisalto eBGP de PE1 (dentro de un VRF) a PE2 (dentro de un VRF)

2. Sesión multisalto eBGP de PE1 (dentro de un VRF) a CE2

Esto se aplica:

La sesión multisalto eBGP se configura en la sección VRF bajo el router BGP en el router PE.

La sesión multisalto eBGP de PE1 (dentro del VRF) a PE2 (dentro del VRF), o la sesión multisalto eBGP es de PE1 (dentro del VRF) a CE2, sólo se admite a partir de Cisco IOS®-XR 6.3.2.

La dirección de peer eBGP es accesible sobre la capa subyacente que consta de vnpv4. vpnv6, 6PE o EVPN.

En las versiones de Cisco IOS® anteriores a 6.3.2, la sesión eBGP estará inactiva.

Por ejemplo, se configura la sesión multisalto PE1 a PE2 de eBGP en el VRF uno.

La configuración relevante para la sesión multisalto eBGP de PE1 a PE2 en PE1:

interface Loopback100

vrf one

ipv4 address 10.2.100.1 255.255.255.255

router bgp 1

address-family vpnv4 unicast

!

neighbor 10.100.1.2

remote-as 1

update-source Loopback0

address-family vpnv4 unicast

!

!

vrf one

rd 1:1

address-family ipv4 unicast

redistribute connected

!

neighbor 10.2.100.2

remote-as 65002

ebgp-multihop 255

local-as 65001

update-source Loopback100

address-family ipv4 unicast

route-policy pass in

route-policy pass out

!

!

!

!

La sesión eBGP permanece inactiva:

RP/0/0/CPU0:PE1#show bgp vrf one neighbors

BGP neighbor is 10.2.100.2, vrf one

Remote AS 65002, local AS 65001, external link

Remote router ID 0.0.0.0

BGP state = Idle (No route to multi-hop neighbor)

La ruta para la dirección de peer eBGP está presente en la tabla de ruteo VRF one:

RP/0/0/CPU0:PE1# show route vrf one

Codes: C - connected, S - static, R - RIP, B - BGP, (>) - Diversion path

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - ISIS, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, su - IS-IS summary null, * - candidate default

U - per-user static route, o - ODR, L - local, G - DAGR

A - access/subscriber, a - Application route, (!) - FRR Backup path

Gateway of last resort is not set

L 10.2.100.1/32 is directly connected, 00:23:25, Loopback100

B 10.2.100.2/32 [200/0] via 10.100.1.2 (nexthop in vrf default), 00:19:28

RP/0/0/CPU0:PE1# show route vrf one 10.2.100.2/32

Routing entry for 10.2.100.2/32

Known via "bgp 1", distance 200, metric 0, type internal

Installed May 29 09:07:53.368 for 00:19:36

Routing Descriptor Blocks

10.100.1.2, from 10.100.1.2

Nexthop in Vrf: "default", Table: "default", IPv4 Unicast, Table Id: 0xe0000000

Route metric is 0

No advertising protos.

La causa subyacente del problema es que la ruta para la dirección de peering es una ruta importada:

RP/0/0/CPU0:PE1# show bgp vpnv4 unicast vrf one 10.2.100.2/32

BGP routing table entry for 10.2.100.2/32, Route Distinguisher: 1:1

Versions:

Process bRIB/RIB SendTblVer

Speaker 7 7

Last Modified: May 29 09:07:53.524 for 00:21:20

Paths: (1 available, best #1)

Not advertised to any peer

Path #1: Received by speaker 0

Not advertised to any peer

Local

10.100.1.2 (metric 2) from 10.100.1.2 (10.100.1.2)

Received Label 16001

Origin incomplete, metric 0, localpref 100, valid, internal, best, group-best, import-candidate, imported

Received Path ID 0, Local Path ID 1, version 7

Extended community: RT:1:1

Source VRF: one, Source Route Distinguisher: 1:1

Esto es soportado después de Cisco IOS®-XR 6.3.2.

8. Redistribución de BGP en LDP

Esto es lo que significa MPLS unificado o sin problemas y cómo se configura con IOS-XR: MPLS unificado con IOS-XR

Con la MPLS unificada regular hay LU BGP entre todos los routers PE y ABR, como se muestra en la imagen.

Imagen 9.

Imagen 10.

En este ejemplo, hay un área/nivel IGP sin LU BGP. A la izquierda, el área de agregación es en realidad el proceso 1 OSPF (Open Shortest Path First, Trayectoria más corta), que no tiene redistribución con el proceso OSPF 2 en el núcleo. En la parte de la red con OSPF 1, no hay LU BGP entre routers PE y de router de borde de área (ABR).

Imagen 11.

Los prefijos BGP LU se redistribuyen en IGP OSPF 1 en ABR1 como se muestra en la imagen.

Imagen 12.

Necesita que BGP asigne la etiqueta para los prefijos iBGP LU recibidos. Sin embargo, LDP no anuncia automáticamente esta etiqueta en el enlace de etiquetas para el prefijo redistribuido. El IOS(-XE) lo hace de forma predeterminada.

Observe que ABR está redistribuyendo rutas BGP internas en el IGP en el área izquierda. Esto significa que el comando bgp redistribute-internal se necesita en router bgp.

router bgp 1

bgp redistribute-internal

router ospf 1

router-id 10.100.1.3

redistribute bgp 1 metric 10 route-policy select-to-allocate

area 0

interface Loopback0

!

interface GigabitEthernet0/0/0/0

network point-to-point

!

!

!

route-policy select-to-allocate

if destination in (10.100.1.7/32) then

pass

else

drop

endif

end-policy

El ABR asigna una etiqueta local a las rutas LU iBGP recibidas cuando se habilita la asignación de etiquetas locales.

router bgp 1

bgp redistribute-internal

ibgp policy out enforce-modifications

address-family ipv4 unicast

redistribute ospf 1 metric 10 route-policy ospf-1-loopbacks-PE

allocate-label route-policy select-to-allocate

El comando route-policy select-to-asignar se puede utilizar para especificar qué prefijos LU BGP recibidos se asignan a una etiqueta local.

route-policy select-to-allocate

if destination in (10.100.1.7/32) then

pass

else

drop

endif

end-policy

!

El prefijo de loopback de PE2 se ve en ABR1 con una etiqueta local, pero LDP no ve esta etiqueta local:

RP/0/0/CPU0:ABR1#show bgp ipv4 labeled-unicast 10.100.1.7/32

BGP routing table entry for 10.100.1.7/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                  6           6

Local Label: 24006

Last Modified: Sep  5 06:55:47.368 for 06:40:23

Paths: (1 available, best #1)

Advertised IPv4 Labeled-unicast paths to update-groups (with more than one peer):

0.2

Path #1: Received by speaker 0

Advertised IPv4 Labeled-unicast paths to update-groups (with more than one peer):

0.2

Local, (Received from a RR-client)

10.100.1.5 (metric 20) from 10.100.1.5 (10.100.1.7)

Received Label 24003

Origin IGP, metric 0, localpref 100, valid, internal, best, group-best, labeled-unicast

Received Path ID 0, Local Path ID 1, version 6

Originator: 10.100.1.7, Cluster list: 10.100.1.5

RP/0/0/CPU0:ABR1#show mpls ldp bindings 10.100.1.7/32

10.100.1.7/32, rev 0 (no route)

No local binding

Remote bindings: (1 peers)

Peer                Label

-----------------   ---------

10.100.1.2:0        18

Esto significa que se interrumpe el LSP de PE1 a PE2:

RP/0/0/CPU0:PE1#traceroute 10.100.1.7 source 10.100.1.1

Type escape sequence to abort.

Tracing the route to 10.100.1.7

1  10.1.1.2 [MPLS: Label 18 Exp 0] 9 msec  0 msec  0 msec

2  10.1.2.3 0 msec  0 msec  0 msec <<< no MPLS labels

3  10.1.3.4 [MPLS: Labels 16/24003 Exp 0] 29 msec  19 msec  29 msec

4  10.1.4.5 [MPLS: Label 24003 Exp 0] 9 msec  9 msec  9 msec

5   *  *  *

6  10.1.6.7 9 msec  *  19 msec

El LSP se interrumpe a P2 porque no obtuvo una etiqueta remota a través de LDP de ABR1. ABR1 no tiene la etiqueta asignada localmente para el prefijo 10.100.1.7/32 en LDP.

Hay una configuración necesaria en el ABR para redistribuir BGP en el LDP en el router donde la ruta BGP se redistribuye en el IGP.

ABR1 no anuncia un enlace de etiquetas LDP para el prefijo 10.100.1.7/32 al router P2.

Para que ABR1 anuncie el enlace de etiquetas LDP para los prefijos iBGP redistribuidos, ABR1 debe tener la siguiente configuración (se debe configurar el número AS).

mpls ldp

mldp

address-family ipv4

!

!

router-id 10.100.1.3

address-family ipv4

redistribute

bgp

as 1

!

!

!

Puede hacer que LDP filtre los anuncios. Por ejemplo, puede configurar un filtro como este:

mpls ldp

mldp

address-family ipv4

!

!

router-id 10.100.1.3

address-family ipv4

redistribute

bgp

as 1

advertise-to 1

!

ipv4 access-list 1

10 permit ipv4 host 10.100.1.2 any

Especifique el ID de router LDP en la lista de acceso.

Con este ejemplo, el ABR sólo anuncia las vinculaciones LDP para las rutas iBGP redistribuidas al vecino LDP P2 (y no a P1), ya que 10.100.1.2 es el ID de router LDP de P2.

El LSP de PE1 a PE2 ahora está ininterrumpido:

RP/0/0/CPU0:PE1#traceroute 10.100.1.7 source 10.100.1.1

Type escape sequence to abort.

Tracing the route to 10.100.1.7

1  10.1.1.2 [MPLS: Label 20 Exp 0] 39 msec  49 msec  29 msec

2  10.1.2.3 [MPLS: Label 24006 Exp 0] 29 msec  49 msec  39 msec

3  10.1.3.4 [MPLS: Labels 16/24003 Exp 0] 29 msec  19 msec  29 msec

4  10.1.4.5 [MPLS: Label 24003 Exp 0] 29 msec  19 msec  29 msec

5   *  *  *

6  10.1.6.7 19 msec  *  19 msec

Imagen 13.

La etiqueta asignada BGP (24006) anunciada por LDP en el área de agregación izquierda se utiliza ahora para el tráfico de PE1 a PE2.

Tenga en cuenta que sólo se utiliza una etiqueta MPLS en el área de agregación izquierda. Se usarían dos etiquetas si se trata de una MPLS unificada normal.

En este punto, no puede filtrar cuál de las rutas iBGP de LU redistribuidas en LDP, recibir una etiqueta local y cuál no. Tan pronto como se habilita la redistribución de las rutas LU iBGP en el LDP, todos obtienen una etiqueta local.

PE2 también anuncia el prefijo 10.100.1.99/32 en la LU BGP. ABR1 no redistribuye este prefijo en OSPF 1. Sin embargo, tan pronto como se activó la redistribución de las rutas LU iBGP en el LDP, el prefijo 10.100.1.99/32 también obtuvo una etiqueta local.

RP/0/0/CPU0:ABR1#show mpls ldp bindings 10.100.1.99/32

10.100.1.99/32, rev 24

Local binding: label: 24007

No remote bindings

9. Comando MPLS Activate Interface

Ejemplo 1. IGP pero sin LDP

El comando mpls activate es necesario si hay un IGP que se encarga del ruteo interno, pero no hay LDP para anunciar los enlaces de etiquetas. Si cada salto ejecuta BGP, la LU BGP se puede utilizar para anunciar prefijos y etiquetas. Cuando se trata de iBGP a través de un link, ese link debe ser habilitado bajo el router BGP con el comando mpls active. Consulte esta imagen.

Imagen 14.

R1 y R2 ejecutan un IGP y un LU iBGP entre ellos. R1 y R2 están conectados directamente. R2 tiene una sesión LU eBGP a R3.

R3 anuncia el prefijo 10.100.100.3/2 a R2 sobre una sesión LU eBGP. R2 anuncia este prefijo a R1 sobre una sesión de LU iBGP.

El objetivo es tener un LSP ininterrumpido de R1 a R3. ¿Está ahí?

RP/0/0/CPU0:R1#trace 10.100.100.3 so 10.100.100.1

Type escape sequence to abort.

Tracing the route to 10.100.100.3

1 100.1.1 !N *  !N

No hay ninguna etiqueta para este prefijo en el primer salto.

RP/0/0/CPU0:R1#traceroute mpls ipv4 10.100.100.3/32 ttl 5

Tracing MPLS Label Switched Path to 10.100.100.3/32, timeout is 2 seconds

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,

'L' - labeled output interface, 'B' - unlabeled output interface,

'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,

'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,

'P' - no rx intf label prot, 'p' - premature termination of LSP,

'R' - transit router, 'I' - unknown upstream index,

'X' - unknown return code, 'x' - return code 0

Type escape sequence to abort.

0 0.0.0.0 MRU 0 [No Label]

Q 1 *

Así que no hay etiqueta. Esto no es una sorpresa, porque MPLS no está habilitado en la interfaz a R2:

RP/0/0/CPU0:R1#show mpls interfaces

RP/0/0/CPU0:R1#

El prefijo LU anunciado por R3 está sin embargo presente en R1:

RP/0/0/CPU0:R1#show bgp ipv4 labeled-unicast 10.100.100.3/32

BGP routing table entry for 10.100.100.3/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                  7           7

Local Label: 24001

Last Modified: Sep 13 14:27:17.510 for 00:11:39

Paths: (1 available, best #1)

Not advertised to any peer

Path #1: Received by speaker 0

Not advertised to any peer

65001

10.100.1.2 (metric 2) from 10.100.1.2 (10.100.1.2)

Received Label 24002

Origin IGP, metric 0, localpref 100, valid, internal, best, group-best, labeled-unicast

Received Path ID 0, Local Path ID 1, version 7

Usted configura el comando mpls active en R1 para la interfaz a R2:

router bgp 65000

mpls activate

interface GigabitEthernet0/0/0/0

!

address-family ipv4 unicast

network 10.100.100.1/32

allocate-label all

!

neighbor 10.100.1.2

remote-as 65000

update-source Loopback0

address-family ipv4 labeled-unicast

!

!

!

MPLS ahora está habilitado en la interfaz saliente.

RP/0/0/CPU0:R1#show mpls interfaces

Interface                  LDP      Tunnel   Static   Enabled

-------------------------- -------- -------- -------- --------

GigabitEthernet0/0/0/0     No       No       No       Yes

El traceroute ahora muestra que el LSP está ininterrumpido.

RP/0/0/CPU0:R1#trace 10.100.100.3 so 10.100.100.1

Type escape sequence to abort.

Tracing the route to 10.100.100.3

1  10.1.2.2 [MPLS: Label 24002 Exp 0] 39 msec  9 msec  9 msec

2  10.2.3.3 19 msec *  9 msec

RP/0/0/CPU0:R1#traceroute mpls ipv4 10.100.100.3/32 ttl 5 source 10.100.100.1

Tracing MPLS Label Switched Path to 10.100.100.3/32, timeout is 2 seconds

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,

'L' - labeled output interface, 'B' - unlabeled output interface,

'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,

'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx labl,

'P' - no rx intf label prot, 'p' - premature termination of LSP,

'R' - transit router, 'I' - unknown upstream index,

'X' - unknown return code, 'x' - return code 0

Type escape sequence to abort.

0 10.1.2.1 MRU 1500 [Labels: implicit-null/24002 Exp: 0/0]

L 1 10.1.2.2 MRU 1500 [Labels: implicit-null/implicit-null Exp: 0/0] 0 ms

! 2 10.2.3.3 10 ms

Ejemplo 2. Confederación

Este ejemplo ilustra que el comando mpls activate es necesario en los links de confederación eBGP (inter-AS) cuando se utiliza BGP LU (RFC 3107) y no se utiliza LDP.

La red en esta imagen es una confederación 65000 con sistemas subautónomos 65501, 65502, 65503 y 65504.

Imagen 15.

La idea es tener un MPLS LSP de R1 a R8 (10.0.0.8/32 es anunciado por R8 en BGP LU) usando BGP LU en ambos sistemas autónomos.

Hay LU eBGP regular entre R7 y R8. Hay iBGP confuso entre R2 y R4 y entre R5 y R6. Hay eBGP confuso entre R1 y R2, R4 y R5, y entre R6 y R7. Hay next-hop-self en cada sesión de eBGP.

La ruta estática al siguiente salto del par eBGP (típica para las sesiones BGP entre AS) es necesaria porque hay eBGP entre los sistemas subautónomos dentro de la confederación.

¿Será esto suficiente para hacer la conectividad entre R1 y R8? Esto significa que el objetivo es tener un LSP ininterrumpido de R1 a R8.

Compruebe esto.

RP/0/0/CPU0:R1#traceroute 10.0.0.8

Type escape sequence to abort.

Tracing the route to 10.0.0.8

1   *  *  *

2   *  *  *

3   *  *  *

4   *  *  *

5   *  *  *

El traceroute no devuelve saltos/etiquetas y continuaría si no hubiera un límite TTL proporcionado en el comando. Es probable que los routers respondan al traceroute, pero es posible que los paquetes no vuelvan a llegar a R1. Haga mpls traceroute que es una apuesta más segura.

Nota: MPLS traceroute sólo funciona si MPLS OAM está habilitado en cada router a lo largo de la trayectoria.

RP/0/0/CPU0:R1#trace mpls ipv4 10.0.0.8/32

Tracing MPLS Label Switched Path to 10.0.0.8/32, timeout is 2 seconds

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,

'L' - labeled output interface, 'B' - unlabeled output interface,

'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,

'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,

'P' - no rx intf label prot, 'p' - premature termination of LSP,

'R' - transit router, 'I' - unknown upstream index,

'X' - unknown return code, 'x' - return code 0

Type escape sequence to abort.

0 10.1.2.1 MRU 1500 [Labels: implicit-null/24015 Exp: 0/0]

L 1 10.1.2.2 MRU 1500 [Labels: 24003/24014 Exp: 0/0] 10 ms

L 2 10.2.3.3 MRU 1500 [Labels: implicit-null/24014 Exp: 0/0] 10 ms

N 3 10.3.4.4 MRU 0 [No Label] 10 ms

Verá que el problema está en R4. Falta la interfaz saliente en el LFIB:

RP/0/0/CPU0:R4#show mpls forwarding prefix 10.0.0.8/32

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24014  24014       10.0.0.8/32                     10.4.5.5        5140

La entrada en CEF no se resuelve:

RP/0/0/CPU0:R4#show cef 10.0.0.8/32

10.0.0.8/32, version 109, drop adjacency, internal 0x5000001 0x0 (ptr 0xa14160e4) [1], 0x0 (0xa13f83c8), 0xa08 (0xa16cd370)

Updated Sep 13 12:43:30.252

Prefix Len 32, traffic index 0, precedence n/a, priority 4

via 10.4.5.5/32, 0 dependencies, recursive [flags 0x6000]

path-idx 0 NHID 0x0 [0xa0f182d8 0x0]

recursion-via-/32

unresolved

local label 24014

labels imposed {24014}

MPLS no está habilitado en la interfaz GE0/0/0/1:

RP/0/0/CPU0:R4#show mpls interfaces

Interface                  LDP      Tunnel   Static   Enabled

-------------------------- -------- -------- -------- --------

GigabitEthernet0/0/0/0     Yes      No       No       Yes

El problema se resuelve con el comando para activar MPLS para BGP en el link entre R4 y R5. R4 y R5 tienen una sesión de confederación eBGP a través de este link. En realidad, esta es una sesión iBGP dentro de la confederación 65000. Como resultado de esto, se necesita el comando para activar MPLS para asegurarse de que el prefijo en R4 se resuelva al siguiente salto R5. En otras redes regulares, habría LDP ocupándose de esto, pero aquí no hay LDP entre R4 y R5 porque es una sesión eBGP dentro de la confederación.

Agregue el comando mpls Activate para la interfaz ge 0/0/0/1 en R4:

router bgp 65502

bgp confederation peers

65501

65503

65504

!

bgp confederation identifier 65000

mpls activate

interface GigabitEthernet0/0/0/1

!

…

RP/0/0/CPU0:R4#show mpls interfaces

Interface                  LDP      Tunnel   Static   Enabled

-------------------------- -------- -------- -------- --------

GigabitEthernet0/0/0/0     Yes      No       No       Yes

GigabitEthernet0/0/0/1     No       No       No       Yes

El traceroute ahora revela un LSP ininterrumpido de R1 a R8.

RP/0/0/CPU0:R1#trace mpls ipv4 10.0.0.8/32

Tracing MPLS Label Switched Path to 10.0.0.8/32, timeout is 2 seconds

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,

'L' - labeled output interface, 'B' - unlabeled output interface,

'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,

'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label

'P' - no rx intf label prot, 'p' - premature termination of LSP,

'R' - transit router, 'I' - unknown upstream index,

'X' - unknown return code, 'x' - return code 0

Type escape sequence to abort.

0 10.1.2.1 MRU 1500 [Labels: implicit-null/24015 Exp: 0/0]

L 1 10.1.2.2 MRU 1500 [Labels: 24003/24014 Exp: 0/0] 10 ms

L 2 10.2.3.3 MRU 1500 [Labels: implicit-null/24014 Exp: 0/0] 10 ms

L 3 10.3.4.4 MRU 1500 [Labels: implicit-null/24014 Exp: 0/0] 10 ms

L 4 10.4.5.5 MRU 1500 [Labels: implicit-null/24014 Exp: 0/0] 20 ms

L 5 10.5.6.6 MRU 1500 [Labels: implicit-null/24014 Exp: 0/0] 30 ms

L 6 10.6.7.7 MRU 1500 [Labels: implicit-null/implicit-null Exp: 0/0] 30 ms

! 7 10.7.8.8 30 ms

RP/0/0/CPU0:R1#traceroute 10.0.0.8

Type escape sequence to abort.

Tracing the route to 10.0.0.8

1  10.1.2.2 [MPLS: Label 24015 Exp 0] 69 msec  29 msec  29 msec

2  10.2.3.3 [MPLS: Labels 24003/24014 Exp 0] 49 msec  29 msec  29 msec

3  10.3.4.4 [MPLS: Label 24014 Exp 0] 19 msec  19 msec  19 msec

4  10.4.5.5 [MPLS: Label 24014 Exp 0] 49 msec  19 msec  29 msec

5  10.5.6.6 [MPLS: Label 24014 Exp 0] 19 msec  19 msec  29 msec

6  10.6.7.7 [MPLS: Label 24014 Exp 0] 29 msec  29 msec  29 msec

7  10.7.8.8 29 msec  *  29 msec

Ahora hay una interfaz saliente en el LFIB para esta entrada:

RP/0/0/CPU0:R4#show mpls forwarding prefix 10.0.0.8/32

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

------ ----------- ------------------ ------------ --------------- ------------

24014  24014       10.0.0.8/32        Gi0/0/0/1    10.4.5.5        2890

La etiqueta saliente está presente en R4 para el prefijo y CEF muestra el prefijo como resuelto:

RP/0/0/CPU0:R4#show cef 10.0.0.8/32

Updated Sep 13 12:43:30.252

Prefix Len 32, traffic index 0, precedence n/a, priority 4

via 10.4.5.5/32, 3 dependencies, recursive [flags 0x6000]

path-idx 0 NHID 0x0 [0xa17420e4 0x0]

recursion-via-/32

next hop 10.4.5.5/32 via 24016/0/21

local label 24014

next hop 10.4.5.5/32 Gi0/0/0/1    labels imposed {ImplNull 24014}