Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parLéonie Martel Modifié depuis plus de 6 années
1
Réseau MULTICAST de CAMPUS IGMP et CGMP Snooping
2
Sommaire • Introduction - Informations générales • Adresses Multicast
• IGMP - IGMP Version 1 - IGMP Version 2 - Interopérabilité entre IGMP Version et IGMP Version 2 - IGMP on a Router - Exemple pratique sur un routeur • CGMP - Trames CGMP et Types de Messages CGMP - Apprendre des ports de Routeur - Joindre un Groupe avec CGMP - Quitter un groupe avec CGMP - CGMP et réseau "Source-Only" - Configuration de Routeurs et Commutateurs Cisco pour valider CGMP - Exemple pratique d'utilisation de CGMP et de la commande Debug • IGMP Snooping - Présentation du Snooping IGMP - Apprentissage du Port de Routeur - Joindre un Group avec IGMP - Interaction IGMP/CGMP - Réseau Multicast "Source-Only" - Limitations - Configuration du Snooping IGMP sur les commutateurs Cisco - Exemple pratique du Snooping IGMP
3
Introduction Le but du "snooping" avec Cisco Group Management Protocol (CGMP) et Internet Group Management Protocol (IGMP) est de limiter le trafic multicast dans un réseau commuté. Par défaut, un commutateur LAN diffuse le trafic multicast dans le domaine de broadcast, et ceci peut consommer beaucoup de bande passante si plusieurs serveurs multicast transmettent des flux sur le segment. Informations générales Le trafic multicast est diffusé car un commutateur apprend les adresses MAC en regardant les adresses sources dans les trames reçues. Comme une adresse MAC multicast n'est jamais utilisée comme adresse source dans une trame, celle-ci n'apparaitra jamais dans la table d'adresses du commutateur. Le commutateur ne dispose d'aucune méthode pour apprendre ces adresses. La première solution à ce problème est de configurer des adresses MAC statiques pour chaque groupe et chaque client. Cette solution fonctionne bien mais n'est pas dynamique et évolutive. Vous pouvez le faire sur des commutateurs Catalyst 4000, 5000 ou 6000 avec les commandes suivantes: • set cam static {multicast_mac} {mod/port} • set cam permanent {multicast_mac} {mod/port} Ces deux commandes ont le même effet sauf que les entrées statiques sont effacées lors d'une réinitialisation La seconde solution est d'utiliser CGMP, protocole propriétaire Cisco qui fonctionne entre le routeur multicast et le commutateur. Il permet au routeur multicast Cisco de comprendre les messages IGMP transmis par les hosts et d'informer le commutateur sur le contenu des paquets IGMP. La dernière option et la plus efficace est d'utiliser l'espionnage ou "snooping" IGMP. Avec cette technique, le commutateur intercepte les messages IGMP des hosts et met à jour sa table d'adresses MAC. Il faut un matériel adapté pour mettre en œuvre cette fonctionnalité. Les configuration CGMP décrites dans ce document sont pour des commutateurs Catalyst 4000, 5000 avec un CatOS(CGMP n'est pas supporté sur les Catalyst 6000) et configurations snooping IGMP sont pour des Catalyst 5000 et 6000 utilisant un CatOS.Pour plus d'informations sur la configuration multicast sur d'autres plateformes reférez vous aux documents suivants: • Configuration de CGMP et IGMP sur les commutateurs de la série 2900/2500XL • Configuration de IGMP snooping sur les commutateurs Cayalyst de la série • Configuration de IGMP snooping sur les commutateurs Cayalyst de la série • Configuration de IGMP snooping sur les commutateurs Cayalyst 4000 avec Supervisor III • Configuration de IGMP snooping sur les commutateurs Cayalyst 6000 utilisant un IOS natif
4
Adresse Multicast Cette section décrit brièvement l'adressage multicast IP, la fonctionnalité d'IGMP et les détails additionnels sur l'espionnage IGMP et CGMP. 1. Les adresses multicast Ip sont des adresses de classe D. Par conséquent, toutes les adresses IP de à sont des adresses IP Multicast. Elles sont aussi appelées Group Destination Addresses ou GDA. 2. Pour chaque GDA il y a une adresse MAC associée. Cette adresse MAC est de la forme E suivi des 23 derniers bits de l'adresse IP Multicast traduits en hexadécimal. Ceci entraine que : • correspond à l'adresse MAC E • correspond à l'adresse MAC E-0A-0A-0A En conséquence, ce n'est pas une correspondance une pour une mais une pour plusieurs adresses. 3. Quelques adresses IP multicast sont réservéezs pour un usage spécial • : Tous les hosts capables de multicast • : Tous les routeurs capables de multicast • et utilisées par OSPF. En général les adresses de à sont réservées et utilisées par des protocoles (standards ou propriétaires comme HSRP). Le snooping CGMp et IGMP ne fonctionne pas avec ces adresses réservées. Cisco recommande l'utilisation de GDA dans un réseau multicast
5
IGMP IGMP est un standard décrit par le RFC 1112 pour IGMPv1 et par le RFC pour IGMPV2. Ils spécifient comment un host peut entregistrer une route pour recevoir du trafic multicast spécifique. Cette section donne un bref aperçu d'IGMP. IGMP Version 1 Les messages IGMP sont transmis dans des paquets IP et contiennent les champs suivants : • Version : 1 • Type : Il y a deux types de messages Membership Query (1) Membership Report (2) • Checksum • GDA (Adresses IP Multicast) Les messages "Membership Report" sont générés par des hosts qui veulent recevoir du trafic multicast pour un groupe spécifique (GDA).Ce message peuvent être généré en réponse à un message "Membership Query". Les messages "Membership Query" sont générés à intervalles réguliers par un routeur pour vérifier s'il y a toujours un host intéressé par du trafic multicast sur ce segment. Champs contenus dans le message "Membership Report": Informations de couche 2 : • Adresse MAC source : Adresse MAC du Host • Adresse MAC destination Adresse Ethernet Multicast (GDA) - Informations de couche 3 : • Adresse IP source du Host • Adresse IP de destination Adresse Multicast (GDA) • Protocole N°2 (IGMP) Paquet IGMP • Données IGMP contenant l'adresse Multicast et d'autres champ comme le Type et la Version. Les "Host Membership Query" sont transmis par les routeurs vers l'adresse multicast Ces requêtes utilisent la valeur dans le champ adresse (GDA). Un host de chaque groupe doit répondre à cette requête sinon le routeur arrêtera d'acheminer le trafic pour ce groupe d'adresses vers ce segment ( après trois messages sans réponse). Le routeur garde simplement une entrée de routage multicast pour chaque source et les lie à une liste d'interfaces de sortie (interfaces sources des IGMP Report).
6
Après trois messages IGMP "Membership Query" sans réponse, cette interface est
supprimée de la liste des interfaces de sortiepour toutes les entrées liées à ce groupe d'adresses multicast. Note: IGMPv1 n'a pas de mécanisme pour quitter un groupe. Si un host ne veut plus recevoir de trafic multicast, il arrête simplement son application. Si le routeur n'a plus aucune réponse à ses requêtes, il effacera la liste d'adresses multicast pour ce sous-réseau. IGMPv2 Dans la version 2 d'IGMP, le champ version a été supprimé et le champ type a maintenant plusieurs valeurs. • Membership Query • Membership Report v1 • Membership Report v2 • Leave Group Voici les nouvelles fonctions les plus importantes de IGMPv2 : • Message IGMP Leave : Quand un host veut quitter un groupe, il doit envoyer un message IGMP Leave Group à destination de l'adresse ( au lieu de quitter le groupe silencieusement comme dans IGMPv1) • Un routeur peut envoyer une requête spécifique à un groupe en transmettant un message Membership query au groupe GDA au lieu de la transmettre à l'adresse Interopérabilité entre IGMP Version 1 et IGMP Version 2 Avec les deux versions d'IGMP, un seul routeur par sous-réseau IP transmettra les requêtes. Ce routeur est appelé "Query router". Dans la version 1, le "Query router" est choisi à l'aide de protocole de routage multicast. Dans la version 2, c'est le routeur qui a l'adresse IP la plus basse parmi les routeurs possibles qui est choisi. Il y a plusieurs possibilités. • Scénario A: Routeur avec IGMP version 1 et un ensemble de hosts avec IGMP version 1 et IGMP version Comme le routeur ne comprend pas la version 2, tous les hosts doivent utiliser la version 1 d'IGMP. • Scénario B: Routeur avec IGMP version 2 et un ensemble de hosts avec IGMP version 1 et IGMP version 2. Les hosts avec IGMP version 1 ne comprendront pas les "Query" version 2. Le routeur doit utiliser la version 1 et suspendre l'utilisation des messages "Leave". • Scénario C: Routeur Version 1 et Routeur Version 2 localisés sur le même segment . Le routeur version 1 n'a aucun moyen pour détecter le routeur Version 2 aussi le routeur version 2 doit être configuré par l'administrateur comme un routeur Version 1. Dans tous les cas, il est possible qu'ils ne soient pas d'accord sur le "Query router".
7
IGMP sur un routeur Si, par défaut, il n'y a pas d'utilisateur enregistré pour un groupe spécifique dans un sous-réseau, le routeur n'acheminera pas de trafic multicast pour ce groupe dans ce sous-réseau. Sur un routeur vous avez besoin de réaliser les tâches suivantes: 1. Valider le routage multicast en mode global ip multicast routing 2. Configurer un protocole de routage multicast sur l'interface concernée ip pim dense-mode (par exemple) 3. Vérifier IGMP show ip igmp interface show ip igmp group show ip mroute 4. Configurer un routeur pour transmettre des IGMP Report (sur l'interface concernée) ip igmp join-group [GDA-ip-address] ip igmp version [1|2]
8
Exemple pratique sur un routeur
Un routeur a été configuré pour router entre deux interfaces FastEthernet0.2 et FastEthernet0.3. IGMP a été également validé sur les deux interfaces. Configuration ip multicast routing ! interface FastEthernet0 no ip address no ip directed-broadcast interface FastEthernet0.2 encapsulation isl 2 ip address no ip redirects ip pim dense-mode interface FastEthernet0.3 encapsulation isl 3 ip address show ip igmp interface: Fa0.2 is up, line protocol is up Internet address is /24 IGMP is enabled on interface Current IGMP version is 2 CGMP is disabled on interface IGMP query interval is 60 seconds IGMP querier timeout is 120 seconds IGMP max query response time is 10 seconds Inbound IGMP access group is not set IGMP activity: 3 joins, 2 leaves Multicast TTL threshold is 0 Multicast designated router (DR) is (this system) IGMP querying router is (this system) Multicast groups joined: Fa0.3 is up, line protocol is up Internet address is /24 IGMP activity: 1 joins, 1 leaves Multicast designated router (DR) is (this system) IGMP querying router is (this system) No Multicast groups joined
9
CGMP show ip mroute et show ip igmp groups:
Nimes#show ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, ), 00:01:15/00:02:59, RP , flags: DJC Incoming interface: Null, RPF nbr Outgoing interface list: FastEthernet0.3, Forward/Dense, 00:01:16/00:00:00 ( , ), 00:00:39/00:02:20, flags: CT Incoming interface: FastEternet0.2, RPF nbr FastEthernet0.3, Forward/Dense, 00:00:39/00:00:00 Nimes# Nimes#show ip igmp groups IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter Fa :02:48 00:02: CGMP CGMP est supporté sur les plateformes suivantes: • Catalyst série 5000 pour tout IOS supérieur à 2.3 • Catalyst 2901, 2902, 2926T, 2926F, 2928G pour tout IOS supérieur à • Catalyst série 4000, Catalyst 2948G et catalyst 4912 pour toutes versions d'IOS. • Catalyst 2900XL et Catalyst 3500XL pour tout IOS de version supérieure à 11.2(8)SA et CGMP Fast Leave supporté depuis la version SA3. • Catalyst 1900 et 2820 depuis la version IOS 6.x Note: CGMP n'est pas supporté sur les Catalyst 6000
10
Trames CGMP et types de messages
CGMP a été implémenté par Cisco d'abord pour diminuer le trafic multicast dans un réseau de couche 2. Comme un commutateur, par définition, n'est pas capable de gérer des paquets de couche 3, il ne peut pas gérer les paquets IGMP. Avec CGMP, le routeur fournit l'interface avec les hosts. Le routeur "parle" IGMP et le commutateur "parle" CGMP. Les trames CGMP sont des trames Ethernet avec l'adresse MAC destination C-dd-dd-dd et avec un en-tête SNAP dont la valeur est 0x2001. Les trames CGMP contiennent les champs suivants: • Version: 1 ou 2 • Type de message : Join ou Leave • Count: Le nombre de paires d'adresses multicast/unicast dans le message. • GDA : Adresse MAC 48 bits du groupe multicast • USA : Adresse MAC unicast 48 bits de l'équipement qui veut joindre le groupe Par défaut, les processeurs d'un commutateur (appelés NMP dans un Catalyst) écoutent seulement les adresses multicast listées par la commande show cam system . Aussi quand vous utilisez CGMP sur un commutateur, l'adresse C-dd-dd-dd est ajoutée à la liste. GDA USA Join/Leave Signification @MAC Multicast @MAC Client Join Ajouter un port au groupe Leave Retirer le port du groupe @MAC Routeur Affecter un port de routeur Retirer un port de routeur Retirer un groupe Retirer tous les groupes Apprentissage des ports de routeurs Le commutateur doit être au courant de tous les ports de routeur ainsi ils pourront être ajoutés à toute entrée multicast nouvellement crée. Le commutateur apprend les ports des routeurs quand il reçoit un message CGMP Joinpour l'adresse GDA avec l'adresse MAC unicast du routeur(3eme type de message dans le tableau ci-dessus). Ces messages seront générés par le routeur sur toutes les interfaces configurées avec CGMP. Cependant il existe une méthode statique pour configurer les les adresses de ports de routeur sur un commutateur.
11
Joindre un groupe avec CGMP
• Un nouveau client demande à recevoir du trafic pour un groupe multicast, aussi le client transmet un message IGMP Membership Report. • Le routeur reçoit le message IGMP Report, le traite et transmet un message CGMP au commutateur. Le routeur copie l'adresse destination dans le champ GDA du message CGMP join, l'adresse MAC source dans le champ USA du message CGMP Join et transmet le message vers le commutateur. • Un commutateur avec CGMP validé écoute l'adresse CGMP C-dd-dd-dd. Le processeur du commutateur regarde dans la table CAM pour l'adresse dans le champ USA. Une fois que l'adresse USA est vue dans la table CAM, le commuta- teur sait sur quel port l'adresse USA est située puis: • Crée une nouvelle entrée statique pour l'adresse GDA et lie le port de l'adresse USA à celle-ci avec les ports de routeur ou ajoute simplement le port de l'adresse USA à la liste des ports pour cette adresse GDA (si l'entrée statique existe déjà) Quitter un groupe avec CGMP Les entrées statiques apprises avec CGMP sont permanentes, à moins qu'un change- ment de topologie ne survienne dans le VLAN ou que le routeur transmette un des deux derbiers messages Leave de la table de la page précédente. Quand le host utilise IGMPv1, ne pas transmettre de messages IGMP Leave. Le routeur enverra des messages Leave s'il ne reçoit pas de réponse à trois requêtes IGMP consécutives. Cela signifie qu'aucun port ne sera retiré d'un groupe s'il y a toujours un utilisateur dans ce groupe. Avec l'introduction d'IGMPv2 et la présence d'IGMP Leave, Cisco a modifié la version originale de CGMP(v2) en ajoutant la fonctionnalité Fast Leave. Le traitement de CGMP permet au commutateur de détecter les message IGMP Leave de la version 2 transmis avec l'adresse multicast (tous les routeurs) par les hosts sur les port du module superviseur. Quand le module superviseur reçoit le message Leave, il démarre un timer nommé "Query-response" et transmet un message sur le port sur lequel ce message Leave a été reçu pour déterminer s'il y a toujours un host désirant recevoir du trafic pour ce groupe multicast sur ce port. Si le timer expire avant qu'un message CGMP join soit reçu, le port est retiré de multicast pour le groupe multicast spécifié dans le message Leave original. Si c'est le dernier port dans le groupe multicast, il achemine le message IGMP Leave vers tous les routeurs. Le routeur commence le processus de retrait normal en transmettant une requête spécifique au groupe. Si aucune réponse n'est reçue, le routeur retire ce groupe de la table de routage multicast pour cette interface. Il transmet également un message CGMP Leave au commutateur qui effacera le groupe de la table statique. Fast Leave assure une gestion optimale de la bande passante pour tous les hosts d'un réseau de commutateurs LAN même si plusieurs groupes multicast sont utilisés simultanément.
12
Ainsi quand CGMP est validé, deux entrées sont ajoutées dans la table et peuvent être
affichées par la commande show cam system. E et E car IGMP Leave utilise l'adresse et IGMP Query l'adresse Utilisez la démarche suivante pour résoudre les problèmes CGMP : 1. A cause d'un conflit avec HSRP(Hot Standby Router Protocol), le traitement de CGMP Leave est inhibé par défaut. HSRP utilise l'adresse MAC E qui est celle utilisée également par IGMP Leave avec la version 2 d'IGMP Avec CGMP Fast Leave validé, tous les paquets HSRP sont dirigés vers la CPU du commutateur. Comme les paquets HSRP ne sont pas des paquets IGMP, le commutateur les régénère et les transmet sur tous les ports de routeur. Les routeurs recevant des paquets hsrp hello ou hsrp peers perdent la connectivité sur les interfaces. Pour résoudre les problèmes HSRP, dévalider CGMP Fast Leave. Pour valider le traitement de CGMP Fast Leave, entrez la commande suivante: set cgmp leave enable 2. Quand le traitement de CGMP Leave est validé, le commutateur Catalyst 5000 apprend les ports de routeur avec PIMv1, HSRP et les messages CGMP self-join. Quand le traitement de CGMP Leave est dévalidé, le commutateur de la famille Catalyst 5000 apprend les ports de routeur à l'aide des messages CGMP self-join seuelement. 3. CGMP ne supprime pas tout le trafic multicast pour toute adresse qui appartient à l'intervalle d'adresses MAC de E à E Ff. Les adresses IP multicast dans l'intervalle à sont utilisées pour acheminer du trafic multicast avec un seul saut de couche 3. CGMP et réseau "Source only" Un réseau "Source only" est un segment avec seulement une source multicast et pas de client. De plus, il y a de fortes probabilités pour qu'il n'y ait pas d'IGMP report générés sur ce segment. Toutefois, CGMP a besoin de limiter la diffusion de cette source(pour l'utilisation du routeur). Si un routeur détecte du trafic multicast sur une de ces interfaces sans IGMP report, elle est identifié comme un réseau multicast "Source only". Le routeur génère un message CGMP join pour lui-même et le commutateur simplement pour ajouter ce groupe(avec seulement le port du routeur).
13
Configuration de routeurs et de commutateurs Cisco pour valider CGMP
Les commandes suivantes sont valables uniquement pour les commutateurs des séries Catalyst 4000 et 5000(plus 2901, 2902, 2926, 2948G et 4912). • Routeur Multicast - Validation du routage Multicast(mode global) - ip multicast-routing - Validation de CGMP sur une interface(mode interface) - ip pim [sparse-mode|dense-mode] - ip igmp - ip cgmp - Commande debug - debug ip igmp - debug ip cgmp • Séries Catalyst 4000 ou 5000 - Valider/dévalider CGMP - set cgmp [enable|disable] - Valider/dévalider CGMP Fast Leave - set cgmp leave [enable|disable] - Configurer le routeur Multicast - set multicast-router [slot/port|all] - Déconfigurer le routeur Multicast - clear multicast-router [slot/port|all] - Commandes diverses pour vérifier le fonctionnement de CGMP show cam static show cgmp statistic [Vlan_id] show cgmp leave show multicast router - show multicast group show multicast group cgmp - show multicast group count
14
Exemple pratique d'utilisation de CGMP et de la commande Debug
L'exemple ci-dessous est un exemple pratique de configuration avec le schéma du réseau. PC Client VLAN 3 MAC c-07-ac-00 3/2 Valence 3/1 Xeres (Catalyst 5000) 3/3 Serveur Multicast VLAN 2 GDA Cet exemple détaillé montre les opérations effectuées quand un host rejoint un groupe puis les opérations effectuées quand un host quitte un groupe avec Fast-Leave validé.Finalement vous pourrez examiner des traces de messages ainsi que la configuration du routeur et du commutateur. Rejoindre un groupe avec CGMP Les étapes suivantes sont nécessaires pour rejoindre un groupe avec CGMP: 1. Validation de CGMP sur le commutateur Xeres(enable) set cgmp enable MCAST-CGMP: Set CGMP Sys Entrie CGMP support for IP multicast enabled Xeres(enable)
15
Comme indiqué ci-dessous, l'entrée 01-00-0c-dd-dd-dd pour tous les VLANs a été
crée. De plus, comme CGMP Fast Leave est validé, on peut voir les deux entrées e et e Xeres(enable) set cgmp leave CGMP leave: enabled Xeres(enable) show cam system * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [Cos] Destination Ports or VCs / [Protocol Type] f # /1 e0-fe-4b-f3-ff # /9 c-cc-cc-cc # /9 c-cc-cc-cd # /9 c-dd-dd-dd # /9 c-ee-ee-ee # /9 c # /9 c # /9 f # /1 c-cc-cc-cc # /9 c-cc-cc-cd # /9 c-dd-dd-dd # /9 c # /9 c # /9 c-cc-cc-cc # /9 c-cc-cc-cd # /9 c-dd-dd-dd # /9 c # /9 c # /9 Total Matching CAM Entries Displayed = 19 Xeres(enable) 2. Le routeur transmet un message CGMP join à l'adresse avec l'adresse MAC USA du routeur. De plus le port du routeur est ajouté à la liste de port de routeurs. Sur le routeur: 6dO1h: CGMP: Sending self Join on Fa0.3 6dO1h: GDA USA cd.83c9 Sur le commutateur: MCAST-CGMP-JOIN: recvd CGMP Join msg on port 3/1 vlanNo 2 MCAST-CGMP-JOIN: join GDA MCAST-CGMP-JOIN: USA cd-83-c9 MCAST-ROUTER: Adding QUERIER port 3/1, vlanNo 2 MCAST-ROUTER: Creating RouterPortTimer for port 3/1, vlanNo 2 Xeres(enable) show multicast router CGMP enabled IGMP disabled Port Vlan 3/ Total Number of Entries = 1 '*' - Configured
16
groups sur le routeur Valence.
3. Le PC sur le port 3/2 transmet un IGMP report contenant l'adresse GDA La sortie ci-dessous est le résultat de la commande show ip igmp groups sur le routeur Valence. Cette sortie montre que maintenant le trafic pour sera acheminé sur Fa0.3. C'est la conséquence de la réception d'un IGMP report de qui est le PC Client. Valence#show ip igmp groups IGMP Connected Group Membership Group Address Interface Uptime Expires Last Reporter Fa :02:48 00:02: Valence# 4. Le routeur a reçu un IGMP join et transmet un message CGMP Join avec • @MAC du routeur dest : cc-dd-dd-dd • du PC client (USA): c-07-00 @MAC du groupe Multicast: E-0a-0a-0a Sur le routeur: 6d01h: IGMP: Received v2 Report from (Fa0.3) for 6d01h: CGMP: Received IGMP Report on Fa0.3 from for 6d01h: CGMP: Sending Join on Fa0.3 5. Le commutateur avec l'adresse cc-dd-dd-dd dans sa table CAM a CGMP validé. Le commutateur peut traiter le paquet. Le commutateur fait une recherche dans la table dynamique CAM pour déterminer sur quel port l'adresse MAC du PC client est située. L'adresse est située sur le port 3/2 et le commutateur crée une entrée statique dans la table CAM pour l'adresse e-0a-0a-0a liée au port 3/2. Le commutateur ajoute également le port 3/1 pour le routeur avec l'adresse GDA. Sur le commutateur: MCAST-CGMP-JOIN: recvd CGMP JOIN msg on port 3/1 vlanNo 3 MCAST-CGMP-JOIN: join GDA e-0a-0a-0a MCAST-CGMP-JOIN: USA c-f4-bd-e2 MCAST-CGMP-JOIN: 3/2/3: index 81 MCAST-CGMP-JOIN: recvd CGMP JOIN msg on port 3/1 vlanNo 2 MCAST-CGMP-JOIN: join GDA e MCAST-CGMP-JOIN: USA cd-83-c9 MCAST-CGMP-JOIN: 3/1/2: index 80
17
6. Ainsi tout le trafic pour le groupe multicast 224. 10. 10
6. Ainsi tout le trafic pour le groupe multicast sera acheminé sur ce port dans ce VLAN. Ci-dessous sont affichées les statistiques pour les entrées de la table en mémoire CAM où 3/1 est le port pour le routeur et 3/2 le port pour le client. Xeres(enable) show cam statistics * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] e-0a-0a-0a /1-2 Total Matching Entry Displayed = 3 Xeres(enable)
18
Quitter un groupe avec CGMP Fast-Leave validé
L'exemple ci-dessous requiert que le client soit en IGMP version 2 et que CGMP Fast-Leave soit validé sur le commutateur. 1. Il faut valider CGMP Fast-Leave. Examinons la sortie de la commande show cgmp-leave pour déterminer si CGMP Fast-Leave est validé. Nous pouvons également examiner la sortie de la commande show cam system pour déterminer sie le commutateur écoute les adresses MAC multicast e et e (adresses utilisées par Leave). Xeres(enable) show cgmp leave CGMP: enabled CGMP leave: enabled Xeres(enable) show cam system * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] f # /1 e0-fe-4b-f3-ff # /9 c-cc-cc-cc # /9 c-cc-cc-cd # /9 c-dd-dd-dd # /9 c-ee-ee-ee # /9 c # /9 c # /9 f # /1 c-cc-cc-cc # /9 c-cc-cc-cd # /9 c-dd-dd-dd # /9 e # /9 e # /9 c # /9 c # /9 c-cc-cc-cc # /9 c-cc-cc-cd # /9 c-dd-dd-dd # /9 e # /9 e # /9 c # /9 Do you wish to continue y/n [n]? y Total Matching CAM Entries Displayed = 22 Xeres(enable)
19
commande debug pour le commutateur.
2. Le client transmet un message IGMP Leave à l'adresse Le commutateur intercepte le message et transmet un message IGMP Query sur le port sur lequel il a reçu le message IGMP Leave. Ci-dessous vous pouvez voir une sortie de commande debug pour le commutateur. MCAST-IGMP-LEAVE:Recvd leave on port 3/2 vlanNo 3 MCAST-IGMP-LEAVE:router_port_tbl[vlanNo].QueryTime = 0 MCAST-IGMP-LEAVE:deletion_timer = 1 MCAST-SEND:Transmitting IGMP Mac Based GS Query msg on port 3/2 vlanNo 3 MCAST-SEND:Transmit Succeeded for IGMP Group Specific Query msg on port 3/2 vlanNo 3 3. Comme aucune réponse n'a été reçue, le Catalyst achemine le message IGMP leave vers le routeur. MCAST-TIMER:IGMPLeaveTimer expired on port 3/2 vlanNo 3 GDA e-0a-0a-0a MCAST-TIMER:IGMPLeaveTimer expiry: Transmit IGMP Leave on port 3/1 vlanNo 3 MCAST-SEND:Transmitting IGMP Leave msg on port 3/1 vlanNo 3 MCAST-SEND:Inband Transmit Succeeded for IGMP Leave Message on port 3/1 vlanNo 3 4. Le routeur reçoit un message IGMP Leave et transmet un message CGMP Leave au commutateur et efface le groupe de la liste de groupes IGMP. Ci-dessous vous voir une sortie de commande debug pour le routeur. IGMP: Received Leave from (Fa0.3) for IGMP: Send v2 Query on Fa0.3 to CGMP: Sending Leave on Fa0.3 GDA e0a.0a0a, USA IGMP: Deleting on Fa0.3 Traces CGMP et Configuration C'est une trame CGMP Join vers GDA Elle est utilisée par le routeur pour ajouter le port du routeur à la liste de ports de routeurs Trame 1 ISL: ISL Protocol Packet ----- ISL: ISL: Destination Address = 01000C000000 ISL: Type = 0 (Ethernet) ISL: User = 0 (Normal) ISL: Source Address = 8C95BB7B1000 ISL: Length = 76 ISL: Constant Value = 0xAAAA03 ISL: Vendor ID = 0x8C958B ISL: Virtual LAN ID (VLAN) = 2 ISL: Bridge Protocol Data Unit BPDU) = 0 ISL: Port Index = 193 ISL: Reserved ETHER:----- Ethernet Header ----- ETHER: ETHER: Destination = Multicast C00000 ETHER: Source = Station Cisco11411E1 ETHER: length = 24
20
connecté avec le routeur
Trame 1(Fin) LLC: LLC Header ----- LLC: LLC: DSAP Address = AA, DSAP IG Bit = 00 (Individual Address) LLC: SSAP Address = AA, SSAP CR Bit = 00 (Command) LLC: Unnumbered frame: UI SNAP: SNAP Header ----- SNAP: SNAP: Vendor ID = Cisco1 SNAP: Type = 2001 (CGMP) CGMP: Cisco Group Management Protocol ----- CGMP: CGMP: Version = 16 CGMP: Type = 0 (Join) CGMP: Reserved CGMP: Count = 1 CGMP: Group Destination Address and Unicast Source Address CGMP: GDA = CGMP: USA = C14.11E1 du routeur Le résultat de cette trame est que sur le commutateur, le port 3/1 est celui qui est connecté avec le routeur Trame 2 Cette trame contient un message IGMP membership report par le host pour confirmer que des utilisateurs veulent recevoir du trafic multicast pour le groupe ISL: ISL Protocol Packet ----- ISL: ISL: Destination Address = 01000C000000 ISL: Type = 0 (Ethernet) ISL: User = 0 (Normal) ISL: Source Address = 8C95BB7B1000 ISL: Length = 76 ISL: Constant Value = 0xAAAA03 ISL: Vendor ID = 0x8C958B ISL: Virtual LAN ID (VLAN) = 2 ISL: Bridge Protocol Data Unit BPDU) = 0 ISL: Port Index = 195 ISL: Reserved ETHER:----- Ethernet Header ----- ETHER: ETHER: Destination = Multicast C00000 ETHER: Source = Station Cisco176DCCA ETHER: Ethertype = 0800 (IP) IP: IP Header ----- IP: IP: Version = 4, header length = 20 bytes IP: Type of service = C0 IP: = internetwork control IP: = normal delay
21
IP: .... 0... = normal throughput
IP: = normal reliability IP: Total length = 28 bytes IP: Identification = 0 IP: Flags = 0X IP: = may fragment IP: = last fragment IP: Fragment offset = 0 bytes IP: Time to live = 1 seconds/hops IP: Protocol = 2 (IGMP) IP: Header checksum = CC09 (correct) IP: Source address = [ ] IP: Destination address = [ ] IP: No options IP: IGMP: IGMP Header ----- IGMP: IGMP: Version = 1 IGMP: Type = 6 (Ver 2 Membership Report) IGMP: Unused = 0x00 IGMP: Checksum = FFEA (correct) IGMP: Group Address = [ ] Trame 3 Cette trame est la trame CGMP transmise par le routeur au commutateur pour indiquer à celui-ci d'ajouter une entrée statique pour e-0a-0a-0a. ISL: ISL Protocol Packet ----- ISL: ISL: Destination Address = 01000C000000 ISL: Type = 0 (Ethernet) ISL: User = 0 (Normal) ISL: Source Address = 8C95BB7B1000 ISL: Length = 76 ISL: Constant Value = 0xAAAA03 ISL: Vendor ID = 0x8C958B ISL: Virtual LAN ID (VLAN) = 2 ISL: Bridge Protocol Data Unit BPDU) = 0 ISL: Port Index = 193 ISL: Reserved ETHER:----- Ethernet Header ----- ETHER: ETHER: Destination = Multicast C00000 ETHER: Source = Station Cisco11411E1 ETHER: length = 24 LLC: LLC Header ----- LLC: LLC: DSAP Address = AA, DSAP IG Bit = 00 (Individual Address) LLC: SSAP Address = AA, SSAP CR Bit = 00 (Command) LLC: Unnumbered frame: UI
22
Configuration du routeur
SNAP: SNAP Header SNAP: SNAP: Vendor ID = Cisco SNAP: Type = 2001 (CGMP) SNAP: CGMP: Cisco Group Management Protocol CGMP: CGMP: Version = CGMP: Type = 0 (Join) CGMP: Reserved CGMP: Count = CGMP: CGMP: Group Destination Address and Unicast Source Address CGMP: CGMP: GDA = E0A.0A0A GDA ajoutée à la table cam CGMP: USA = C76.DCCA du PC (interface 3/1) Configuration du routeur Valence# show run Building configuration... Current configuration ! version 12.0 service timestamps debug uptime service timestamps log uptime no service password-encryption hostname Valence ip subnet-zéro ip multicast-routing ip dvmrp route-limit 20000 interface FastEthernet0 no ip address no ip directed-broadcast interface FastEthernet0.1 encapsulation isl 1 ip address no ip redirects ip pim dense-mode ip cgmp interface FastEthernet0.3 encapsulation isl 3 ip address
23
IGMP Snooping Configuration du commutateur
Xeres(enable) set cgmp enable set cgmp enable set cgmp leave enable Xeres (enable) Statistiques CGMP pour le VLAN 3 Xeres(enable) show cgmp statistics 3 CGMP enabled CGMP statistics for vlan 3: valid rx pkts received invalid rx pkts received valid cgmp joins received valid cgmp leaves received 1 valid igmp leaves received 1 valid igmp queries received 63 igmp gs queries transmitted 1 igmp leaves transmitted failures to add GDA to EARL 0 topology notification received 0 Xeres (enable) IGMP Snooping IGMP snooping est autre fonctionnalité qui permet d'intercepter les trames contenant des paquets IGMP. IGMP Snooping est utilisable avec les IOS et matériels suivants: • Famille Catalyst 5000 avec Supervisor Engine III et NFFC ou NFFCIII CatOS version 4.x minimum. • Famille Catalyst 6000 sans restriction Présentation d'IGMP Snooping IGMP Snooping, comme le terme l'indique, est une fonctionnalité qui permet l'écoute des messages IGMP échangés entre les hosts et les routeurs. Quand un commutateur intercepte un message IGMP report d'un host pour un groupe multicast donné, le commutateur ajoute le port connecté au host à la liste GDA pour ce groupe. Quand le commutateur intercepte un message IGMP leave, il retire le port connecté au host de l'entrée de la table CAM. Pour activer IGMP Snooping, il y a besoin d'une carte Netflow additionnelle. Cette carte avec des fonctionnalités de couche 3 intercepte les messages IGMP au lieu d'intercepter tout le trafic multicast pour tout le groupe. Ainsi l'implémentation Cisco d'IGMP Snooping ne transmet pas tout le trafic multicast au proccesseur du commutateur mais seulement quelques trames contenant des paquets IGMP.
24
Apprentissage du port de routeur
Le commutateur ecoute les messages suivants pour détecter les ports connectés à un routeur a l'aide d'IGMP Snooping. • IGMP Membership query transmis à l'adresse e • PIMv1 Hello transmis à l'adresse e • PIMv2 Hello transmis à l'adresse e d • DVMRP probes transmis à l'adresse e • Message MOSPF transmis à l'adresse e ou 06 Ainsi en validant IGMP Snooping sur le commutateur, les adresses MAC ci-dessus vont être ajoutées aux entrées de la table cam du commutateur. Elles sont affichables avec la commande show cam system. Une fois que le port connecté au routeur est détecté, il est ajouté à la liste de toutes les GDA de ce VLAN. Rejoindre un groupe avec IGMP Snooping Voici deux scénarios pour rejoindre un groupe: Scenario A: Le Host A est le premier host à joindre le groupe sur ce segment • Le Host A transmet un message IGMP Membership report • Le commutateur intercepte le message IGMP Membership report transmis par le Host A • Le commutateur crée une entrée multicast pour ce groupe et le lie au port sur lequel le message a été reçu et à tous les ports connectés à un routeur. • Le commutateur achemine le message IGMP vers to les ports de routeurs. Le routeur recevra aussi le message IGMP et mettra à jour sa table de routage multicast. Scenario B: Le Host B est le second à rejoindre le même groupe multicast • Le Host B transmet un message IGMP Membership report • Le commutateur n'acheminera pas obligatoirement le message vers les routeurs. Le commutateur sert de Proxy IGMP report et achemine les IGMP report pour un toutes les 10s.
25
Note: Pour le maintien de l'appartenance à un groupe, le routeur multicast transmet des IGMP Query toutes les 60 secondes. Ces IGMP Query sont interceptées par le commutateur et acheminées sur tous les ports. Tous les hosts membres du groupe répondront à cette requête. Mais comme le commutateur intercepte le message de report en retour, les autres hosts ne voient pas les messages de report et tous les hosts transmettent un message de report. Le commutateur se comportant en Proxy reporting n'acheminera qu'un seul message de report par groupe. Supposons que seul le Host A veuille quitter le groupe: • Le commutateur capture le message IGMP Leave • Le commutateur transmet un message IGMP Query pour ce groupe sur ce port et uniquement sur celui-ci. • Si le commutateur ne reçoit pas de réponse, il retitre le port de la table. S'il reçoit une réponse il ne tient pas compte du message leave. • Comme le Host B fait toujours partie du groupe, ce n'est pas le dernier port de routeur dans la table. Le commutateur n'acheminera pas le message IGMP Leave. Supposond que le Host B quitte le groupe et que le host B est le dernier utilisateur du groupe sur ce segment. • Le commutateur capture le message IGMP Leave • Si le commutateur ne reçoit pas de réponse, il retitre le port de la table. • Comme c'est le dernier port non-routeur pour cette GDA, le commutateur achemine le message IGMP Leave vers tous les ports de routeurs et retire l'entrée de la table. Interaction IGMP/CGMP Dans certains réseaux, à cause de limitations du matériel, vous ne pourrez pas activer IGMP Snooping sur tous les commutateurs. Dans ce cas vous aurez peut êtee besoin d'activer CGMP sur certains commutateurs. Notez que c'est un cas très particulier. Le commutateur avec IGMP Snooping détectera les messages CGMP et détectera ainsi que quelques commutateurs utilisent CGMP. Aussi il passera dans un mode IGMP-CGMP et dévalidera la fonction de Proxy report. Ceci est absolument nécessaire pour un fonctionnement correct de CGMP car les routeurs utilisent l'adresse MAC source du message IGMP report dans le but de créer un message CGMP Join. Les routeurs utilisant CGMP ont besoin de voir tous les messages IGMP report.
26
Réseaux Multicat "Source-only"
Si le segment contient un seul serveur multicast( multicast source) et pas de client, on se trouve dans le cas où il n'y a pas paquets IGMP échangés sur ce segment mais beaucoup de trafic multicast. Dans ce cas, le commutateur acheminera simplement le trafic de ce groupe vers tous les utilisateurs de ce segment. Heuresement, un commutateur avec IGMP Snooping activé détecte ce flux multicast et ajoute une entrée multicast pour ce groupe sur ce port connecté au routeur. Cette entrée est marquée comme mcast_source_only et sera dévlidé après 5 minutes ou si le port de routeur passe hors-service. Notez que même après cette dévalidation, l'adresse sera très vite réapprise si le trafic continue. Limitations Comme avec CGMP, les adresses GDA qui sont mappées avec des adresses MAC dans l'intervalle e XX ne sont jamais éliminées par IGMP Snooping. Configuration d'IGMP Snooping sur les commutateurs Cisco • Pour valider dévalider IGMP snooping - set igmp [enable|disable] • Configuration statique d'un port connecté à un routeur - set multicast router [mod/port] - clear multicast router [mod/port|all] • Supervision et IGMP statistiques - show igmp statistics [vlan_number] - show multicast router
27
Exemple pratique d'IGMP Snooping
La configuration de cet exemple est similaire à celle utilisée pour tester CGMP dans l'exemple précédent. La seule différence est que les port 3/2 et 3/3 sont tous les deux connectés au même VLAN et sont tous les deux configurés comme des clients pour joindre le groupe Cet exemple décrit plusieurs opérations, examine ce que fait le commutateur et examine le résultat des affichages. Le commutateur Xeres est un Catalyst 5500 avec un CatOS utilisant IGMP Snooping et "Valence" est le routeur connecté au port 3/1. 1. Validons IGMP Snooping sur le commutateur et examinons les résultats avec la commande debug . Notez que chaque ensemble d'entrées ont été ajoutés et peuvent être affichés avec la commande show cam system. La détection du port connecté au routeur peut être faite au travers de PIM, MOSPF , etc... Xeres(enable) set igmp enable MCAST-IGMP: Set Sys entries MCAST-SYS-ENTRIES: Add system Entries in vlan 1 MCAST-SYS-ENTRIES: Add system Entries in vlan 2 MCAST-SYS-ENTRIES: Add system Entries in vlan 3 IGMP feature for IP multicast enabled Xeres(enable) Xeres(enable) show cam system * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] f # /1 e0-fe-4b-f3-ff # /9 c-cc-cc-cc # /9 c-cc-cc-cd # /9 c-dd-dd-dd # /9 c-ee-ee-ee # /9 e # /9 e # /9 e # /9 e # /9 e d # /9 c # /9 c # /9 f # /1 c-cc-cc-cc # /9 c-cc-cc-cd # /9 c-dd-dd-dd # /9 e # /9 e # /9 c # /9 c # /9
28
est acheminé vers le routeur.
2. Le commutateur reçoit un paquet PIMv2 du routeur Valence et ajoute le port connecté à ce routeur. MCAST-IGMPQ: recvd a PIM V2 packet of type HELLO on the port 3/1 vlanNo 2 MCAST-ROUTER: Adding port 3/1, vlanNo 2 MCAST-ROUTER: Creating RouterPortTimer for port 3/1, vlanNo 2 MCAST-IGMPQ: recvd a PIM V2 packet of type HELLO on the port 3/1 vlanNo 3 MCAST-ROUTER: Adding port 3/1, vlanNo 3 MCAST-ROUTER: Creating RouterPortTimer for port 3/1, vlanNo 3 Xeres (enable) show multicast router CGMP disabled IGMP enabled Port Vlan 3/ Total Number of Entries = 1 '*' - Configured Xeres(enable) 3. Maintenant connectons un nouveau host dans le groupe (sur le port 3/2). Ce host transmet un IGMP Membership report. Le Message de report est reçu et intercepté par le commutateur, l'entrée dans la table est ajoutée et le message est acheminé vers le routeur. Sur le commutateur Xeres: MCAST-IGMPQ: recvd a IGMP V2 Report on the port 3/2 vlanNo 3 GDA MCAST-RELAY: Relaying packet on port 3/1, vlanNo 3 MCAST-SEND: Inband Transmit Succeeded for IGMP RELAY msg on port 3/1 vlanNo 3 Xeres(enable) show cam statistics * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] e-0a-0a-0a /1-2 4. Maintenant nous ajoutons un utilisateur dans le VLAN 3 sur le port 3/3: Xeres(enable) show cam statistics * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] e-0a-0a-0a /1-3
29
commutateur transmet en retour un message IGMP Query pour ce groupe et
5. Maintenant retirons le port 3/2. Le port 3/2 reçoit un message IGMP Leave , le commutateur transmet en retour un message IGMP Query pour ce groupe et démarre un timer. Quand le timer expire er qu'aucune réponse n'a été reçue, le port est retiré du groupe. MACST-IGMP: recvd an IGMP Leave on the port 3/2 vlanNo 3 GDA MCAST-IGMPQ-LEAVE: router_port_tbl[vlanNo].QueryTime = 0 MCAST-DEL-TIMER: Deletion Timer Value set to Random Value 1 MCAST-SEND: Transmiiting IGMP MAC Based GS Query msg on port 3/2 vlanNo 3 MCAST-SEND: Transmit Succeeded for IGMP Group Specific Query msg on port 3/2 vlanNo 3 MCAST-TIMER: IGMPLeaveTimer expired on port 3/2 vlanNo 3 GDA e-0a-0a-0a MCAST-TIMER: IGMPLeaveTimer: delete leave timer Xeres(enable) show cam statistics * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] e-0a-0a-0a /1,3/3 6. Finalement le le host connecté au port 3/3 quitte le groupe et transmet un message IGMP Leave. La seule différence avec le point précédent est que le message IGMP Leave est acheminé vers le routeur. MACST-IGMP: recvd an IGMP Leave on the port 3/23 vlanNo 3 GDA MCAST-SEND: Transmiiting IGMP MAC Based GS Query msg on port 3/3 vlanNo 3 MCAST-SEND: Transmit Succeeded for IGMP Group Specific Query msg on port 3/3 vlanNo 3 MCAST-TIMER: IGMPLeaveTimer expired on port 3/3 vlanNo 3 GDA e-0a-0a-0a MCAST-TIMER: IGMPLeaveTimer expiry:Transmit IGMP Leave port 3/1 vlanNo 3 MCAST-SEND: Transmitting IGMP Leave msg on port 3/1 vlanNo 3 MCAST-SEND: Inband Transmit Succeeded for IGMP Leave Messagemsg on port 3/1 MCAST-TIMER: IGMPLeaveTimer: delete leave timer Nous sommes revenus au début de l'exemple. Les entrées multicast ont disparues de la table et cela peut çetee vérifié à l'aide de la commande show cam static.
30
Pour terminer examinons les statistiques IGMP.
Xeres(enable) show igmp statistics 2 IGMP enabled IGMP statistics for vlan 2: Total valid pkts rcvd: Total invalid pkts recvd General Queries recvd Group Specific Queries recvd 0 MAC-Based General Queries recvd 0 Leaves recvd Reports recvd Queries Xmitted GS Queries Xmitted Reports Xmitted Leaves Xmitted Failures to add GDA to EARL Topology notification rcvd Xeres(enable) show igmp statistics 3 IGMP statistics for vlan 3: Total valid pkts rcvd: General Queries recvd Group Specific Queries recvd 6 Leaves recvd Reports recvd GS Queries Xmitted Leaves Xmitted Topology notification rcvd Xeres(enable)
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.