Exemple : Configuration d’un multicast IP automatique sans tunnels explicites
Comprendre l’AMT
La tunnelisation multicast automatique (AMT) facilite la connectivité multicast dynamique entre les réseaux compatibles multicast sur des îlots de réseaux unicast uniquement. Cette connectivité permet aux fournisseurs de services, aux fournisseurs de contenu et à leurs clients de participer à la distribution du trafic multicast même s’ils ne disposent pas d’une connectivité multicast de bout en bout.
AMT est pris en charge sur les routeurs de services Ethernet MX Series avec concentrateurs de port modulaires (MPC) exécutant Junos 13.2 ou version ultérieure. AMT est également pris en charge sur les MPC basés sur i-chip. AMT prend en charge le redémarrage gracieux (GR) mais ne prend pas en charge le basculement GRES (Graceful Moteur de Routage ).
AMT établit dynamiquement des tunnels encapsulés unicast entre des points relais multicast (relais AMT) bien connus et des points de réseau accessibles uniquement via unicast (passerelles AMT). La figure 1 illustre la connectivité de tunnelisation multicast automatique.

Le protocole AMT permet la découverte et l’établissement de liaisons entre les relais et les passerelles afin d’établir des tunnels de manière dynamique sans nécessiter de configuration explicite par tunnel.
Les relais AMT sont généralement des routeurs dotés d’une connectivité multicast IP native qui agrègent un nombre potentiellement important de tunnels AMT.
L’implémentation de Junos OS prend en charge les fonctions de relais AMT suivantes :
Trafic multicast IPv4 et encapsulation IPv4
Sources bien connues situées sur le réseau multicast
Prévention des attaques par déni de service en éliminant rapidement les paquets multicast provenant d’une passerelle.
Réplication par route vers le fan-out complet de tous les tunnels AMT souhaités
Possibilité de collecter des statistiques d’interface normales sur les tunnels AMT
Les sources de multidiffusion situées derrière les passerelles AMT ne sont pas prises en charge.
AMT prend en charge le mode clairsemé PIM. AMT ne prend pas en charge le fonctionnement en mode dense.
Applications de l’AMT
Les fournisseurs de services de transit sont confrontés à un problème avec l’Internet, car de nombreux fournisseurs de services locaux ne sont pas compatibles avec la multidiffusion. Le défi consiste à inciter les propriétaires de contenu à transmettre des vidéos et d’autres types de trafic multicast sur leurs réseaux dorsaux. Le modèle de coût pour les propriétaires de contenu peut être prohibitif s’ils doivent payer pour des flux unicast pour la majorité de leurs abonnés.
Jusqu’à ce que davantage de fournisseurs locaux soient compatibles multicast, une stratégie de transition est proposée par l’Internet Engineering Task Force (IETF) et mise en œuvre dans les logiciels open source. C’est ce qu’on appelle l’AMT (Automatic IP Multicast Without Explicit Tunnels). L’AMT consiste à établir des relais aux points d’appairage dans les réseaux multicast qui peuvent être atteints à partir de passerelles installées sur des hôtes connectés à des réseaux unicast.
Sans AMT, lorsqu’un utilisateur connecté à un réseau unicast uniquement souhaite recevoir du contenu multicast, le propriétaire du contenu peut autoriser l’utilisateur à rejoindre le réseau via unicast. Toutefois, le propriétaire du contenu encourt un coût supplémentaire, car il a besoin de bande passante supplémentaire pour prendre en charge les abonnés unicast.
AMT permet à n’importe quel hôte de recevoir un multicast. Du côté du client se trouve une passerelle AMT qui est un hôte unique. Une fois que la passerelle a localisé un relais AMT, qui peut être un hôte, mais qui est plus généralement un routeur, la passerelle envoie périodiquement des messages IGMP (Internet Group Management Protocol) sur un tunnel UDP créé dynamiquement au relais. Les relais et les passerelles AMT coopèrent pour transmettre le trafic multicast provenant du réseau multicast aux sites des utilisateurs finaux. Les relais AMT reçoivent le trafic de manière native et l’encapsulent unicast vers les passerelles. Cela permet à n’importe qui sur Internet de créer un tunnel dynamique pour télécharger des flux de données multicast.
Grâce à l’AMT, un fournisseur de services compatible multicast peut proposer des services multicast à un propriétaire de contenu. Lorsqu’un client du fournisseur local de monodiffusion uniquement souhaite recevoir le contenu et s’abonne à l’aide d’une jonction AMT, le fournisseur de transit compatible multidiffusion peut alors transporter efficacement le contenu vers le fournisseur local de monodiffusion uniquement, qui l’envoie à l’utilisateur final.
L’AMT est un excellent moyen pour les fournisseurs de services de transit (qui peuvent avoir accès au contenu, mais qui n’ont pas beaucoup d’utilisateurs finaux) de fournir un service de multidiffusion aux propriétaires de contenu, là où cela ne serait pas économiquement faisable autrement. Il s’agit également d’une stratégie de transition utile pour les fournisseurs de services locaux qui ne disposent pas encore d’une prise en charge multicast sur tous les équipements en aval.
AMT est également utile pour connecter deux fournisseurs de services compatibles multicast qui sont séparés par un fournisseur de services unicast uniquement.
De même, l’AMT peut être utilisé par les fournisseurs de services locaux dont les réseaux sont compatibles multicast pour tunneliser le trafic multicast sur des appareils de périphérie hérités tels que les multiplexeurs d’accès de ligne d’abonné (DSLAM) numériques dont les capacités de multicast sont limitées.
Les détails techniques de la mise en œuvre de l’AMT sont les suivants :
Une négociation à trois permet de rejoindre des groupes à partir de récepteurs unicast afin d’empêcher l’usurpation d’identité et les attaques par déni de service (DoS).
Un relais AMT agissant comme un serveur de réplication rejoint le groupe multicast et traduit le trafic multicast en plusieurs flux unicast.
Le mécanisme de découverte utilise anycast, ce qui permet de découvrir le relais le plus proche de la passerelle dans la topologie du réseau.
Une passerelle AMT agissant en tant que client est un hôte qui rejoint le groupe de multidiffusion.
Les limites du nombre de tunnels sur les relais peuvent limiter l’utilisation de la bande passante et éviter une dégradation du service.
L’AMT est décrit en détail dans le projet de draft-ietf-mboned-auto-multicast-10.txt Internet, Automatic IP Multicast Without Explicit Tunnels (AMT).
Fonctionnement de l’AMT
L’AMT permet de créer dynamiquement des tunnels multicast entre des réseaux compatibles multicast sur des îlots de réseaux unicast uniquement. Pour ce faire, plusieurs étapes se déroulent de manière séquentielle.
Le relais AMT (généralement un routeur) annonce un préfixe d’adresse anycast et un routage dans l’infrastructure de routage unicast.
La passerelle AMT (un hôte) envoie des messages de découverte de relais AMT au relais AMT le plus proche, accessible via l’infrastructure unicast uniquement. Pour réduire la possibilité d’attaques par rejeu ou par dictionnaire, les messages de découverte de relais contiennent un nonce cryptographique. Un nonce cryptographique est un nombre aléatoire utilisé une seule fois.
Le relais le plus proche dans la topologie reçoit le message de découverte de relais AMT et renvoie le nonce du message de découverte dans un message d’annonce de relais AMT. Cela permet à la passerelle d'apprendre l'adresse IP unique du relais. Le relais AMT dispose maintenant d’une adresse à utiliser pour toutes les entrées suivantes (S,G) qu’il rejoindra.
La passerelle AMT envoie un message de demande AMT à l'adresse IP unique du relais AMT pour commencer le processus de connexion au (S,G).
Le relais AMT renvoie une requête d’appartenance AMT à la passerelle.
La passerelle AMT reçoit le message de requête AMT et envoie un message de mise à jour de l’appartenance AMT contenant les messages de jonction IGMP.
Le relais AMT envoie un message de jonction vers la source pour construire une arborescence de multidiffusion native dans l’infrastructure de multidiffusion native.
Au fur et à mesure que les paquets sont reçus de la source, le relais AMT réplique les paquets vers toutes les interfaces de la liste des interfaces sortantes, y compris le tunnel AMT. Le trafic multicast est ensuite encapsulé dans des messages de données multicast AMT unicast.
Pour maintenir l’état dans le relais AMT, la passerelle AMT envoie des mises à jour périodiques d’appartenance AMT.
Une fois le tunnel établi, l’état du tunnel AMT est actualisé à chaque message de mise à jour d’appartenance envoyé. Le délai d’expiration des messages d’actualisation est de 240 secondes.
Lorsque la passerelle AMT quitte le groupe, le relais AMT peut libérer des ressources associées au tunnel.
Notez les détails opérationnels suivants :
Le relais AMT crée une pseudo-interface AMT (interface tunnel). Les interfaces de tunnel AMT sont implémentées en tant qu’interfaces logiques d’encapsulation UDP (ud) génériques. Ces interfaces logiques ont le format d’identificateur ud-fpc/pic/port.unit.
Tous les paquets multicast (données et contrôle) sont encapsulés dans des paquets unicast. L’encapsulation UDP est utilisée pour tous les paquets de données et de contrôle AMT utilisant le numéro de port UDP réservé par l’IANA (2268) pour AMT.
Le relais AMT tient à jour une liste de récepteurs pour chaque session de multidiffusion. Le relais conserve l’état de multidiffusion pour chaque passerelle qui a rejoint un groupe ou une paire (S,G) particulier.
Configuration du protocole AMT
Pour configurer le protocole AMT, incluez l’instruction amt
suivante :
amt { relay { accounting; family { inet { anycast-prefix ip-prefix</prefix-length>; local-address ip-address; } } secret-key-timeout minutes; tunnel-limit number; } traceoptions { file filename <files number> <size size> <world-readable | no-world-readable>; flag flag <flag-modifier> <disable>; } }
Vous pouvez inclure cette instruction aux niveaux hiérarchiques suivants :
[edit protocols]
[edit logical-systems logical-system-name protocols]
[edit routing-instances routing-instance-name protocols]
[edit logical-systems logical-system-name routing-instances routing-instance-name protocols]
Dans l’exemple suivant, seule la [edit protocols]
hiérarchie est identifiée.
La configuration minimale pour activer AMT consiste à spécifier l’adresse locale AMT et le préfixe AMT anycast.
Voir aussi
Configuration des paramètres IGMP par défaut pour les interfaces AMT
Si vous le souhaitez, vous pouvez configurer les paramètres IGMP par défaut pour toutes les interfaces de tunnel AMT. Cependant, en règle générale, vous n’avez pas besoin de modifier les valeurs. Pour configurer les attributs IGMP par défaut de tous les tunnels de relais AMT, incluez l’instruction amt
suivante :
amt { relay { defaults { (accounting | no-accounting); group-policy [ policy-names ]; query-interval seconds; query-response-interval seconds; robust-count number; ssm-map ssm-map-name; version version; } } }
Vous pouvez inclure cette instruction aux niveaux hiérarchiques suivants :
[edit protocols igmp]
[edit logical-systems logical-system-name protocols igmp]
[edit routing-instances routing-instance-name protocols igmp]
[edit logical-systems logical-system-name routing-instances routing-instance-name protocols igmp]
Les instructions IGMP incluses au niveau de la [edit protocols igmp amt relay defaults]
hiérarchie ont la même syntaxe et le même objectif que les instructions IGMP incluses aux [edit protocols igmp]
niveaux ou [edit protocols igmp interface interface-name]
hiérarchique. Ces énoncés sont les suivants :
Vous pouvez collecter des statistiques d’entrée et de sortie IGMP. Pour activer la collecte de statistiques d’événements d’entrée et de sortie IGMP pour toutes les interfaces AMT, incluez l’instruction
accounting
suivante :user@host# set protocols igmp amt relay defaults accounting
Après avoir activé la comptabilité IGMP, vous devez configurer le routeur pour filtrer les informations enregistrées dans un fichier ou les afficher sur un terminal. Vous pouvez archiver le fichier d’événements.
Pour désactiver la collecte des statistiques d’événements de jointure et de sortie IGMP pour toutes les interfaces AMT, incluez l’instruction
no-accounting
suivante :user@host# set protocols igmp amt relay defaults no-accounting
Vous pouvez filtrer les rapports IGMP indésirables au niveau de l’interface. Pour filtrer les rapports IGMP indésirables, définissez une stratégie pour qu'elle corresponde uniquement aux adresses de groupe IGMP (pour IGMPv2) à l'aide de l'instruction de la stratégie pour faire correspondre l'adresse de
route-filter
groupe. Définissez la stratégie pour qu'elle corresponde aux adresses IGMP (S,G) (pour IGMPv3) en utilisant l'instruction deroute-filter
la stratégie pour faire correspondre l'adresse de groupe et l'instruction desource-address-filter
la stratégie pour correspondre à l'adresse source. Dans l’exemple suivant, la stratégie de amt_reject est créée pour correspondre aux adresses de groupe et source.user@host# set policy-options policy-statement amt_reject from route-filter 224.1.1.1/32 exact user@host# set policy-options policy-statement amt_reject from source-address-filter 192.168.0.0/16 orlonger user@host# set policy-options policy-statement amt_reject then reject
Pour appliquer le filtrage de rapport IGMP sur l’interface où vous préférez ne pas recevoir de rapports de groupe ou (S,G) spécifiques, incluez l’instruction
group-policy
. L’exemple suivant applique la stratégie de amt_reject à toutes les interfaces AMT.user@host# set protocols igmp amt relay defaults group-policy amt_reject
Vous pouvez modifier l’intervalle de requête IGMP pour toutes les interfaces AMT afin de réduire ou d’augmenter le nombre de messages de requête d’hôte envoyés. Dans AMT, les messages de requête de l’hôte sont envoyés en réponse aux messages de demande d’adhésion de la passerelle. L’intervalle de requête configuré sur le relais doit être compatible avec le temporisateur de demande d’adhésion configuré sur la passerelle. Pour modifier cet intervalle, incluez l’instruction
query-interval
. L’exemple suivant définit l’intervalle de requête de l’hôte sur 250 secondes.user@host# set protocols igmp amt relay defaults query-interval 250
Le routeur de requête IGMP envoie périodiquement des messages généraux de requête sur l’hôte. Ces messages sollicitent des informations sur l’appartenance au groupe et sont envoyés à l’adresse du groupe multicast pour tous les systèmes, 224.0.0.1.
Vous pouvez modifier l’intervalle de réponse à la requête IGMP. L’intervalle de réponse à la requête multiplié par le nombre de robustes est le temps maximal qui peut s’écouler entre l’envoi d’un message de requête d’hôte par le routeur de requête et la réception d’une réponse d’un hôte. La variation de cet intervalle vous permet d’ajuster le nombre de messages IGMP sur les interfaces AMT. Pour modifier cet intervalle, incluez l’instruction
query-response-interval
. L’exemple suivant configure l’intervalle de réponse à la requête sur 20 secondes.user@host# set protocols igmp amt relay defaults query-response-interval 20
Vous pouvez modifier le nombre de robustes IGMP. Le nombre robuste est utilisé pour ajuster la perte de paquets attendue sur les interfaces AMT. L’augmentation du nombre de paquets augmente la perte de paquets, mais augmente la latence de sortie du sous-réseau. Pour modifier le nombre robuste, incluez l’instruction
robust-count
. L’exemple suivant configure le nombre robuste sur 3.user@host# set protocols igmp amt relay defaults robust-count 3
Le comptage robuste modifie automatiquement certains intervalles de messages IGMP pour IGMPv2 et IGMPv3.
Sur un réseau partagé exécutant IGMPv2, lorsque le routeur de requête reçoit un message de sortie IGMP, il doit envoyer un message de requête de groupe IGMP pendant un nombre spécifié de fois. Le nombre de messages de requête de groupe IGMP envoyés est déterminé par le nombre robuste. L’intervalle entre les messages de requête est déterminé par l’intervalle de la dernière requête membre. En outre, l’intervalle de réponse à la requête IGMPv2 est multiplié par le nombre robuste pour déterminer le délai maximal entre l’envoi d’un message de requête d’hôte et la réception d’une réponse d’un hôte.
Pour plus d’informations sur le nombre robuste IGMPv2, consultez RFC 2236, Internet Group Management Protocol, Version 2.
Dans IGMPv3, un changement d’état de l’interface amène le système à transmettre immédiatement un rapport de changement d’état à partir de cette interface. Si le rapport de changement d’état est manqué par un ou plusieurs routeurs multicast, il est retransmis. Le nombre de fois qu’il est retransmis est le nombre robuste moins un. Dans IGMPv3, le nombre robuste est également un facteur permettant de déterminer l’intervalle d’appartenance au groupe, l’intervalle de requête de l’ancienne version et l’intervalle de présence de l’autre requête.
Pour plus d’informations sur le nombre robuste IGMPv3, consultez RFC 3376, Internet Group Management Protocol, Version 3.
Vous pouvez appliquer une carte SSM (source-specific multicast) à une interface AMT. Le mappage SSM convertit les rapports d’appartenance IGMPv1 ou IGMPv2 en un rapport IGMPv3, ce qui permet aux hôtes exécutant IGMPv1 ou IGMPv2 de participer à SSM jusqu’à ce que les hôtes passent à IGMPv3.
Le mappage SSM s’applique à toutes les adresses de groupe qui correspondent à la stratégie, et pas seulement à celles qui sont conformes aux conventions d’adressage SSM (232/8 pour IPv4).
Dans cet exemple, vous créez une stratégie pour faire correspondre l’adresse de groupe 232.1.1.1/32 pour la traduction en IGMPv3. Ensuite, vous définissez le mappage SSM qui associe la stratégie à l’adresse source 192.168.43.66 où se trouvent ces adresses de groupe. Enfin, vous appliquez le mappage SSM à toutes les interfaces AMT.
user@host# set policy-options policy-statement ssm-policy-example term A from route-filter 232.1.1.1/32 exact user@host# set policy-options policy-statement ssm-policy-example term A then accept user@host# set routing-options multicast ssm-map ssm-map-example policy ssm-policy-example user@host# set routing-options multicast ssm-map ssm-map-example source 192.168.43.66 user@host# set protocols igmp amt relay defaults ssm-map ssm-map-example
Voir aussi
Exemple : Configuration du protocole AMT
Cet exemple montre comment configurer le protocole AMT (Automatic Multicast Tunneling) pour faciliter la connectivité multicast dynamique entre des réseaux compatibles multicast sur des îlots de réseaux unicast uniquement.
Exigences
Avant de commencer :
Configurez les interfaces des routeurs.
Configurez un protocole de passerelle intérieure ou un routage statique. Reportez-vous à la bibliothèque des protocoles de routage Junos OS.
Configurez un protocole d’appartenance à un groupe de multidiffusion (IGMP ou MLD). Reportez-vous aux sections Comprendre IGMP et Comprendre MLD.
Aperçu
Dans cet exemple, l’hôte 0 et l’hôte 2 sont des récepteurs multicast dans un cloud unicast. Leurs périphériques de passerelle par défaut sont des passerelles AMT. R0 et R4 sont configurés avec des protocoles unicast uniquement. R1, R2, R3 et R5 sont configurés avec le multicast PIM. L’hôte 1 est une source dans un cloud multicast. R0 et R5 sont configurés pour effectuer un relais AMT. L’hôte 3 et l’hôte 4 sont des récepteurs multicast (ou des sources qui sont directement connectées aux récepteurs). Cet exemple montre R1 configuré avec une adresse locale de relais AMT et un préfixe anycast comme sa propre adresse de bouclage. L’exemple montre également R0 configuré avec les services de tunnel activés.
Topologie
La figure 2 illustre la topologie utilisée dans cet exemple.

