Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Informações de Apoio

Entender os anúncios do iBGP

Caso Nexus NX-OS

Caso do Cisco IOS

Uso do comando set ip next-hop redist-changed

Configuração inicial de dispositivos

Introduction

Este documento descreve o comportamento do atributo de caminho NEXT_HOP quando definido para anúncios do Interior Border Gateway Protocol (iBGP) em plataformas baseadas no Nexus NX-OS vs Cisco IOS (isso inclui o Cisco IOS-XE). Isso é para anúncios de rotas não originadas localmente.

Prerequisites

Requirements

A Cisco recomenda que você tenha conhecimento destes tópicos:

- BGP (Border Gateway Protocol)

- Redistribuição de protocolos de roteamento

Componentes Utilizados

Este documento não é restrito à versões específicas de software e hardware:

- Nexus 7000 com NX-OS versão 7.3(0)D1(1)

- Roteador Cisco que executa o Cisco IOS versão 15.6(2)T

As saídas neste documento foram obtidas de dispositivos em um ambiente de laboratório específico. Todos os dispositivos usados neste documento iniciaram com uma configuração limpa (padrão). Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Informações de Apoio

- Em plataformas baseadas no Nexus NX-OS, para rotas não originadas localmente, os anúncios do iBGP modificam o atributo NEXT_HOP e o definem com seu próprio endereço IP de interface local.

- Nas plataformas baseadas no Cisco IOS, para rotas não originadas localmente, os anúncios do iBGP mantêm o atributo NEXT_HOP da rota original como está.

O comportamento no Nexus NX-OS pode corresponder ao observado no Cisco IOS, se desejado, graças às alterações de código introduzidas pelo defeito CSCud20941.

Observação: isso só se aplica a anúncios iBGP e não eBGP.

Note: Aplicável para rotas não originadas localmente configuradas como Rotas Estáticas ou recebidas através de qualquer Interior Gateway Protocol (IGP) como Enhanced Interior Gateway Routing Protocol (EIGRP), Open Shortest Path First (OSPF) ou Routing Information Protocol (RIP).

Entender os anúncios do iBGP

Para entender o NEXT_HOP definido nos anúncios do iBGP, tome como exemplo os diagramas de topologia de rede mostrados nas imagens.

Topologia para caso do Nexus NX-OS

Topologia para o caso do Cisco IOS

Caso Nexus NX-OS

Na topologia para o caso Nexus NX-OS, R2 (Nexus NX-OS) recebe a rota 1.1.1.1/32 via EIGRP do Roteador 1 e a anuncia com o uso do iBGP para o Roteador 3 como mostrado na imagem.

A Tabela de Roteamento do R2 (Nexus NX-OS) mostra a rota 1.1.1.1/32 recebida via EIGRP e com o IP original do próximo salto de 10.1.2.1

R2 (Nexus NX-OS)

R2# show ip route 1.1.1.1/32

IP Route Table for VRF "default"

'*' denotes best ucast next-hop

'**' denotes best mcast next-hop

'[x/y]' denotes [preference/metric]

'%<string>' in via output denotes VRF <string>

1.1.1.1/32, ubest/mbest: 1/0

*via 10.1.2.1, Eth2/1, [90/130816], 00:02:28, eigrp-1, internal

Na seção de configuração de BGP, você pode ver os comandos em vigor para anunciar 1.1.1.1/32 via iBGP para o Roteador 3.

R2 (Nexus NX-OS)

R2# show running-config bgp

!Command: show running-config bgp

!Time: -

version -

feature bgp

router bgp 2

address-family ipv4 unicast

network 1.1.1.1/32

neighbor 10.2.3.3 remote-as 2

address-family ipv4 unicast

No Roteador 3, a rota 1.1.1.1/32 é recebida via iBGP com o próximo salto agora definido para o endereço IP de R2 (Nexus NX-OS) que é 10.2.3.2

- Entrada da tabela BGP do roteador 3 para 1.1.1.1/32

R3

R3# show bgp ipv4 unicast 1.1.1.1/32

BGP routing table entry for 1.1.1.1/32, version 8

