Contenu

Introduction

Conditions préalables

Conditions requises

Components Used

Informations générales

Comprendre les annonces iBGP

Cas Nexus NX-OS

Cas Cisco IOS

Utilisation de la commande set ip next-hop redist-inchangée

Configuration initiale des périphériques

Introduction

Ce document décrit le comportement de l'attribut de chemin NEXT_HOP lorsqu'il est défini pour les annonces iBGP (Interior Border Gateway Protocol) sur Nexus NX-OS et Cisco IOS (ceci inclut Cisco IOS-XE). Ceci est destiné aux annonces de routes non locales.

Conditions préalables

Conditions requises

Cisco vous recommande de prendre connaissance des rubriques suivantes :

- BGP (Border Gateway Protocol)

- Redistribution des protocoles de routage

Components Used

Ce document n’est pas limité à des versions spécifiques du logiciel et du matériel :

- Nexus 7000 qui exécute NX-OS version 7.3(0)D1(1)

- Routeur Cisco qui exécute Cisco IOS version 15.6(2)T

Les résultats de ce document proviennent de périphériques situés dans un environnement de travaux pratiques spécifique. Tous les périphériques utilisés dans ce document ont démarré avec une configuration effacée (par défaut). Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.

Informations générales

- Sur les plates-formes NX-OS Nexus, pour les routes non locales, les annonces iBGP modifient l'attribut NEXT_HOP et le définissent avec sa propre adresse IP d'interface locale.

- Sur les plates-formes Cisco IOS, pour les routes non locales, les annonces iBGP conservent l'attribut NEXT_HOP de la route d'origine telle qu'elle est.

Le comportement de Nexus NX-OS peut correspondre à celui de Cisco IOS si vous le souhaitez grâce aux modifications de code introduites par le défaut CSCud20941.

Remarque : ceci s'applique uniquement aux annonces iBGP et non à eBGP.

Note: Applicable aux routes non locales configurées en tant que routes statiques ou reçues via un protocole IGP (Interior Gateway Protocol) tel que EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First) ou RIP (Routing Information Protocol).

Comprendre les annonces iBGP

Afin de comprendre le paramètre NEXT_HOP défini dans les annonces iBGP, prenez comme exemple les diagrammes de topologie de réseau présentés dans les images.

Topologie du cas Nexus NX-OS

Topologie du cas Cisco IOS

Cas Nexus NX-OS

Dans le cas de la topologie Nexus NX-OS, R2 (Nexus NX-OS) reçoit la route 1.1.1.1/32 via EIGRP depuis le routeur 1 et l'annonce avec l'utilisation d'iBGP vers le routeur 3, comme l'illustre l'image.

La table de routage de R2 (Nexus NX-OS) indique la route 1.1.1.1/32 reçue via EIGRP et avec l'adresse IP de tronçon suivant d'origine 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

Dans la section Configuration BGP, vous pouvez voir les commandes en place pour annoncer 1.1.1.1/32 via iBGP vers le routeur 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

Sur le routeur 3, la route 1.1.1.1/32 est reçue via iBGP avec le saut suivant maintenant défini sur l'adresse IP de R2 (Nexus NX-OS) qui est 10.2.3.2

- Entrée de la table BGP du routeur 3 pour 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

- Entrée de la table de routage du routeur 3 pour 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

Cas Cisco IOS

Dans le cas de la topologie de Cisco IOS, R2 (Cisco IOS) reçoit la route 1.1.1.1/32 via EIGRP depuis le routeur 1 et l'annonce avec l'utilisation d'iBGP vers le routeur 3, comme illustré dans l'image.

La table de routage de R2 (Cisco IOS) indique la route 1.1.1.1/32 reçue via EIGRP et avec l’adresse IP de tronçon suivant d’origine 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

Dans la section Configuration BGP, vous pouvez voir les commandes en place pour annoncer 1.1.1.1/32 via iBGP vers Router 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

Sur le routeur 3, vous pouvez voir la route 1.1.1.1/32 reçue via iBGP avec le saut suivant d'origine défini sur l'IP sur le routeur 1, qui est 10.1.2.1.

- Entrée de la table BGP du routeur 3 pour 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

Dans ce scénario spécifique, le routeur 3 doit avoir un chemin vers 10.1.2.1 (tronçon suivant) pour que BGP puisse considérer le chemin comme valide. Sinon, BGP affiche le chemin comme (inaccessible).

Note: Il s'agit d'un contrôle de base décrit dans l'algorithme de sélection du meilleur chemin BGP afin d'accepter les routes de BGP dans la table de routage.

La commande debug ip bgp update montre la raison pour laquelle le routeur 3 n'installe pas la route est parce qu'il n'y a aucune entrée dans sa table de routage pour le tronçon suivant, dans ce cas le tronçon suivant est 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

Pour rendre le saut suivant accessible, procédez comme suit :

-Étape 1. Une route statique de la table de routage du routeur 3 est configurée afin de créer une entrée pour le tronçon suivant.

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

-Étape 2. La même commande debug indique que la route est maintenant acceptée.

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#

-Étape 3. La table BGP a supprimé l'état (inaccessible).

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

-Étape 4. La table de routage installe maintenant la route vers 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

Utilisation de la commande set ip next-hop redist-inchangée

Depuis la version 6.2(12), les commandes set ip next-hop redist-inchangée et set ipv6 next-hop redist-inchangée ont été introduites par défaut CSCud20941 afin de rendre Nexus NX-OS miroir le comportement de Cisco IOS.

Note: Ces commandes ne fonctionnent que lorsqu'elles sont utilisées comme paramètres dans une route-map et sont utilisées en combinaison avec la commande redistribution.

Dans le cas de la topologie Nexus NX-OS, R2 (Nexus NX-OS) reçoit la route 1.1.1.1/32 via EIGRP depuis le routeur 1 et l'annonce avec iBGP vers le routeur 3, comme l'illustre l'image :

La table de routage de R2 (Nexus NX-OS) indique la route 1.1.1.1/32 reçue via EIGRP et avec l'adresse IP de tronçon suivant d'origine 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

La commande set ip next-hop redist-inchangée est disponible en mode de configuration '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

La route-map REDIST-UNCHANGED est appliquée en tant que paramètre pour l'instruction de configuration redistribute dans 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

Le routeur 3 reçoit maintenant la MISE À JOUR BGP avec le jeu NEXT_HOP d'origine similaire à 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 ?

Ce document décrit la différence entre la façon dont Nexus NX-OS et Cisco IOS gèrent les annonces iBGP de routes non générées localement.

Le comportement décrit dans ce document concerne la plupart des scénarios et n’a pas d’incidence sur les opérations de routage réseau habituelles.

Les commandes facultatives set ip next-hop redist-inchangée et set ipv6 next-hop redist-inchangée sont disponibles pour maintenir le routage BGP conforme à la RFC 4271 sur Nexus NX-OS

Configuration initiale des périphériques

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

!