Difference between revisions of "MOOC:Compagnon Act16"

From Livre IPv6

(Démarrage de GNS3)
(Démarrage du modèle de réseau sous GNS3)
 
(261 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= <div id="découvrez">Activité 16 : Découvrez un réseau IPv6 </div> =
+
= <div id="découvrez"> Activité 16 : Découvrez un réseau IPv6 </div> =
 
<!-- ----------------------------------------- -->
 
<!-- ----------------------------------------- -->
  
<!--
 
 
__NOTOC__
 
__NOTOC__
-->
 
 
L'objectif de cette première activité pratique va être d'expérimenter la communication en IPv6 et de découvrir les adresses IPv6 dans un réseau IPv6. A l'aide d'une topologie de réseau comprenant 2 hôtes et 2 routeurs, vous allez  pouvoir  :
 
# prendre en main l'environnement de virtualisation  GNS3,
 
# vous familiariser avec l'adressage en IPv6 et les commandes de consultation d'état d'une interface réseau.  Vous verrez aussi comment identifier les types des adresses IPv6 et déterminer la portée des communications utilisant ces types d"adresses.
 
# effectuer des communications locales au lien, ou  des communications avec remises indirectes des paquets. Dans ce cette dernière forme de communication, les paquets passent à travers plusieurs liens avant d'atteindre la destination.
 
 
Comme le montre la figure 1, le réseau étudié repose uniquement sur IPv6.  Un serveur web est installé et configuré sur l'hôte appelé pc2. Un serveur DNS est également installé sur le routeur r2.
 
  
 +
L'objectif de cette première activité pratique est d'expérimenter la communication en IPv6 et de découvrir les adresses IPv6 dans un réseau IPv6. À l'aide d'une topologie de réseau comprenant deux hôtes, deux routeurs, ainsi qu'un serveur, vous allez pouvoir :
 +
# prendre en main l'environnement de virtualisation GNS3 ;
 +
# vous familiariser avec l'adressage en IPv6 et les commandes de consultation d'état d'une interface réseau. Vous verrez aussi comment identifier les types des adresses IPv6 et déterminer la portée des communications utilisant ces types d"adresses ;
 +
# effectuer des communications locales au lien, ou  des communications avec remises indirectes des paquets. Dans cette dernière forme de communication, les paquets passent à travers plusieurs liens avant d'atteindre la destination ;
 +
# effectuer des échanges en multi-diffusion ''(multicast)''.
 +
<!--
 +
Comme le montre la figure 1, le réseau étudié comporte 4 nœuds et repose uniquement sur IPv6. Un serveur web est installé et configuré sur l'hôte appelé PC-2. Un serveur DNS est également installé sur PC-2.
 +
-->
 +
Comme le montre la figure 1, le réseau étudié est composé de nœuds (pc, routeurs, serveurs...) et repose uniquement sur IPv6. Un serveur web est installé et configuré sur l'hôte appelé SRV-3.
 +
<!-- Un serveur DNS est également installé sur l'hôte PC-2. -->
 +
<!--
 +
<center>
 
[[image:2015_10_20_TP2_screenshot1.png|thumb|center|400px|Figure 1: Topologie du réseau étudié.]]
 
[[image:2015_10_20_TP2_screenshot1.png|thumb|center|400px|Figure 1: Topologie du réseau étudié.]]
 +
</center>
 +
-->
 +
<center>
 +
[[image:MoocSession5 act16 topolo 20190605.png|thumb|center|400px|Figure 1: Topologie du réseau étudié.]]
 +
</center>
  
 
Le support vous donne l'ensemble des opérations à réaliser pour aller jusqu'au bout de l'activité. Vous trouverez un résumé de ces commandes dans le Manuel Apprenant disponible dans l'onglet documentation du cours Objectif IPv6 du site de FUN.  
 
Le support vous donne l'ensemble des opérations à réaliser pour aller jusqu'au bout de l'activité. Vous trouverez un résumé de ces commandes dans le Manuel Apprenant disponible dans l'onglet documentation du cours Objectif IPv6 du site de FUN.  
 
+
<!-- {{TODO|Préfixer les commandes par le nom de la machine)}} -->
  
 
== Etape 0 : Démarrage de GNS3==
 
== Etape 0 : Démarrage de GNS3==
  
=== Démarrage du votre machine virtuelle===
+
=== Démarrage de votre machine virtuelle===
  
Après avoir téléchargé la machine virtuelle "MOOC_IPv6_Lab_Session3", vous pouvez la démarrer soit en utilisant VirtualBox ou bien VMwarePlayer 7 ou supérieur:
+
Après avoir téléchargé la machine virtuelle '''"MOOCIPv6-S7"''', vous pouvez la démarrer soit en utilisant VirtualBox ou bien VMwarePlayer 15 ou supérieur:
 
* Oracle VirtualBox https://www.virtualbox.org/wiki/Downloads
 
* Oracle VirtualBox https://www.virtualbox.org/wiki/Downloads
 
* VmWare Player  https://my.vmware.com/fr/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0
 
* VmWare Player  https://my.vmware.com/fr/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0
  
Selon la configuration de votre PC quelques messages "warning" peuvent apparaitre, valider, relancer ou ignorer les dans un premier temps. Si vous obtenez un blocage, merci de consulter le forum pour identifier si une solution résout votre souci.  
+
Selon la configuration de votre PC, quelques messages "warning" peuvent apparaître. Validez, relancez ou ignorez-les dans un premier temps. Si vous obtenez un blocage, merci de consulter le forum pour identifier si une solution résout votre souci.
  
Une fois que la machine virtuelle Debian aura démarrée, vous voyez sur le bureau des dossiers pour les activités de travaux pratiques des séquences 1 à 4.
+
Une fois la machine virtuelle démarrée, vous verrez sur le bureau le raccourci pour les activités de travaux pratiques des séquences 1 à 4.
  
Pour l'adapter à la taille de votre écran, clic-droit sur le bureau, Modifier l'arrière plan du bureau, choisir la flèche en haut à gauche.
+
<!--
Dans la section Matériel, choisir écran, puis choisir affichage inconnu, enfin appliquez la taille la plus adaptée à votre écran, puis conserver les modifications si cela convient.
+
Pour l'adapter à la taille de votre écran : clic-droit sur le bureau - Modifier l'arrière plan du bureau - choisir la flèche en haut à gauche.
 +
Dans la section Matériel, choisir écran puis choisir affichage inconnu. Enfin, appliquer la taille la mieux adaptée à votre écran, puis conserver les modifications si cela convient.
 +
-->
 +
Pour l'adapter à la taille de votre écran : depuis le menu dans le coin inférieur gauche du bureau enchaîner ''Menu > Paramètres > Affichage''. Enfin, ajuster à la résolution la mieux adaptée à votre écran, puis conserver les modifications si cela convient.
  
=== Démarrage le modèle de réseau sous GNS3 ===
+
=== Démarrage du modèle de réseau sous GNS3 ===
  
