IPv6 : Configuration

Maintenant que vous maitrisez la théorie de base qui entoure l’IPv6, passons aux choses sérieuses.

Nous allons voir comment configurer une interface, comment configurer les différents protocoles de routages, mais aussi comment fonctionne le Ping en IPv6, comment fonctionne Neighbor Discovery (le remplaçant d’ARP), etc…

 

1)     Présentation de la topologie

 

Pour ces manipulations, nous allons utiliser une topologie unique.

La voici :

Topologie

Nous avons trois grands réseaux. Chacun d’eux utilisent un protocole de routage différent.

Entre R1, R2 et R3, nous utiliserons des routes statiques.

Mais avant cela, attardons nous sur la configuration basique, c’est-à-dire les adresses IPv6.

 

2)     Configuration d’interface

 

Commençons par le plus important : les interfaces !

 

Cela peut paraitre simple, mais en fait il y a plus de choses à maitriser qu’en IPv4.

 

Nous avons vu qu’il y a trois types d’adresse :

  • La Local Link
  • La Global
  • La Site Local

La site Local n’étant plus utilisée, il nous reste les deux autres.

Laquelle allons-nous mettre sur nos interfaces ?

Les deux !

Et oui, chaque interface de notre routeur aura deux IPv6.

La Global pour les communications standards, et la Link Local pour la découverte de voisin, l’échange d’infos pour les protocoles de routage, etc…

 

Commençons par configurer la Global (en utilisant les IP de la topologie) :

R1(config)#interface fastEthernet 0/0
R1(config-if)#ipv6 address 2001:12::1/64
R1(config-if)#no shutdown

 

Pour voir le résultat :

Show IPv6 Interface

L’IP Global est bien configurée.
Mais vous pouvez voir que l’IP Link Local est aussi configurée.

 

En fait, elle est auto configurée.

Pour auto configurer son IP, une interface prend le préfix (ici FE80::64) et y ajoute l’identifiant de l’interface.

Pour obtenir son identifiant unique (EUI-64), l’interface effectue une manipulation à partir de son adresse MAC, afin d’obtenir une adresse de 64 bits.

 

Pour bien comprendre le processus, voyons comment R1 a pu trouver son IP Link Local au format EUI-64.

Sur la capture précédente, vous pouvez voir le fameux préfix FE80:: /64

La deuxième moitié de l’adresse est calculé automatiquement par le routeur.

Pour cela il a besoin de l’adresse MAC de l’interface :

R1 fa0/0 Mac Address

 

L’adresse MAC est donc : C200.0B60.0000

 

Il va ensuite ajouter la valeur FFFE au milieu de l’adresse

Ce qui nous donne : C200.0BFF.FE60.0000

Dernière étape : inverser le 7ème bit

Voici le début de l’adresse en binaire (C2) : 11000010

En inversant le 7ème bit, nous obtenons, 11000000, soit C0

L’adresse devient alors C000.0BFF.FE60.0000

 

En y ajoutant le préfix FE80 ::/64 l’adresse Link Local complète devient :

FE80:0000:0000:0000:C000:0BF:FE60:0000

Cela correspond bien à l’IP donné par le routeur :

R1 fa0/0 Link-Local Address

Voici donc comment en IPv6 nous pouvons auto configurer une IP au format EUI-64.

Il faut donc un préfix de 64 bits, plus l’identifiant de l’interface (le EUI-64).

Il est possible d’auto configurer une IP Link Local, mais aussi une IP Global.

 

Pour résumer, nous avons configuré une IP Global (sur R1 fa0/0) à la main, et l’IP Link Local s’est auto configurée.

Faisons donc l’inverse sur R2 !

Nous allons configurer l’IP Link Local à la main, et laisser R2 déterminer l’IP Global.

 

Commençons par l’IP Link Local

R2(config-if)#no shutdown
R2(config-if)#ipv6 address FE80::2 link-local

 

Passons à l’IP Global

Étant donné que R2 ne peut pas deviner le préfix, il faut que R1 l’annonce.

Il faut donc passer les commandes suivantes sur R1 :

R1(config)#ipv6 unicast-routing
R1(config)#interface fastEthernet 0/0
R1(config-if)#ipv6 nd prefix 2001:12::/64

 

Maintenant que R1 annonce le préfix, il ne reste plus qu’à dire à R2 de le récupérer :

R2(config-if)#ipv6 address autoconfig

 

Et voici le résultat :

R2 fa0/0 Global Address

Libre à vous de choisir la technique de votre choix pour configurer les IP sur les autres routeurs / interfaces.

 

Mais avant de passer à la suite, voyons ce qui se passe quand nous configurons une IPv6.

Pour cela, plaçons-nous sur R2 s0/0 et activons le debug ND (Neighbor Discovery) :

R2(config)#interface serial 0/0
R2(config-if)#no shutdown
R2(config-if)#do debug ipv6 nd
ICMP Neighbor Discovery events debugging is on

 

