Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Configurar

Diagrama de la red

Configuraciones

Verificación

Troubleshoot

Introducción

Este documento describe el comando disable-peer-as-check en el protocolo de gateway fronterizo (BGP) en la familia de switches Cisco Nexus que ejecutan el sistema operativo NX-OS.

Prerequisites

Requirements

Cisco recomienda que tenga conocimiento sobre estos temas:

- Software Nexus NX-OS.

- Protocolo de ruteo BGP.

Componentes Utilizados

La información que contiene este documento se basa en las siguientes versiones de software y hardware.

- Cisco Nexus 7000

- NXOS versión 7.3(0)D1(1)

Este documento no se limita a versiones específicas de software y hardware.La información de este documento se creó a partir de los dispositivos en un entorno de laboratorio específico. All of the devices used in this document started with a cleared (default) configuration. Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

Configurar

Cuando se anuncia un prefijo de red a un par eBGP, su sistema autónomo (AS) siempre se antepone al último lugar de la lista de atributos AS_PATH del BGP.

De forma predeterminada, los switches basados en Cisco Nexus NX-OS no anuncian los prefijos de red a los peers eBGP cuyo AS ya se encuentra en el último lugar en el atributo AS_PATH del prefijo de red BGP.

Este comportamiento difiere de los routers y switches basados en Cisco IOS® (y Cisco IOS®-XE) donde los prefijos de red todavía se anuncian a los peers eBGP incluso cuando el AS del peer ya está en el atributo AS_PATH del prefijo de red.

En este caso, el mecanismo de prevención de loop BGP descarta el prefijo de red (de forma predeterminada) en el par receptor y activa un mensaje de error similar a "DENIED debido a: AS-PATH contiene nuestro propio AS" sólo cuando se habilitan las depuraciones apropiadas.

Nota: Los routers basados en XR Cisco IOS® se comportan de forma similar a NX-OS de forma predeterminada. En Cisco IOS® XR, el comando as-path-loopcheck out disable se puede utilizar para modificar este comportamiento.

Diagrama de la red

Configuraciones

R1 - Cisco IOS®

configure terminal

!

hostname R1

!

interface Loopback0

ip address 10.255.255.1 255.255.255.255

!

interface GigabitEthernet0/1

ip address 10.1.2.1 255.255.255.0

no shutdown

!

router bgp 64512

bgp log-neighbor-changes

network 10.255.255.1 mask 255.255.255.255

neighbor 10.1.2.2 remote-as 65535

!

end

N7K-2: Nexus NX-OS

configure terminal

!

hostname N7K-2

!

feature bgp

!

interface Ethernet2/1

no switchport

ip address 10.1.2.2/24

no shutdown

interface Ethernet2/2

no switchport

ip address 10.2.3.2/24

no shutdown

!

router bgp 65535

address-family ipv4 unicast

neighbor 10.1.2.1

remote-as 64512

address-family ipv4 unicast

neighbor 10.2.3.3

remote-as 64512

address-family ipv4 unicast

!

end

R3 - Cisco IOS®

configure terminal

!

hostname R3

!

interface GigabitEthernet0/1

ip address 10.2.3.3 255.255.255.0

no shutdown

!

router bgp 64512

bgp log-neighbor-changes

neighbor 10.2.3.2 remote-as 65535

!

end

Verificación

Utilize esta sección para confirmar que su configuración funcione correctamente.

La ausencia del comando disable-peer-as-check evita que N7K-2 que ejecute NX-OS para anunciar el prefijo 10.255.255.1/32 al Router R3 desde que R3's AS (64512) se encuentre en último lugar en el atributo AS_PATH.

Nota: El comando disable-peer-as-check se inhabilita de forma predeterminada en la configuración. Debe agregar manualmente el comando para habilitar la función.

Cuando N7K-2 anuncia el 10.255.255.1/32 al R3, incluye el AS 64512 último en el atributo AS_PATH.

Este AS 64512 es el mismo que el configurado en R3.

N7K-2: Nexus NX-OS

