Contenido

Prerequisites

Requirements

Componentes Utilizados

Introducción

Intercambio de capacidades

Especificaciones de implementación de IOS-XR

Configuración de U o LU

Tabla BGP

Habilitación de la Asignación de Etiqueta Local

Nueva implementación en IOS-XR

Grupos de actualización

Propagación de ruta

Asignación de una Etiqueta Local

Asignar etiqueta para rutas sin etiqueta

Cálculo de mejor trayectoria

Verificación del Comportamiento en BGP

iBGP y next-hop-self - Unified MPLS

Soluciones alternativas

Ejemplo de configuración para IOS-XR.

Este documento describe el comportamiento de recibir y anunciar trayectos sin etiquetar y etiquetados sobre una sesión BGP 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 o hardware de software específico.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Introducción

El Identificador de familia de direcciones (AFI) es una indicación del tipo de ruta BGP. Los ejemplos son 1 para IPv4 y 2 para IPv6.

El identificador de familia de direcciones (SAFI) subsiguiente es una indicación adicional del tipo de ruta. Los ejemplos son 1 para una ruta sin etiqueta y 4 para una ruta etiquetada.

La unidifusión sin etiqueta para IPv4 es AFI 1 y SAFI 1.

La unidifusión etiquetada para IPv4 es AFI 1 y SAFI 4.

La unidifusión sin etiqueta para IPv6 es AFI 2 y SAFI 1.

La unidifusión etiquetada para IPv6 es AFI 2 y SAFI 4.

La unidifusión etiquetada (LU) se denomina a menudo RFC 3107 "Transportación de información de etiquetas en BGP-4".

A continuación, U se refiere a unicast sin etiqueta, por lo que SAFI 1 y LU se refieren a unicast etiquetado, por lo que SAFI 4.

Tenga en cuenta que Cisco IOS® XR necesita "asignar-label all| route-policy..." o la ruta no se originará ni propagará al siguiente altavoz BGP como SAFI 4.

La unidifusión IPv4/v6 y la unidifusión etiquetada en una sesión BGP no se soportó en Cisco IOS® XR .

En Cisco IOS® XR, el soporte para tener no etiquetado y etiquetado en una sesión BGP se realizó en 6.2.1.

Cuando se ejecutan ambos en una sesión no se soporta, es problemático pues la última actualización/retiro recibida invalida la anterior, incluso si fueron recibidos en otro SAFI.

Cuando configura SAFI 1 y 4 en la misma sesión BGP en un router que ejecuta código IOS-XR antes de IOS-XR 6.2.1, el router da la siguiente advertencia:

bgp[1051]: %ROUTING-BGP-4-INCOMPATIBLE_AFI : IPv4 Unicast and IPv4 Labeled-unicast Address families together are not supported under the same neighbor.

Este mensaje de advertencia fue introducido en IOS-XR 5.3.0 y IOS-XR 5.2.2.

Intercambio de capacidades

Las capacidades intercambiadas entre peers BGP deben coincidir. Si no, la sesión BGP no aparece.

Esta es una captura de Wireshark de la capacidad intercambiada para AFI 1/SAFI 1 y AFI 1/SAFI 4 en el mensaje BGP Open:

Imagen 1

Este es un ejemplo para IOS-XR configurado con LU solamente en una sesión a IOS configurada solamente con U.

IOS-XR:

RP/0/0/CPU0:R4#show bgp neighbor 10.100.1.8

BGP neighbor is 10.100.1.8

Remote AS 65003, local AS 65003, internal link

Remote router ID 0.0.0.0

BGP state = Idle

…

Connections established 0; dropped 0

Local host: 10.100.1.4, Local port: 179, IF Handle: 0x00000000

Foreign host: 10.100.1.8, Foreign port: 33396

Last reset 00:00:14, due to BGP Notification sent: unsupported/disjoint capability

Time since last notification sent to neighbor: 00:00:14

Error Code: unsupported/disjoint capability

Notification data sent:

None

El router IOS imprime un mensaje syslog para este error de configuración:

*Aug  8 12:40:44.719: %BGP-3-NOTIFICATION: received from neighbor 10.100.1.4 active 2/7 (unsupported/disjoint capability) 0 by

Especificaciones de implementación de IOS-XR

Configuración de U o LU

Usted configura "address-family ipv4 unicast" bajo el comando de vecino BGP para habilitar ipv4 unicast para la sesión BGP.

Usted configura "address-family ipv6 unicast" bajo el comando de vecino BGP para habilitar ipv6 unicast para la sesión BGP.

Usted configura "address-family ipv4 etiquetado-unicast" bajo el comando de vecino BGP para habilitar ipv4 etiquetado unicast para la sesión BGP.

Usted configura "address-family ipv6 etiquetado-unicast" bajo el comando de vecino BGP para habilitar ipv6 etiquetado unicast para la sesión BGP.

En IOS-XR, la combinación AFI/SAFI se configura por peer BGP.

Este es un ejemplo para una sesión BGP que tiene SAFI 1 y 4:

router bgp 65003

address-family ipv4 unicast

redistribute connected

allocate-label all unlabeled-path