Ensuite, configurez l’IP puis observez les Log :

IPv6 configuration Logs

Quand une IP est configurée en IPv6, le routeur s’assure que l’IP est unique. Il fait cela pour l’IP Link Local et pour la Global.

Tout d’abord, le routeur envoie un NS – Neighbor Solicitation. Cela permet de vérifier si quelqu’un utilise déjà cette IP.

Si personne ne répond, le log DAD – Detection Address Double indique que l’IP est libre.

Enfin, le routeur envoie un NA – Neighbor Advertisement pour indiquer qu’il prend cette IP.

 

Vous pouvez voir que le même processus est utilisé pour l’IP Global.

Quand vous avez fini, n’oubliez pas désactiver le débug

R2#undebug all

 

Si toutes les IP sont configurées, vous pouvez passer à la suite.

 

3)     Le Ping en IPv6

 

Afin de tester les IP, quoi de mieux qu’un Ping

Pour lancer un Ping, la commande est presque là même :

Ping IPv6

Mais que se passe-t-il en coulisse ?

Que se passe-t-il quand on ne connait pas encore l’adresse MAC du voisin ?

En IPv4, il faut d’abord envoyer une requête ARP.

Et en IPv6 ?

Nous en avons déjà parlé. Le protocole ND – Neighbor Discovery est utilisé.

Concrètement, avant de pouvoir lancer un Ping, il faut connaitre l’adresse MAC de la destination.

Pour connaitre celle-ci, le routeur va envoyer une requête NS – Neighbor Solicitation en multicast, sur une adresse à laquelle la destination est abonnée.

 

Prenons un exemple, ce sera bien plus simple.

Nous souhaitons faire un Ping de R1 vers R2.

R1 a pour IPv6 2001:12::1 et R2 2001:12::2

Nous allons donc envoyer un Ping vers 2001:12::2

C’est ici que NS entre en jeu.

Avant d’envoyer le Ping, R1 va envoyer un NS sur l’IP FF02::1:FF00:2

Cette IP est du type Local Link.

Vous pouvez voir que R2 y est abonné :

R2 fa0/0 Link Local

Mais comment R1 a deviné cette IP ?

Et bien simplement que cette IP respecte un schéma bien précis.

Elle est constituée du préfix FF02 ::/64 suivi de 0001:FFxx:xxxx (où les « x » correspondent aux 24 derniers bits de l’IP Global).

Donc pour résumer, R1 veut envoyer un Ping à R2 sur 2001:12::2

Il commence par envoyer un NS sur FF02::1:FF002

R2 va recevoir ce message, et va y répondre (NA – Neighbor Advertisement) car il y est abonné.

En répondant, il donne son adresse MAC à R1.

Après quoi, R1 peut envoyer un Ping à R2.

 

Au passage, si deux routeurs ont les mêmes 24 derniers bits dans leur IP, ils recevront tous les deux le message NS. Par contre, seul le routeur concerné y répondra.

 

Si vous souhaitez une petite démonstration, voici les étapes :

  • Vider la table de voisinage IPv6 : « clear ipv6 neighbors »
  • Lancer une capture WireShark : Clic droit sur le lien R1 -> R2, puis « Start Capturing »
  • Lancer le Ping : « ping ipv6 2001:12::2 repeat 1 »
  • Ouvrir WireShark : Clic Droit sur le lien, « Open WireShark »

 

IPv6 Ping WireShark

 

Et voici les 4 étapes d’un Ping (seulement quand le routeur ne connait pas l’adresse MAC du voisin)

Une fois l’adresse connue, plus besoin de NS et NA.

 

Il faut donc retenir

NS – Neighbor Solicitation : permet de déterminer l’adresse de niveau 2 d’un routeur voisin, ou de vérifier si l’adresse est utilisée.

NA – Neighbor Advertisement : permet de répondre à un NS, ou d’annoncer un changement d’adresse.

 

4)     Configuration de routes statiques

 

Il n’est pas nécessaire de tergiverser, les routes statiques n’ont rien de spécial.

Avant de pouvoir effectuer du routage IPv6, il faut entrer la commande suivant sur tous les routeurs

R1(config)#ipv6 unicast-routing
R2(config)#ipv6 unicast-routing

Etc…

Pour créer une route statique, rien de plus simple :

R2(config)#ipv6 route 2001:36::/64 serial 0/0
R2(config)#ipv6 route 2001:45::/64 2001:24::4
R2(config)#ipv6 route 2001:34::/64 serial 0/1

 

Les commandes se passent d’explication !

 

Faites de même pour R3 et R4 :

R3(config)#ipv6 route 2001:12::/64 serial 1/0
R3(config)#ipv6 route 2001:45::/64 serial 0/1
R3(config)#ipv6 route 2001:24::/64 serial 0/1

 

R4(config)#ipv6 route 2001:12::/64 serial 0/0
R4(config)#ipv6 route 2001:36::/64 serial 0/1
R4(config)#ipv6 route 2001:23::/64 serial 0/0

 

