Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Antecedentes

Configurar

Diagrama de la red

Configuración en PE1

Configuración en ABR1

Verificación

Troubleshoot

Información Relacionada

Introducción

Este documento describe el propósito de Unified Multiprotocol Label Switching (MPLS) y proporciona un ejemplo de configuración en Cisco IOS® XR.

Prerequisites

Requirements

No hay requisitos específicos para este documento.

Componentes Utilizados

Este documento es específico de Cisco IOS XR, pero no se limita a una versión de software o hardware específicos.

La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). If your network is live, make sure that you understand the potential impact of any command.

Antecedentes

El objetivo de Unified MPLS es la escalabilidad. Para escalar una red MPLS, donde hay diferentes tipos de plataformas y servicios en partes de la red, tiene sentido dividir la red en diferentes áreas. Un diseño típico introduce una jerarquía que tiene un núcleo en el centro con agregación en el lateral. Para escalar, puede haber diferentes protocolos de gateway interior (IGP) en el núcleo frente a la agregación. Para escalar, no puede distribuir los prefijos IGP de un IGP al otro. Si no distribuye los prefijos IGP de un IGP en el otro IGP, las trayectorias conmutadas por etiquetas (LSP) de extremo a extremo no son posibles.

Para ofrecer los servicios MPLS de extremo a extremo, necesita que el LSP sea de extremo a extremo. El objetivo es mantener los servicios MPLS (MPLS VPN, MPLS L2VPN) tal y como están, pero introducir una mayor escalabilidad. Para hacer esto, mueva algunos de los prefijos IGP al Protocolo de gateway fronterizo (BGP) (los prefijos de loopback de los routers de borde del proveedor (PE)), que luego distribuye los prefijos de extremo a extremo.

Configurar

Nota: Consulte Prácticas recomendadas para buscar comandos (sólo clientes registrados) para obtener más información sobre cómo investigar comandos.

Diagrama de la red

En la figura 1 se muestra una red con tres áreas diferentes: una central y dos áreas de agregación laterales. Cada área ejecuta su propio IGP, sin redistribución entre ellas en el Router de borde de área (ABR). El uso de BGP es necesario para proporcionar un MPLS LSP de extremo a extremo. BGP anuncia los loopbacks de los routers PE con una etiqueta en todo el dominio y proporciona un LSP de extremo a extremo. BGP se implementa entre los PE y los ABR con RFC 3107 (BGP etiquetado Unicast), lo que significa que BGP envía el prefijo + etiqueta IPv4 (Address Family Identifier (AFI) 1 y el subsiguiente Address Family Identifier (SAFI) 4).

Figure 1

Dado que las partes de núcleo y agregación de la red están integradas y se proporcionan LSP integrales, la solución Unified MPLS también se denomina "MPLS sin problemas".

Aquí no se utilizan nuevas tecnologías ni protocolos, solo MPLS, protocolo de distribución de etiquetas (LDP), IGP y BGP. Dado que no desea distribuir los prefijos de loopback de los routers PE de una parte de la red en otra parte, debe transportar los prefijos en BGP. El Internal Border Gateway Protocol (iBGP) se utiliza en una red, por lo que la dirección de salto siguiente de los prefijos son los prefijos de loopback de los routers PE, que el IGP no conoce en las otras partes de la red. Esto significa que la dirección de salto siguiente no se puede utilizar para volver a un prefijo IGP. El truco es hacer que los routers ABR sean Route Reflectors (RR) y configurar el salto siguiente en uno mismo, incluso para los prefijos iBGP reflejados.

Solo los RR necesitan software para admitir esta arquitectura. Dado que los RR anuncian los prefijos BGP con el salto siguiente configurado a sí mismos, asignan una etiqueta MPLS local a los prefijos BGP. Esto significa que en el plano de datos, los paquetes reenviados en estos LSPs de extremo a extremo tienen una etiqueta MPLS adicional en la pila de etiquetas. Los RR se encuentran en la ruta de reenvío.

Nota: En esta arquitectura, se proporciona cualquier servicio MPLS. Por ejemplo, el servicio MPLS VPN o MPLS L2VPN se proporciona entre los routers PE. La diferencia en el plano de datos para estos paquetes es que ahora tienen tres etiquetas en la pila de etiquetas, mientras que tenían dos etiquetas en la pila de etiquetas cuando no se utilizó Unified MPLS.

Hay dos escenarios posibles:

