Exemples de configuration dans un routeur Cisco

From Livre IPv6

Déploiement multicast IPv6 sur un routeur Cisco (A COMPLETER)

Contexte

Avec un IOS avancé (de type ipadvance ou ipadventreprise), il est possible d’implémenter une plate-forme de multicast IPv6 avec des routeurs Cisco. Concrètement ceci se résume à dire au routeur de gérer le multicast et à configurer des points de rendez-vous.

Cette page présente également une solution pour permettre la diffusion de flux multicast à travers un cœur MPLS en étant compatible avec la technologie 6PE. La principale difficulté de réalisation vient du fait que les PE encapsulent les données dans un label suivant l’adresse de destination du paquet. Il s'agit donc de construire une table de routage multicast annexe. L’inconvénient de la solution est qu’il est nécessaire d’assigner des adresses IPv6 au routeur P pour monter un réseau parallèle au MPLS.

Cette solution utilise des routeurs Cisco avec un IOS 15.0. Il faut au préalable installer un cœur MPLS avec la fonction 6PE avant de se lancer dans la configuration (voir page 6PE ).

Exemple de configuration multicast IPv6 dans un routeur Cisco

Voici les commandes à entrer en mode "configuration globale" :

ipv6 multicast-routing 
ipv6 pim rp-address 2001:4C18:20::1
ipv6 pim register-source Loopback6
ipv6 pim spt-threshold infinity

Lorsque la commande ipv6 multicast-routing est rentrée, le routeur va automatiquement configurer le protocole PIM sur chacune de ses interfaces. Il est possible de changer les valeurs par défaut avec les options "ipv6 pim". Par exemple l'option "ipv6 pim register-source" permet de choisir l'adresse source utilisée par le routeur pour envoyer les messages PIM. Pour que les messages puissent transiter entre les routeurs, il faut donc que les adresses loopback des routeurs transitant le multicast soient dans les tables de routage. L'avantage des interfaces Loopback est qu'elles sont toujours dans l'état "UP", même en cas de débranchement de câbles imprévu.

La configuration de RP est nécessaire même si on utilise la technologie Embedded-RP car le routeur va monter les interfaces tunnels virtuels nécessaire pour le transit des paquets multicast. Il est conseillé d'utiliser les interfaces Loopback pour jouer le rôle de RP pour les mêmes raisons évoquées dans le paragraphe précédent. Les commandes ci-dessus suffisent pour le cas où le routeur doit jouer le rôle de RP.

Si on utilise les adresses multicast temporaires, on peut utiliser des access-list qui vont choisir le point de rendez-vous suivant l'adresse du flux.

Voici un exemple d'utilisation d'access-list :

ipv6 pim rp-address 2001:4C18:20::1 list1
ipv6 pim rp-address 2001:4C18:20::2 list2
ipv6 access-list list1
 sequence 20 permit ipv6 any FF1E:40:2001:4C18:20:1::/96
ipv6 access-list list2
 sequence 20 permit ipv6 any FF1E:40:2001:4C18:20:2::/96

Pour tester les configurations, on peut voir les messages PIM échangés entre les routeurs grâce à la commande "debug ipv6 pim". Pour quitter ce mode, il suffit de rentrer "no debug ipv6 pim". Pour voir la table de routage multicast, il faut entrer la commande "show ipv6 mroute". Par exemple :

R38-PE-2#sh ipv6 mroute
Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group,
      C - Connected, L - Local, I - Received Source Specific Host Report,
      P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set,
      J - Join SPT
Timers: Uptime/Expires
Interface state: Interface, State
(*, FF7E:240:2001:4C18:20:0:FFFF:FFFF), 00:04:14/00:03:13, RP 2001:4C18:20::2, flags: SC
 Incoming interface: Tunnel1
 RPF nbr: 2001:4C18:20::2
 Immediate Outgoing interface list:
   GigabitEthernet0/0, Forward, 00:04:14/never
   GigabitEthernet0/1, Forward, 00:04:12/00:03:13
(2001:4C18:20:1:221:86FF:FE52:D383, FF7E:240:2001:4C18:20:0:FFFF:FFFF), 01:06:40/00:03:29, flags: SJ
 Incoming interface: Loopback6
 RPF nbr: FE80::213:C3FF:FE7D:2110
 Inherited Outgoing interface list:
   GigabitEthernet0/0, Forward, 00:04:14/never
   GigabitEthernet0/1, Forward, 00:04:12/00:03:13