N7K-2# show bgp ipv4 unicast

BGP routing table information for VRF default, address family IPv4 Unicast

BGP table version is 17, local router ID is 10.1.2.2

Status: s-suppressed, x-deleted, S-stale, d-dampened, h-history, *-valid, >-best

Path type: i-internal, e-external, c-confed, l-local, a-aggregate, r-redist, I-i

njected

Origin codes: i - IGP, e - EGP, ? - incomplete, | - multipath, & - backup

Network            Next Hop            Metric     LocPrf     Weight Path

*>e10.255.255.1/32    10.1.2.1                 0                     0 64512 i

N7K-2#

Observe que en R3, el comando debug debug bgp ipv4 unicast se ha habilitado.

Para confirmar aún más que la ruta no se recibe, el comando clear bgp ipv4 unicast * soft se ejecuta para forzar el intercambio de las rutas nuevamente. Las rutas R3 no reciben la ruta.

R3 - Cisco IOS®

R3#debug bgp ipv4 unicast

BGP debugging is on for address family: IPv4 Unicast

R3#

R3#clear bgp ipv4 unicast * soft

R3#

*Jul 15 19:22:36.427: BGP: 10.2.3.2 sending REFRESH_REQ(5) for afi/safi: 1/1, refresh code is 0

R3#

El comando disable-peer-as-check debe estar habilitado en N7K-2 para que pueda anunciar el prefijo de red a R3.

N7K-2: Nexus NX-OS

N7K-2# conf t

Enter configuration commands, one per line.  End with CNTL/Z.

N7K-2(config)# router bgp 65535

N7K-2(config-router)# neighbor 10.2.3.3

N7K-2(config-router-neighbor)# address-family ipv4 unicast

N7K-2(config-router-neighbor-af)# disable-peer-as-check

N7K-2(config-router-neighbor-af)#

Con la inhabilitación-peer-as-check en la posición N7K-2, la ruta se anuncia a R3 pero se descarta por el mecanismo de prevención de loop de BGP esperado.

Observe "DENEGADO debido a: AS-PATH contiene nuestro propio AS" se ve en el resultado de debug.

R3 - Cisco IOS®

R3#

*Jul 15 19:29:06.440: BGP(0): 10.2.3.2 rcv UPDATE w/ attr: nexthop 10.2.3.2, origin i, originator 0.0.0.0, merged path 65535 64512, AS_PATH , community , extended community , SSA attribute

*Jul 15 19:29:06.442: BGPSSA ssacount is 0

*Jul 15 19:29:06.442: BGP(0): 10.2.3.2 rcv UPDATE about 10.255.255.1/32 -- DENIED due to: AS-PATH contains our own AS;

R3#

Nota: Si el AS de R3 no se encuentra en el último lugar en el atributo AS_PATH, N7K-2 no necesita el comando para anunciar la ruta.

En este ejemplo, otro AS se antepone en último lugar en el atributo AS_PATH con el uso de los comandos route-map y set as-path prepend. Ahora hay otro AS antes del AS de R3 en AS_PATH.

AS_PATH enumera 65300 64512.

N7K-2: Nexus NX-OS

configure terminal

!

route-map TEST permit 10

set as-path prepend 65300

!

N7K-2# conf t

Enter configuration commands, one per line.  End with CNTL/Z.

N7K-2(config)# router bgp 65535

N7K-2(config-router)#   neighbor 10.1.2.1

N7K-2(config-router-neighbor)#     address-family ipv4 unicast

N7K-2(config-router-neighbor-af)# route-map TEST in

N7K-2(config-router-neighbor-af)#

N7K-2#

N7K-2# show bgp ipv4 unicast

BGP routing table information for VRF default, address family IPv4 Unicast

BGP table version is 18, local router ID is 10.1.2.2

Status: s-suppressed, x-deleted, S-stale, d-dampened, h-history, *-valid, >-best

Path type: i-internal, e-external, c-confed, l-local, a-aggregate, r-redist, I-injected