…

neighbor 10.100.1.7

remote-as 65003

update-source Loopback0

address-family ipv4 unicast

route-reflector-client

!

address-family ipv4 labeled-unicast

route-reflector-client

Observe que todavía hay solamente la "unidifusión de familia de direcciones" y no la "familia de direcciones etiquetada-unidifusión" en el router BGP. Las trayectorias SAFI 1 y 4 se almacenan en esta tabla BGP.

Tabla BGP

Independientemente de si IOS-XR es más antiguo o más reciente que 6.2.1, sólo hay una tabla BGP para almacenar las rutas U y LU. Esto es evidente por el hecho de que sólo puede configurar (habilitar) "address-family ipv4 unicast" o "address-family ipv6 unicast" en router bgp. No puede configurar "address-family ipv4 etiquetado-unicast" o "address-family ipv6 etiquetado-unicast" en router bgp.

La trayectoria U y LU puede ser idéntica. Antes de IOS-XR 6.2.1, recibir la misma trayectoria de nuevo pero esta vez con o sin una etiqueta, invalidaría la trayectoria recibida anteriormente. Después de IOS-XR 6.2.1, las dos trayectorias idénticas se verán como diferentes si sólo difieren por la etiqueta. Los diferentes SAFI realizan las adiciones, eliminaciones o modificaciones de la ruta.

Este es un ejemplo de una ruta en la tabla BGP con AFI 1/SAFI 4. Debido a que la asignación de etiquetas está habilitada para todos los prefijos, esta ruta se almacenará con una etiqueta local. Debido a que sólo hay una tabla BGP para almacenar las rutas U y LU, el prefijo aparece con los comandos "show bgp ipv4 unicast" y "show bgp ipv4 etiquetado-unicast".

RP/0/0/CPU0:R4#show bgp ipv4 unicast 10.100.1.1/32

BGP routing table entry for 10.100.1.1/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                  5           5

Local Label: 24000

Last Modified: Aug  6 15:03:59.574 for 16:06:13