Double cliquez sur le dossier''' "Mooc_IPV6_TP1" ''', puis sur l'icône ''' "TP1_Etape1" '''
+
Double cliquer sur le lien intitulé "moocipv6.gns3"<!-- (icône symbolisé par un caméléon)-->, présent dans la partie haute du bureau de votre machine virtuelle.
  
Attendre que la fenêtre <tt>TP_IPv6.gns3 -GNS3</tt> apparaisse à l'écran comme présentée par la figure 2. Double cliquez sur la barre de titre de cette fenêtre pour qu'elle occupe la totalité de votre écran. Si besoin, vous pouvez ensuite recentrer l'image de la topologie dans la fenêtre centrale avec les boutons ascenseurs horizontal et vertical.
+
Il est possible de restaurer le Snapshot ''(Activité_16)'' depuis '''''Edit > Manage snapshots''''' ce qui rechargera les configurations initiales des équipements.
  
 +
Ensuite vous pouvez démarrer la simulation avec le bouton triangulaire vert, ou bien avec le menu '''''Control > Start/Resume all nodes'''''.
 +
 +
Attendre que la fenêtre <tt>Objectif-IPv6 - GNS3</tt> apparaisse à l'écran comme présentée par la figure 2. Double cliquer sur la barre de titre de cette fenêtre pour qu'elle occupe la totalité de votre écran. Si besoin, vous pouvez ensuite recentrer l'image de la topologie dans la fenêtre centrale avec les boutons ascenseurs horizontal et vertical.
 +
 +
<!--
 +
<center>
 +
[[image:Act16-gns3-20190604.png|thumb|center|600px|Figure 2: Ecran de GNS3]]
 +
</center>
 +
{{TODO|Capture d'écran à mettre à jour}}
 +
-->
 
<center>
 
<center>
[[image:GNS3_TP2_001.jpg|thumb|center|600px|Figure 2: Ecran de GNS3]]
+
[[image:MoocSession5 gns3 act16 20190604.png|thumb|center|600px|Figure 2: Démarrage de GNS3]]
 
</center>
 
</center>
  
'''Identification des liens physiques'''
+
===Identification des liens physiques===
 +
Il est possible d'afficher les numéros des interfaces des équipements représentés sur la maquette, appuyer sur le bouton carré '''"a b c" ''' situé juste en dessous du menu déroulant ''Node''.
  
Il est possible d'afficher les numéros des interfaces des équipements représentés sur la maquette, appuyez sur le bouton carré '''"a b c" ''' situé juste en dessous du menu déroulant ''Device''.  
+
<!--
 +
{{TODO|A ajuster en fonction de la nouvelle architecture et des noms d'invités !!}}
 +
Une fois que vous aurez bien identifié les numéros d'interfaces des 6 liaisons, nous pouvons constater ceci : Ce réseau est constitué de 3 liens.
 +
* lien PC1 - SW2 - R1 :  les interfaces eth0 de PC1 et R1 sont reliées à travers le commutateur Ethernet SW2 ;
 +
* lien R1 - SW1 - R2 : les interfaces eth1 de R1 et R2 sont reliées à travers un commutateur Ethernet SW1 ;
 +
* lien PC2 - SW3 - R2 : les interfaces eth0 de PC2 et R2 sont reliées à travers un commutateur Ethernet SW3.
 +
-->
 +
Une fois que vous aurez bien identifié les numéros d'interfaces des liaisons, nous pouvons constater ceci : Ce réseau est constitué de 4 liens.
 +
* lien PC-1 - R1 :  les interfaces eth0 de PC-1 et R1 sont reliées à travers le réseau Net1 ;
 +
* lien R1  - R2 : les interfaces eth1 de R1 et R2 sont reliées à travers le réseau Net0 ;
 +
* lien PC-2  - R2 : les interfaces eth0 de PC-2 et R2 sont reliées à travers le réseau Net2.
 +
* lien SRV-3  - R2 : les interfaces eth0 de SRV-3 et eth3 de R2 sont reliées à travers le réseau Net3.
  
Une fois que vous aurez bien identifié les numéros d'interfaces des 6 liens, nous pouvons constater ceci :
+
===Activation des équipements===
* PC1 - SW2 - R1 :  les interfaces eth0 de PC1 et R1 sont reliées à travers le commutateur Ethernet SW2.
+
<!--
* R1 - SW1 - R2 : les interfaces eth1 de R1 et R2 sont reliées à travers un commutateur Ethernet SW1.
+
Si tout est correct, vous pouvez activer les équipements du réseau dans GNS3, à l'aide du bouton triangulaire vert démarrer ''"Start/Resume all nodes"''.
* PC2 - SW3 - R2 : les interfaces eth0 de PC2 et R2 sont reliées à travers un commutateur Ethernet SW3.
+
-->
 +
Si tout est correct, après l'appui bouton triangulaire vert démarrer ''"Start/Resume all nodes"'', dans la fenêtre centrale les témoins verts des liens indiquent que les équipements démarrent, et sur la droite la fenêtre ''"Topology Summary"'' montre aussi les témoins verts des équipements réseaux.
  
'''Activation des équipements'''
+
Au besoin vous pouvez aussi figer la simulation avec le bouton Pause ''"Suspend all nodes"'', voire arrêter la simulation avec le bouton Stop ''"Stop all nodes"''.
  
Si tout est correct, vous pouvez activer les équipements du réseau dans GNS3, à l'aide du bouton triangulaire vert démarrer ''"Start/Resume all devices"''.
+
Pour sortir proprement du simulateur, faire ''CTRL+S'' si vous souhaitez sauvegarder l'état de votre simulation, et ''CTRL+Q'' ou bien avec le bouton ''"Stop all nodes"''.
 +
<!--
 +
Lorsque les nœuds sont actifs, il faut cliquer sur le bouton ''Console connect to all nodes'' symbolisé par  ">_"  situé à gauche du bouton triangulaire vert, juste en dessous du menu déroulant ''"Annotate"''. Une fenêtre composée de plusieurs onglets affiche le démarrage des différents équipements réseaux, comme le  montre la figure 3.
 +
-->
  
Dans la fenêtre centrale les témoins verts des liens indiquent que les équipements démarrent, et sur la droite la fenêtre ''"Topology Summary"'' montre aussi les témoins verts des équipements réseaux.
+
Lorsque les nœuds sont actifs, il faut cliquer sur le bouton ''"Console connect to all nodes"'' symbolisé par  ">_"  situé à gauche du bouton triangulaire vert, juste en dessous du menu déroulant ''"Annotate"''. Une fenêtre composée de plusieurs onglets vous donne accès aux interfaces ligne de command (CLI ''Command Line Interface''). Chaque onglet affiche le démarrage des différents équipements réseaux comme le  montre la figure 3.
  
Au besoin vous pouvez aussi figer l'exécution des équipements avec le bouton Pause ''"Suspend All devices"'', voire arrêter les équipements avec le bouton Stop ''"Stop All devices"''.  
+
{{HorsTexte| Note|Notons que le démarrage des PC est plus rapide que celui des routeurs, le temps de démarrage dépendant des capacités de votre machine : comptez quelques dizaines de secondes, parfois plus.}}
 
+
Une fois que tous les nœuds affichent leur console  avec l'invite pour se connecter comme le montre la figure 3, votre plateforme de réseau est opérationnelle.
Faire <tt>CTRL+S</tt> si vous souhaitez sauvegarder l'état des équipements. Pour quitter proprement GNS3, faire <tt>CTRL+Q</tt> ou faire, avec le menu déroulant ''File'', l'action ''Quit''.
+
<!--
 +
<center>
 +
[[image:TP1_LLA_00.jpg|thumb|center|600px|Figure 3 : Écran GNS3 avec les interfaces CLI.]]
 +
</center>
 +
{{TODO|Capture d'écran à mettre à jour}}
 +
-->
 +
<center>
 +
[[image:Act16-gns3-cli-20190604.png|thumb|center|600px|Figure 3 : Écran GNS3 avec les interfaces CLI.]]
 +
</center>
  
 
== Etape 1 : Découvertes de l'adressage IPv6 ==
 
== Etape 1 : Découvertes de l'adressage IPv6 ==
 +
Dans cette étape nous allons découvrir les commandes pour afficher les adresses IPv6.
  
=== Observation des adresses des routeurs R1 et R2 ===
+
=== Dans le cas d'un hôte ===
 +
<!--
 +
Pour ouvrir une session sur un hôte tel que  PC-1, utiliser l'identifiant '''apprenant'''.  Il n'y a pas de mot de passe.
 +
-->
 +
Pour ouvrir une session sur un hôte tel que  PC-1::c1, sélectionner l'onglet "PC-1::c1" de la fenêtre "Konsole", vous êtes alors directement en mode ''"root"'' sur PC-1, symbolisé par le prompt de commande
 +
root@PC-1::c1:~#
  
Lorsque le simulateur GNS3 est lancé, il faut cliquer sur le bouton ''"Console connect to all devices"'' symbolisé par >_  situé à gauche du bouton triangulaire vert, juste en dessous du menu déroulant ''"Annotate"''. Ainsi vous aller faire apparaitre les consoles de contrôle pour les routeurs et pour les hôtes comme le montre la figure 3.
+
Déterminer la configuration IP actuelle en tapant la commande :
 +
root@PC-1::c1:~# '''ifconfig'''
 +
ou
 +
  root@PC-1::c1:~# '''ip -6 address show'''
  
Les consoles de contrôle (CLI, Command Line Interface) affichent le démarrage des différents équipements réseaux. Notons que le démarrage des PC est plus rapide que celui des routeurs (temps de démarrage dépendant des capacités de votre machine: compter quelques  minutes).
 
<center>
 
[[image:TP1_LLA_00.jpg|thumb|center|600px|Figure 3:  Ecran GNS3 avec les interfaces CLI.]]
 
</center>
 
Pour vous ouvrir une session sur les routeurs R1 et R2, les identifiants/mots de passe  sont '''vyos'''/'''vyos'''. (Aucun echo de caractère n'est proposé lorsqu'on entre le mot de passe).
 
Passez en mode Quagga à l'aide de la commande:
 
vyos@vyos:~$ '''vtysh'''
 
Vérifiez l'état des interfaces par la commande
 
vyos# '''show interface'''
 
 
{{HorsTexte| Astuce|La touche de tabulation aide à terminer automatiquement la saisie des commandes.}}
 
{{HorsTexte| Astuce|La touche de tabulation aide à terminer automatiquement la saisie des commandes.}}
 +
Vous pouvez constater que l'interface de boucle (''loopback'') noté <tt>lo0</tt> possède une adresse IPv6 alors que l'interface Ethernet (<tt>eth0</tt>) est configurée avec 2 adresses IPv6.
  
Cette commande affiche les adresses configurées sur les interfaces des routeurs R1 et R2. Ces routeurs possèdent chacun, en plus de l'interface (<tt>lo</tt>) de boucle locale, 2 interfaces Ethernet actives (<tt>eth0</tt> et <tt>eth1</tt>). Les routeurs sont reliés à 2 réseaux : le réseau  de distribution sur lequel on va trouver les PC et le réseau d'interconnexion qui relie les routeurs.
+
Quelle est l'adresse IPv6 sur l'interface de boucle ?
 
+
Quel est le type des adresses configurées sur ces interfaces ?
+
 
  &nbsp;
 
  &nbsp;
 +
<!--
 +
adresse de bouclage  ::1
 +
-->
 +
 +
Compléter ici les adresses IPv6 attribuées à l'interface eth0 de PC-1 et PC-2 :
 +
PC-1 eth0 =  fe...
 +
PC-1 eth0 =  fd...
 +
 +
PC-2 eth0 =  fe...
 +
PC-2 eth0 =  fd...
 +
<!--
 +
PC2 eth0 = fe80::349a:5fff:fed8:8bd3
 +
PC1 eth0 = fe80::c494:d8ff:fe44:82d3
 +
-->
 +
<!--
 +
PC1 eth0 = fd75:e4d9:cb77:1::c1/64
 +
PC2 eth0 = fd75:e4d9:cb77:2::c2/64
 +
-->
 +
'''Nota : ''' ''Une adresse IPv6 s'indique sans préciser la longueur du préfixe. A l'inverse, un préfixe réseau consiste en une adresse IPv6 suffixée par le nombre de bits occupé par le préfixe. Ne confondez pas ces 2 notions: préfixe réseau et adresse.''
 +
 +
Parmi les 2 adresses IP attribuées à l'interface Ethernet, il y a une adresse locale de lien (LLA ''Link Local Address'') et une adresse locale unique (ULA ''Unique unicast Local Address''). Pour différencier ces 2 types d'adresse, il faut analyser le mot de poids fort de l'adresse (le mot le plus à gauche). L'adresse LLA commence par le mot réservé <tt>fe80</tt>, l'adresse ULA par le mot réservé <tt>fd</tt> comme indiqué dans l'activité 13 "Familles d'adresses IPv6". Les 2 adresses ont la même longueur de préfixe à savoir de 64 bits.
 
   
 
   
   
+
Quel est le préfixe /64 auquel appartient l'adresse ULA de PC-1 ?
   
+
  &nbsp;
 +
<!--
 +
  PC1 eth0 = fd75:e4d9:cb77:1::/64
 +
-->
 +
Quelles sont la première et la dernière adresse de ce préfixe /64 ?
 +
&nbsp;
 +
&nbsp;
 +
<!--
 +
préfixe = fd75:e4d9:cb77:1::/64
 +
Première adresse = fd75:e4d9:cb77:1::
 +
Première adresse = fd75:e4d9:cb77:1:ffff:ffff:ffff:ffff
 +
-->
 +
Quelle est la valeur de l'adresse MAC de l'interface eth0 de PC-1 ?
 +
&nbsp;
 +
<!--
 +
adresse MAC de l'interface eth0 de PC1::c1 : 56:33:bf:da:4c:10
 +
-->
 +
Quelle est la méthode de construction utilisée pour l'identifiant d'interface (IID) de l'adresse LLA de PC-1?
 +
&nbsp;
 +
&nbsp;
 +
<!--
 +
L'IID de l'adresse LLA est dérivé de l'adresse MAC
 +
-->
 +
Quelle est la méthode de construction utilisée pour l'identifiant d'interface (IID) de l'adresse ULA de PC-1?
 +
&nbsp;
 +
&nbsp;
 +
<!--
 +
L'IID de l'adresse ULA a été fixé manuellement par l'administrateur de la machine
 +
-->
 +
Quelle est l'adresse de multicast sollicité correspondant à cette adresse  ULA de PC-1?
 +
&nbsp;
 +
<!--
 +
l'adresse de multicast sollicité correspondant à cette adresse  ULA
 +
ff02::1ff00:c1
 +
-->
  
Notez ici les adresses que vous observez sur les interfaces des 2 routeurs :
+
=== Dans le cas d'un routeur ===
R1 eth0 =  
+
R1 eth1 =  
+
R2 eth1 =  
+
R2 eth0 =  
+
 
<!--
 
<!--
R1 eth0 = fe80::200:abff:fe13:a800/64
+
Pour ouvrir une session sur un routeur tel que R1, les identifiants/mots de passe sont '''vyos'''/'''vyos'''. (Aucun echo de caractère n'est proposé lorsqu'on saisi le mot de passe).
  R1 eth1 = fe80::200:abff:fe13:a801/64
+
Passer en mode Quagga à l'aide de la commande:
  R2 eth1 = fe80::200:abff:fe96:ba00/64
+
  vyos@vyos:~$ '''vtysh'''
  R2 eth0 = fe80::200:abff:fe96:ba01/64
+
Vérifier l'état des interfaces par la commande:
 +
  vyos# '''show interface'''
 
-->
 
-->
 +
Pour ouvrir une session sur un routeur tel que R1, sélectioner l'onglet R1 de la fenêtre intitulée "Konsole". Démarrer une session de commande CLI (''Command Line Interface'') en vous connectant avec les identifiant/mots de passe '''vyos'''/'''vyos'''  (Aucun echo de caractère n'est proposé lorsqu'on saisi le mot de passe). Le routeur affiche alors la bannière système, indiquant notamment sa version, puis l'invite de commande
 +
  vyos@r1:~$
  
=== Testez la connectivité depuis chaque PC===
+
Vérifier l'état des interfaces par la commande:
 +
vyos@r1:~$ '''show interfaces'''
 +
Cette commande affiche les adresses configurées sur les interfaces des routeurs. Les routeurs possèdent chacun, en plus de l'interface (<tt>lo</tt>) de  boucle locale, 2 interfaces Ethernet actives (<tt>eth0</tt> et <tt>eth1</tt>). En effet, les routeurs sont attachés à 2 liens. Un lien représente un réseau  de distribution sur lequel on va trouver des PC (dans notre cas un PC::c1) et l'autre lien sert de réseau d'interconnexion (ou d'infrastructure) qui relie les routeurs (respectivement 3 liens eth0, eth1 et eth3 sur le routeur R2).
  
Pour vous loguer sur les stations PC1 et PC2, utilisez l'identifiant '''apprenant'''.  Il n'y a pas de mot de passe.
+
Noter ici les adresses ULA que vous observez sur les interfaces de R1 :
 +
eth0 :
 +
eth1 :
 +
<!--
 +
R1 eth0 = fd75:e4d9:cb77:1::1/64
 +
R1 eth1 = fd75:e4d9:cb77::1/64
 +
-->
 +
Vous pouvez remarquer que PC-1 et R1 partagent le même préfixe réseau. Cette
 +
plateforme a été numérotée à l'aide  d'un préfixe de type ULA. En l'occurrence, il s'agit de <tt>fd75:e4d9:cb77::/48</tt>. Chaque lien s'est vu ensuite attribuer un identifiant sur 16 bits pour former en tout un préfixe de 64 bits. On parle de SID (''Subnet Identifier'') pour l'identifiant du lien sur 16 bits. C'est la raison pour laquelle un lien identifié par un préfixe réseau se qualifie quelquefois de sous-réseau. Bien que ce sous-réseau peut aussi s'appeler réseau si on considère qu'un routeur est la passerelle dans une interconnexion de réseaux.
  
Vérifiez la configuration réseau  
+
Pour en revenir au plan d'adressage de notre plateforme, les affectations des SID ont été faites de la manière suivante:
apprenant@MOOCIPv6:~$ '''ifconfig'''
+
* '''0''' pour le sous-réseau d'interconnexion de R1 et R2
ou
+
* '''1''' pour le sous-réseau de distribution de PC-1 et R1
apprenant@MOOCIPv6:~$ '''ip -6 address show'''
+
* '''2''' pour le sous-réseau de distribution de PC-2 et R2
 +
* '''3''' pour le sous-réseau de distribution de SRV-3 et R2
 +
 
 +
{{HorsTexte| Note |L'affichage détaillé se fait sous forme paginée à la console. Le caractère ":" indique qu'il y a des pages à suivre. Appuyer simplement sur la barre d'espace de votre clavier pour passer à la page suivante. A la dernière page le système affiche de nouveau le prompt de commande <tt>vyos@r1:~$</tt>.}}
  
Vous devez constater qu'une adresse IPv6 lien-local (fe80:...) est configurée sur l'interface Ethernet (<tt>eth0</tt>) de chaque PC. Les PC ne possède qu'une interface réseau active (en dehors de la boucle locale) car ils ne sont connectés qu'à un seul réseau.
+
Pour afficher la configuration détaillée des interfaces du routeur, il faut ajouter le paramètre "detail" à la commande précdente. Le routeur affiche alors pour chacune de ses interfaces, l'ensemble des adresses affectées, ainsi qu'un certain nombre d'indicateurs d'état.
  
Veuillez noter les adresses locales des interfaces eth0
+
  vyos@r1:~$ '''show interfaces detail'''
  PC1 eth0 =
+
Maintenant, prendre soin de relever ici les adresses LLA attribuées aux interfaces eth0 et eth1 du routeur R1 :
  PC2 eth0 =
+
  eth0 :
 +
  eth1 :
 
<!--
 
<!--
  PC1 eth0 = fe80::200:abff:fefd:7d00/64  
+
  R1 eth0 = fe80::e49:aff:fe42:7b00/64
  PC2 eth0 = fe80::200:abff:fea0:c100/64  
+
  R1 eth1 = fe80::e49:aff:fe42:7b01/64
 
-->
 
-->
 +
Vous pouvez vérifier que l'interface de PC-2::c2 possède bien une adresse IPv6 ULA. Retrouvez-vous la valeur du SID de 2 dans cette adresse ?
  
Vous allez maintenant vérifier la portée de ces adresses lien-local en essayant de joindre depuis PC1 les adresses des autres équipements. Pour tester l'accessibilité des autres équipements, vous allez utiliser l'outil ping6 permettant d'envoyer en IPv6 des demandes d'écho à une interface. Si cette interface est joignable, elle renverra une réponse à l'émetteur. Ces réponses sont affichées à la reception par l'outil.
+
== Etape 2 :  Communications en IPv6 ==
  
Comme il est indiqué dans le cours, l'utilisation des adresses lien-local doit s'accompagner de la mention de l'interface réseau à utiliser pour transmettre le paquet. En effet, le système ne peut pas décider cette interface de lui-même. Cette mention se fait en ajoutant le caractère <tt>%</tt> à la fin de l'adresse suivi de l'interface, ou alors par une option si l'outil utilisé le permet, comme le permet justement ping6 :
+
<!-- session 5, (20190605) plus de netcat sur R1 => malheureusement plus de demo en nc sur les LLA
'''ping6 fe80::200:ff:fe00:1%eth0'''
+
ou
+
'''ping6 fe80::200:ff:fe00:1 -I eth0'''
+
  
Vérifiez depuis PC1 par l'outil ping6 l'accessibilité des différentes adresses des interfaces de la plateforme :
+
Dans cette étape, nous allons voir comment utiliser les adresses IPv6 pour effectuer des communications.
'''Nota''' Pour stopper la commande ping CTRL+C (appui simultané sur les touches ''Ctrl'' et ''c''.
+
  
 +
Un échange entre un client et un serveur va être mis en place. Nous allons commencer par activer un serveur sur le noeud R1.  Ceci s'effectue à l'aide de la commande <tt>netcat6</tt> qui s'écrit en abrégé <tt>nc6</tt>. Tout d'abord, vous allez  repasser en mode utilisateur :
 +
vyos# '''exit'''
 +
puis il faut démarrer le serveur :
 +
  vyos@vyos:~$ '''nc6 -l -v -n -u -p 4500'''
  
'''ping6 ''<Adresse LL eth0 R1>''%eth0'''
 
Résultat :
 
 
&nbsp;
 
'''ping6 ''<Adresse LL eth1 R1>''%eth0'''
 
Résultat :
 
 
&nbsp;
 
'''ping6 ''<Adresse LL eth0 R2>''%eth0'''
 
Résultat :
 
 
&nbsp;
 
'''ping6 ''<Adresse LL eth1 R2>''%eth0'''
 
Résultat :
 
 
&nbsp;
 
'''ping6 ''<Adresse LL eth0 PC2>''%eth0'''
 
Résultat :
 
 
Quelle(s) interface(s) avez vous réussi à joindre avec la commande ping ?
 
&nbsp;
 
 
 
  
Pouvez fournir une explication à la réussite et à l'échec des requêtes? (Indice: trouvez les éléments en commun entre l'interface eth0 de PC1 et les interfaces joignables)
+
Un échange entre un client et un serveur va être mis en place. Nous allons commencer par activer un serveur sur le noeud PC-1::c1.  Ceci s'effectue à l'aide de la commande <tt>netcat</tt> qui s'écrit en abrégé <tt>nc</tt>.
&nbsp;
+
Pour démarrer le serveur le serveur lancer la commande suivante :
+
  root@PC-1::c1:~# '''nc -6 -l -v -n -u -p 4500'''
+
+
Vous allez vérifier cette explication en testant la connectivité depuis les routeurs
+
  
=== Testez la connectivité depuis chaque routeur ===
+
Les options de la commande signifient que la commande  <tt>netcat</tt>  en IPv6 (-6) en mode transport UDP (-u), se met en écoute (-l) sur le port (-p) 4500 tout en étant explicite dans ses affichages (-v).
  
Après avoir repéré les adresses locales des interfaces eth0 des routeurs et des PC, vous devez pouvoir vérifier que la connectivité est opérationnelle.
+
{{HorsTexte| Nota |Pour interrompre une commande comme <tt>netcat</tt> sur le serveur ou le client faites la combinaison de touches <tt>CTRL+C</tt> (appui simultané sur les touches ''Ctrl'' et ''C''.}}
  
'''Nota''' ''lorsque que l'argument d'une commande est une adresse lien local (LLA), vous devez spécifier l'interface de sortie en suffixant l'adresse par le caractère '%' suivi de l'interface.
+
Il nous reste maintenant à démarrer la version cliente de <tt>netcat</tt> sur PC-1::111
 +
root@PC-1::111:~# '''nc -6 -n -v -u ''ADDR6'' 4500'''
  
Depuis les routeurs, essayez de joindre les interfaces de chacun des PCs.
+
Ici le terme ADDR6 doit être remplacé par une adresse IPv6.
  
Depuis R1:
+
Commencer par tester une communication avec le serveur en utilisant l'adresse lien-local (LLA) du serveur mise sur l'interface eth0 de PC-1::c1 (adresse relevée lors de l'étape 1 de ce TP). Comme il est indiqué dans le cours, l'utilisation des adresses lien-local doit s'accompagner de la mention de l'interface réseau à utiliser pour transmettre le paquet.
vyos@vyos:~$ '''vtysh'''
+
vyos# '''ping ipv6 ''<Adresse LL eth0 PC1>''%eth0'''
+
  
Depuis R2:
+
En effet, le système ne peut pas séléctionner cette interface de lui-même. Tous les liens ont le même préfixe pour une adresse de lien local. Il y a donc une ambigüité c'est pour cela que le système ne peut décider. L'ambigüité est donc levée en indiquant explicitement l'interface de sortie. Pour ce faire, la mention de l'interface se fait en ajoutant son nom après le caractère <tt>%</tt> mis à la fin de l'adresse. Dans certain cas, une option est disponible pour spécifier l'interface. Dans le cas présent, la commande de démarrage du client est la suivante : <tt>nc -6 -n -v -u fe80::c8ee:fbff:fead:15a9%eth0 4500</tt>
vyos@vyos:~$ '''vtysh'''
+
vyos# '''ping ipv6 ''<Adresse LL eth0 PC2>''%eth0'''
+
  
Mettez-vous à la place d'un administrateur souhaitant vérifier que le réseau est fonctionnel entre R1 et R2. Quelle ligne de commande doit-il entrer sur R1 utilisant la commande ping ?
+
Avant de valider la commande, assurez vous de bien indiquer l'adresse lien local de l'interface eth0 de PC-1::c1 relevée lors de l'étape 1 à l'aide de la commance <tt> ip -6 addr show eth1</tt>
&nbsp;
+
+
+
+
Vérifiez le bon fonctionnement de cette commande sur la plateforme.
+
<!--
+
Vous venez d'expérimenter le fonctionnement d'un réseau IPv6 n'utilisant que les adresses lien-local. La portée limitée de ces adresses et l'obligation d'expliciter l'interface de sortie rendent cet usage assez limité. Mais ces adresses sont utiles pour des mécanismes fonctionnant au niveau du lien, comme la découverte de services sur le lien, qui utilise le multicast. Un exemple pour illustrer cela est la découverte des noeuds IPv6 sur un lien ou des routeurs en utilisant l'adresse IPv6 multicast restreinte au lien pour le groupe correspondant. Vous pouvez tester ces 2 adresses depuis PC1 :
+
-->
+
Vous venez d'expérimenter le fonctionnement d'un réseau IPv6 n'utilisant que les adresses lien-local. La portée limitée de ces adresses et l'obligation d'expliciter l'interface de sortie rendent cet usage assez limité. Mais ces adresses sont utiles pour des mécanismes fonctionnant au niveau du lien, comme la découverte ou le test de services sur le lien. Un exemple pour illustrer cela est la découverte des noeuds ou de routeurs IPv6 sur un lien en utilisant l'adresse IPv6 multicast restreinte au lien pour le groupe correspondant. Vous pouvez tester ces 2 adresses depuis PC1 :
+
  
apprenant@MOOCIPv6:~$ '''ping6 ff02::1%eth0'''
 
apprenant@MOOCIPv6:~$ '''ping6 ff02::2%eth0'''
 
  
=== Arrêt/Pause du simulateur ===
+
root@PC-1::111:~# '''nc -6 -n -v -u fe80::c8ee:fbff:fead:15a9%eth0 4500'''
  
Au besoin vous pouvez aussi figer la simulation avec le bouton Pause "Suspend All devices", voire arrêter la simulation avec le bouton Stop "Stop All devices".  
+
Le client et le serveur sont maintenant en attente de communication. Tant qu'il n'y a pas de données à transmettre, il n'y a pas de communication.
 +
Aussi sur le terminal de PC-1::111, il vous faut saisir des caractères qui seront envoyés au serveur après l'appui sur la touche retour à la ligne. Une fois passé le retour à la ligne, vous verrez vos caractères saisis s'afficher sur le terminal de Pc-1::c1.
 +
Par exemple sur PC-1::111 taper la chaîne suivante "<tt> Hello world IPv6 !!</tt>", puis assurez vous de l'affichage de cette chaîne de caractères sur le terminal du serveur PC-1::c1.
 +
Le communication étant bidirectionnelles, inversement sur le terminal du serveur PC-1::c1 vous pouvez taper la chaîne suivante "<tt> Welcome MOOC Objectif IPv6</tt> et vérifier son affichage sur le terminal du client PC-1::111.
 +
Vous pouvez poursuivre en tapant des chaînes quelconques sur chacun des PC.
  
Pour sortir proprement du simulateur, faire CTRL+S si vous souhaitez sauvegarder l'état de votre simulation, et CTRL+Q ou bien avec le menu déroulant File-Quit.
+
Tout marche bien. '''Arrêter le client et le serveur''' par un <tt>CTRL+C</tt> dans la console de chacun d'eux.
  
== Etape 1 : Adressage routable ==
+
'''Relancer le serveur pour un nouvel essai''' mais cette fois-ci à partir d'un client situé sur PC-1::111 mais '''en utilisant l'adresse ULA de eth0 PC-1::c1'''. La commande de démarrage du client devient alors <tt>nc6 -n -v -u ''ADDR6'' 4500</tt>. Ici le terme ''ADDR6'' doit être remplacé par '''l'adresse ULA de eth0 de PC-1::c1''' que vous avez noté préalablement dans l'étape précédente.
Suivre les instructions suivantes:
+
# Après avoir arrêté le simulateur, double cliquez sur le dossier "Mooc_IPV6_TP1" , puis sur l'icône "TP1_Etape1_Adresses_ULA"
+
# Attendre que la fenêtre TP_IPv6.gns3 -GNS3 apparaisse à l'écran, double cliquer sur la barre de titre de cette fenêtre pour qu'elle occupe la totalité de votre écran. Si besoin, vous pouvez ensuite recentrer l'image de la topologie dans la fenêtre centrale avec les boutons ascenseurs horizontal et vertical.
+
# Il est possible d'afficher les numéros des interfaces des équipements représentés sur la maquette, appuyez sur le bouton carré '''"a b c" ''' situé juste en dessous du menu déroulant Device.
+
# Si tout est correct, vous pouvez lancer le simulateur GNS3, grâce au bouton triangulaire vert démarrer "Start/Resume all devices".
+
# Dans la fenêtre centrale les témoins verts des liens indiquent que la simulation démarre, et également à droite la fenêtre "Topology Summary" les témoins des équipements réseaux passent au vert.
+
# Lorsque le simulateur GNS3 est lancé, il faut cliquez sur le bouton symbolisé &gt; _ "Console connect to all devices" à gauche du bouton triangulaire vert, juste en dessous du menu déroulant ''Annotate''.
+
# Les fenêtres de ligne de commande (''Command Line Interface'' (CLI)) affichent le démarrage des différents équipements réseaux. Notons que le démarrage des PC est plus rapide que celui des routeurs. Le temps de démarrage dépend des capacités de votre machine, il faut compter quelques  minutes.
+
  
