Multicast & IGMP Snooping par Pierre SALAVERA Service Technique ACTN «Dans l article de cette semaine, je vais vous parler d un principe «à la mode» comme on dit : le Multicast (multidiffusion). Cette méthode de diffusion est très utile pour proposer du contenu multimédia (et plus généralement de l information) à un grand nombre de clients, tout en gardant une charge réseau acceptable. Je traiterai également du protocole utilisé au niveau des switches : l IGMP Snooping (non non aucun rapport avec un petit chien placide bien connu qui dort sur sa niche!!!)» ACTN Pierre SALAVERA Support Technique - Audiotel: 0 892 700 131 (0.34, /min.) www.actn.fr 1
1. Les différentes méthodes de diffusion : 1.1. L unicast : Vous connaissez certainement tous cette méthode, c est celle qui est le plus couramment utilisée, un client A communique avec un client B et uniquement avec ce dernier. 1.2. Le broadcast : Une machine A diffuse l information à l ensemble distinction. des autres machines du réseau sans aucune 1.3. L anycast : Méthode peu connue, elle permet de diffuser l information à l hôte le plus proche ou le plus efficace. Elle est particulièrement adaptée au fonctionnement en cluster (pour les serveurs DNS racine par exemple). 1.4. Le multicast : Ici, l information est diffusée à un ensemble de machine, la différence fondamentale par rapport au broadcast est que ce groupe de machine est défini, ce n est pas l ensemble du réseau. 2. Le Multicast : La base du fonctionnement de multicast est la notion de groupe. Toute communication adressée au groupe sera envoyée à l ensemble des hôtes. Le groupe est défini par une adresse de classe D, comprise entre 224.0.0.1 et 239.255.255.254. Attention, tout comme il existe des plages réservées en classe A, B et C, il en va de même en classe D. Il ne faut donc pas utiliser les plages suivantes qui sont réservées : 224.0.0.1 à 224.0.0.255 et 239.0.0.0 et 239.255.255.255. Autre point important, le multicast n utilise pas TCP. En effet TCP est étudié pour les connexions point à point et n est donc pas adapté dans ce cas là. UDP lui est donc préféré. ACTN Pierre SALAVERA Support Technique - Audiotel: 0 892 700 131 (0.34, /min.) www.actn.fr 2
Dernier point sur le multicast : de base, un système ignore tout simplement les flux multicast tant qu il n appartient pas à un groupe de diffusion. Le protocole IGMP (Internet Group Management Protocol, protocole de niveau 3) est utilisé pour permettre l adhésion ou la sortie d un groupe. A noter qu il est tout de même possible d émettre sur un groupe donné sans pour autant en faire parti. 3. L IGMP : Version 1 : Dans sa première version, le protocole est relativement simple et ne se base que sur 2 messages : - IGMP membership query : c est le message qu émet le routeur (appelé couramment DR pour designated router) afin de découvrir les hôtes désirant adhérer à un groupe multicast donné. Ce message est envoyé à intervalle régulier sur l adresse 224.0.0.1 avec une TTL à 1 (ce paquet ne sortira donc pas du réseau local de part sa TTL). A noter que s il s agit d un réseau de grande envergure de type campus voire région géographique entière, cette TTL peut être augmentée afin de se propager à travers plusieurs routeurs (rappel : chaque saut décrémente la TTL de 1, lorsqu elle tombe à 0 le paquet est détruit). En résumé : - TTL à 1 limite au réseau local, - TTL à 32 limite à un site (assez grand tout de même), - TTL à 64 couverture d une large région géographique, - TTL à 128 couverture d un continent entier, - TTL à 255 couverture quasi illimitée, 255 sauts, c est énorme! - IGMP membership report : paquet envoyé par un hôte donné afin d adhérer à un groupe multicast, ce paquet a pour adresse de destination l adresse du réseau multicast auquel il veut adhérer. Cette version de l IGMP présente 2 inconvénients majeurs : - Tout d abord, l hôte n a aucun moyen de filtrer les paquets reçus en fonction de l adresse source puisque cette dernière n est pas contrôlée. De fait, cela le rend particulièrement sensible aux attaques DOS. - Le second inconvénient est la latence entre le moment où l hôte ne souhaite plus faire parti du groupe et le moment où le routeur arrête effectivement de lui émettre des données. En effet, aucun message n est prévu pour demander une sortie, de fait, il faudra attendre la prochaine émission du paquet IGMP membership query par le routeur. Délai auquel il faut ajouter le temps nécessaire pour que le DR considère qu il n y a pas de réponse et permette donc automatiquement une sortie. A noter également : dans sa version 1, l IGMP ne gère pas l élection du DR. Si plusieurs routeurs multicast sont présents sur le réseau, il convient donc de mettre en place un mécanisme indépendant pour définir le DR. Le DR n est pas forcément le routeur qui émettra le flux multicast mais il est le seul habilité à émettre les IGMP query. ACTN Pierre SALAVERA Support Technique - Audiotel: 0 892 700 131 (0.34, /min.) www.actn.fr 3
Version 2 : Cette version est une évolution de la version 1 par intégration de 2 nouveaux messages : - Group Specific query : requête émise par le DR sur un groupe donné, elle permet de s assurer qu il reste bien des hôtes qui écoutent le trafic sur ce groupe ou non. - Leave group message : message émis par un hôte afin de signifier au DR qu il n est plus intéressé par le trafic. Les évolutions majeures par rapport à la V1 tiennent en 2 points principaux : - Premièrement, l implémentation du «Leave group message» permet d éliminer le problème de latence importante entre le moment où un hôte décide de quitter un groupe et le moment où le flux s arrête réellement. - Deuxièmement, IGMP v2 intègre un mécanisme d élection du DR. A la mise en place, tous les routeurs multicast se considèrent DR jusqu au moment où ils reçoivent des messages IGMP avec une adresse source inférieure à la leur. Ils stoppent alors toute gestion du multicast au profit du nouveau DR. Si à un instant T (intervalle que l on peut définir) le DR s arrête d émettre (pour cause de panne par exemple), alors tous les routeurs multicast recommencent à émettre des paquets, ce qui a pour effet d élire un nouveau DR selon le même critère. Bien que plus évoluée, la V2 conserve malheureusement un travers majeur de la V1 : toujours aucun mécanisme pour contrôler les paquets reçus et donc toujours une très grande sensibilité aux attaques DOS. Version 3 : Vous l aurez sans doute deviné, l évolution majeure pour cette version est l implémentation d une fonction de filtrage!!! On distingue 2 modes : - Le mode inclusion : les paquets multicast d un groupe donné ne sont acceptés uniquement que si les sources ont auparavant été signalées au DR à l aide du message «Version 3 membership report» - Le mode exclusion : tous les paquets d un groupe donné sont acceptés à l exception de ceux dont la source fait partie de la liste d exclusion du DR (source qui est signalée à l aide d un message «Version 3 membership report»). Un nouveau type de message est donc intégré et comporte les champs suivants : le mode (mise à jour si identique au précédent, changement si différent), l adresse du groupe concerné, la liste des sources. A noter : en version 1 et 2, les «membership report» sont émises à destination du groupe multicast. En V3, elles sont émises à destination du 224.0.0.22 qui sera interprété par les routeurs multicast intégrants IGMP V3. ACTN Pierre SALAVERA Support Technique - Audiotel: 0 892 700 131 (0.34, /min.) www.actn.fr 4
4. L IGMP Snooping : Cette fonctionnalité de niveau 2 au nom un peu barbare est indispensable si vous souhaitez gérer le flux multicast sur un réseau commuté (avec des switches). En effet, un switch qui n intègre pas cette fonctionnalité considère le flux multicast comme inconnu ou comme broadcast. Dans tous les cas, cela aura pour conséquence qu il enverra le flux sur l ensemble de ses ports, engendrant par la même une congestion du réseau. C est ici que l IGMP Snooping intervient! Il donne en quelque sorte à un switch de niveau 2 une pseudo-fonctionnalité de niveau 3! En effet, un switch de niveau 3 analyse les trames IGMP qui transitent par lui afin de définir si l hôte situé sur un port donné doit ou non recevoir le flux multicast à destination d un groupe X. S il voit passer IGMP membership report pour un groupe donné, il réémettra sur le port concerné tout le flux multicast du groupe correspondant (valable en IGMP Snooping V1, V2 et V3). De la même façon, un «leave group message» arrêtera cette réémission. (Valable uniquement en V2 et V3, pour la V1 cela fonctionne comme pour les routeurs à l aide d un timeout). La version 3 permettra bien entendu de gérer le filtrage. Attention tout de même à une chose : cette fonctionnalité alourdie énormément le traitement d information par le switch. C est pour cette raison que vous ne la trouverez que sur des modèles ayant un hardware dimensionné en conséquence (cf. marque de la semaine par exemple). Conclusion «Ainsi se conclut notre petit tour d horizon du Multicast et de certains protocoles associés. Bien entendu, pour une gestion de grande envergure d autres mécanismes sont mis en place, je vous en détaillerai certainement quelques uns dans un prochain dossier! A bientôt pour un nouveau sujet dans cette rubrique «Le Coin du Tech»!» Pierre SALAVERA Service Technique ACTN Audiotel : 0 892 700 131 (0.34, /min.) www.actn.fr Source documentaire pour les illustrations : Wikipédia. ACTN Pierre SALAVERA Support Technique - Audiotel: 0 892 700 131 (0.34, /min.) www.actn.fr 5