(2001:4C18:20:2:21A:4BFF:FE63:3894, FF7E:240:2001:4C18:20:0:FFFF:FFFF), 00:04:11/00:02:48, flags: SFJT
 Incoming interface: GigabitEthernet0/0
 RPF nbr: 2001:4C18:20:2:21A:4BFF:FE63:3894
 Inherited Outgoing interface list:
   GigabitEthernet0/1, Forward, 00:04:12/00:03:13
(2001:4C18:20:3:250:56FF:FEA5:4262, FF7E:240:2001:4C18:20:0:FFFF:FFFF), 00:03:39/00:03:29, flags: SJ
 Incoming interface: Loopback6
 RPF nbr: FE80::213:C3FF:FE7D:2110
 Inherited Outgoing interface list:
   GigabitEthernet0/0, Forward, 00:04:14/never
   GigabitEthernet0/1, Forward, 00:04:12/00:03:13

Exemple de configuration multicast IPv6 dans un cœur MPLS

Dans un cœur MPLS, il n'est pas nécessaire d'assigner des adresses IPv6 sur les interfaces entre les routeurs PE et P. Or, si l'interface n'a pas d'adresse IPv6, le routeur ne va pas implémenter le protocole PIM sur elle, ce qui rend l'échange de messages PIM impossible même si on utilise les adresses Loopbacks.

C'est pourquoi dans notre cas, il faut monter un réseau parallèle dédié au multicast IPv6. Tous les échanges entre les adresses Unicast seront encapsulés dans des labels et transiteront par le cœur MPLS alors que les flux multicast transiteront directement. Pour cela Il faut assigner des adresses IPv6 à chaque interconnexion entre les PEs et les routeurs P et à chaque Loopback des routeurs. Ensuite il est nécessaire d’implémenter un protocole de routage dynamique pour construire la table de routage que les messages PIM utiliseront lors de la construction de l’arbre multicast.

Ici, le protocole OSPF a été choisi pour sa simplicité d'implémentation. Voici la configuration retenue dans notre exemple :

ipv6 router ospf 1
 router-id 192.168.127.1
 log-adjacency-changes detail
!

Pour le "router-id", il suffit de mettre l'adresse IPv4 de la Loopback. Ensuite il faut appliquer le protocole sur chaque interface où on veut que l'adresse soit partagée :

interface GigabitEthernet0/1
 description Vers_le_routeur_P
 ip address 192.168.11.2 255.255.255.0
 ip router isis
 duplex auto
 speed auto
 media-type rj45
 ipv6 address 2001:4C18:2C:1::2/64
 ipv6 enable
 ipv6 ospf 1 area 0
 mpls label protocol ldp
 mpls ip
 !
!

On voit bien dans cette configuration le parallélisme entre le cœur MPLS et le réseau multicast. Suivant la destination et le type du paquet, l'interface va encapsuler ou non le paquet. Le réseau Multicast doit donc ressembler à ça :

Figure 11-1 Configuration OSPF


Et pour le coeur MPLS on a :

Figure 11-1 Architecture cœur MPLS

Défauts et difficultés éventuelles de mise en œuvre

L'architecture retenue ressemble plus à une solution temporaire que définitive avec ces 2 réseaux en parallèle. Elle présente en effet plusieurs inconvénients. D'une part, l'intérêt d'un cœur MPLS diminue puisque l'IPv6 doit être implémenté dans le routeur P. Le rôle principal du MPLS est de pouvoir transiter des paquets avec n'importe quel protocole. D'autre part, 2 réseaux doivent être gérés en même temps, ce qui pose des problèmes de mise en œuvre puisqu'un problème sur un réseau peut se répercuter sur l'autre.


Autres solutions à venir

L’utilisation de 6vPE peut être une solution définitive. Le principe de 6vPE repose sur l’établissement de vrf (voir 6vPE). Il n’est pas possible aujourd’hui de configurer des RP dans une vrf. Du coup comme les clients viennent des interfaces incluses dans une vrf, le RP ne voit pas la demande d’inscription du client. Par contre, pour l’IPv4, les routeurs cisco offrent déjà des fonctionnalités bien plus compatibles avec le multicast puisqu’on peut configurer un RP dans une vrf. Il faut donc attendre une mise-à-jour de Cisco pour peut-être offrir une solution d’architecture où le routeur P n’a pas besoin d’implémenter d’interface IPv6.

Personal tools