- El ABR no configura el salto siguiente a uno mismo para los prefijos anunciados (reflejados por BGP) por el ABR en la parte de agregación de la red. Debido a esto, el ABR necesita redistribuir los prefijos de loopback de los ABR del IGP de núcleo en el IGP de agregación. Si esto se hace, todavía hay escalabilidad. Solo los prefijos de loopback ABR (del núcleo) deben anunciarse en la parte de agregación, no los prefijos de loopback de los routers PE de las partes de agregación remotas.

- El ABR configura el salto siguiente a uno mismo para los prefijos anunciados (reflejados por BGP) por el ABR en la parte de agregación. Debido a esto, ABR no necesita redistribuir los prefijos de loopback de los ABR del IGP de núcleo en el IGP de agregación.

En ambos escenarios, ABR configura el salto siguiente a uno mismo para los prefijos anunciados (reflejados por BGP) por ABR desde la parte de agregación de la red a la parte del núcleo. Si esto no se hace, ABR necesita redistribuir los prefijos de loopback de los PE del IGP de agregación en el IGP de núcleo. Si esto se hace, no hay escalabilidad.

Se pueden aplicar diferentes configuraciones para establecer el salto siguiente a uno mismo para las rutas de unidifusión etiquetadas iBGP reflejadas en los ABR.

Estas soluciones no funcionan para habilitar RFC 3107 en Cisco IOS XR:

- next-hop-self no funciona.

Por ejemplo:

router bgp 1

neighbor 10.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

next-hop-self

!

- RPL con set next-hop self no funciona.

Por ejemplo:

router bgp 1

neighbor 10.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

route-policy nhs-ibgp-3107 out

!

route-policy nhs-ibgp-3107

set next-hop self

end-policy

- set next-hop to peer-address no es un operador válido para el punto de conexión.

Por ejemplo:

router bgp 1

neighbor 10.100.1.1

address-family ipv4 labeled-unicast

route-policy nhs-ibgp-3107-peer out

!!% Could not find entry in list: Policy [nhs-ibgp-3107-peer]

uses 'set-to-peer-address next-hop'. 'set' is not a valid

operator for the 'next-hop' attribute at the bgp neighbor-out-dflt attach point.

!

!

!

route-policy nhs-ibgp-3107-peer

set next-hop peer-address

end-policy

- set next-hop to a specific address in a route-policy y ibgp policy out enforce-changes no funciona

Por ejemplo:

router bgp 1

ibgp policy out enforce-modifications

!

neighbor 10.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

route-policy nhs-ibgp-3107 out

!

!

route-policy nhs-ibgp-3107-peer

set next-hop 10.100.1.3

end-policy

Estas soluciones sí funcionan.

¡Asegúrese de que ibgp policy out aplique las modificaciones!

Por ejemplo:

router bgp 1

ibgp policy out enforce-modifications

!

neighbor 10.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

next-hop-self

!

!

Por ejemplo:

router bgp 1

ibgp policy out enforce-modifications

!

neighbor 1.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

route-policy nhs-ibgp-3107 out

!

!

route-policy nhs-ibgp-3107

set next-hop self

end-policy

Por ejemplo:

router bgp 1

ibgp policy out enforce-modifications

!

neighbor 10.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

route-policy nhs-ibgp-3107 out

next-hop-self

!

!

!

route-policy nhs-ibgp-3107

set next-hop self

end-policy

Por ejemplo:

router bgp 1

ibgp policy out enforce-modifications

!

neighbor 10.100.1.1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

route-policy nhs-ibgp-3107 out

next-hop-self

!

!

!

route-policy nhs-ibgp-3107

set next-hop 10.100.1.3

end-policy

Configuración en PE1

hostname PE1

!

vrf one     <<< MPLS service is MPLS VPN

address-family ipv4 unicast

import route-target

1:1

!

export route-target

1:1

!

!

address-family ipv6 unicast

import route-target

1:1

!

export route-target

1:1

!

!

interface Loopback0

ipv4 address 10.100.1.1 255.255.255.255

!

!

interface GigabitEthernet0/0/0/0

ipv4 address 10.1.1.1 255.255.255.0

!

!

interface GigabitEthernet0/0/0/1   <<< VRF interface to CE1

vrf one

ipv4 address 10.9.1.3 255.255.255.0

!

!

router ospf 1

router-id 10.100.1.1

area 0

interface Loopback0

!

interface GigabitEthernet0/0/0/0

network point-to-point

!

!

!

router bgp 1

address-family ipv4 unicast

network 10.100.1.1/32    <<< advertise PE loopback in BGP

allocate-label all

!

address-family vpnv4 unicast

!

neighbor 10.100.1.3

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

!

