Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit comment les paquets multidiffusion traversent avec l'utilisation du coeur MPLS (Multiprotocol Label Switching) dans la multidiffusion de nouvelle génération.
MDT par défaut - PIM C - signalisation mcast
Le projet Rosen utilise l'encapsulation de routage générique (GRE) comme protocole de superposition. Cela signifie que tous les paquets de multidiffusion sont encapsulés dans GRE. Un réseau local virtuel est émulé avec tous les routeurs de périphérie du fournisseur (PE) du VPN qui rejoignent un groupe de multidiffusion. Il s'agit de l'arbre de distribution multidiffusion (MDT) par défaut. Le MDT par défaut est utilisé pour la signalisation Protocol Independent Multicast (PIM) Hello et autres PIM, mais également pour le trafic de données. Si la source envoie beaucoup de trafic, il est inefficace d'utiliser le MDT par défaut et un MDT de données peut être créé. Les données MDT incluent uniquement les PE qui ont des récepteurs pour le groupe utilisé.
Le projet Rosen est assez simple à déployer et fonctionne bien, mais il présente quelques inconvénients. Examinons les points suivants :
Surcharge - GRE ajoute 24 octets de surcharge au paquet. Par rapport à MPLS qui ajoute généralement 8 ou 12 octets, 100 % ou plus de surcharge est ajouté à chaque paquet.
PIM dans le coeur - Draft Rosen nécessite que PIM soit activé dans le coeur, car les PE doivent joindre le MDT par défaut et/ou de données qui est effectué par la signalisation PIM. Si le module ASM PIM est utilisé dans le coeur, un RP est également nécessaire. Si PIM SSM est exécuté dans le coeur, aucun RP n'est nécessaire.
État de base : l'état inutile est créé dans le coeur en raison de la signalisation PIM provenant du PE. Le noyau doit avoir le moins d'état possible.
contiguïtés PIM - Les PE deviendront des voisins PIM les uns avec les autres. S'il s'agit d'un grand VPN et d'un grand nombre de PE, beaucoup de contiguïtés PIM seront créées. Cela génère beaucoup de signaux Hello et autres, ce qui ajoute à la charge du routeur.
Monodiffusion contre multidiffusion - Le transfert monodiffusion utilise MPLS, le multicast utilise GRE. Cela ajoute de la complexité et signifie que la monodiffusion utilise un mécanisme de transfert différent de la multidiffusion, ce qui n'est pas la solution optimale.
Inefficacité - Le MDT par défaut envoie le trafic à tous les PE du VPN, que le PE ait un récepteur dans le (*, G) ou (S, G) du groupe utilisé.
Topologie
(config)# ip multicast-routing
2. Activez le mode PIM Sparse dans toutes les interfaces.
(config)# interface ethernet0/x
(config-if)#ip pim sparse-mode
(config)# interface loopback0
(config-if)#ip pim sparse-mode
3. Avec VRF qui existe déjà, configurez le MDT par défaut.
(config)#ip vrf m-GRE
(config-vrf)# mdt default 232.1.1.1
4. Configurez le VRF sur l'interface Ethernet0/x.
Sur PE1, PE2 et PE3.
(config)# interface ethernet0/x
(config-if)# ip vrf forwarding m-GRE
(config-if)# ip address 10.x.0.1 255.255.255.0
5. Activez le routage multidiffusion sur VRF.
Sur PE1, PE2 et PE3.
(config)# ip multicast-routing vrf m-GRE
6. Configurez RP pour le coeur du fournisseur de services.
Sur les noeuds PE1, PE2, PE3 et RR-P.
(config)# ip pim rp-address 11.11.11.11
7. Configurez le RP BSR dans le noeud CE (récepteur).
Sur le récepteur 2.
(config)# ip pim bsr-candidate loopback0
(config)# ip pim rp-candidate loopback0
Utilisez cette section pour confirmer que votre configuration fonctionne correctement.
Tâche 1 : Vérifier la connectivité physique
Tâche 2 : Vérification de la monodiffusion VPNv4 de la famille d'adresses
Tâche 3 : Vérifier le trafic multidiffusion de bout en bout
Lors de la création des interfaces de tunnel :
Création RP du fournisseur de services :
Une fois que les informations RP sont inondées dans le coeur. Le tunnel d'interface 0 est créé.
PIM(0) : Initialisation de la création du tunnel d'encapsulation de registre pour RP 11.11.11.11.
PIM(0) : La création initiale du tunnel de registre a réussi pour RP 11.11.11.11.
PIM(0) : Ajout du tunnel d'encapsulation de registre en tant qu'interface de transfert de (1.1.1.1, 232.1.1.1) différée jusqu'à la création du tunnel.
*9 mai 17:34:56.155 : PIM(0) : Cochez RP 11.11.11.11 dans le (*, 232.1.1.1).
PIM(0) : Ajout du tunnel d'encapsulation de registre (Tunnel0) en tant qu'interface de transfert de (1.1.1.1, 232.1.1.1).
PE1#sh int tunnel 0
Tunnel0 is up, line protocol is up
Hardware is Tunnel
Description: Pim Register Tunnel (Encap) for RP 11.11.11.11
Interface is unnumbered. Using address of Ethernet0/1 (10.0.1.1)
MTU 17912 bytes, BW 100 Kbit/sec, DLY 50000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive not set
Tunnel source 10.0.1.1 (Ethernet0/1), destination 11.11.11.11 >>>>>>>>>> Tunnel Source and destination
Tunnel Subblocks:
src-track:
Tunnel0 source tracking subblock associated with Ethernet0/1
Set of tunnels with source Ethernet0/1, 1 member (includes iterators), on interface <OK>
Tunnel protocol/transport PIM/IPv4
Tunnel TOS/Traffic Class 0xC0, Tunnel TTL 255
Tunnel transport MTU 1472 bytes
Création du tunnel MDT :
Création de MRIB dans le coeur :
PE1#sh ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
(3.3.3.3, 232.1.1.1), 00:10:13/00:01:01, flags: JTZ
Incoming interface: Ethernet0/1, RPF nbr 10.0.1.2
Outgoing interface list:
MVRF m-GRE, Forward/Sparse, 00:10:13/00:01:46
(2.2.2.2, 232.1.1.1), 00:10:14/00:00:57, flags: JTZ
Incoming interface: Ethernet0/1, RPF nbr 10.0.1.2
Outgoing interface list:
MVRF m-GRE, Forward/Sparse, 00:10:14/00:01:45
(1.1.1.1, 232.1.1.1), 00:10:15/00:03:20, flags: FT
Incoming interface: Loopback0, RPF nbr 0.0.0.0
Outgoing interface list:
Ethernet0/1, Forward/Sparse, 00:10:15/00:03:04
Une fois le RP créé pour le réseau du client :
*May 9 18:54:42.170: prm_rp->bidir_mode = 0 vs bidir = 0 (224.0.0.0/4, RP:33.33.33.33), PIMv2
*May 9 18:54:42.170: PIM(1): Initiating register encapsulation tunnel creation for RP 33.33.33.33
*May 9 18:54:42.170: PIM(1): Initial register tunnel creation succeeded for RP 33.33.33.33
*May 9 18:54:43.173: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel2, changed state to up
Une interface de tunnel est créée afin de transporter les informations RP du client.
PIM(1) : Initialisation de la création du tunnel d'encapsulation de registre pour RP 22.22.22.22.
Il s'agit du tunnel créé pour effectuer l'encapsulation Register au RP.
Pour chaque RP en mode intermédiaire découvert, un tunnel d'encapsulation Register est créé. Sur le RP en mode clairsemé lui-même, une interface de tunnel de désencapsulation a été créée pour recevoir les paquets Register.
Voisinage PIM :
PE1#sh ip pim interface
Address Interface Ver/ Nbr Query DR DR
Mode Count Intvl Prior
1.1.1.1 Loopback0 v2/S 0 30 1 1.1.1.1
10.0.1.1 Ethernet0/1 v2/S 1 30 1 10.0.1.2
PE1#sh ip pim vrf m-GRE neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
P - Proxy Capable, S - State Refresh Capable, G - GenID Capable
Neighbor Interface Uptime/Expires Ver DR
Address Prio/Mode
10.1.0.2 Ethernet0/2 03:08:34/00:01:43 v2 1 / DR S P G
3.3.3.3 Tunnel1 01:44:24/00:01:41 v2 1 / DR S P G
2.2.2.2 Tunnel1 01:44:24/00:01:38 v2 1 / S P G
Flux de paquets :
Le flux de paquets du plan de contrôle se divise en deux parties.
Lorsque le récepteur est actif :
PE3#sh ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E – Extranet
(3.3.3.3, 232.1.1.1), 10:20:04/00:02:56, flags: FT
Incoming interface: Loopback0, RPF nbr 0.0.0.0
Outgoing interface list:
Ethernet0/3, Forward/Sparse, 10:20:04/00:02:40
PE2#sh ip mroute
IP Multicast Routing Table
Flags:
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
Z - Multicast Tunnel, z - MDT-data group sender,
(3.3.3.3, 232.1.1.1), 11:47:30/00:01:01, flags: JTZ
Incoming interface: Ethernet0/3, RPF nbr 10.0.2.2
Outgoing interface list:
MVRF m-GRE, Forward/Sparse, 11:47:30/00:00:29
Le paquet GRE est décapsulé et PIM JOIN envoie vers le RP.
Note: Le voisin RPF est 2.2.2.2 car la jointure PIM est destinée à l'adresse RP pour former le RPT via le coeur de réseau.
Note: Bit WC et Bit RPT : déclenché par l'état (*, G), le DR crée un message Join/Prune avec l'adresse RP dans sa liste de jointure et le bit générique (bit WC) et le bit RP-tree (bit RPT) définis sur 1. Le bit WC indique que toute source peut correspondre et être transmise conformément à cette rubrique s'il n'y a plus de correspondance ; le bit RPT indique que cette jointure est envoyée vers le haut de l'arborescence RP partagée. La liste des pruneaux reste vide. Lorsque le bit RPT est défini sur 1, il indique que la jointure est associée à l'arborescence RP partagée et que, par conséquent, le message Join/Prune est propagé le long de l'arborescence RP. Lorsque le bit WC est défini sur 1, il indique que l'adresse est un RP et que les récepteurs en aval s'attendent à recevoir des paquets de toutes les sources via ce chemin (arborescence partagée).
PE2#sh ip mroute verbose
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E -
V - RD & Vector, v - Vector, p - PIM Joins on route
(2.2.2.2, 232.1.1.1), 22:48:12/00:02:04, flags: FTp
Incoming interface: Loopback0, RPF nbr 0.0.0.0
Outgoing interface list:Ethernet0/3, Forward/Sparse, 22:48:12/00:03:12, p
PE1#sh ip mroute verbose
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
(2.2.2.2, 232.1.1.1), 22:55:50/00:02:45, flags: JTZ
Incoming interface: Ethernet0/1, RPF nbr 10.0.1.2
Outgoing interface list:MVRF m-GRE, Forward/Sparse, 22:55:50/00:01:09
PIM(1): Received v2 Join/Prune on Tunnel2 from 2.2.2.2, to us
PIM(1): Join-list: (10.1.0.2/32, 224.1.1.1), S-bit set
PIM(1): Add Tunnel2/2.2.2.2 to (10.1.0.2, 224.1.1.1), Forward state, by PIM SG Join
MFIBv4(0x1): Pkt (10.1.0.2,224.1.1.1) from Ethernet0/2 (PS) accepted for forwarding
MFIBv4(0x1): Pkt (10.1.0.2,224.1.1.1) from Ethernet0/2 (PS) sending to Tunnel2, MDT/232.1.1.1
MFIBv4(0x1): Pkt (10.1.0.2,224.1.1.1) from Ethernet0/2 (PS) sent on Tunnel2, MDT/232.1.1.1
À PE2 (RP PE) :
PIM(1): Prune-list: (10.1.0.2/32, 224.1.1.1) RPT-bit set
PIM(1): Cancel sending Join for (10.1.0.2/32, 224.1.1.1) on Tunnel2
PE2#sh ip mroute vrf m-GRE
IP Multicast Routing Table
Flags: L - Local, P - Pruned, R - RP-bit set, F - Register flag,
(10.1.0.2, 224.1.1.1), 00:03:52/00:01:29, flags: R
Incoming interface: Ethernet0/2, RPF nbr 10.2.0.2
Outgoing interface list:
Tunnel2, Forward/Sparse, 00:00:52/00:02:58
Capture PCAP du paquet de multidiffusion à partir de PE1. Tunnel dans le tunnel par défaut MDT. Encapsulé avec GRE.
PE3#sh ip mroute verbose
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
Z - Multicast Tunnel, z - MDT-data group sender,
(1.1.1.1, 232.1.1.1), 23:12:51/00:02:50, flags: JTZ
Incoming interface: Ethernet0/3, RPF nbr 10.0.3.2
Outgoing interface list:
MVRF m-GRE, Forward/Sparse, 23:12:51/stopped
PIM(1): Building Join/Prune packet for nbr 2.2.2.2
PIM(1): Adding v2 (10.1.0.2/32, 224.1.1.1), RPT-bit, S-bit Prune
PIM(1): Send v2 join/prune to 2.2.2.2 (Tunnel2)
PIM(1): Building Join/Prune packet for nbr 1.1.1.1
MFIBv4(0x1): Pkt (10.1.0.2,224.1.1.1) from Tunnel2, MDT/232.1.1.1 (PS) accepted for forwarding
MFIBv4(0x1): Pkt (10.1.0.2,224.1.1.1) from Tunnel2, MDT/232.1.1.1 (PS) sent on Ethernet0/0
MFIBv4(0x1): Pkt (10.1.0.2,224.1.1.1) from Tunnel2, MDT/232.1.1.1 (PS) accepted for forwarding
MFIBv4(0x1): Pkt (10.1.0.2,224.1.1.1) from Tunnel2, MDT/232.1.1.1 (PS) sent on Ethernet0/0
*Jun 2 20:09:11.817: PIM(1): Received v2 Join/Prune on Ethernet0/0 from 10.3.0.2, to us
PE3#sh ip mroute vrf m-GRE verbose
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
V - RD & Vector, v - Vector, p - PIM Joins on route
(10.1.0.2, 224.1.1.1), 00:00:07/00:02:52, flags: Tp
Incoming interface: Tunnel2, RPF nbr 1.1.1.1
Outgoing interface list:
Ethernet0/0, Forward/Sparse, 00:00:07/00:03:22, p
RPF Change at PE3 (Receiver PE)
MRT(1): (10.1.0.2,224.1.1.1), RPF change from /2.2.2.2 to Tunnel1/1.1.1.1
MRT(1): Create (10.1.0.2 ,224.1.1.1), RPF (Tunnel2, 1.1.1.1, 200/0)
MRT(1): Set the T-flag for (10.1.0.2, 224.1.1.1)
MRT(1): WAVL Insert interface: Tunnel1 in (10.1.0.2,224.1.1.1) Successful
MRT(1): set min mtu for (10.1.0.2, 224.1.1.1) 18010->1500
Remarque : le voisin RPF est modifié une fois qu'un paquet multidiffusion de PE1 est reçu. Auparavant, il s'agissait de PE2 comme RP hébergé derrière lui. Après avoir reçu le premier paquet de multidiffusion, il modifie le RPF et définit le bit SPT.
Flux de trafic sur le tunnel MDT par défaut :
Flux de paquets :
L'interface C-Packet a été répliquée dans l'OIL. À ce stade, il s’agit de l’interface PE dans le même VRF.
PE1#sh ip mroute vrf m-GRE verbose
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, v - Vector, p - PIM Joins on route
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(10.1.0.2, 224.1.1.1), 00:00:03/00:02:56, flags: Tp
Incoming interface: Ethernet0/2, RPF nbr 10.1.0.2
Outgoing interface list:
Tunnel2, GRE MDT: 232.1.1.1 (default), Forward/Sparse, 00:00:03/00:03:26, p (Small “p” indicates downstream PIM join)
Si l’OIL contient une MTI, le paquet C est encapsulé dans un paquet P. Si l'indicateur “ y ” est défini sur la destination d'entrée utilisée est le groupe DATA-MDT sinon le groupe MDT par défaut. La source est l'adresse de l'homologue BGP PE et la destination est l'adresse du groupe MDT.
Le paquet arrive à l’interface globale. Entrée globale (S, G) ou (*, G) pour le groupe MDT référencé. Contrôle RPF normal sur P-Source (homologue PE).
Vérification RPF du paquet C dans mVRF effectuée, C Packet a répliqué l'OIL dans mVRF.
PE3#sh ip mroute verbose
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
Z - Multicast Tunnel, z - MDT-data group sender,
(1.1.1.1, 232.1.1.1), 1d01h/00:02:47, flags: JTZ
Incoming interface: Ethernet0/3, RPF nbr 10.0.3.2
Outgoing interface list: MVRF m-GRE, Forward/Sparse, 1d01h/stopped
Encapsulation de paquets :
MDT de données :
Qu'est-ce que Data MDT ?
Il est facultatif. Il est créé en demande, il transporte un trafic spécifique (S, G). Dans la dernière version IOS®, le seuil configuré est “ 0 ” et “ ” infinie. À chaque fois qu'un premier paquet atteint le VRF, le MDT de données s'initialise, et si l'infini, le MDT de données ne sera jamais créé, et le trafic se déplace vers l'avant dans le MDT par défaut. Le MDT de données est toujours l'arbre de réception, il n'envoie jamais de trafic. Le MDT de données est uniquement destiné au trafic (S, G).
PMSI sélectif :
Création de DATA MDT :
2. Le paquet MDT est encapsulé dans UDP avec Source et Destination 3232. Et l'envoyer au destinataire intéressé.
3. Après avoir envoyé le paquet UDP au destinataire intéressé, il définit “ indicateur y ” et modifie le saut suivant MDT en nouvelle adresse de groupe MDT.
À la source PE1 :
MRT(1): Set the y-flag for (10.1.0.2,224.1.1.1)
PIM(1): MDT next_hop change from: 232.1.1.1 to 232.2.2.0 for (10.1.0.2, 224.1.1.1) Tunnel2
PE1#sh ip mroute vrf m-GRE verbose
IP Multicast Routing Table
Flags:
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
Y - Joined MDT-data group, y - Sending to MDT-data group,
p - PIM Joins on route
(10.1.0.2, 224.1.1.1), 00:08:09/00:02:46, flags: Typ
Incoming interface: Ethernet0/2, RPF nbr 10.1.0.2
Outgoing interface list:
Tunnel2, GRE MDT: 232.2.2.0 (data), Forward/Sparse, 00:08:09/00:03:27, A, p (Small “p” indicates downstream PIM join)
Note: Le tronçon suivant de l'OIL passe à 232.2.2.0.
UDP: rcvd src=1.1.1.1(3232), dst=224.0.0.13(3232), length=24
PIM(1): Receive MDT Packet (1418) from 1.1.1.1 (Tunnel2), length (ip: 44, udp: 24), ttl: 1
PIM(1): TLV type: 1 length: 16 MDT Packet length: 16
MRT(1): Set the Y-flag for (10.1.0.2,224.1.1.1)
PE3#sh ip mroute vrf m-GRE verbose
IP Multicast Routing Table
Flags:
T - SPT-bit set, Y - Joined MDT-data group, y - Sending to MDT-data
p - PIM Joins on route
(10.1.0.2, 224.1.1.1), 00:08:27/00:00:20, flags: TYp
Incoming interface: Tunnel1, RPF nbr 1.1.1.1, MDT:232.2.2.0/00:02:15
Outgoing interface list:
Ethernet0/0, Forward/Sparse, 00:08:27/00:03:21, p
Le message S-PMSI Join est un message encapsulé UDP dont l'adresse de destination est ALL-PIM-ROUTERS (224.0.0.13) et dont le port de destination est 3232.
Le message S-PMSI Join contient ces informations : un identificateur pour le flux de multidiffusion spécifique qui doit être lié au tunnel P. Il peut être représenté en tant que paire (S, G). Identificateur du tunnel P auquel le flux doit être lié. Cet identificateur est un champ structuré qui inclut les informations suivantes :
Flux de trafic de multidiffusion dans le tunnel de données MDT :
PE1#sh ip pim mdt send
MDT-data send list for VRF: m-GRE
(source, group) MDT-data group/num ref_count
(10.1.0.2, 224.1.1.1) 232.2.2.0 1
PE3#sh ip pim mdt receive
Joined MDT-data [group/mdt number : source] uptime/expires for VRF: m-GRE
[232.2.2.0 : 1.1.1.1] 00:00:41/00:02:18
Il n'existe actuellement aucune information de dépannage spécifique pour cette configuration.