=== Observation des adresses des routeurs R1 et R2 ===
+
root@PC-1::111:~# '''nc -6 -n -v -u fd75:e4d9:cb77:1::c1 4500'''
<center>
+
[[image:2015_10_20_TP2_screenshot1.png|thumb|center|600px|TP1 Etape1 Adresses ULA]]
+
</center>
+
Dans cette version de la plateforme, un plan d'adressage a été mis en oeuvre pour attribuer à chaque interface de chaque machine une adresse de type ULA. Celui-ci est assez simple. Un même préfixe ULA est choisi pour la plateforme, il s'agit de <tt>fd75:e4d9:cb77::/48</tt>. Chaque lien s'est vu ensuite attribuer un préfixe de largeur 64 bits, construit à partir du préfixe de la plateforme et d'un SID :
+
* '''SID=0''' pour le réseau d'interconnexion R1-R2
+
* '''SID=1''' pour le réseau PC1-R1
+
* '''SID=2''' pour le réseau PC2-R2
+
Imprégnez vous de ce plan d'adressage, basé sur des adresses ULA, nous allons le mettre progressivement en oeuvre sur notre maquette.
+
  
Pour vous loguer sur les routeurs R1 et R2, les identifiants/mots de passe  sont '''vyos'''/'''vyos'''. (Aucun echo de caractère n'est proposé lorsqu'on entre le mot de passe).
+
Là aussi les caractères que vous entrez coté client vont être transférés vers le serveur.
Passez en mode d'administration VyOS ainsi:
+
{{HorsTexte|Nota|lorsque que l'argument d'une commande est une adresse routable (ULA ou GUA), vous n'avez plus spécifier l'interface de sortie en suffixant l'adresse par le caractère '%' suivi de l'interface. }}
vyos@vyos:~$ '''vtysh'''
+
Vérifiez l'état des interfaces, la tabulation aide à la complétion des commandes
+
vyos# '''show interface'''
+
Ceci nous permet d'identifier les adresses locales des routeurs R1 et R2, veuillez noter ici les adresses que vous observez :
+
R1 eth0 =
+
        =