!

neighbor 10.100.1.7     <<< vpnv4 iBGP session to PE2

remote-as 1

update-source Loopback0

address-family vpnv4 unicast

!

!

vrf one

rd 1:1

address-family ipv4 unicast

!

neighbor 10.9.1.2    <<< eBGP session to CE1

remote-as 65001

address-family ipv4 unicast

route-policy pass in

route-policy pass out

!

!

!

!

mpls ldp

mldp

logging notifications

address-family ipv4

!

!

router-id 10.100.1.1

address-family ipv4

!

interface GigabitEthernet0/0/0/0

address-family ipv4

!

!

!

Configuración en ABR1

hostname ABR1

!

interface Loopback0

ipv4 address 10.100.1.3 255.255.255.255

!

!

interface GigabitEthernet0/0/0/0

ipv4 address 10.1.3.3 255.255.255.0

!

interface GigabitEthernet0/0/0/1

ipv4 address 10.1.2.3 255.255.255.0

!

route-policy nhs-ibgp-3107

set next-hop 10.100.1.3    <<< set next hop to loopback

end-policy

!

route-policy connected-into-ospf2

if destination in (10.100.1.3/32) then

pass

endif

end-policy

!

router ospf 1

router-id 10.100.1.3

area 0

interface Loopback0

!

interface GigabitEthernet0/0/0/1

network point-to-point

!

!

!

router ospf 2

redistribute connected route-policy connected-into-ospf2

area 0

interface GigabitEthernet0/0/0/0

network point-to-point

!

!

!

router bgp 1

ibgp policy out enforce-modifications

address-family ipv4 unicast

allocate-label all

!

neighbor 10.100.1.1     <<< iBGP neighbor PE1

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-reflector-client

route-policy nhs-ibgp-3107 out

next-hop-self

!

!

neighbor 10.100.1.5      <<< iBGP neighbor ABR2

remote-as 1

update-source Loopback0

address-family ipv4 labeled-unicast

route-policy nhs-ibgp-3107 out

next-hop-self

!

!

!

mpls ldp

mldp

address-family ipv4

!

!

router-id 10.100.1.3

interface GigabitEthernet0/0/0/0

address-family ipv4

discovery transport-address interface

!

!

interface GigabitEthernet0/0/0/1

address-family ipv4

!

!

Nota: allocate-label all o allocate-label route-policy es necesario. De lo contrario, las rutas de unidifusión etiquetadas no tienen una etiqueta local que necesitan, ya que ABR es el salto siguiente para las rutas reflejadas de iBGP.

Nota: No se realiza la redistribución del IGP de núcleo (OSPF 2) en el IGP de agregación (OSPF 1 o OSPF 3) o viceversa. Sin embargo, el prefijo de loopback del RR también debe conocerse en el IGP de agregación, de modo que el BGP en el router PE pueda hacer peer con el loopback del ABR/RR. Para esto, la redistribución de las rutas conectadas en el IGP de agregación se realiza con RPL. Las rutas conectadas redistribuidas están limitadas al prefijo de loopback de ABR con RPL.

Verificación

Consulte la Figura 2 para verificar el funcionamiento del plano de control:

Figure 2

Consulte la Figura 3 para verificar los anuncios de etiquetas MPLS:

Figure 3

Consulte la Figura 4 para verificar el reenvío de paquetes:

Figure 4

Así es como se reenvían los paquetes de PE1 a PE2. El prefijo de loopback de PE2 es 10.100.1.7/32, por lo que ese prefijo es de interés.

RP/0/0/CPU0:PE1#traceroute

Protocol [ipv4]:

Target IP address: 10.100.1.7

Source address: 10.100.1.1

Numeric display? [no]:

Timeout in seconds [3]:

Probe count [3]:

Minimum Time to Live [1]:

Maximum Time to Live [30]:

Port Number [33434]:

Loose, Strict, Record, Timestamp, Verbose[none]:

Type escape sequence to abort.

Tracing the route to 10.100.1.7

1  10.1.1.2 [MPLS: Labels 24000/24005 Exp 0] 439 msec  119 msec  109 msec

2  10.1.2.3 [MPLS: Label 24005 Exp 0] 109 msec  109 msec  109 msec

3  10.1.3.4 [MPLS: Labels 24001/24003 Exp 0] 99 msec  99 msec  149 msec

4  10.1.4.5 [MPLS: Label 24003 Exp 0] 119 msec  119 msec  99 msec

5  10.1.5.6 [MPLS: Label 24001 Exp 0] 109 msec  139 msec  99 msec