Configuration
Configuration rapide de l’interface de ligne de commande
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à la configuration de votre réseau, copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit]
hiérarchie, puis passez commit
en mode de configuration.
set protocols amt traceoptions file amt.log set protocols amt traceoptions flag errors set protocols amt traceoptions flag packets detail set protocols amt traceoptions flag route detail set protocols amt traceoptions flag state detail set protocols amt traceoptions flag tunnels detail set protocols amt relay family inet anycast-prefix 10.10.10.10/32 set protocols amt relay family inet local-address 10.255.112.201 set protocols amt relay tunnel-limit 10 set protocols pim interface all mode sparse-dense set protocols pim interface all version 2 set protocols pim interface fxp0.0 disable set chassis fpc 0 pic 0 tunnel-services bandwidth 1g
Procédure
Procédure étape par étape
L’exemple suivant vous oblige à naviguer à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration du Guide de l’utilisateur de l’interface de ligne de commande Junos OS.
Pour configurer le protocole AMT sur R1 :
Configurez les opérations de suivi AMT.
[edit protocols amt traceoptions] user@host# set file amt.log user@host# set flag errors user@host# set flag packets detail user@host# set flag route detail user@host# set flag state detail user@host# set flag tunnels detail
Configurez les paramètres du relais AMT.
[edit protocols amt relay] user@host# set relay family inet anycast-prefix 10.10.10.10/32 user@host# set family inet local-address 10.255.112.201 user@host# set tunnel-limit 10
Configurez PIM sur les interfaces de R1.
[edit protocols pim] set interface all mode sparse-dense set interface all version 2 set interface fxp0.0 disable
Activez la fonctionnalité de tunnel.
[edit chassis] set fpc 0 pic 0 tunnel-services bandwidth 1g
Si vous avez terminé de configurer l’appareil, validez la configuration.
user@host# commit
Résultats
À partir du mode configuration, confirmez votre configuration en entrant les commandes show chassis et show protocols . Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.
user@host# show chassis fpc 0 { pic 0 { tunnel-services { bandwidth 1g; } } }
user@host# show protocols amt { traceoptions { file amt.log; flag errors; flag packets detail; flag route detail; flag state detail; flag tunnels detail; } relay { family { inet { anycast-prefix 10.10.10.10/32; local-address 10.255.112.201; } } tunnel-limit 10; } } pim { interface all { mode sparse-dense; version 2; } interface fxp0.0 { disable; } }
Vérification
Pour vérifier la configuration, exécutez les commandes suivantes :
Afficher les statistiques de l’AMT
Afficher le résumé de l’AMT
Afficher le tunnel AMT