+
R1 eth1 =
+
        =
+
R2 eth1 =
+
        =
+
R2 eth0 =
+
        =
+
<!--
+
R1 eth0 = fe80::200:abff:fe13:a800/64
+
        = fd75:e4d9:cb77:1::ffff/64
+
R1 eth1 = fe80::200:abff:fe13:a801/64
+
        = fd75:e4d9:cb77::1/64
+
R2 eth1 = fe80::200:abff:fe96:ba00/64
+
        = fd75:e4d9:cb77::2/64
+
R2 eth0 = fe80::200:abff:fe96:ba01/64
+
        = fd75:e4d9:cb77:2::ffff/64
+
-->
+
  
<center>
+
Donc vous pouvez constater, à ce niveau, que les adresses ULA ou LLA ''(lien local)'' pour des communications en remise directe n'ont pas de différence dans l'exécution de la communication.
[[image:TP1_ULA_02.jpg|thumb|center|600px|TP1 Etape1 Adresses ULA]]
+
</center>
+
  
=== Testez la connectivité depuis chaque PC===
+
Tout marche bien. '''Arrêter de nouveau le client et le serveur''' par un <tt>CTRL+C</tt> dans la console de chacun d'eux.
  
Pour vous loguer sur les stations PC1 et PC2, les identifiants/mots de passe  sont '''apprenant'''/''''''. (Pas de mot de passe).
 
  
Vérifiez la configuration réseau
+
'''Voyons maintenant pour les communications en remise indirecte, si  cela reste vrai.''' Le serveur reste sur PC-1::c1, par contre le client va être démarré depuis le PC-2. Le routeur R2 va servir à relayer les paquets IPv6 du client PC-2::c2 vers le serveur. Les paquets émis par le client ne sont ainsi pas remis directement à la destination, mais délégués au routeur R2 qui va donc les relayer vers la destination finale. On parle dans ce cas d'une communication en remise indirecte.
apprenant@MOOCIPv6:~$ '''ifconfig'''
+
  
Vous devez constater qu'une adresse IPv6 Lien local (fe80:...) a été attribuée à l'interface de chaque PC, ainsi qu'une adresselocal unique ou ULA.
+
Toujours sur PC-1::c1, relancer, de nouveau le serveur en écoute sur le port 4500.
 +
  root@PC-1::c1:~# '''nc -6 -l -v -n -u -p 4500'''
  
