Le routage des flux multimédias
La diffusion sur un réseau IP
Un participant à une audioconférence parle à tous les autres participants : sa voix est numérisée, puis découpée en paquets IP qui sont ensuite envoyés sur le réseau. Au premier abord, il est possible de transmettre ces paquets sur un réseau IP classique : une copie de ce paquet est alors transmise à chaque destinataire. Chacun d’eux est, en effet, identifié par une adresse IP unique qui est insérée dans le champ destination du paquet. Les routeurs se servent de cette adresse pour acheminer le paquet jusqu’au destinataire. Figure 13-1. Diffusion des paquets unicast. Cet exemple montre que ce type de fonctionnement n’est pas adapté à une diffusion : le réseau est inondé par des paquets dupliqués dès la source d’émission. Les adresses utilisées (classes A, B ou C) sont, en effet, de type unicast, car à une adresse est associé une machine cible. Par extension, les paquets sont dits unicast. L’adressage IP propose une autre classe d’adresses, la classes D. Ces adresses sont dites multicast, car elles désignent un groupe de machines. Il ne s’agit pas d’une adresse de broadcast, car seules les machines qui sont configurées pour accepter une adresse multicast prendront en compte le paquet. La plage réservée pour la classe D s’étend de 224.0.0.0 à 239.255.255.255. L’adresse 224.0.0.0 n’est attribuée à aucun groupe ; l’adresse 224.0.0.1 permet d’adresser toutes les machines sur un réseau (le réseau local sur lequel est émis le paquet). L’adresse 224.0.0.2 permet d’adresser, plus spécifiquement, tous les routeurs sur un réseau. Des adresses de groupes permanents sont attribuées officiellement par l’IANA (Internet Assigned Number Authority — www.iana.org — RFC 1700).
La gestion des groupes de diffusion
Un groupe de diffusion (groupe multicast) est dynamique : ses membres peuvent adhérer au groupe ou le quitter à tout moment, être dispersés à travers le monde, adhérer à plusieurs groupes en même temps. Aucune restriction quant au nombre de participants n’est également appliquée. Le groupe peut être permanent ou non. Un participant peut être actif ou non (la machine est éteinte). La première tâche pour un participant (une machine connectée sur le réseau) est donc de se faire connaître. Pour cela, il dispose du protocole IGMP (Internet Group Membership Protocol) défini par la RFC 1112, datée de 1989, et mis à jour en 1997 par la RFC 2236 (IGMP v2). En principe, toutes les piles TCP/IP, et en particulier celle de Windows, supportent IGMP. Aucune configuration spécifique n’est nécessaire, car la gestion des groupes n’est pas réalisée manuellement mais directement par les applications via des API (Application Programming Interface). 0 Adresse IP de classe D Non copié 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 E 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 225 20 2 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 5 14 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 2 Adresse MAC multicast 0 2 (dans la réalité, l’ordre des bits est inversé au sein de chaque octet de la trame Ethernet) Par exemple, l’interface Winsock offre les primitives permettant d’entrer et de sortir d’un groupe : • JoinHostGroup (adresse IP du groupe, numéro de l’interface réseau) ; • LeaveHostGroup (adresse IP du groupe, numéro de l’interface réseau). Ces fonctions permettent à la pile TCP/IP d’accepter d’une part les paquets dont l’adresse IP de destination lui correspond et, d’autre part, les paquets dont l’adresse IP de destination est celle du ou des groupes multicast auxquels l’interface réseau est non jointe . La pile TCP/IP maintient ainsi une liste d’appartenance pour chaque interface réseau de la machine. Ainsi, plusieurs logiciels utilisent déjà le multicast à votre insu : • les serveurs WINS de Windows NT, qui se placent d’office dans le groupe 224.0.1.24 qui est utilisé pour dialoguer avec des partenaires de réplication ; • le logiciel de visioconférence Netmeeting ; • le logiciel de diffusion audio et vidéo RealG2 Player. La plupart des routeurs prennent également en charge ce protocole. La configuration d’un routeur Cisco consiste simplement à activer la fonction multicast d’IP : int e 0 ip multicast-routing Si le routeur dispose de plusieurs interfaces sur le même réseau local, une seule doit être configurée avec IGMP. On peut indiquer au routeur de devenir membre d’un groupe. Cela permet aux exploitants de savoir si un groupe est joignable en utilisant la commande ping. Si personne n’est actif sur ce groupe, le routeur pourra au moins répondre au ping : ip igmp join-group 224.10.1.1 Considérons l’exemple suivant : chacun des deux routeurs est élu Demandeur pour un réseau en fonction de son adresse IP
Le routage des flux multicast
Le protocole IGMP permet aux routeurs de détecter les groupes situés sur leurs réseaux locaux (les réseaux auxquels une interface est connectée). Mais les routeurs ne savent pas où sont situés les autres membres du groupe, puisque IGMP n’a qu’une portée locale. Pour cela, il faut utiliser des protocoles de routage spécifiques au multicast. Trois standards sont disponibles : • DVMRP (Distance Vector Multicast Routing Protocol), analogue au protocole RIP adapté au multicast ; • MOSPF (Multicast Open Shortest Path First), une extension d’OSPF ; • PIM (Protocol Independent Multicast), spécialement dédié au multicast. Le choix de l’un de ces protocoles dépend de nombreux paramètres. Les paragraphes suivants décrivent donc leurs principes de fonctionnement, afin de mieux cerner leurs conséquences sur l’architecture de notre réseau. Le routage à l’aide de DVMRP Le premier protocole de routage multicast a été DVMRP (Distance Vector Multicast Routing Protocol). Comme son nom l’indique, il repose sur un algorithme de calcul du plus court chemin, basé sur le plus petit nombre de routeurs à traverser pour atteindre une destination (nombre de sauts, appelé métrique). Le principe est en cela identique à RIP (Routing Information Protocol) : les routeurs s’échangent l’intégralité de leurs tables de routage. DVMRP doit donc être utilisé en supplément d’un protocole de routage unicast (RIP, OSPF, etc.). Figure 13-5. Diffusion des tables de routage DVMRP. Les routes sont diffusées dans des paquets multicast IGMP. N5 R3 Les routeurs diffusent leurs tables de routage multicast N1 N2 R1 R4 N3 R2 R5 N4 LS Deux routes avec la même métrique pour aller vers N4 et N5 : le routeur R4 est élu Dominant car il a la plus petite adresse IP. Pour forcer R3 à être Dominant, il faut lui assigner une métrique inférieure. N7 Réseau Masque Routeur Métrique Statut TTL Amont N1 255…. R1 2 up 200 N5 255…. R5 2 up 150 N7 255…. R1 3 up La commande suivante permet d’activer DVMRP sur notre routeur R1, qui est un Netbuilder de marque 3com. Elle doit être utilisée pour chaque interface gérant le trafic multicast. La commande MIP permet d’activer le protocole IGMP : setdefault -MIP control = enable setdefault !1 -DVMRP control = enable setdefault !2 -DVMRP control = enable setdefault !3 -DVMRP control = enable Lorsque plusieurs routeurs coexistent sur le même réseau local, seul l’un d’eux a la charge de diffuser les paquets multicast, afin d’éviter la duplication des paquets. Comme pour RIP, la route choisie repose sur le plus petit nombre de sauts (la métrique). En cas d’égalité de métrique, le routeur dominant élu est celui qui possède la plus petite adresse IP. Pour forcer R3 à être le routeur dominant sur le réseau N4, il faut lui attribuer une métrique inférieure à celle de R4 : #Routeur R3 setdefault !2 -DVMRP metric = 5 #Routeur R4 setdefault !2 -DVMRP metric = 10 La commande suivante permet de visualiser la table de routage du routeur R4 : show -dvmrp routetable long SourceSubnet SubnetMask FromGateway Metric Status TTL InPort OutPorts La colonne “ FromGateway ” indique le routeur le plus proche qui mène à la source (un champ vide indique que le réseau est directement connecté au routeur R4). La colonne “ InPort ” (Incoming Port) indique l’interface par laquelle arrivent les paquets multicast émis par la source précisée dans la colonne “ SourceSubnet ”. La colonne “ OutPorts ” (Outgoing Ports) donne la liste des ports vers lesquels seront diffusés par défaut les paquets multicast issus de la source indiquée dans la colonne “ SourceSubnet ”. Un astérisque indique que le port conduit à une feuille de l’arbre, c’est-àdire qu’aucun routeur ne se trouve en dessous. En plus de la table de routage, le routeur gère une table de diffusion construite lorsque les premiers paquets multicast transitent par le routeur. Elle permet d’enregistrer les groupes identifiés pour chaque réseau source.