Paths: (1 available, best #1, table default)

Not advertised to any peer

Refresh Epoch 1

Local

10.2.3.2 from 10.2.3.2 (2.2.2.2)

Origin IGP, localpref 100, valid, internal, best

rx pathid: 0, tx pathid: 0x0

- Entrada da Tabela de Roteamento do Roteador 3 para 1.1.1.1/32

R3

R3# show ip route bgp

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

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

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP

a - application route

+ - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

1.0.0.0/32 is subnetted, 1 subnets

B        1.1.1.1 [200/0] via 10.2.3.2, 00:07:17

Caso do Cisco IOS

Na topologia do caso do Cisco IOS, R2 (Cisco IOS) recebe a rota 1.1.1.1/32 via EIGRP do Roteador 1 e a anuncia com o uso do iBGP para o Roteador 3 como mostrado na imagem.

A Tabela de Roteamento R2 (Cisco IOS) mostra a rota 1.1.1.1/32 recebida por EIGRP e com o IP original do próximo salto de 10.1.2.1

R2 (Cisco IOS)

R2# show ip route 1.1.1.1 255.255.255.255 longer-prefixes

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

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

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP

a - application route

+ - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

1.0.0.0/32 is subnetted, 1 subnets

D        1.1.1.1 [90/130816] via 10.1.2.1, 00:00:06, GigabitEthernet0/1

Na seção de configuração de BGP, você pode ver os comandos em vigor para anunciar 1.1.1.1/32 via iBGP para o Roteador 3

R2 (Cisco IOS)

R2# show running-config partition router bgp 2

Building configuration...

Current configuration : 210 bytes

!

! Last configuration change at -

!

!

!

!

router bgp 2

bgp router-id 2.2.2.2

bgp log-neighbor-changes

network 1.1.1.1 mask 255.255.255.255

neighbor 10.2.3.3 remote-as 2

!

!

end

No Roteador 3, você pode ver a rota 1.1.1.1/32 recebida via iBGP com o próximo salto original definido para o IP no Roteador 1, que é 10.1.2.1.

- Entrada da tabela BGP do roteador 3 para 1.1.1.1/32

R3

R3# show bgp ipv4 unicast 1.1.1.1/32

BGP routing table entry for 1.1.1.1/32, version 0

Paths: (1 available, no best path)

Not advertised to any peer

Refresh Epoch 1

Local

10.1.2.1 (inaccessible) from 10.2.3.2 (2.2.2.2)

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

rx pathid: 0, tx pathid: 0

Neste cenário específico, o Roteador 3 deve ter um caminho para 10.1.2.1 (o Next-Hop) para que o BGP possa considerar o caminho como válido. Caso contrário, o BGP mostra o caminho como (inacessível).

Note: Esta é uma verificação básica descrita no algoritmo de seleção de melhor caminho BGP para aceitar rotas do BGP para a tabela de roteamento.

O comando debug ip bgp update mostra o motivo pelo qual o Roteador 3 não instala a rota porque não há entrada em sua Tabela de Roteamento para o próximo salto, nesse caso o próximo salto é 10.1.2.1

R3

R3# debug ip bgp update

*-: BGP(0): 10.2.3.2 rcvd UPDATE w/ attr: nexthop 10.1.2.1, origin i, localpref 100, metric 130816

*-: BGP(0): 10.2.3.2 rcvd 1.1.1.1/32

*-: BGP(0): no valid path for 1.1.1.1/32

Uma abordagem para tornar o próximo salto acessível é:

-Etapa 1. Uma rota estática na Tabela de Roteamento do Roteador 3 é configurada para criar uma entrada para o próximo salto.

R3

R3# configure terminal

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

R3(config)# ip route 10.1.2.1 255.255.255.255 10.2.3.2

-Etapa 2. O mesmo comando debug mostra que a rota agora é aceita.

R3

R3# debug ip bgp update

R3#

*Mar 29 16:08:42.888: BGP(0): 10.2.3.2 rcvd UPDATE w/ attr: nexthop 10.1.2.1, origin i, localpref 100, metric 130816

*Mar 29 16:08:42.890: BGP(0): 10.2.3.2 rcvd 1.1.1.1/32

*Mar 29 16:08:42.892: BGP(0): Revise route installing 1 of 1 routes for 1.1.1.1/32 -> 10.1.2.1(global) to main IP table

R3#

-Etapa 3. A tabela BGP removeu o status (inacessível).

R3

R3# show bgp ipv4 unicast 1.1.1.1/32

BGP routing table entry for 1.1.1.1/32, version 6

Paths: (1 available, best #1, table default)

Not advertised to any peer

Refresh Epoch 2

Local

10.1.2.1 from 10.2.3.2 (2.2.2.2)

Origin IGP, metric 130816, localpref 100, valid, internal, best

rx pathid: 0, tx pathid: 0x0

-Etapa 4. A tabela de roteamento agora instala a rota para 1.1.1.1/32

R3

R3# show ip route bgp

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

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

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP

a - application route

+ - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

1.0.0.0/32 is subnetted, 1 subnets

B        1.1.1.1 [200/130816] via 10.1.2.1, 00:11:37

Uso do comando set ip next-hop redist-changed

Desde a versão 6.2(12), os comandos set ip next-hop redist-changed e set ipv6 next-hop redist-changed foram introduzidos pelo defeito CSCud20941 para fazer com que o Nexus NX-OS espelhe o comportamento do Cisco IOS.

Note: Esses comandos só funcionam quando usados como parâmetros em um mapa de rota e são usados em combinação com o comando redistribuição.

Na topologia para o caso Nexus NX-OS, R2 (Nexus NX-OS) recebe a rota 1.1.1.1/32 via EIGRP do Roteador 1 e a anuncia com iBGP para o Roteador 3 como mostrado na imagem:

A Tabela de Roteamento do R2 (Nexus NX-OS) mostra a rota 1.1.1.1/32 recebida via EIGRP e com o IP original do próximo salto de 10.1.2.1

R2 (Nexus NX-OS)

R2# show ip route 1.1.1.1/32

IP Route Table for VRF "default"

'*' denotes best ucast next-hop

'**' denotes best mcast next-hop

'[x/y]' denotes [preference/metric]

'%<string>' in via output denotes VRF <string>

1.1.1.1/32, ubest/mbest: 1/0

*via 10.1.2.1, Eth2/1, [90/130816], 04:38:21, eigrp-1, internal

O comando set ip next-hop redist-CISCOInalterado está disponível no modo de configuração 'route-map'.

R2 (Nexus NX-OS)

R2(config)# route-map REDIST-UNCHANGED

R2(config-route-map)# set ip next-hop ?

A.B.C.D              IP address of next hop

load-share           Enables load sharing

peer-address         Use peer address (for BGP only)

redist-unchanged     Use unchanged address during redistribution (for BGP

session only)

unchanged            Use unchanged address (for eBGP session only)

verify-availability  Verify the reachability of the tracked object

R2(config-route-map)# set ip next-hop redist-unchanged

O mapa de rota REDIST-UNCHANGED é aplicado como um parâmetro para a instrução de configuração redistribute no BGP.

R2 (Nexus NX-OS)

R2#

!

route-map REDIST-UNCHANGED permit 10

set ip next-hop redist-unchanged

!

R2# show running-config bgp

!Command: show running-config bgp

!Time: -

version -

feature bgp

router bgp 2

address-family ipv4 unicast

redistribute eigrp 1 route-map REDIST-UNCHANGED

neighbor 10.2.3.3 remote-as 2

address-family ipv4 unicast

Agora o Roteador 3 recebe a ATUALIZAÇÃO BGP com o NEXT_HOP original definido de forma semelhante ao Cisco IOS.

R3

R3# show ip bgp

BGP table version is 15, local router ID is 10.2.3.3

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

r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,

x best-external, a additional-path, c RIB-compressed,

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

RPKI validation codes: V valid, I invalid, N Not found

Network          Next Hop            Metric LocPrf Weight Path

* i 1.1.1.1/32       10.1.2.1            130816    100      0 ?

Este documento descreve a diferença de como o Nexus NX-OS e o Cisco IOS lidam com anúncios iBGP de rotas não geradas localmente.

O comportamento descrito neste documento é para a maioria dos cenários de caso e não afeta as operações normais de roteamento de rede.

Os comandos opcionais set ip next-hop redist-changed e set ipv6 next-hop redist-changed estão disponíveis para manter o roteamento BGP compatível com RFC 4271 no Nexus NX-OS

Configuração inicial de dispositivos

R1

hostname R1

!

interface Loopback0

ip address 1.1.1.1 255.255.255.255

ip ospf 1 area 0

!

interface GigabitEthernet0/1

ip address 10.1.2.1 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 0

!

router ospf 1

!

R2 (Nexus NX-OS)

hostname R2

!

feature ospf

feature bgp

!

interface Ethernet2/1

no switchport

ip address 10.1.2.2/24

ip ospf network point-to-point

ip router ospf 1 area 0.0.0.0

no shutdown

!

interface Ethernet2/2

no switchport

ip address 10.2.3.2/24

no shutdown

!

router ospf 1

!

router bgp 2

address-family ipv4 unicast

network 1.1.1.1/32

neighbor 10.2.3.3 remote-as 2

address-family ipv4 unicast

!

R2 (Cisco IOS)

hostname R2

!

interface GigabitEthernet0/1

ip address 10.1.2.2 255.255.255.0

ip ospf network point-to-point

ip ospf 1 area 0

!

interface GigabitEthernet0/2

ip address 10.2.3.2 255.255.255.0

!

router ospf 1

!

router bgp 2

bgp log-neighbor-changes

network 1.1.1.1 mask 255.255.255.255

neighbor 10.2.3.3 remote-as 2

!

R3

hostname R3

!

interface GigabitEthernet0/1

ip address 10.2.3.3 255.255.255.0

!

router bgp 2

bgp log-neighbor-changes

neighbor 10.2.3.2 remote-as 2

!