Veuillez noter les adresses locales uniques des interfaces eth0
+
Ensuite, indiquer au client sur PC-2::c2 d'utiliser l'adresse lien-local de eth0 de PC-1::c1 :
PC1 eth0 =
+
{{HorsTexte|Nota|Avant de valider la commande sur Pc-2::c2 verifiez bien la valeur saisie de l'adresse LLA de PC-1::c1, relevée à l'étape 1 de ce tp avec la commande <tt>ip -6 addr show eth0</tt>. }}
  PC2 eth0 =
+
 
<!--
+
  root@PC-2::c2:~# '''nc -6 -n -v -u fe80::c8ee:fbff:fead:15a9%eth0 4500'''
  PC1 eth0 = fd75:e4d9:cb77:1::c1/64
+
 
PC2 eth0 = fd75:e4d9:cb77:2::c2/64
+
Les caractères que vous saisissez ne s'affichent pas sur la console du serveur. '''La communication ne passe pas !'''
 +
 
 +
'''Arrêter le client avec un CTRL+C et relancer le mais cette fois-ci en spécifiant l'adresse ULA du serveur  PC-1::c1 :'''
 +
  root@PC-2::c2:~# '''nc -6 -n -v -u fd75:e4d9:cb77:1::c1 4500'''
 +
 
 +
 
 +
et vérifier si la communication fonctionne en validant des chaînes de caractères , telles que "Hello IPv6 world !!! "sur la console du client, pour les voir s'afficher sur la console du serveur. Inversement, procéder à la saisie et validation des chaînes quelcoqnues sur le serveur PC-1::c1 et constater leur affichage  sur le client PC-2::c2.
 +
 
 +
Tout marche bien. Arrêter de nouveau le client '''et''' le serveur par un <tt>CTRL+C</tt> dans la console de chacun d'eux.
 +
 
 +
Dans le cas d'une communication à remise indirecte, constatez vous une différence dans l'usage des types d'adresses ?  Que pouvez vous conclure sur la portée des adresses ULA utilisées dans cette étape ? Quelles sont les noeuds joignables avec ce type d'adresse ? Aucune station / uniquement les stations du même réseau / les stations d'une même organisation / les stations de l'internet ?
 +
&nbsp;
 +
 
 +
Vous venez d'expérimenter le fonctionnement d'un réseau IPv6 en utilisant des  adresses unicast lien-local (LLA) et des adresses unicast locales uniques (ULA). La portée limitée des adresses LLA ''(lien-local)'' et l'obligation d'expliciter l'interface de sortie rendent leur usage restreint. Cependant ces adresses sont utiles pour des mécanismes fonctionnant au niveau du lien, comme la découverte du voisinage direct ou le test de services sur le lien que nous verrons par  la suite.
 +
Les adresses ULA ont une portée moins limitée que les adresses LLA. Grâce à ces adresses configurées sur les interfaces de chaque équipement, il est possible de joindre des interfaces qui sont situées sur d'autres liens de l'interconnexion que celui de la source. Cette extension de la portée de la connectivité s'explique par le fait que les adresses ULA sont des adresses routables.
 
-->
 
-->
  
Quel est le préfixe /64 auquel appartient cette adresse ?
+
Dans cette étape, nous allons voir comment utiliser les adresses IPv6 pour effectuer des communications. Un échange entre un client et un serveur va être mis en place.
 +
 
 +
Nous allons commencer par activer un serveur sur le noeud PC-2. Ceci s'effectue à l'aide de la commande <tt>netcat</tt> qui s'écrit en abrégé <tt>nc</tt>.
 +
Pour démarrer le serveur le serveur PC-2 lancer la commande suivante :
 +
  root@PC-2::c2:~# '''nc -6 -l -v -n -u -p 4500'''
 +
 
 +
Les options de la commande signifient que  <tt>netcat</tt> en IPv6 ''(-6)'' utilise UDP ''(-u)'', se met en écoute (listen) ''(-l)'' sur le port ''(-p)'' 4500 tout en étant explicite dans ses affichages ''(-v)''.
 +
 
 +
{{HorsTexte| Nota |Pour interrompre une commande comme <tt>netcat</tt> sur le serveur ou le client faites la combinaison de touches <tt>CTRL+C</tt> (appui simultané sur les touches ''Ctrl'' et ''C'').}}
 +
 
 +
Il nous reste maintenant à démarrer la version cliente de <tt>netcat</tt> sur PC-1::c1
 +
root@PC-1::c1:~# '''nc -6 -n -v -u ''ADDR6'' 4500'''
 +
 
 +
Ici le terme ADDR6 doit être remplacé par l'adresse IPv6 ULA du serveur PC-2 soit ''''fd75:e4d9:cb77:2::c2''''.
 +
 
 +
Tant qu'il n'y a pas de donnée à transmettre, il n'y a pas de communication.
 +
Aussi sur le terminal de PC-1, il vous faut saisir des caractères qui seront envoyés au serveur après l'appui sur la touche retour à la ligne. Une fois passé le retour à la ligne, vous verrez vos caractères saisis s'afficher sur le terminal de PC-2::c2. Par exemple sur PC-1::c1 taper la chaîne suivante "<tt> Hello IPv6 world !!</tt>" et valider par appui sur la touche retour, puis assurez vous de l'affichage de cette chaîne de caractères sur le terminal du serveur PC-2::c2. La communication étant bidirectionnelle, inversement sur le terminal du serveur PC-2::c2 vous pouvez taper la chaîne suivante "<tt> Welcome MOOC Objectif IPv6.</tt>" et vérifier son affichage sur le terminal du client PC-1::c1. Vous pouvez poursuivre en tapant des chaînes quelconques sur chacun des PC.
 +
 
 +
Tout fonctionne correctement. '''Arrêter le client et le serveur''' par un ''CTRL+C'' dans la console de chacun d'eux.
 +
 
 +
Que pouvez vous conclure sur la portée des adresses ULA utilisées dans cette étape ? Quels sont les noeuds joignables avec ce type d'adresse? Aucune station / uniquement les stations du même réseau / les stations d'une même organisation /les stations de l'internet .
 +
 
 
  &nbsp;
 
  &nbsp;
 
Quel sont la première et la dernière adresse de ce préfixe /64 ?
 
&nbsp;
 
 
Quel est la valeur de l'adresse MAC de votre station ?
 
 
  &nbsp;
 
  &nbsp;
 
Quel est la méthode de construction utilisée pour l'identifiant d'interface ?
 