Très simple n’est-ce pas ?

 

5)     Configuration de RIPng

 

RIPng est la version IPv6 de RIP v2.

Il fonctionne de la même manière, possède les mêmes attributs, etc…

Les MAJ sont envoyées en multicast sur l’IP FF02 ::9 en UDP (port 521)

Pour ce qui est de l’authentification, elle n’est plus gérée par RIP, mais directement par IPv6.

 

L’activation de RIP se fait directement sur les interfaces :

R1(config)#interface fastEthernet 0/0
R1(config-if)#ipv6 rip IPV6LAB enable

 

R2(config)#interface fastEthernet 0/0
R2(config-if)#ipv6 rip IPV6LAB enable
R2(config)#interface serial 0/0
R2(config-if)#ipv6 rip IPV6LAB enable
R2(config)#interface serial 0/1
R2(config-if)#ipv6 rip IPV6LAB enable

 

R2(config)#ipv6 router rip IPV6LAB
R2(config-rtr)#redistribute static

 

Voyons si cela a fonctionné :

R1 IPv6 Routing Table

En effet, R1 connait toutes les routes !

Un petit Ping pour tester :

R1 IPv6 Ping

La commande « Debug ipv6 rip » permet d’observer le fonctionnement des MAJ RIPng :

R1 Debug IPv6 RIP

Vous pouvez constater que ce sont les IP Link Local qui sont utilisées pour l’envoie de MAJ.

Quant à la version du protocole, il ne s’agit pas de RIP v1, mais de RIPng v1.

 

6)     Configuration d’OSPF V3

 

La version 3 d’OSPF apporte quelques changements par rapport à la version 2.

Nous laisserons la théorie de côté pour cette fois.

Concentrons-nous sur la pratique, qui elle n’a rien de difficile.

R5(config)#ipv6 router ospf 1
R5(config-rtr)#router-id 5.5.5.5

 

R5(config)#interface fastEthernet 0/0
R5(config-if)#ipv6 ospf 1 area 0

 

 

R4(config)#ipv6 router ospf 1
R4(config-rtr)#router-id 4.4.4.4
R4(config-rtr)#redistribute static
R4(config-rtr)#passive-interface serial 0/0
R4(config-rtr)#passive-interface serial 0/1

 

R4(config)#interface fastEthernet 0/0
R4(config-if)#ipv6 ospf 1 area 0
R4(config)#interface serial 0/0
R4(config-if)#ipv6 ospf 1 area 0
R4(config)#interface serial 0/1
R4(config-if)#ipv6 ospf 1 area 0

 

Voyons la table de routage

R5 IPv6 Routing Table

 

Pour le reste, les commandes sont très semblables à la version 2.

 

7)     Configuration d’EIGRP en IPv6

 

Finissons par une configuration basique d’EIGRP en IPv6.

Voyons quelques commandes de bases pour le mettre en place.

 

Premièrement, il faut activer le processus EIGRP :

R3(config)#ipv6 router eigrp 1
R3(config-rtr)#eigrp router-id 3.3.3.3 (l’ID est obligatoire si aucune IPV4 n’est configurée sur le routeur)
R3(config-rtr)#passive-interface serial 1/0
R3(config-rtr)#passive-interface serial 1/1
R3(config-rtr)#redistribute static
R3(config)#interface serial 1/0
R3(config-if)#ipv6 eigrp 1
R3(config)#interface serial 1/1
R3(config-if)#ipv6 eigrp 1
R3(config)#interface fastEthernet 0/0
R3(config-if)#ipv6 eigrp 1

 

R6(config)#ipv6 router eigrp 1
R6(config-rtr)#eigrp router-id 6.6.6.6
R6(config)#interface fastEthernet 0/0
R6(config-if)#ipv6 eigrp 1

 

Constatons le résultat :

R6 IPv6 Routing Table

 

8)     Conclusion

 

Et voilà, nous sommes arrivés au terme de notre configuration basique d’IPv6 !

Nous avons vu comment configurer des IP, des routes statiques, des protocoles de routage, etc…

 

Même si il ne s’agit là que d’un aperçu de ce qu’il est possible de faire, cela constitue une bonne base pour la suite.

Vous aurez pu constater que même si les commandes changent un peu, le principe reste le même.

 

 

Tagués avec : , , , ,
Publié dans IPv6
2 commentaires pour “IPv6 : Configuration
  1. Ulysse31 dit :

    Bonjour,
    Bravo pour ce super tuto.
    J’ai utilisé des routeurs 2811.
    Cependant j’ai un problème avec la commande « ipv6 nd prefix 2001:12::/64 ». Le mot prefix n’est pas reconnu sous Packet Tracer. Serais-tu, stp, pourquoi?
    Merci

    • Valentin Weber dit :

      Bonjour,
      Cela est probablement dû au fait que Paquet Tracer n’implémente pas toutes les commandes.
      Seules certaines configurations sont possibles sous Paquet Tracer

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.