Paths: (1 available, best #1)

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

0.3 0.4

Advertised to peers (in unique update groups):

10.1.45.5

Path #1: Received by speaker 0

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

0.3 0.4

Advertised to peers (in unique update groups):

10.1.45.5

65002 65001

10.1.24.2 from 10.1.24.2 (10.100.1.2)

Received Label 24003

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

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

Origin-AS validity: not-found

Observe que la trayectoria está marcada con "etiqueta-unidifusión".

RP/0/0/CPU0:R4#show bgp ipv4 labeled-unicast 10.100.1.1/32

BGP routing table entry for 10.100.1.1/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                  5           5

Local Label: 24000

Last Modified: Aug  6 15:03:59.574 for 16:08:41

Paths: (1 available, best #1)

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

0.3 0.4

Advertised to peers (in unique update groups):

10.1.45.5

Path #1: Received by speaker 0

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

0.3 0.4

Advertised to peers (in unique update groups):

10.1.45.5

65002 65001

10.1.24.2 from 10.1.24.2 (10.100.1.2)

Received Label 24003

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

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

Origin-AS validity: not-found

Observe que la trayectoria está marcada con "etiqueta-unidifusión".

Si la trayectoria está presente como U y LU, entonces el ID de trayectoria local es diferente.

RP/0/0/CPU0:R4#show bgp ipv4 labeled-unicast 10.100.1.1/32 detail

BGP routing table entry for 10.100.1.1/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                 30          30

Local Label: 24003 (no rewrite);

Flags: 0x00003028+0x00010000;

Last Modified: Aug 30 10:45:50.502 for 00:01:59

Paths: (2 available, best #1)

Advertised IPv4 Unicast paths to peers (in unique update groups):

10.100.1.8      10.100.1.9

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

0.8

Path #1: Received by speaker 0

Flags: 0x4000000009060205, import: 0x20

Advertised IPv4 Unicast paths to peers (in unique update groups):

10.100.1.8      10.100.1.9

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

0.8

65001, (Received from a RR-client)

10.100.1.9 (metric 2) from 10.100.1.9 (10.100.1.9)

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

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

Path #2: Received by speaker 0

Flags: 0x4080000008020205, import: 0x20

Not advertised to any peer

65001, (Received from a RR-client)

10.100.1.9 (metric 2) from 10.100.1.9 (10.100.1.9)

Received Label 24001

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

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

Habilitación de la Asignación de Etiqueta Local

Debe configurar el comando "asignar-label" para que las trayectorias recibidas o originadas en BGP tengan una etiqueta MPLS local. Sin este comando, las rutas no tendrán una etiqueta local.

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

RP/0/0/CPU0:R4(config)#router bgp 65003

RP/0/0/CPU0:R4(config-bgp)# address-family ipv4 unicast

RP/0/0/CPU0:R4(config-bgp-af)#allocate-label ?

all           Allocate labels for all prefixes

route-policy  Use a route policy to select prefixes for label allocation

La asignación de etiquetas ocurre para todas las rutas o según la política de rutas configurada.

Nueva implementación en IOS-XR

En la implementación anterior en IOS-XR, se da una advertencia al configurar tanto la U como la LU en la misma sesión BGP. La advertencia se introduce en las versiones 5.3.0 y 5.2.2 del IOS-XR. La advertencia se elimina en la versión 6.2.1 de IOS-XR, porque se admite etiquetado y sin etiqueta en la misma sesión de BGP.

Ejemplo:

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

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

RP/0/0/CPU0:ios(config-bgp)#add ipv4 unicast

RP/0/0/CPU0:ios(config-bgp-af)#exit

RP/0/0/CPU0:ios(config-bgp)#neighbor 10.0.0.1

RP/0/0/CPU0:ios(config-bgp-nbr)#remote-as 65001

RP/0/0/CPU0:ios(config-bgp-nbr)#exit

RP/0/0/CPU0:ios(config-bgp)#neighbor 10.0.0.1

RP/0/0/CPU0:ios(config-bgp-nbr)#address-family ipv4 unicast

RP/0/0/CPU0:ios(config-bgp-nbr-af)#exit

RP/0/0/CPU0:ios(config-bgp-nbr)#address-family ipv4 labeled-unicast

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

RP/0/0/CPU0:Aug 21 14:14:22.222 : bgp[1052]: %ROUTING-BGP-4-INCOMPATIBLE_AFI : IPv4 Unicast and IPv4 Labeled-unicast Address families together are not supported under the same neighbor.

La explicación de este mensaje de error:

Este mensaje indica que el usuario ha configurado familias de direcciones unidifusión IPv4 e unidifusión etiquetada IPv4 o unidifusión IPv6 e unidifusión etiquetada IPv6 juntas bajo el mismo vecino. Esta configuración en particular no se soporta.

Acción recomendada: configure dos sesiones vecinas en el router. Configure la familia de direcciones unicast bajo la primera sesión vecina y configure la familia de direcciones etiquetada-unicast bajo la segunda sesión vecina.

Ejemplo de configuración para dos sesiones BGP entre un par de routers IOS-XR. Utilice una dirección (loopback) diferente para cada sesión de BGP.

hostname R1

interface Loopback0

ipv4 address 10.100.1.1 255.255.255.255

!

interface Loopback1

ipv4 address 10.100.1.101 255.255.255.255

!

router bgp 65001

address-family ipv4 unicast

!

neighbor 10.100.1.2

remote-as 65001

update-source Loopback0

address-family ipv4 unicast

!

!

neighbor 10.100.1.102

remote-as 65001

update-source Loopback1

address-family ipv4 labeled-unicast

!

!

hostname R2

interface Loopback0

ipv4 address 10.100.1.2 255.255.255.255

!

interface Loopback1

ipv4 address 10.100.1.102 255.255.255.255

!

router bgp 65001

address-family ipv4 unicast

!

neighbor 10.100.1.1

remote-as 65001

update-source Loopback0

address-family ipv4 unicast

!

!

neighbor 10.100.1.101

remote-as 65001

update-source Loopback1

address-family ipv4 labeled-unicast

!

!

En IOS-XR 6.2.1, tanto la U como la LU se soportan en la misma sesión BGP en el VRF predeterminado.

No importa si la sesión BGP es BGP interno o externo.

Los altavoces BGP no admiten U y LU en la misma sesión en ningún VRF no predeterminado.

Grupos de actualización

Antes de IOS-XR 6.2.1, todos los altavoces BGP U, LU y U + LU se guardaban en grupos de actualizaciones independientes. Después de IOS-XR versión 6.2.1, esto ya no es así. Algunos altavoces BGP en un grupo de actualización pueden ser sólo U, o sólo LU, o tanto U como LU.

Propagación de ruta

En la tabla siguiente se muestra el comportamiento del anuncio y del retiro para diferentes escenarios. Hay 16 escenarios.

Todo se aplica a IOS-XR versión 6.2.1 y posteriores, a menos que se mencione lo contrario en la columna de comentarios.

Caso

Tipo de ruta de acceso/ruta de acceso óptima

¿Hay una etiqueta local?

NHS o NHU

Update-group SAFI

¿Anunciar o retirar?

Comentarios

1

Ruta sin etiqueta, es decir, sin etiqueta RX

Yes

NHS

SAFI-1

Anuncio predeterminado

Retirar con comando advertise local-label-route (safi-unicast) disable

Sólo es posible después de 6.5.1.

2

SAFI-4

Anuncio

Sólo es posible después de 6.5.1.

Rutas de reversión IPv4/v6 y 6PE: NHS implícito siempre

3

NHU

SAFI-1

Anuncio

Sólo es posible después de 6.5.1.

4

SAFI-4

Retirar

Sólo es posible después de 6.5.1.

Rutas de reversión IPv4/v6 y 6PE: NHU ignorado; NHS implícito siempre

5

No

NHS

SAFI-1

Anuncio

6

SAFI-4

Retirar

7

NHU

SAFI-1

Anuncio

8

SAFI-4

Retirar

9

Trayectoria etiquetada, es decir, con etiqueta rx

Yes

NHS

SAFI-1

Anuncio predeterminado

Retirar con el comando advertise local-label-route (safi-unicast) disable

Antes de 6.2.1: el comportamiento predeterminado es Anunciar.

10

SAFI-4

Anuncio

11

NHU

SAFI-1

Retirar

Antes de 6.2.1:  el comportamiento es anunciar.

12

SAFI-4

Anuncio

13

No

NHS

SAFI-1

Anuncio

14

SAFI-4

Retirar

15

NHU

SAFI-1

Retirar

Antes de 6.2.1:  el comportamiento es anunciar.

16

SAFI-4

Anuncio

Tabla 1 Comportamiento del Anuncio para las Sesiones iBGP y eBGP

NHS = Siguiente Salto

NHU = Salto Siguiente Sin Cambiar.

Si NHU está en efecto, esto significa que el salto siguiente no se configura para una sesión iBGP.

Tenga en cuenta que NHS es siempre el caso cuando el altavoz BGP envía a un par eBGP.

Puede haber NHS o NHU hacia un altavoz iBGP, dependiendo de la configuración de next-hop-self. El comportamiento predeterminado hacia los peers iBGP es NHU.

Para la segunda columna: tenga en cuenta que la ruta se considera no etiquetada o etiquetada sólo si la mejor trayectoria o una de las trayectorias marcadas con add-path no está etiquetada o etiquetada.

Para la propagación de la ruta importa qué características tiene la mejor trayectoria. Dependiendo de las características (columnas 2 a 4), determina si la trayectoria se anuncia como U, LU o ambas.

Si la función Rutas adicionales (ADD-PATH) está activada y una ruta de acceso está marcada con "add-path", las características de esa ruta también juegan un papel en cómo se anunciará esa ruta.

"Etiqueta local presente?: No" significa lo siguiente: es posible que se reciba una etiqueta con la actualización recibida, pero la etiqueta no está instalada. La etiqueta local no se instala si el comando "asignar-label" no está ahí.

Puede verificar si la etiqueta local está presente observando el prefijo en detalle. Utilice "show bgp <prefix> detail" o "show route <prefix> detail".

En el siguiente ejemplo, el prefijo se recibe sin una etiqueta (por lo tanto, a través de un par SAFI 1) y no se asigna ninguna etiqueta local:

RP/0/0/CPU0:R2#show bgp ipv4 labeled-unicast 10.100.1.5/32 detail

BGP routing table entry for 10.100.1.5/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                  3           3

Flags: 0x04001001+0x00000000;

Last Modified: Sep  5 03:44:45.647 for 01:01:27

Paths: (1 available, best #1)

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

0.3

Path #1: Received by speaker 0

Flags: 0x4000000001040207, import: 0x00

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

0.3

Local, (Received from a RR-client)

10.100.1.1 (metric 2) from 10.100.1.1 (10.100.1.1)

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

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

RP/0/0/CPU0:R2#show route 10.100.1.5/32 detail

Routing entry for 10.100.1.5/32

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

Installed Sep  5 03:44:45.480 for 01:01:37

Routing Descriptor Blocks

10.100.1.1, from 10.100.1.1

Route metric is 0

Label: None

Tunnel ID: None

Extended communities count: 0

NHID:0x0(Ref:0)

Route version is 0x23 (35)

No local label

IP Precedence: Not Set

QoS Group ID: Not Set

Flow-tag: Not Set

Route Priority: RIB_PRIORITY_RECURSIVE (12) SVD Type RIB_SVD_TYPE_LOCAL

Download Priority 4, Download Version 52

No advertising protos.

Asignación de una Etiqueta Local

Asignar etiqueta para rutas sin etiqueta

De forma predeterminada, las rutas sin etiqueta (SAFI 1) nunca se etiquetan, incluso cuando se configura el comando "asignar-etiqueta".

A partir de la versión 6.5.1 del IOS-XR, existe la palabra clave "unetiqueta-ruta" para el comando "asignar-etiqueta", de modo que también se puedan asignar etiquetas a las trayectorias no etiquetadas.

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

RP/0/0/CPU0:R4(config)#router bgp 65003

RP/0/0/CPU0:R4(config-bgp)# address-family ipv4 unicast

RP/0/0/CPU0:R4(config-bgp-af)#allocate-label all ?

unlabeled-path  Allocate label for unlabeled paths too

<cr>

RP/0/0/CPU0:R4(config-bgp-af)#allocate-label all unlabeled-path ?

<cr>

RP/0/0/CPU0:R4(config-bgp-af)#allocate-label all unlabeled-path

RP/0/0/CPU0:R4(config-bgp-af)#commit

La trayectoria es una trayectoria SAFI 1, por lo que no hay ninguna etiqueta recibida.

Debido al comando "unetiqueta-ruta" ahora hay una etiqueta local.

RP/0/0/CPU0:R4#show bgp ipv4 labeled-unicast 10.100.1.1/32 detail

BGP routing table entry for 10.100.1.1/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                 16          16

Local Label: 24003 (no rewrite);

Flags: 0x01303028+0x00000000;

Last Modified: Aug 27 19:08:47.502 for 00:00:59

Paths: (1 available, best #1)

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

0.3

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

0.7

Advertised IPv4 Labeled-unicast paths to peers (in unique update groups):

10.1.45.5

Path #1: Received by speaker 0

Flags: 0x4000000009040207, import: 0x20

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

0.3

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

0.7

Advertised IPv4 Labeled-unicast paths to peers (in unique update groups):

10.1.45.5

65001, (Received from a RR-client)

10.100.1.10 (metric 2) from 10.100.1.10 (10.100.1.10)

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

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

RP/0/0/CPU0:R4#show route 10.100.1.1/32 detail

Routing entry for 10.100.1.1/32

Known via "bgp 65003", distance 200, metric 0

…

Route version is 0x4 (4)

Local Label: 0x5dc3 (24003)

IP Precedence: Not Set

…

Esto permitirá los casos 1 a 4 del cuadro 1.

Para averiguar por qué se sigue asignando una etiqueta local cuando se elimina el comando "asignar-etiqueta", ejecute el comando debug "debug bgp label".

Este es un ejemplo:

RP/0/0/CPU0:R4#debug bgp label

RP/0/0/CPU0:R4#show debug

####  debug flags set from tty 'con0_0_CPU0'  ####

ip-bgp default label flag is ON with value '##########'

Es mejor habilitar esta depuración para un prefijo específico o grupo de prefijos. Aquí tiene un ejemplo:

RP/0/0/CPU0:R4#sh running-config route-policy match-prefix

route-policy match-prefix

if destination in (10.100.1.1/32) then

pass

else

drop

endif

end-policy

!

RP/0/0/CPU0:R4#debug bgp label route-policy match-prefix

RP/0/0/CPU0:R4#show debug

####  debug flags set from tty 'con0_0_CPU0'  ####

ip-bgp default label flag is ON with value '######match-prefix####'

RP/0/0/CPU0:R4#con t

RP/0/0/CPU0:R4(config)#router bgp 65003

RP/0/0/CPU0:R4(config-bgp)# address-family ipv4 unicast

RP/0/0/CPU0:R4(config-bgp-af)#no   allocate-label all

RP/0/0/CPU0:R4(config-bgp-af)#commit

RP/0/0/CPU0:Aug 23 12:43:02.786 : bgp[1048]: [default-lbl] (ip4u): Label computation done: table=TBL:default (1/1), net=10.100.1.1/32: netfl=0x05043001, path=0x1073ed5c(10.1.24.2/32,10.1.24.2,0,0x400000000d060001), pathrcvdlabel=24002: asbr=1, rr=0/1, nhselfcount=1: result="label required"

Puede ver que este router recibió una etiqueta para el prefijo 10.100.1.1/32, es un ASBR, no es un RR y tiene next-hop-self para al menos una sesión BGP. Esto da como resultado que este prefijo necesite una etiqueta local.

La etiqueta local permanece:

RP/0/0/CPU0:R4#show bgp ipv4 unicast 10.100.1.1/32 detail

BGP routing table entry for 10.100.1.1/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                 13          13

Local Label: 16002 (no rewrite);

Flags: 0x05043001+0x00000200;

Last Modified: Aug 23 12:37:11.133 for 00:05:53

Paths: (1 available, best #1)

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

0.6

Advertised to peers (in unique update groups):

10.1.46.6       10.100.1.8      10.100.1.7

Path #1: Received by speaker 0

Flags: 0x400000000d060001, import: 0x1f

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

0.6

Advertised to peers (in unique update groups):

10.1.46.6       10.100.1.8      10.100.1.7

65002 65001

10.1.24.2 from 10.1.24.2 (10.100.1.2)

Received Label 24002

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

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

Origin-AS validity: not-found

RP/0/0/CPU0:R4#show route 10.100.1.1/32 detail

Routing entry for 10.100.1.1/32

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

Tag 65002, type external

Installed Aug 23 12:37:11.440 for 00:06:02

Routing Descriptor Blocks

10.1.24.2, from 10.1.24.2, BGP external

Route metric is 0

Label: 0x5dc2 (24002)

Tunnel ID: None

Extended communities count: 0

NHID:0x0(Ref:0)

Route version is 0x4 (4)

Local Label: 0x3e82 (16002)

IP Precedence: Not Set

QoS Group ID: Not Set

Route Priority: RIB_PRIORITY_NON_RECURSIVE_LOW (11) SVD Type RIB_SVD_TYPE_LOCAL

Download Priority 4, Download Version 28

No advertising protos.

La depuración muestra el siguiente mensaje cuando no se requiere una etiqueta local:

RP/0/0/CPU0:Aug 23 13:01:15.801 : bgp[1048]: [default-lbl]: Prefix 10.100.1.1/32:()doesn't require label, releasing

RP/0/0/CPU0:Aug 23 13:01:15.801 : bgp[1048]: [default-lbl]: bgp_label_release_label: perform label release onnet 10.100.1.1/32net retain 0 label_retain 0

Si el prefijo está en el LFIB depende de si el prefijo se recibió etiquetado o no y si la etiqueta de asignación se aplica a ese prefijo.

La etiqueta recibida es 24002 para el siguiente prefijo.  No está instalado en el LFIB, porque BGP no tiene el comando asignar-label.

RP/0/0/CPU0:R4#show bgp ipv4 unicast  10.100.1.1/32

BGP routing table entry for 10.100.1.1/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                  4           4

Local Label: 24002

Last Modified: Aug  8 13:52:57.276 for 00:00:36

Paths: (1 available, best #1)

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

0.6

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.6

Advertised to peers (in unique update groups):

10.100.1.7

65002 65001

10.1.24.2 from 10.1.24.2 (10.100.1.2)

Received Label 24002

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

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

Origin-AS validity: not-found

router bgp 65003

bgp unsafe-ebgp-policy

address-family ipv4 unicast

!

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

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

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

24000  Aggregate   10.1.24.0/24       default                      0

24001  Aggregate   10.1.45.0/24       default                      0

Si el comando asignar-label está presente, la etiqueta local está presente en el LFIB:

router bgp 65003

bgp unsafe-ebgp-policy

address-family ipv4 unicast

allocate-label all

!

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

Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes

Label  Label       or ID              Interface                    Switched

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

24000  Aggregate   10.1.24.0/24       default                      0

24001  Aggregate   10.1.45.0/24       default                      0

24002  24002       10.100.1.1/32                   10.1.24.2       0

Incluso si el prefijo BGP se recibe a través de una sesión LU, pero no se asigna ninguna etiqueta local, entonces la ruta no se anuncia a través de otra sesión LU donde se realiza NHS. Este es el caso 14 en la tabla 1.Éste es el caso si la sesión de BGP saliente es eBGP.

Ejemplo:

RP/0/0/CPU0:R2#show bgp ipv4 unicast 10.100.1.1/32 detail

BGP routing table entry for 10.100.1.1/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                  3           3

Flags: 0x00001001+0x00000000;

Last Modified: Aug 22 09:00:20.646 for 00:10:56

Paths: (1 available, best #1)

Not advertised to any peer

Path #1: Received by speaker 0

Flags: 0x4080000001060001, import: 0x20

Not advertised to any peer

65001

10.1.12.1 from 10.1.12.1 (10.100.1.1)

Received Label 3

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

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

Origin-AS validity: not-found

RP/0/0/CPU0:R2#show route 10.100.1.1/32 detail

Routing entry for 10.100.1.1/32

Known via "bgp 65002", distance 20, metric 0, labeled unicast (3107)

Tag 65001, type external

Installed Aug 22 09:00:20.416 for 00:10:59

Routing Descriptor Blocks

10.1.12.1, from 10.1.12.1, BGP external

Route metric is 0

Label: 0x100004 (1048580)

Tunnel ID: None

Binding Label: None

Extended communities count: 0

NHID:0x0(Ref:0)

Route version is 0x1 (1)

No local label

IP Precedence: Not Set

…

Esto probablemente se debe a que no se tiene el comando "asignar-label" para la unidifusión de familia de direcciones bajo el BGP del router.

Deberá reiniciar el BGP de proceso cuando elimine el comando "asignar-label" para que el router elimine las etiquetas locales para las rutas BGP.

El nuevo comando advertise local-label-route en la tabla 1 es un nuevo comando para indicar que una ruta con etiqueta local no debe anunciarse como una ruta sin etiqueta a través de SAFI-1.

Este comando es el siguiente:

advertise local-label-route [disable]

Este comando se configura bajo la familia de direcciones vecina. La función de este comando es indicar si una ruta IPv4/v6 con una etiqueta local debe ser anunciada o no al vecino BGP a través de la unidifusión IPv4/v6 (SAFI 1).

El comportamiento predeterminado es anunciar rutas con una etiqueta local.

El nuevo comando también podría configurarse como:

advertise local-label-route safi-unicast [disable]

Este comando se configura bajo el grupo af de la sección BGP. Su función es la misma que la anterior y se aplica a todos los vecinos BGP.

El comportamiento predeterminado es anunciar rutas con una etiqueta local.

La línea "Anunciar rutas con etiqueta local a través de Unicast SAFI"o "No anunciar rutas con etiqueta local a través de Unicast SAFI" está presente en el comando" show bgp neighbor" en la familia de direcciones IPv4 Unicast para indicar que el altavoz BGP permite el anuncio de rutas con etiqueta local o no.

Ejemplo para el comportamiento predeterminado:

RP/0/0/CPU0:R4#show bgp neighbor 10.1.45.5

…

For Address Family: IPv4 Unicast

BGP neighbor version 5

Update group: 0.1 Filter-group: 0.5  No Refresh request being processed

Extended Nexthop Encoding: advertised and received

Route refresh request: received 0, sent 0

0 accepted prefixes, 0 are bestpaths

Exact no. of prefixes denied : 0.

Cumulative no. of prefixes denied: 0.

Prefix advertised 2, suppressed 0, withdrawn 0

Maximum prefixes allowed 1048576

Threshold for warning message 75%, restart interval 0 min

An EoR was not received during read-only mode

Last ack version 5, Last synced ack version 0

Outstanding version objects: current 0, max 1, refresh 0

Additional-paths operation: None

Advertise routes with local-label via Unicast SAFI

…

or

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

RP/0/0/CPU0:R4(config)#router bgp 65003

RP/0/0/CPU0:R4(config-bgp)# neighbor 10.1.45.5

RP/0/0/CPU0:R4(config-bgp-nbr)#  address-family ipv4 unicast

RP/0/0/CPU0:R4(config-bgp-nbr-af)#advertise local-labeled-route disable

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

RP/0/0/CPU0:R4#show bgp neighbor 10.1.45.5

BGP neighbor is 10.1.45.5

…

For Address Family: IPv4 Unicast

BGP neighbor version 5

Update group: 0.1 Filter-group: 0.5 (Update-group Change

pending)

No Refresh request being processed

Extended Nexthop Encoding: advertised and received

Route refresh request: received 0, sent 0

0 accepted prefixes, 0 are bestpaths

Exact no. of prefixes denied : 0.

Cumulative no. of prefixes denied: 0.

Prefix advertised 2, suppressed 0, withdrawn 0

Maximum prefixes allowed 1048576

Threshold for warning message 75%, restart interval 0 min

An EoR was not received during read-only mode

Last ack version 5, Last synced ack version 0

Outstanding version objects: current 0, max 1, refresh 0

Additional-paths operation: None

Do not advertise routes with local-label via Unicast SAFI

Cálculo de mejor trayectoria

No hay cambios en el proceso de cálculo de la mejor trayectoria. Si una trayectoria es SAFI 1 o SAFI 4 o si la trayectoria tiene o no una etiqueta, no hay diferencia en el proceso de cálculo de la mejor trayectoria. Por lo tanto, no hay preferencia entre un trayecto SAFI 1 o SAFI 4. Esto es independientemente de si hay SAFI 1/SAFI 4 en la misma sesión BGP o en diferentes sesiones. Por lo tanto, si una sesión BGP es SAFI 1 y 4, y se recibe un prefijo sobre ambas familias de direcciones, entonces el mejor cálculo de trayectoria elegirá una como la mejor trayectoria, ya que todos los atributos son iguales. Si todos los atributos BGP son iguales entre la trayectoria U y LU, la trayectoria recibida en último lugar se convierte en la mejor trayectoria.

Si las trayectorias SAFI 1 y SAFI 4 se reciben de diferentes peers BGP, siempre hay una diferencia en las trayectorias que llevan a BGP que siempre elige la misma mejor trayectoria de las dos trayectorias. Incluso si en este caso todos los atributos son iguales, la dirección de vecino es diferente. Al observar el Algoritmo de Selección de la Mejor Trayectoria de BGP, la trayectoria del vecino con la dirección de vecino más baja (paso final 13) se elige como la mejor trayectoria.

Utilice el comando "show bgp <AFI> <SAFI> <prefix> bestpath-compare" para verificar la razón por la que la mejor trayectoria es la mejor.

El usuario puede hacer esta preferencia mediante RPL.

Este es un ejemplo de dicha RPL.

RP/0/0/CPU0:R7#show bgp ipv4 un 10.100.1.1/32 detail

BGP routing table entry for 10.100.1.1/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                682         682

Flags: 0x00003001+0x00010000;

Last Modified: Aug 28 13:16:26.826 for 00:00:10

Paths: (2 available, best #2)

Not advertised to any peer

Path #1: Received by speaker 0

Flags: 0x4000000000020005, import: 0x20

Not advertised to any peer

65001

10.100.1.4 (metric 2) from 10.100.1.4 (10.100.1.10)

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

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

Originator: 10.100.1.10, Cluster list: 10.100.1.4

Path #2: Received by speaker 0

Flags: 0x4080000001060005, import: 0x20

Not advertised to any peer

65001

10.100.1.4 (metric 2) from 10.100.1.4 (10.100.1.10)

Received Label 24003

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

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

Originator: 10.100.1.10, Cluster list: 10.100.1.4

El trayecto LU es el mejor.

La RPL con peso se utiliza para preferir la trayectoria U.

route-policy weight

if destination in (10.100.1.1/32) then

set weight 60000

endif

end-policy

router bgp 65003

address-family ipv4 unicast

additional-paths receive

additional-paths send

!

neighbor 10.100.1.4

remote-as 65003

update-source Loopback0

address-family ipv4 unicast

route-policy weight in

!

address-family ipv4 labeled-unicast

!

!

RP/0/0/CPU0:R7#show bgp ipv4 un 10.100.1.1/32 bestpath-compare

BGP routing table entry for 10.100.1.1/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                726         726

Last Modified: Aug 28 13:39:27.826 for 00:04:54

Paths: (2 available, best #1)

Not advertised to any peer

Path #1: Received by speaker 0

Not advertised to any peer

65001

10.100.1.4 (metric 2) from 10.100.1.4 (10.100.1.10)

Origin IGP, metric 0, localpref 100, weight 60000, valid, internal, best, group-best

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

Originator: 10.100.1.10, Cluster list: 10.100.1.4

best of AS 65001, Overall best

Path #2: Received by speaker 0

Not advertised to any peer

65001

10.100.1.4 (metric 2) from 10.100.1.4 (10.100.1.10)

Received Label 24003

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

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

Originator: 10.100.1.10, Cluster list: 10.100.1.4

Lower weight than best path (path #1)

La ruta U es ahora la mejor.

No hay un comando nuevo para preferir las trayectorias etiquetadas a las trayectorias no etiquetadas. Sólo puede configurar el RPL en unidifusión de familia de direcciones o en unicast etiquetado bajo un vecino BGP.

Verificación del Comportamiento en BGP

Para depurar la propagación de la actualización BGP en IOS-XR, puede activar el siguiente comando debug: debug bgp update <BGP neighbor> in | fuera.

Esto mostrará la actualización BGP entrante o saliente desde o hacia ese altavoz BGP. La familia de direcciones se muestra como (ip4u) para IPv4 sin etiqueta (AFI 1/SAFI 1) o como (ipv4lu) para IPv4 unicast etiquetado (AFI 1/SAFI 4). El equivalente ocurre para IPv6.

Hay un nuevo campo "etiquetado como unidifusión" que indica que la ruta se aprende a través de SAFI 4.

Ejemplo:

RP/0/0/CPU0:R1#show bgp ipv4 unicast 10.100.1.7/32

BGP routing table entry for 10.100.1.7/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                 26          26

Last Modified: Sep  4 10:45:44.551 for 00:29:11

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.4 (metric 3) from 10.100.1.102 (10.100.1.4)

Received Label 24000

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

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

Originator: 10.100.1.4, Cluster list: 10.100.1.2

Para verificar si se anuncia el prefijo, puede utilizar el comando "show bgp ... neighbors" con la palabra clave "adversed-routes" al final.

Ejemplo:

R4 anuncia 10.100.1.1/32 al vecino 10.100.1.7 dos veces porque add-path está habilitado (las dos trayectorias son diferentes).

RP/0/0/CPU0:R4#show bgp ipv4 labeled-unicast neighbors 10.100.1.7 advertised-routes

Network            Next Hop        From            AS Path

10.1.24.0/24       10.100.1.4      Local           ?

10.1.34.0/24       10.100.1.4      Local           ?

10.1.45.0/24       10.100.1.4      Local           ?

10.1.46.0/24       10.100.1.4      Local           ?

10.1.47.0/24       10.100.1.4      Local           ?

10.1.48.0/24       10.100.1.4      Local           ?

10.1.49.0/24       10.100.1.4      Local           ?

10.1.104.0/24      10.100.1.4      Local           ?

10.1.114.0/24      10.100.1.4      Local           ?

10.100.1.1/32      10.100.1.4      10.100.1.9      65001i

10.100.1.10     65001i

10.100.1.4/32      10.100.1.4      Local           ?

Processed 11 prefixes, 12 paths

iBGP y next-hop-self - Unified MPLS

Se aplicarán las normas del cuadro 1. Con MPLS unificado o MPLS sin problemas, un router de borde de área (ABR) actúa como reflector de ruta, pero también es el salto siguiente para las rutas iBGP. Los ABR están en la ruta de reenvío del tráfico etiquetado. Los ABR deben tener la configuración explícita para next-hop-self.

Soluciones alternativas

- Si no hay soporte para U y LU en una sesión BGP, una solución alternativa es tener dos sesiones BGP entre un par de routers. Se deben utilizar dos interfaces (loopback) en cada router.

Ejemplo de configuración para IOS-XR.

interface Loopback0

ipv4 address 10.100.1.7 255.255.255.255

!

interface Loopback1

ipv4 address 10.100.1.107 255.255.255.255

!

router bgp 65003

address-family ipv4 unicast

!

neighbor 10.100.1.4   -> towards loopback0 on peer

remote-as 65003

update-source Loopback0

address-family ipv4 unicast

!

!

neighbor 10.100.1.104  -> towards loopback1 on peer

remote-as 65003

update-source Loopback1

address-family ipv4 labeled-unicast

!

Las trayectorias U y LU se envían/reciben a través de dos sesiones BGP diferentes.

RP/0/0/CPU0:R7#show bgp ipv4 unicast 10.100.1.1/32 detail

BGP routing table entry for 10.100.1.1/32

Versions:

Process           bRIB/RIB  SendTblVer

Speaker                753         753

Flags: 0x00001001+0x00010000;

Last Modified: Aug 28 14:06:40.826 for 00:22:10

Paths: (2 available, best #1)

Not advertised to any peer

Path #1: Received by speaker 0

Flags: 0x4000000001060005, import: 0x20

Not advertised to any peer

65001

10.100.1.4 (metric 2) from 10.100.1.4 (10.100.1.10)

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

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

Originator: 10.100.1.10, Cluster list: 10.100.1.4

Path #2: Received by speaker 0

Flags: 0x4080000000020005, import: 0x20

Not advertised to any peer

65001

10.100.1.104 (metric 2) from 10.100.1.104 (10.100.1.10)

Received Label 24003

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

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

Originator: 10.100.1.10, Cluster list: 10.100.1.4