&nbsp;
 
 
 
  
Quel est l'adresse de multicast sollicité correspondant à cette adresse ?
+
{{HorsTexte| Nota |Inversement les adresses locale de lien (LLA) sont non routables, elles permettent que des communications directes entre noeuds voisisns confinés sur le même lien. La portée limitée des adresses LLA ''(lien-local)'' et l'obligation d'expliciter l'interface de sortie rendent leur usage restreint. Cependant ces adresses sont utiles pour des mécanismes fonctionnant au niveau du lien, comme la découverte du voisinage direct ou le test de services sur le lien que nous verrons par la suite.}}
&nbsp;
+
   
+
  
Les adresses ULA ont une portée moins restreinte que les adresses lien-local, vu précédemment. Grâce à ces adresses configurées sur les interfaces de chaque équipement, il est maintenant possible de joindre des interfaces qui sont situés sur d'autres liens que celui de la source. Cette extension de la portée de la connectivité s'explique par le fait que les adresses ULA sont des adresses routables.
+
Vous venez d'expérimenter le fonctionnement d'un réseau IPv6 en utilisant des  adresses unicast local uniqe (ULA). Grâce à ces adresses configurées sur les interfaces de chaque équipement, il est possible de joindre des interfaces situées sur d'autres liens que celui de la source. Cette extension de la portée de connectivité s'explique par le fait que les adresses ULA (tout comme les GUA Global Unicast Address) sont des adresses routables.
  
Faites quelques tests de connectivité depuis PC1 avec la commande ping6.
+
== Etape 3 : Utiliser le web avec IPv6  ==
  
Vers l'interface eth0 de R1
+
Pour fonctionner en IPv6, une application doit être prévue pour cela. De nos jours, les applications sont toutes compatibles IPv6. Nous allons dans cette étape montrer comment utiliser le web sur un réseau en IPv6.  Nous retiendrons le client <tt>curl</tt>, (''cURL'' signifiant client URL Request Library) qui n'est pas un navigateur mais une commande transfert. Cette commande sert à télécharger des éléments depuis un serveur web.
  '''ping6 fd75:e4d9:cb77:1::ffff'''
+
 
 +
Sur le noeud PC-1, effectuer le téléchargement de la page d'accueil (index.html) du serveur web SRV-3, en indiquant l'URL avec une adresse IPv6. Le rfc2732 indique qu'un URL pour contenir une adresse IPv6 doit l'encadrer par les caractères crochets ([ ]). Indiquer la syntaxe de la commande <tt>curl</tt> utilisée.
 +
  root@PC1::c1:~# '''curl http://[''ADDR6'']'''
 +
Avec ''ADDR6'', l'adresse routable du serveur web qui est localisé sur le noeud SRV-3, soit '''''fd75:e4d9:cb77:3::c3'''''.
 +
 
 +
root@PC-1::c1:~# '''curl http://[fd75:e4d9:cb77:3::c3]'''
 +
 
 +
  .
 +
  . code source de la page d'index du serveur
 +
  .
 
   
 
   
Vers l'interface eth1 de R1
+
  root@PC-1::c1:~#
  '''ping6 fd75:e4d9:cb77::1'''
+
  
Vers l'interface eth0 de R2
+
En fait, il est assez fastidieux pour un utilisateur de manipuler des adresses IPv6. Il est en effet bien plus aisé d'utiliser le service de noms. Ce service se charge de traduire (on parle de résoudre) le nom en adresse IPv6. C'est l'application, ici le coté client qui se charge d'invoquer le service de noms.  
  '''ping6 fd75:e4d9:cb77:2::ffff'''
+
<!--
+
Observer bien que le champ ttl=63 dans les réponses reçues.
+
-->
+
  
Vers l'interface eth0 de PC2
+
'''''Nota : ''''' ''Le service de nommage DNS et de son focntionnement seront détaillés dans la séquence 3 de ce cours.''
  '''ping6 fd75:e4d9:cb77:2::c2'''
+
 
 +
Refaire le téléchargement de la page d'accueil du serveur web en spécifiant non plus une adresse dans l'URL mais le nom du serveur web qui, sur notre plateforme de tp est : '''''srv.tp.'''''
 +
Indiquer la syntaxe de la commande <tt>curl</tt> pour réaliser ce transfert en IPv6.
 
<!--
 
<!--
Observer bien que le champ ttl=62 dans les réponses reçues.
+
\verb"curl srv.tp"
 
-->
 
-->
 +
root@PC-1::c1:~# '''curl http://...
 +
avec ''nom'' le nom du serveur web.
  
 
+
root@PC-1::c1:~# '''curl http://srv.tp'''
Quelle(s) destination(s) avez vous réussie(s) à joindre avec la commande ping ?
+
 
&nbsp;
+
  .
+
  . code source de la page d'index du serveur
+
  .
+
 
   
 
   
 +
root@PC-1::c1:~#
 +
Dans ce dernier cas, vous pouvez remarquer que l'utilisation de communications au moyen d'IPv6 est ici similaire à la situation  de l'Internet que vous connaissez. IPv6 reste complétement transparent à l'utilisateur. Nous verrons dans la dernière séquence de ce cours que les choses se compliquent lorsque des éléments de l'Internet sont encore en IPv4.
  
Que pouvez vous conclure sur la portée des adresses ULA utilisées dans cette étape ? Quelles stations sont-elles joignable avec ce plan d'adressage ? Aucune station / uniquement les stations du même réseau / les stations d'une même organisation / les stations de l'internet ?
+
== Etape 4 : Echanges en multi-diffusion ''(multicast)'' ==
&nbsp;
+
  
=== Observation des adresses dans le voisinage des routeurs R1 et R2 ===
+
Nous n'allons pas ici étudier le système de communication en multicast. Cela demande toute une "tuyauterie" qui dépasse le cadre de ce cours. Nous proposons juste de montrer l'utilisation de communications en multicast.
 +
 
 +
Nous allons commencer par déterminer les adresses multicasts attribuées aux interfaces d'un noeud.
 +
Dans le cas d'un hôte comme celui de PC-1, vous allez afficher les adresses attribuées à l'interface Ethernet de cette machine. Ceci s'effectue par la commande:
 +
  root@PC-1::c1:~# '''ip maddr show'''
 +
  root@PC-1::c1:~# '''ip -6 maddr show'''
 +
 
 +
Vous pouvez constater que l'interface eth0 de ce noeud possède plusieurs adresses IPv6 multicast :
 +
* l'adresse <tt>ff02::1</tt> représente  l'adresse multicast tous les noeuds du lien ''(All Nodes)'' de portée locale au lien. Tous les noeuds d'un lien recoivent sur cette adresse.
 +
* l'adresse <tt>ff01::1</tt> de portée "noeud" représente  toutes les interfaces du noeud.
 +
* l'adresse <tt>ff02::1:ff00:c1</tt> représente l'adresse multicast de sollicitation du noeud ''(sollicited-node address)'' correspondant à l'adresse ULA de PC-1 (''fd75:e4d9:cb77:1::c1''). Le préfixe réservé de cette adresse est  <tt>ff02::1:ff00:0/104</tt>. Les 24 bits manquants sont extraits des bits de poids faible de l'adresse unicast du noeud.
 +
* l'adresse <tt>ff02::1:ffda:4c10</tt> représente l'adresse multicast de sollicitation du noeud ''(sollicited-node address)'' correspondant à l'adresse LLA de PC-1 (''fe80::5433:bfff:feda:4c10''). Le préfixe réservé de cette adresse est  <tt>ff02::1:ff00:0/104</tt>. Les 24 bits manquants sont extraits des bits de poids faible de l'adresse LLA du l'interface eth0.
 +
 
 +
Faites la commande d'affichage des adresses multicasts, sur le routeur R1:
 +
vyos@r1::~$ '''show interfaces detail'''
 +
vyos@r1::~$ '''show ipv6 groups'''
 +
 
 +
Vous allez voir que le routeur s'est vu attribué une adresses multicast supplémentaires, sur les portées 1,2 et 5 sur l'interface eth0 (indice : l'identificateur de groupe est à 2). Quel est le nom de cette adresse et quel est son usage ?
  
 
<!--
 
<!--
Pour vous loguer sur les routeurs R1 et R2, les identifiants/mots de passe sont vyos/vyos. (Aucun echo de caractère n'est proposé lorsqu'on entre le mot de passe).  
+
Pour vous aider à répondre à cette question, outre le cours, vous pouvez consulter le registre des adresses IPv6 multicast [http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml IPv6 Multicast Address Space Registry]
 
-->
 
-->
Sur les routeurs R1 et R2 quittez le mode quagga par la commande ''exit'', pour revenir en mode utilisateur. L'invite de commande de ce mode utilisateur doit être
+
Pour vous aider à répondre à cette question, outre le cours, vous pouvez consulter le registre des adresses IPv6 multicast [http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml]
vyos # '''exit'''
+
vyos@vyos:$
+
  
'''''Note: ''''' ''Pour plus d'information sur les différents modes de commande des routeurs Vyos, reportez vous au [[MOOC:Manuel_Apprenant| Manuel apprenant]] paragraphe '' ''''' "A propos des modes Vyos" '''''
+
Nous allons voir maintenant si les noeuds répondent à une sollicitation sur l'adresse multicast. Pour cela nous allons utiliser la commande <tt>ping6</tt> qui sert à effectuer un test d'accessibilité à savoir si une adresse IPv6 donnée est bien attribuée sur le réseau autrement dit qu'il existe une interface avec l'adresse IP en question. <tt>ping6</tt> envoi un message particulier de sollicitation à l'adresse identifiant une interface réseau.  Si cette interface est active et accessible, elle recevra le message émis et renverra une réponse à l'émetteur. Ces réponses sont reçues par la commande <tt>ping6</tt> et les affiche sur le terminal.
  
Nous pouvons identifier les adresses recueillies dans le voisinage de chaque routeur:
+
Depuis PC-1, commençons par un test avec l'adresse "''All Nodes''":
 +
root@PC-1:c1:~# '''ping6 -c 2 ff02::1%eth0'''
 +
PING ff02::1%eth0(ff02::1) 56 data bytes
 +
'''64 bytes from fe80::5433:bfff:feda:4c10: icmp_seq=1 ttl=64 time=0.053 ms'''
 +
'''64 bytes from fe80::e49:aff:fe42:7b00: icmp_seq=1 ttl=64 time=2.26 ms (DUP!)'''
 +
64 bytes from fe80::5433:bfff:feda:4c10: icmp_seq=2 ttl=64 time=0.130 ms
 +
 +
--- ff02::1%eth0 ping statistics ---
 +
2 packets transmitted, 2 received, +1 duplicates, 0% packet loss, time 1001ms
 +
rtt min/avg/max/mdev = 0.053/0.816/2.265/1.025 ms
 +
root@PC-1:c1:~#
  
vyos@vyos:~$ '''show ipv6 neighbors'''
+
{{HorsTexte| Nota |Le paramètre '''-c 2''' permet de demander l'émission de 2 messages successifs vers la destination ''All Nodes'' (<tt>ff02::1</tt> sur l'interface <tt>eth0</tt>) : messages ''icmp_seq-1'' et ''icmp_seq-2''. Si on ne demandait qu'un seul message ( paramètre ''-c 1''), les réponses multiples (marquées ''"DUP!"'') étant filtrées à l'affichage, on ne pourrait pas constater que tous les nœuds du lien ont répondu.}}
  
Quel est l'intérêt de cette fonction ?
 
&nbsp;
 
  
=== Arrêt/Pause du simulateur ===
+
Le résultat vous montre que 2 réponses ont été obtenues pour une seule sollicitation d'émise. Les adresses sources sont des adresses lien-local. Vous reconnaitrez les adresses sources de PC-1 et de R1 sur le lien Net 1.
  
Au besoin vous pouvez aussi figer la simulation avec le bouton Pause "Suspend All devices", voire arrêter la simulation avec le bouton Stop "Stop All devices".
+
Bien que le caractère multicast va être moins évident à montrer avec l'adresse multicast "''All Routers''" vu qu'il n'y a qu'un seul routeur sur le lien Net 1, vous pouvez néanmoins  faire un test d'accessibilité de la manière suivante sur PC-1:
 
+
root@PC-1::c1:~$ '''ping6 -c 2 ff02::2%eth0'''
Pour sortir proprement du simulateur, faire CTRL+S si vous souhaitez sauvegarder l'état de votre simulation, et CTRL+Q ou bien avec le menu déroulant File-Quit.
+
Comme prévu, le routeur R1 répond à la sollicitation. Ces 2 adresses multicast vont servir à la découverte des noeuds ou de routeurs IPv6 sur un lien.
  
 +
Cette étape a été une première initiation à la communication en multicast. Si vous voulez en savoir plus sur le fonctionnement du multicast IP, il existe une littérature abondante, nous vous renvoyons aux références citées à la fin de l'activité "adresses Multicast" de ce cours.
  
 +
=== Arrêt/Pause du simulateur ===
 +
Au besoin vous pouvez aussi figer l'exécution des équipements avec le bouton Pause ''"Suspend all nodes"'', voire arrêter les équipements avec le bouton Stop ''"Stop all nodes"''.
  
 +
L'état des équipements est sauvegardé en quittant. Pour quitter proprement GNS3, faire <tt>CTRL+Q</tt> ou faire, avec le menu déroulant ''File'' et l'action ''Quit''.
  
===Conclusion===
+
==Conclusion==
  
Grâce à cette première séquence du Mooc IPv6 vous avez découvert et appréhendé différents aspects de l'adressage.
+
Par cette première séquence du MOOC IPv6, vous avez pu découvrir l'usage de l'Internet en IPv6 et vous familiariser avec le format des adresses IPv6.
 +
Si le format de ces nouvelles adresses change quelque peu les habitudes prise avec l'adressage IPv4. Il n'en est rien pour l'utilisateur du réseau. L'usage de l'Internet en IPv6 lui est transparent. Nous verrons par la suite que la présence d'IPv4 dans l'Internet vient compliquer cette transparence.

Latest revision as of 16:04, 22 February 2022

Activité 16 : Découvrez un réseau IPv6

L'objectif de cette première activité pratique est d'expérimenter la communication en IPv6 et de découvrir les adresses IPv6 dans un réseau IPv6. À l'aide d'une topologie de réseau comprenant deux hôtes, deux routeurs, ainsi qu'un serveur, vous allez pouvoir :

  1. prendre en main l'environnement de virtualisation GNS3 ;
  2. vous familiariser avec l'adressage en IPv6 et les commandes de consultation d'état d'une interface réseau. Vous verrez aussi comment identifier les types des adresses IPv6 et déterminer la portée des communications utilisant ces types d"adresses ;
  3. effectuer des communications locales au lien, ou des communications avec remises indirectes des paquets. Dans cette dernière forme de communication, les paquets passent à travers plusieurs liens avant d'atteindre la destination ;
  4. effectuer des échanges en multi-diffusion (multicast).

Comme le montre la figure 1, le réseau étudié est composé de nœuds (pc, routeurs, serveurs...) et repose uniquement sur IPv6. Un serveur web est installé et configuré sur l'hôte appelé SRV-3.

Figure 1: Topologie du réseau étudié.

Le support vous donne l'ensemble des opérations à réaliser pour aller jusqu'au bout de l'activité. Vous trouverez un résumé de ces commandes dans le Manuel Apprenant disponible dans l'onglet documentation du cours Objectif IPv6 du site de FUN.

Etape 0 : Démarrage de GNS3

Démarrage de votre machine virtuelle

Après avoir téléchargé la machine virtuelle "MOOCIPv6-S7", vous pouvez la démarrer soit en utilisant VirtualBox ou bien VMwarePlayer 15 ou supérieur:

Selon la configuration de votre PC, quelques messages "warning" peuvent apparaître. Validez, relancez ou ignorez-les dans un premier temps. Si vous obtenez un blocage, merci de consulter le forum pour identifier si une solution résout votre souci.

Une fois la machine virtuelle démarrée, vous verrez sur le bureau le raccourci pour les activités de travaux pratiques des séquences 1 à 4.

Pour l'adapter à la taille de votre écran : depuis le menu dans le coin inférieur gauche du bureau enchaîner Menu > Paramètres > Affichage. Enfin, ajuster à la résolution la mieux adaptée à votre écran, puis conserver les modifications si cela convient.

Démarrage du modèle de réseau sous GNS3

Double cliquer sur le lien intitulé "moocipv6.gns3", présent dans la partie haute du bureau de votre machine virtuelle.

Il est possible de restaurer le Snapshot (Activité_16) depuis Edit > Manage snapshots ce qui rechargera les configurations initiales des équipements.

Ensuite vous pouvez démarrer la simulation avec le bouton triangulaire vert, ou bien avec le menu Control > Start/Resume all nodes.

Attendre que la fenêtre Objectif-IPv6 - GNS3 apparaisse à l'écran comme présentée par la figure 2. Double cliquer sur la barre de titre de cette fenêtre pour qu'elle occupe la totalité de votre écran. Si besoin, vous pouvez ensuite recentrer l'image de la topologie dans la fenêtre centrale avec les boutons ascenseurs horizontal et vertical.

Figure 2: Démarrage de GNS3

Identification des liens physiques

Il est possible d'afficher les numéros des interfaces des équipements représentés sur la maquette, appuyer sur le bouton carré "a b c" situé juste en dessous du menu déroulant Node.

Une fois que vous aurez bien identifié les numéros d'interfaces des liaisons, nous pouvons constater ceci : Ce réseau est constitué de 4 liens.

  • lien PC-1 - R1 : les interfaces eth0 de PC-1 et R1 sont reliées à travers le réseau Net1 ;
  • lien R1 - R2 : les interfaces eth1 de R1 et R2 sont reliées à travers le réseau Net0 ;
  • lien PC-2 - R2 : les interfaces eth0 de PC-2 et R2 sont reliées à travers le réseau Net2.
  • lien SRV-3 - R2 : les interfaces eth0 de SRV-3 et eth3 de R2 sont reliées à travers le réseau Net3.

Activation des équipements

Si tout est correct, après l'appui bouton triangulaire vert démarrer "Start/Resume all nodes", dans la fenêtre centrale les témoins verts des liens indiquent que les équipements démarrent, et sur la droite la fenêtre "Topology Summary" montre aussi les témoins verts des équipements réseaux.

Au besoin vous pouvez aussi figer la simulation avec le bouton Pause "Suspend all nodes", voire arrêter la simulation avec le bouton Stop "Stop all nodes".

Pour sortir proprement du simulateur, faire CTRL+S si vous souhaitez sauvegarder l'état de votre simulation, et CTRL+Q ou bien avec le bouton "Stop all nodes".

Lorsque les nœuds sont actifs, il faut cliquer sur le bouton "Console connect to all nodes" symbolisé par ">_" situé à gauche du bouton triangulaire vert, juste en dessous du menu déroulant "Annotate". Une fenêtre composée de plusieurs onglets vous donne accès aux interfaces ligne de command (CLI Command Line Interface). Chaque onglet affiche le démarrage des différents équipements réseaux comme le montre la figure 3.

Note

Notons que le démarrage des PC est plus rapide que celui des routeurs, le temps de démarrage dépendant des capacités de votre machine : comptez quelques dizaines de secondes, parfois plus.

Une fois que tous les nœuds affichent leur console avec l'invite pour se connecter comme le montre la figure 3, votre plateforme de réseau est opérationnelle.

Figure 3 : Écran GNS3 avec les interfaces CLI.

Etape 1 : Découvertes de l'adressage IPv6

Dans cette étape nous allons découvrir les commandes pour afficher les adresses IPv6.

Dans le cas d'un hôte

Pour ouvrir une session sur un hôte tel que PC-1::c1, sélectionner l'onglet "PC-1::c1" de la fenêtre "Konsole", vous êtes alors directement en mode "root" sur PC-1, symbolisé par le prompt de commande

root@PC-1::c1:~#

Déterminer la configuration IP actuelle en tapant la commande :

root@PC-1::c1:~# ifconfig

ou

root@PC-1::c1:~# ip -6 address show

Astuce

La touche de tabulation aide à terminer automatiquement la saisie des commandes.

Vous pouvez constater que l'interface de boucle (loopback) noté lo0 possède une adresse IPv6 alors que l'interface Ethernet (eth0) est configurée avec 2 adresses IPv6.

Quelle est l'adresse IPv6 sur l'interface de boucle ?

 

Compléter ici les adresses IPv6 attribuées à l'interface eth0 de PC-1 et PC-2 :

PC-1 eth0 =  fe...
PC-1 eth0 =  fd...
PC-2 eth0 =  fe...
PC-2 eth0 =  fd...

Nota : Une adresse IPv6 s'indique sans préciser la longueur du préfixe. A l'inverse, un préfixe réseau consiste en une adresse IPv6 suffixée par le nombre de bits occupé par le préfixe. Ne confondez pas ces 2 notions: préfixe réseau et adresse.

Parmi les 2 adresses IP attribuées à l'interface Ethernet, il y a une adresse locale de lien (LLA Link Local Address) et une adresse locale unique (ULA Unique unicast Local Address). Pour différencier ces 2 types d'adresse, il faut analyser le mot de poids fort de l'adresse (le mot le plus à gauche). L'adresse LLA commence par le mot réservé fe80, l'adresse ULA par le mot réservé fd comme indiqué dans l'activité 13 "Familles d'adresses IPv6". Les 2 adresses ont la même longueur de préfixe à savoir de 64 bits.

Quel est le préfixe /64 auquel appartient l'adresse ULA de PC-1 ?

 

Quelles sont la première et la dernière adresse de ce préfixe /64 ?

 
 

Quelle est la valeur de l'adresse MAC de l'interface eth0 de PC-1 ?

 

Quelle est la méthode de construction utilisée pour l'identifiant d'interface (IID) de l'adresse LLA de PC-1?

 
 

Quelle est la méthode de construction utilisée pour l'identifiant d'interface (IID) de l'adresse ULA de PC-1?

 
 

Quelle est l'adresse de multicast sollicité correspondant à cette adresse ULA de PC-1?

 

Dans le cas d'un routeur

Pour ouvrir une session sur un routeur tel que R1, sélectioner l'onglet R1 de la fenêtre intitulée "Konsole". Démarrer une session de commande CLI (Command Line Interface) en vous connectant avec les identifiant/mots de passe vyos/vyos (Aucun echo de caractère n'est proposé lorsqu'on saisi le mot de passe). Le routeur affiche alors la bannière système, indiquant notamment sa version, puis l'invite de commande

 vyos@r1:~$ 

Vérifier l'état des interfaces par la commande:

vyos@r1:~$ show interfaces

Cette commande affiche les adresses configurées sur les interfaces des routeurs. Les routeurs possèdent chacun, en plus de l'interface (lo) de boucle locale, 2 interfaces Ethernet actives (eth0 et eth1). En effet, les routeurs sont attachés à 2 liens. Un lien représente un réseau de distribution sur lequel on va trouver des PC (dans notre cas un PC::c1) et l'autre lien sert de réseau d'interconnexion (ou d'infrastructure) qui relie les routeurs (respectivement 3 liens eth0, eth1 et eth3 sur le routeur R2).

Noter ici les adresses ULA que vous observez sur les interfaces de R1 :

eth0 : 
eth1 : 

Vous pouvez remarquer que PC-1 et R1 partagent le même préfixe réseau. Cette plateforme a été numérotée à l'aide d'un préfixe de type ULA. En l'occurrence, il s'agit de fd75:e4d9:cb77::/48. Chaque lien s'est vu ensuite attribuer un identifiant sur 16 bits pour former en tout un préfixe de 64 bits. On parle de SID (Subnet Identifier) pour l'identifiant du lien sur 16 bits. C'est la raison pour laquelle un lien identifié par un préfixe réseau se qualifie quelquefois de sous-réseau. Bien que ce sous-réseau peut aussi s'appeler réseau si on considère qu'un routeur est la passerelle dans une interconnexion de réseaux.

Pour en revenir au plan d'adressage de notre plateforme, les affectations des SID ont été faites de la manière suivante:

  • 0 pour le sous-réseau d'interconnexion de R1 et R2
  • 1 pour le sous-réseau de distribution de PC-1 et R1
  • 2 pour le sous-réseau de distribution de PC-2 et R2
  • 3 pour le sous-réseau de distribution de SRV-3 et R2

Note

L'affichage détaillé se fait sous forme paginée à la console. Le caractère ":" indique qu'il y a des pages à suivre. Appuyer simplement sur la barre d'espace de votre clavier pour passer à la page suivante. A la dernière page le système affiche de nouveau le prompt de commande vyos@r1:~$.

Pour afficher la configuration détaillée des interfaces du routeur, il faut ajouter le paramètre "detail" à la commande précdente. Le routeur affiche alors pour chacune de ses interfaces, l'ensemble des adresses affectées, ainsi qu'un certain nombre d'indicateurs d'état.

 vyos@r1:~$ show interfaces detail

Maintenant, prendre soin de relever ici les adresses LLA attribuées aux interfaces eth0 et eth1 du routeur R1 :

eth0 : 
eth1 : 

Vous pouvez vérifier que l'interface de PC-2::c2 possède bien une adresse IPv6 ULA. Retrouvez-vous la valeur du SID de 2 dans cette adresse ?

Etape 2 : Communications en IPv6

Dans cette étape, nous allons voir comment utiliser les adresses IPv6 pour effectuer des communications. Un échange entre un client et un serveur va être mis en place.

Nous allons commencer par activer un serveur sur le noeud PC-2. Ceci s'effectue à l'aide de la commande netcat qui s'écrit en abrégé nc. Pour démarrer le serveur le serveur PC-2 lancer la commande suivante :

 root@PC-2::c2:~# nc -6 -l -v -n -u -p 4500

Les options de la commande signifient que netcat en IPv6 (-6) utilise UDP (-u), se met en écoute (listen) (-l) sur le port (-p) 4500 tout en étant explicite dans ses affichages (-v).

Nota

Pour interrompre une commande comme netcat sur le serveur ou le client faites la combinaison de touches CTRL+C (appui simultané sur les touches Ctrl et C).

Il nous reste maintenant à démarrer la version cliente de netcat sur PC-1::c1

root@PC-1::c1:~# nc -6 -n -v -u ADDR6 4500

Ici le terme ADDR6 doit être remplacé par l'adresse IPv6 ULA du serveur PC-2 soit 'fd75:e4d9:cb77:2::c2'.

Tant qu'il n'y a pas de donnée à transmettre, il n'y a pas de communication. Aussi sur le terminal de PC-1, il vous faut saisir des caractères qui seront envoyés au serveur après l'appui sur la touche retour à la ligne. Une fois passé le retour à la ligne, vous verrez vos caractères saisis s'afficher sur le terminal de PC-2::c2. Par exemple sur PC-1::c1 taper la chaîne suivante " Hello IPv6 world !!" et valider par appui sur la touche retour, puis assurez vous de l'affichage de cette chaîne de caractères sur le terminal du serveur PC-2::c2. La communication étant bidirectionnelle, inversement sur le terminal du serveur PC-2::c2 vous pouvez taper la chaîne suivante " Welcome MOOC Objectif IPv6." et vérifier son affichage sur le terminal du client PC-1::c1. Vous pouvez poursuivre en tapant des chaînes quelconques sur chacun des PC.

Tout fonctionne correctement. Arrêter le client et le serveur par un CTRL+C dans la console de chacun d'eux.

Que pouvez vous conclure sur la portée des adresses ULA utilisées dans cette étape ? Quels sont les noeuds joignables avec ce type d'adresse? Aucune station / uniquement les stations du même réseau / les stations d'une même organisation /les stations de l'internet .

 
 

Nota

Inversement les adresses locale de lien (LLA) sont non routables, elles permettent que des communications directes entre noeuds voisisns confinés sur le même lien. La portée limitée des adresses LLA (lien-local) et l'obligation d'expliciter l'interface de sortie rendent leur usage restreint. Cependant ces adresses sont utiles pour des mécanismes fonctionnant au niveau du lien, comme la découverte du voisinage direct ou le test de services sur le lien que nous verrons par la suite.

Vous venez d'expérimenter le fonctionnement d'un réseau IPv6 en utilisant des adresses unicast local uniqe (ULA). Grâce à ces adresses configurées sur les interfaces de chaque équipement, il est possible de joindre des interfaces situées sur d'autres liens que celui de la source. Cette extension de la portée de connectivité s'explique par le fait que les adresses ULA (tout comme les GUA Global Unicast Address) sont des adresses routables.

Etape 3 : Utiliser le web avec IPv6

Pour fonctionner en IPv6, une application doit être prévue pour cela. De nos jours, les applications sont toutes compatibles IPv6. Nous allons dans cette étape montrer comment utiliser le web sur un réseau en IPv6. Nous retiendrons le client curl, (cURL signifiant client URL Request Library) qui n'est pas un navigateur mais une commande transfert. Cette commande sert à télécharger des éléments depuis un serveur web.

Sur le noeud PC-1, effectuer le téléchargement de la page d'accueil (index.html) du serveur web SRV-3, en indiquant l'URL avec une adresse IPv6. Le rfc2732 indique qu'un URL pour contenir une adresse IPv6 doit l'encadrer par les caractères crochets ([ ]). Indiquer la syntaxe de la commande curl utilisée.

root@PC1::c1:~# curl http://[ADDR6]

Avec ADDR6, l'adresse routable du serveur web qui est localisé sur le noeud SRV-3, soit fd75:e4d9:cb77:3::c3.

root@PC-1::c1:~# curl http://[fd75:e4d9:cb77:3::c3]
 
 .
 . code source de la page d'index du serveur
 .

root@PC-1::c1:~#

En fait, il est assez fastidieux pour un utilisateur de manipuler des adresses IPv6. Il est en effet bien plus aisé d'utiliser le service de noms. Ce service se charge de traduire (on parle de résoudre) le nom en adresse IPv6. C'est l'application, ici le coté client qui se charge d'invoquer le service de noms.

Nota : Le service de nommage DNS et de son focntionnement seront détaillés dans la séquence 3 de ce cours.

Refaire le téléchargement de la page d'accueil du serveur web en spécifiant non plus une adresse dans l'URL mais le nom du serveur web qui, sur notre plateforme de tp est : srv.tp. Indiquer la syntaxe de la commande curl pour réaliser ce transfert en IPv6.

root@PC-1::c1:~# curl http://...

avec nom le nom du serveur web.

root@PC-1::c1:~# curl http://srv.tp
 
 .
 . code source de la page d'index du serveur
 .

root@PC-1::c1:~#

Dans ce dernier cas, vous pouvez remarquer que l'utilisation de communications au moyen d'IPv6 est ici similaire à la situation de l'Internet que vous connaissez. IPv6 reste complétement transparent à l'utilisateur. Nous verrons dans la dernière séquence de ce cours que les choses se compliquent lorsque des éléments de l'Internet sont encore en IPv4.

Etape 4 : Echanges en multi-diffusion (multicast)

Nous n'allons pas ici étudier le système de communication en multicast. Cela demande toute une "tuyauterie" qui dépasse le cadre de ce cours. Nous proposons juste de montrer l'utilisation de communications en multicast.

Nous allons commencer par déterminer les adresses multicasts attribuées aux interfaces d'un noeud. Dans le cas d'un hôte comme celui de PC-1, vous allez afficher les adresses attribuées à l'interface Ethernet de cette machine. Ceci s'effectue par la commande:

 root@PC-1::c1:~# ip maddr show 
 root@PC-1::c1:~# ip -6 maddr show 

Vous pouvez constater que l'interface eth0 de ce noeud possède plusieurs adresses IPv6 multicast :

  • l'adresse ff02::1 représente l'adresse multicast tous les noeuds du lien (All Nodes) de portée locale au lien. Tous les noeuds d'un lien recoivent sur cette adresse.
  • l'adresse ff01::1 de portée "noeud" représente toutes les interfaces du noeud.
  • l'adresse ff02::1:ff00:c1 représente l'adresse multicast de sollicitation du noeud (sollicited-node address) correspondant à l'adresse ULA de PC-1 (fd75:e4d9:cb77:1::c1). Le préfixe réservé de cette adresse est ff02::1:ff00:0/104. Les 24 bits manquants sont extraits des bits de poids faible de l'adresse unicast du noeud.
  • l'adresse ff02::1:ffda:4c10 représente l'adresse multicast de sollicitation du noeud (sollicited-node address) correspondant à l'adresse LLA de PC-1 (fe80::5433:bfff:feda:4c10). Le préfixe réservé de cette adresse est ff02::1:ff00:0/104. Les 24 bits manquants sont extraits des bits de poids faible de l'adresse LLA du l'interface eth0.

Faites la commande d'affichage des adresses multicasts, sur le routeur R1:

vyos@r1::~$ show interfaces detail
vyos@r1::~$ show ipv6 groups

Vous allez voir que le routeur s'est vu attribué une adresses multicast supplémentaires, sur les portées 1,2 et 5 sur l'interface eth0 (indice : l'identificateur de groupe est à 2). Quel est le nom de cette adresse et quel est son usage ?

Pour vous aider à répondre à cette question, outre le cours, vous pouvez consulter le registre des adresses IPv6 multicast http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml

Nous allons voir maintenant si les noeuds répondent à une sollicitation sur l'adresse multicast. Pour cela nous allons utiliser la commande ping6 qui sert à effectuer un test d'accessibilité à savoir si une adresse IPv6 donnée est bien attribuée sur le réseau autrement dit qu'il existe une interface avec l'adresse IP en question. ping6 envoi un message particulier de sollicitation à l'adresse identifiant une interface réseau. Si cette interface est active et accessible, elle recevra le message émis et renverra une réponse à l'émetteur. Ces réponses sont reçues par la commande ping6 et les affiche sur le terminal.

Depuis PC-1, commençons par un test avec l'adresse "All Nodes":

root@PC-1:c1:~# ping6 -c 2 ff02::1%eth0
PING ff02::1%eth0(ff02::1) 56 data bytes
64 bytes from fe80::5433:bfff:feda:4c10: icmp_seq=1 ttl=64 time=0.053 ms
64 bytes from fe80::e49:aff:fe42:7b00: icmp_seq=1 ttl=64 time=2.26 ms (DUP!)
64 bytes from fe80::5433:bfff:feda:4c10: icmp_seq=2 ttl=64 time=0.130 ms

--- ff02::1%eth0 ping statistics ---
2 packets transmitted, 2 received, +1 duplicates, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.053/0.816/2.265/1.025 ms
root@PC-1:c1:~#

Nota

Le paramètre -c 2 permet de demander l'émission de 2 messages successifs vers la destination All Nodes (ff02::1 sur l'interface eth0) : messages icmp_seq-1 et icmp_seq-2. Si on ne demandait qu'un seul message ( paramètre -c 1), les réponses multiples (marquées "DUP!") étant filtrées à l'affichage, on ne pourrait pas constater que tous les nœuds du lien ont répondu.


Le résultat vous montre que 2 réponses ont été obtenues pour une seule sollicitation d'émise. Les adresses sources sont des adresses lien-local. Vous reconnaitrez les adresses sources de PC-1 et de R1 sur le lien Net 1.

Bien que le caractère multicast va être moins évident à montrer avec l'adresse multicast "All Routers" vu qu'il n'y a qu'un seul routeur sur le lien Net 1, vous pouvez néanmoins faire un test d'accessibilité de la manière suivante sur PC-1:

root@PC-1::c1:~$ ping6 -c 2 ff02::2%eth0

Comme prévu, le routeur R1 répond à la sollicitation. Ces 2 adresses multicast vont servir à la découverte des noeuds ou de routeurs IPv6 sur un lien.

Cette étape a été une première initiation à la communication en multicast. Si vous voulez en savoir plus sur le fonctionnement du multicast IP, il existe une littérature abondante, nous vous renvoyons aux références citées à la fin de l'activité "adresses Multicast" de ce cours.

Arrêt/Pause du simulateur

Au besoin vous pouvez aussi figer l'exécution des équipements avec le bouton Pause "Suspend all nodes", voire arrêter les équipements avec le bouton Stop "Stop all nodes".

L'état des équipements est sauvegardé en quittant. Pour quitter proprement GNS3, faire CTRL+Q ou faire, avec le menu déroulant File et l'action Quit.

Conclusion

Par cette première séquence du MOOC IPv6, vous avez pu découvrir l'usage de l'Internet en IPv6 et vous familiariser avec le format des adresses IPv6. Si le format de ces nouvelles adresses change quelque peu les habitudes prise avec l'adressage IPv4. Il n'en est rien pour l'utilisateur du réseau. L'usage de l'Internet en IPv6 lui est transparent. Nous verrons par la suite que la présence d'IPv4 dans l'Internet vient compliquer cette transparence.

Personal tools