Vous pouvez disposer d'une redondance pour le point de rendez-vous (RP) en exécutant des protocoles tels que auto-RP et Bootstrap. Cependant, en cas d'échec, leur convergence n'est pas si rapide. Il existe un concept de RP Anycast où la même adresse IP (rp-address) est configurée sur deux routeurs ou plus que vous souhaitez utiliser comme RP. Ensuite, annoncez cette adresse IP dans IGP. D’autres routeurs sélectionneront l’un de ces routeurs en fonction du meilleur chemin vers l’adresse rp. En cas de défaillance, la convergence est identique au protocole IGP (Interior Gateway Protocol).
Avec ce concept, un problème se pose. Les informations doivent être synchronisées entre les différents RP, car peu d'expéditeurs et de récepteurs peuvent rejoindre le routeur 1 en tant que RP et peu peuvent rejoindre le routeur 2 en tant que RP. Ces routeurs ne disposeraient pas d’informations complètes sur toutes les sources et la multidiffusion serait interrompue. La solution à ce problème consiste à disposer d'un mécanisme permettant de synchroniser les informations relatives aux sources entre tous les routeurs qui agissent en tant que RP. Deux protocoles peuvent servir à cette fin :
Protocole MSDP (Multicast Source Discovery Protocol)
PIM
MSDP existe depuis un certain temps. Les messages Source Active sont envoyés à d'autres routeurs chaque fois qu'une source s'enregistre sur un RP. Il y a une amélioration à PIM qui est détaillée dans ce document. Actuellement, cette amélioration n'est disponible que pour Nexus.
Cisco vous recommande de prendre connaissance des rubriques suivantes :
RP Anycast
PIM (Nexus)
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
Voici un exemple de topologie :
Expéditeur(172.16.1.1)—(9/3)Nexus-1(9/2)—(9/2)Nexus-2
Configuration Nexus 1 appropriée :
ip pim rp-address 10.1.1.1 group-list 224.0.0.0/4 ip pim anycast-rp 10.1.1.1 192.168.1.1 ip pim anycast-rp 10.1.1.1 192.168.2.2 interface loopback1 ip address 192.168.1.1/32 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode interface loopback7 ip address 10.1.1.1/32 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode interface Ethernet9/2 ip address 10.7.7.1/24 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode interface Ethernet9/3 ip address 172.16.1.2/24 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode
Configuration Nexus 2 appropriée :
ip pim rp-address 10.1.1.1 group-list 224.0.0.0/4 ip pim ssm range 232.0.0.0/8 ip pim anycast-rp 10.1.1.1 192.168.1.1 ip pim anycast-rp 10.1.1.1 192.168.2.2 interface loopback1 ip address 192.168.2.2/32 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode interface loopback7 ip address 10.1.1.1/32 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode interface Ethernet9/2 ip address 10.7.7.2/24 ip router ospf 1 area 0.0.0.0 ip pim sparse-mode
Il existe deux boîtes Nexus : Nexus-1 et Nexus-2. Les deux seront utilisés comme RP. L'adresse RP doit être 10.1.1.1. Le bouclage 7 se trouve sur les deux boîtes Nexus pour lesquelles cette adresse IP est configurée. Ce bouclage est ensuite annoncé dans le protocole OSPF (Open Shortest Path First) afin que différents routeurs du réseau atteignent Nexus-1 ou Nexus-2 pour le RP. Cela dépend de la meilleure métrique de chemin.
Sur les deux Nexus, 10.1.1.1 est défini comme étant le RP à l'aide de cette commande :
ip pim rp-address 10.1.1.1 group-list 224.0.0.0/4
Maintenant, vous devez définir ce qu'on appelle le jeu RP. Il s’agit de l’ensemble de tous les routeurs qui agiraient en tant que RP. Vous devez disposer d'un bouclage sur chaque routeur RP potentiel, qui est différent du bouclage utilisé comme adresse RP. Dans cet exemple, le bouclage 1 se trouve sur les deux Nexus dont l'adresse IP est 192.168.1.1/32 et 192.168.2.2/32, respectivement. Ce bouclage 1 est utilisé pour définir le jeu RP. La commande permettant de faire la même chose est la suivante :
ip pim anycast-rp <rp-address> <ip-address-of-prospective-RP>
Les commandes des deux Nexus pour la configuration sont les suivantes :
ip pim anycast-rp 10.1.1.1 192.168.1.1
ip pim anycast-rp 10.1.1.1 192.168.2.2
Il est important de noter ici que vous devez définir votre propre adresse IP, ainsi que dans le jeu RP. Par conséquent, ces deux commandes doivent être placées sur les deux boîtes Nexus.
Une fois le jeu RP défini, voici le résultat que vous voyez pour le mappage RP :
Nexus-1# show ip pim rp PIM RP Status Information for VRF "default" BSR disabled Auto-RP disabled BSR RP Candidate policy: None BSR RP policy: None Auto-RP Announce policy: None Auto-RP Discovery policy: None Anycast-RP 10.1.1.1 members: 192.168.1.1* 192.168.2.2 RP: 10.1.1.1*, (0), uptime: 00:00:58, expires: never, priority: 0, RP-source: (local), group ranges: 224.0.0.0/4 Nexus-2# show ip pim rp PIM RP Status Information for VRF "default" BSR disabled Auto-RP disabled BSR RP Candidate policy: None BSR RP policy: None Auto-RP Announce policy: None Auto-RP Discovery policy: None Anycast-RP 10.1.1.1 members: 192.168.1.1 192.168.2.2* RP: 10.1.1.1*, (0), uptime: 02:46:54, expires: never, priority: 0, RP-source: (local), group ranges: 224.0.0.0/4
Par exemple, vous recevez un message d'enregistrement sur l'un des routeurs qui fait partie du jeu RP. Ce routeur ajoute S,G pour cette source dans sa table. En outre, le routeur envoie un message de registre PIM à tous les autres membres du jeu RP. L'adresse IP source de ce message de registre est l'adresse de ce routeur qui se trouve dans le jeu RP et l'adresse de destination est celle de chaque routeur du jeu RP.
Dans cet exemple, lorsque la source 172.16.1.1 envoie un paquet de multidiffusion destiné à 239.1.1.1 à Nexus-1, Nexus-1 enregistre d'abord cette source comme RP et envoie un message de registre à Nexus-2 pour la source 172.16.1.1 et le groupe 239.1.1.1.1. Lorsque Nexus-2 reçoit ce registre, il ajoute l'entrée S, G pour 172.16.1.1, 239.1.1.1 dans la table mroute. Maintenant, les RP Nexus-1 et Nexus-2 connaissent cette source. Le message d'enregistrement envoyé de Nexus-1 à Nexus-2 avait l'adresse IP source 192.168.1.1 et l'adresse IP de destination 192.168.2.2 telles que définies dans le jeu RP.
Mrouter les entrées des deux boîtes Nexus après le processus d'enregistrement :
Nexus-1# sh ip mroute 239.1.1.1 IP Multicast Routing Table for VRF "default" (172.16.1.1/32, 239.1.1.1/32), uptime: 00:00:22, ip pim Incoming interface: Ethernet9/3, RPF nbr: 172.16.1.1, internal Outgoing interface list: (count: 0) Nexus-2# sh ip mroute 239.1.1.1 IP Multicast Routing Table for VRF "default" (172.16.1.1/32, 239.1.1.1/32), uptime: 00:00:17, pim ip Incoming interface: Ethernet9/2, RPF nbr: 10.7.7.1, internal Outgoing interface list: (count: 0)
Déchargement de paquets d'un tel message de registre sur Nexus-2 :
Ethernet II, Src: d8:67:d9:04:5f:41 (d8:67:d9:04:5f:41), Dst: d8:67:d9:02:3b:41 (d8:67:d9:02:3b:41) Destination: d8:67:d9:02:3b:41 (d8:67:d9:02:3b:41) Address: d8:67:d9:02:3b:41 (d8:67:d9:02:3b:41) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Source: d8:67:d9:04:5f:41 (d8:67:d9:04:5f:41) Address: d8:67:d9:04:5f:41 (d8:67:d9:04:5f:41) .... ...0 .... .... .... .... = IG bit: Individual address (unicast) .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) Type: IP (0x0800) Internet Protocol, Src: 192.168.1.1 (192.168.1.1), Dst: 192.168.2.2 (192.168.2.2) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 128 Identification: 0x1b27 (6951) Flags: 0x00 0.. = Reserved bit: Not Set .0. = Don't fragment: Not Set ..0 = More fragments: Not Set Fragment offset: 0 Time to live: 254 Protocol: PIM (0x67) Header checksum: 0x9aea [correct] [Good: True] [Bad : False] Source: 192.168.1.1 (192.168.1.1) Destination: 192.168.2.2 (192.168.2.2) Protocol Independent Multicast Version: 2 Type: Register (1) Checksum: 0xdeff [correct] PIM parameters Flags: 0x00000000 0... .... .... .... .... .... .... .... = Not border .0.. .... .... .... .... .... .... .... = Not Null-Register Internet Protocol, Src: 172.16.1.1 (172.16.1.1), Dst: 239.1.1.1 (239.1.1.1) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 100 Identification: 0x0000 (0) Flags: 0x00 0.. = Reserved bit: Not Set .0. = Don't fragment: Not Set ..0 = More fragments: Not Set Fragment offset: 0 Time to live: 254 Protocol: ICMP (0x01) Header checksum: 0xa294 [correct] [Good: True] [Bad : False] Source: 172.16.1.1 (172.16.1.1) Destination: 239.1.1.1 (239.1.1.1) Internet Control Message Protocol Type: 8 (Echo (ping) request) Code: 0 () Checksum: 0x9484 [correct] Identifier: 0x0000 Sequence number: 0 (0x0000) Data (72 bytes) 0000 00 00 00 00 00 71 e9 54 ab cd ab cd ab cd ab cd .....q.T........ 0010 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ................ 0020 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ................ 0030 ab cd ab cd ab cd ab cd ab cd ab cd ab cd ab cd ................ 0040 ab cd ab cd ab cd ab cd ........ Data: 000000000071E954ABCDABCDABCDABCDABCDABCDABCDABCD... [Length: 72]
Vous pouvez utiliser ce filtre pour capturer des paquets PIM sur l'intrabande du Nexus :
ethanalyzer local interface inband capture-filter « ip proto 103 » limit-capture-frames 0 write logflash: pim.pcap
Cela commencera à capturer les paquets PIM indéfiniment jusqu'à ce que cntrl+c soit appuyé. Les paquets sont affichés à l'écran et sont écrits dans le fichier pim.pcap dans logflash. Vous pouvez également inclure l'adresse IP pour capturer les paquets d'un voisin PIM particulier (« ip proto 103 and host <ip_address>").
Voici les deux débogages qui permettent de vérifier le processus d'enregistrement sur Nexus :
debug ip pim data-register send
debug ip pim data-register Receive
Nexus-1
2012 Sep 20 12:25:52.537472 pim: [6405] (default-base) Received Register from 172.16.1.2 for (172.16.1.1/32, 239.1.1.1/32) 2012 Sep 20 12:25:52.537656 pim: [6405] (default-base) Create route for (172.16.1.1/32, 239.1.1.1/32) 2012 Sep 20 12:25:52.537716 pim: [6405] (default-base) Add route (172.16.1.1/32, 239.1.1.1/32) to MRIB, multi-route TRUE 2012 Sep 20 12:25:52.537745 pim: [6405] (default-base) RP 10.1.1.1 is an Anycast-RP 2012 Sep 20 12:25:52.537771 pim: [6405] (default-base) Forward Register to Anycast-RP member 192.168.2.2 2012 Sep 20 12:25:52.537825 pim: [6405] (default-base) Send Register-Stop to 172.16.1.2 for (172.16.1.1/32, 239.1.1.1/32) 2012 Sep 20 12:25:52.538591 pim: [6405] (default-base) Received Register-Stop from 10.1.1.1 for (172.16.1.1/32, 239.1.1.1/32)
Nexus-2
2012 Sep 20 12:26:36.367862 pim: [7189] (default-base) Received Register from 192.168.1.1 for (172.16.1.1/32, 239.1.1.1/32) 2012 Sep 20 12:26:36.368093 pim: [7189] (default-base) Create route for (172.16.1.1/32, 239.1.1.1/32) 2012 Sep 20 12:26:36.368175 pim: [7189] (default-base) Add route (172.16.1.1/32, 239.1.1.1/32) to MRIB, multi-route FALSE 2012 Sep 20 12:26:36.368223 pim: [7189] (default-base) RP 10.1.1.1 is an Anycast-RP 2012 Sep 20 12:26:36.368240 pim: [7189] (default-base) Register received from Anycast-RP member 192.168.1.1
Cette RFC fournit plus d'informations sur le processus d'enregistrement PIM : http://tools.ietf.org/rfc/rfc4610.txt
Référez-vous également à Configuration de PIM et de PIM6 pour plus d'informations.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
07-Nov-2012 |
Première publication |