Ce document fournit un exemple de configuration à l'aide d'IPv6 qui vous aide à comprendre la fonctionnalité de réflecteur de route (RR) dans le protocole BGP (Border Gateway Protocol). Par défaut, les routes reçues d'un homologue iBGP ne sont pas envoyées à un autre homologue iBGP à moins qu'une configuration à maillage global ne soit formée entre tous les routeurs BGP d'un AS. Cela entraîne des problèmes d'évolutivité. L'utilisation de réflecteurs de route BGP conduit à des niveaux d'évolutivité beaucoup plus élevés.
La configuration du réflecteur de route permet à un routeur d'annoncer ou de refléter les routes apprises iBGP vers d'autres haut-parleurs iBGP. Le routeur est considéré comme un réflecteur de route lorsqu'il est configuré avec la commande neighbor route-reflector-client et les voisins auxquels les points de commande sont les clients de ce RR.
Assurez-vous de respecter ces conditions avant de tenter cette configuration :
Comprendre le protocole de routage BGP et son fonctionnement
Comprendre le schéma d'adressage IPv6
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
Les configurations de ce document sont basées sur le routeur de la gamme Cisco 3700 avec le logiciel Cisco IOS® Version 12.4 (15)T1.
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
Dans cet exemple, le routeur A est configuré en tant que RR et les routeurs RRClient1 et RRClient2 sont les clients du routeur A. Tous les routeurs sont configurés pour être dans l'AS 100, bien que les routeurs ne disposent pas d'une configuration à maillage global. Il utilise plutôt la fonctionnalité BGP RR afin de communiquer entre eux.
Remarque : utilisez l'outil de recherche de commandes (clients enregistrés uniquement) afin de trouver plus d'informations sur les commandes utilisées dans ce document.
Ce document utilise la configuration réseau suivante :
Ce document utilise les configurations suivantes :
Router A |
---|
hostname Router-A ! ip cef ! ipv6 unicast-routing ! interface Loopback0 no ip address ipv6 address 2011:11:11:11::11/128 ipv6 ospf 10 area 0 ! interface Serial0/0 no ip address ipv6 address 2011:12:12:12::1/64 ipv6 ospf 10 area 0 clock rate 2000000 ! interface Serial0/1 no ip address ipv6 address 2011:13:13:13::1/64 ipv6 ospf 10 area 0 clock rate 2000000 ! router bgp 100 bgp router-id 1.1.1.1 no bgp default ipv4-unicast bgp log-neighbor-changes neighbor 2011:22:22:22::22 remote-as 100 neighbor 2011:22:22:22::22 update-source Loopback0 neighbor 2011:33:33:33::33 remote-as 100 neighbor 2011:33:33:33::33 update-source Loopback0 ! address-family ipv6 neighbor 2011:22:22:22::22 activate neighbor 2011:22:22:22::22 route-reflector-client !--- Configures the router RRClient1 as route reflector client! neighbor 2011:33:33:33::33 activate neighbor 2011:33:33:33::33 route-reflector-client !--- Configures the router RRClient2 as route reflector client! exit-address-family ! ip forward-protocol nd ! ipv6 router ospf 10 router-id 1.1.1.1 !--- Router ID of the route reflector router A! log-adjacency-changes ! end |
Client RRC1 |
---|
hostname RR-Client1 ! ip cef ! ipv6 unicast-routing ! interface Loopback0 no ip address ipv6 address 2011:22:22:22::22/128 ipv6 ospf 10 area 0 ! interface Loopback10 no ip address ipv6 address 1010:10:10:10::10/128 ! interface Serial0/0 no ip address ipv6 address 2011:12:12:12::2/64 ipv6 ospf 10 area 0 clock rate 2000000 ! router bgp 100 bgp router-id 2.2.2.2 !--- Router ID of the RRClient1 no bgp default ipv4-unicast bgp log-neighbor-changes neighbor 2011:11:11:11::11 remote-as 100 neighbor 2011:11:11:11::11 update-source Loopback0 ! address-family ipv6 neighbor 2011:11:11:11::11 activate network 1010:10:10:10::10/128 exit-address-family ! ! ip forward-protocol nd ! ipv6 router ospf 10 router-id 2.2.2.2 log-adjacency-changes ! ! end |
Client RRC2 |
---|
hostname RR-Client2 ! ip cef ! no ip domain lookup ipv6 unicast-routing ! ! interface Loopback0 no ip address ipv6 address 2011:33:33:33::33/128 ipv6 ospf 10 area 0 ! interface Loopback20 no ip address ipv6 address 2020:20:20:20::20/128 ! interface Serial0/0 no ip address ipv6 address 2011:13:13:13::2/64 ipv6 ospf 10 area 0 clock rate 2000000 ! router bgp 100 bgp router-id 3.3.3.3 !--- Router ID of the RRClient2 no bgp default ipv4-unicast bgp log-neighbor-changes neighbor 2011:11:11:11::11 remote-as 100 neighbor 2011:11:11:11::11 update-source Loopback0 ! address-family ipv6 neighbor 2011:11:11:11::11 activate network 2020:20:20:20::20/128 exit-address-family ! ip forward-protocol nd ! ipv6 router ospf 10 router-id 3.3.3.3 log-adjacency-changes ! end |
Référez-vous à cette section pour vous assurer du bon fonctionnement de votre configuration.
L'Outil Interpréteur de sortie (clients enregistrés uniquement) (OIT) prend en charge certaines commandes show. Utilisez l'OIT pour afficher une analyse de la sortie de la commande show .
Ces commandes show permettent de vérifier la configuration :
Dans les clients RR :
show ipv6 route bgp |
---|
Dans RRClient1 RRClient1#sh ipv6 route bgp IPv6 Routing Table - 9 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route, M - MIPv6 I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external B 2020:20:20:20::20/128 [200/0] via 2011:33:33:33::33 !--- The iBGP route from RRClient2 is reflected RRClient1#ping 2011:33:33:33::33 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2011:33:33:33::33, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/24/32 ms !--- Ping to the RRClient2 from RRClient1 is successfulDans RRClient2 RRCLlient2#sh ipv6 route bgp IPv6 Routing Table - 9 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route, M - MIPv6 I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external B 1010:10:10:10::10/128 [200/0] via 2011:22:22:22::22 !--- The iBGP route from RRClient1 is reflected RRCLlient2#ping 1010:10:10:10::10 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1010:10:10:10::10, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 40/50/76 ms !--- Ping to the RRClient1 from RRClient2 is successful |
Dans le routeur A :
show bgp ipv6 unicast IPv6 prefix |
---|
RouterA#sh bgp ipv6 unicast 1010:10:10:10::10/128 BGP routing table entry for 1010:10:10:10::10/128, version 3 Paths: (1 available, best #1, table Global-IPv6-Table) Advertised to update-groups: 1 Local, (Received from a RR-client) !--- Indicates that the route was received from a route-reflector client router RRClient1 2011:22:22:22::22 (metric 64) from 2011:22:22:22::22 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, internal, best RouterA#show bgp ipv6 unicast 2020:20:20:20::20/128 BGP routing table entry for 2020:20:20:20::20/128, version 2 Paths: (1 available, best #1, table Global-IPv6-Table) Advertised to update-groups: 1 Local, (Received from a RR-client) !--- Indicates that the route was received from a route-reflector client router RRClient2 2011:33:33:33::33 (metric 64) from 2011:33:33:33::33 (3.3.3.3) Origin IGP, metric 0, localpref 100, valid, internal, best |
Dans les clients RR :
Chaque fois qu'une route iBGP est réfléchie (c'est-à-dire propagée à un autre homologue iBGP), le routeur qui implémente le réflecteur de route (dans notre cas, le routeur A) ajoute 2 attributs non transitifs :
ID de l'expéditeur :
Il s'agit d'un attribut BGP facultatif non transitif. La route iBGP réfléchie aura l'ID de routeur de l'homologue iBGP à partir duquel la route a été reçue en tant qu'ID d'origine. Dans notre exemple, la route 2020:20:20:20::20/128 qui est du client RRClient 2 est reflétée par le routeur A (RR), vers le client RRClient1. Par conséquent, cette route aura l’ID de routeur du client RRClient2 (ID de routeur : 3.3.3.3) en tant qu'ID d'origine.
ID de cluster :
Il s'agit d'un attribut BGP facultatif non transitif. La route iBGP réfléchie aura l'ID de routeur du RR comme son ID de cluster, si la valeur d'ID de cluster n'est pas configurée. Dans notre exemple, la route 2020:20:20:20::20/128 n'a pas d'ID de cluster configuré et donc l'ID de routeur (ID de routeur : 1.1.1.1) du routeur A (RR) sera l’ID de cluster.
show bgp ipv6 unicast ipv6-prefix |
---|
Dans RRClient1 show bgp ipv6 unicast 2020:20:20:20::20/128 BGP routing table entry for 2020:20:20:20::20/128, version 3 Paths: (1 available, best #1, table Global-IPv6-Table) Not advertised to any peer Local 2011:33:33:33::33 (metric 128) from 2011:11:11:11::11 (1.1.1.1) Origin IGP, metric 0, localpref 100, valid, internal, best Originator: 3.3.3.3, Cluster list: 1.1.1.1 !--- Originator ID 3.3.3.3 is the router id of the RRClient2 from which the route is received! !--- Similarly, Cluster ID 1.1.1.1 is the router ID of the router reflector Router A!Dans RRClient2 show bgp ipv6 unicast 1010:10:10:10::10/128 BGP routing table entry for 1010:10:10:10::10/128, version 3 Paths: (1 available, best #1, table Global-IPv6-Table) Not advertised to any peer Local 2011:22:22:22::22 (metric 128) from 2011:11:11:11::11 (1.1.1.1) Origin IGP, metric 0, localpref 100, valid, internal, best Originator: 2.2.2.2, Cluster list: 1.1.1.1 !--- Originator ID 2.2.2.2 is the router ID of the RRClient1 from which the route is received! !--- Similarly, Cluster ID 1.1.1.1 is the router ID of the router reflector Router A! |
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
25-Jan-2012 |
Première publication |