6  10.1.6.7 109 msec  *  109 msec

La etiqueta 24000 es la etiqueta LDP aprendida de P2 para el prefijo 10.100.1.3/32. La etiqueta 24005 es la etiqueta BGP RFC 3107 aprendida para el prefijo 10.100.1.7/32.

RP/0/0/CPU0:PE1#show route 10.100.1.7/32

Routing entry for 10.100.1.7/32

Known via "bgp 1", distance 200, metric 0, [ei]-bgp, type internal

BIER rid=0x0, flags=0x0, count=0

Installed May 27 02:52:07.184 for 00:08:52

Routing Descriptor Blocks

10.100.1.3, from 10.100.1.3      <<< next-hop is ABR1

Route metric is 0

No advertising protos.

RP/0/0/CPU0:PE1#show cef 10.100.1.7/32

10.100.1.7/32, version 89, internal 0x1000001 0x0 (ptr 0xa1470f74)

[1], 0x0 (0xa1456614), 0xa08 (0xa16181e0)

Updated May 27 02:52:07.203

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

via 10.100.1.3, 3 dependencies, recursive [flags 0x6000]

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

recursion-via-/32

next hop 10.100.1.3 via 24001/0/21

local label 24003

next hop 10.1.1.2/32 Gi0/0/0/0    labels imposed {24000 24005}

RP/0/0/CPU0:PE1#show bgp ipv4 unicast labels

BGP router identifier 10.100.1.1, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0000000   RD version: 44

BGP main routing table version 44

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        Rcvd Label      Local Label

*> 10.100.1.1/32      0.0.0.0         nolabel         3

*>i10.100.1.7/32      10.100.1.3      24005           24003

Processed 2 prefixes, 2 paths

Hay penúltimo salto emergente (PHP) hacia ABR1.

RP/0/0/CPU0:P2#show mpls forwarding labels 24000

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

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

24000  Pop         10.100.1.3/32      Gi0/0/0/1    10.1.2.3        694765

La etiqueta 24005 se intercambia con la etiqueta 24003 en ABR1.

RP/0/0/CPU0:ABR1#show bgp ipv4 unicast labels

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: 60

BGP main routing table version 60

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        Rcvd Label      Local Label

*>i10.100.1.1/32      10.100.1.1      3               24003

*>i10.100.1.7/32      10.100.1.5      24003           24005

Processed 2 prefixes, 2 paths

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

Wed May 27 04:08:24.255 UTC

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

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

24005  24003       10.100.1.7/32                   10.100.1.5      6347

Hay PHP de P1 a ABR2.

RP/0/0/CPU0:P1#show mpls forwarding labels 24001

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

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

24001  Pop         10.100.1.5/32      Gi0/0/0/1    10.1.4.5        348835

La etiqueta BGP para la ruta RFC 3107 10.100.1.7/32 recibida por ABR2 desde PE2 es 3. Esta es la etiqueta nula implícita que indica PHP.

RP/0/0/CPU0:ABR2#show bgp ipv4 unicast labels

BGP router identifier 10.100.1.5, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0000000   RD version: 47

BGP main routing table version 47

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        Rcvd Label      Local Label

*>i10.100.1.1/32      10.100.1.3      24003           24005

*>i10.100.1.7/32      10.100.1.7      3               24003

Processed 2 prefixes, 2 paths

La etiqueta 24003 se intercambia con la etiqueta 24001 en ABR2.

RP/0/0/CPU0:ABR2#show mpls forwarding labels 24003

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

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

24003  24001       10.100.1.7/32      Gi0/0/0/0    10.1.5.6        403676

Hay PHP de P3 a PE2.

RP/0/0/CPU0:P3#show mpls forwarding labels 24001

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

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

24001  Pop         10.100.1.7/32      Gi0/0/0/1    10.1.6.7        685191

RP/0/0/CPU0:PE2#show bgp ipv4 unicast labels

BGP router identifier 10.100.1.7, local AS number 1

BGP generic scan interval 60 secs

Non-stop routing is enabled

BGP table state: Active

Table ID: 0xe0000000   RD version: 42

BGP main routing table version 42

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        Rcvd Label      Local Label

*>i10.100.1.1/32      10.100.1.5      24005           24004

*> 10.100.1.7/32      0.0.0.0         nolabel         3

Processed 2 prefixes, 2 paths

Troubleshoot

Actualmente, no hay información específica de troubleshooting disponible para esta configuración.

Información Relacionada

- Arquitectura MPLS perfecta

- Soporte Técnico y Documentación - Cisco Systems