Origin codes: i - IGP, e - EGP, ? - incomplete, | - multipath, & - backup

Network            Next Hop            Metric     LocPrf     Weight Path

*>e10.255.255.1/32    10.1.2.1                 0                     0 65300 64512 i

N7K-2#

Observe cómo N7K-2 anunció la ruta en este caso sin la necesidad de disable-peer-as-check.

N7K-2: Nexus NX-OS

N7K-2# sh run bgp

!Command: show running-config bgp

!Time: Mon Jul 15 21:28:59 2019

version 7.3(0)D1(1)

feature bgp

router bgp 65535

address-family ipv4 unicast

neighbor 10.1.2.1

remote-as 64512

address-family ipv4 unicast

route-map TEST in

neighbor 10.2.3.3

remote-as 64512

address-family ipv4 unicast

N7K-2#

Aviso "DENEGADO debido a: AS-PATH contiene nuestro propio AS" se ve en el resultado de debug en R3.

R3 - Cisco IOS®

R3#show debug

IP routing:

BGP debugging is on for address family: IPv4 Unicast

BGP updates debugging is on for address family: IPv4 Unicast

R3#

R3#clear bgp ipv4 unicast * soft

R3#

*Jul 15 21:33:11.309: BGP: 10.2.3.2 sending REFRESH_REQ(5) for afi/safi: 1/1, refresh code is 0

*Jul 15 21:33:12.312: BGP(0): 10.2.3.2 rcv UPDATE w/ attr: nexthop 10.2.3.2, origin i, originator 0.0.0.0, merged path 65535 65300 64512, AS_PATH , community , extended community , SSA attribute

*Jul 15 21:33:12.313: BGPSSA ssacount is 0

*Jul 15 21:33:12.313: BGP(0): 10.2.3.2 rcv UPDATE about 10.255.255.1/32 -- DENIED due to: AS-PATH contains our own AS;

R3#

Troubleshoot

En esta sección se brinda información que puede utilizar para resolver problemas en su configuración.

Para confirmar que la configuración BGP requiere el comando disable-peer-as-check en NX-OS, active estas depuraciones.

debug-filter bgp neighbor <eBGP_NEIGHBOR>

debug-filter bgp prefix <ROUTE_TO_BE_ADVERTISED>

debug bgp updates

debug logfile <FILE_NAME>

Observe que un mensaje similar a "10.2.3.3 10.255.255.1/32 path-id 1 no se envió al par debido a: anuncio AS" se genera cuando hay una solicitud para reenviar la ruta.

N7K-2: Nexus NX-OS

N7K-2# debug-filter bgp neighbor 10.2.3.3

N7K-2# debug-filter bgp prefix 10.255.255.1/32

N7K-2# debug bgp updates

N7K-2#

N7K-2# debug logfile bgpdebug.log

N7K-2# show debug logfile bgpdebug.log

2019 Jul 15 21:38:12.586085 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] Continuing update run for peer 10.2.3.3 (#0)

2019 Jul 15 21:38:12.586129 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] consider sending 10.255.255.1/32 to peer 10.2.3.3, path-id 1, best-ext is off

2019 Jul 15 21:38:12.586145 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] 10.2.3.3 10.255.255.1/32 path-id 1 not sent to peer due to: advertising AS

2019 Jul 15 21:38:12.586160 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] 10.2.3.3: walked 0 nodes and packed 0/0 prefixes

2019 Jul 15 21:38:12.586177 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] Found marker dest 0xf35349f0 on xmitlist for peer 10.2.3.3 (sent prefixes: 0)

2019 Jul 15 21:38:12.586200 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] Created EOR marker UPDATE msg (len 23) to peer 10.2.3.3 afer sending 0 routes

2019 Jul 15 21:38:12.586213 bgp: 65535 [7848] (default) UPD: [IPv4 Unicast] (#24) Suspending update run for peer 10.2.3.3 (#24)

N7K-2#

Una vez hecho, inhabilite los debugs con estos comandos:

undebug all

no debug-filter all

clear debug logfile <FILE_NAME>