MOOC:Compagnon Act26
From Livre IPv6
Activité 26 : Etudiez le fonctionnement du protocole d’IPv6
Après avoir vu comment un réseau en IPv6 s'utilise dans la première activité pratique, dans cette seconde activité pratique, nous allons voir comment il fonctionne. Vous pourrez ainsi constater que les principes de son fonctionnement sont très similaire à ceux d'IPv4. Nos objectifs sont ici :
- mettre en oeuvre une capture de paquets IPv6,
- analyser le format des paquets IPv6,
- découvrir le routage des paquets dans un réseau IPv6,
- observer la fragmentation d'un paquet IPv6
Les différentes étapes dans cette activité vont vous permettre d'observer les communications locales au lien et des communications impliquant plusieurs liens. Le réseau de la plateforme est similaire à celui de l'activité précédente comme le montre la figure 1. Il comporte 4 noeuds 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.
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 la plateforme
Démarrer la machine virtuelle "MOOC_IPv6_Lab_Session3". Une fois que la machine virtuelle Debian a démarré, vous voyez, sur le bureau, des dossiers prêts pour les 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, appliquer la taille la mieux adaptée à votre écran, puis conserver les modifications si cela convient.
Double-cliquer sur le dossier "MOOC_IPV6_TP2", puis sur l'icône "TP2_Etape0"
Attendre que la fenêtre TP_IPv6.gns3 -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.
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 Device.
Une fois que vous aurez bien identifié les numéros d'interfaces des 6 liaisons, nous pouvons constater ceci :
- 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.
- PC2 - SW3 - R2 : les interfaces eth0 de PC2 et R2 sont reliées à travers un commutateur Ethernet SW3.
Activation des équipements
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".
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 tous les noeuds sont actifs, 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 4.
Les consoles de contrôle dites 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 (le temps de démarrage dépendant des capacités de votre machine: compter quelques minutes). Comptez entre trois et dix minutes, parfois plus. Une fois que tous les noeuds ont leur console avec l'invite pour se connecter comme le montre la figure 4, votre plateforme de réseau est dorénavant opérationnelle.
Arrêt/Pause de GNS3
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".
Faire CTRL+S si vous souhaitez sauvegarder l'état des équipements. Pour quitter proprement GNS3, faire CTRL+Q ou faire, avec le menu déroulant File, l'action Quit.
Etape 1: Format d'un paquet
Situation initiale
- Le réseau est opérationnel: interfaces configurées, routes actives
- le routeur R2 n'a pas de route pour joindre Net 1
- Les serveurs sont nommés dans le DNS
- Le serveur web et DNS sont actifs
Actions
- L'apprenant effectue un echange UDP par netcat entre 2 noeuds voisins
- Il effectue une capture du paquet
- Il examine le format du paquet et les encapsulations.
- Il effectue un échange TCP avec de R1 à PC2 et analyse les encaspulations
- Il affiche les états de la communication sur le client et le serveur (netstat)
- Il affiche la table de routage
Etape 2: Routage et acheminement d'un paquet
Introduire une analyse de problème de routage dû à une route manquante. Objectif passer progressivement de l’observation à l’action
Actions
- L'apprenant effectue un échange UDP par netcat entre 2 hôtes
- L'apprenant effectue un échange WEB entre PC1 et PC2
- Il doit identifier quel est le problème. La page web ne s'affiche pas. On lui propose une demarche pour arriver à identifier le problème
- Vérifier l'accessibilité par ping (voir que PC1 et PC2 ne se ping pas)
- Il affiche la route à l'aide de traceroute de PC1 puis de PC2. Vérifier le routage par traceroute (voir que le problème se situe entre R1 et R2)
- Observer les messages échangés par wireshark lors de ces tests. Il effectue une écoute sur net0 pour voir si les paquets du traceroute circulent. Il soit voir les paquets arriver sur R2 Mais R2 n'envoie pas de paquet vers R1. (ping de PC1 arrive jusqu’à PC2, mais que le retour s’arrête à R2)
- Il consulte la table de routage de R2 pour expliquer le pb. Il constate qu'il manque la route pour joindre net1. En déduire que R2 ne sais pas router les paquets jusq’à PC1
- Il ajoute une route dans R2 et vérifie que le web fonctionne.
- IL souligne la présence de la route par défaut sur les hôtes PC1 et PC2
- Il capture un paquet sur chaque lien pour voir l'encapsulation désencapsulation du paquet dans la trame.
- Il examine les paquets désassemblés et analyse l'evolution du champ hop limit
- il affiche l'etat des interfaces et les états de la communication
Etape 3: Fonction de fragmentation
Actions
- L'apprenant change la MTU sur le lien R1-R2
- L'apprenant effectue un test d'accessibilité est effectué entre PC1 et PC2 en changeant la taille des paquets
- Il capture le trafic généré par ses tests d'accessibilté.
- Il analyse l'extension de fragmentation d'IPv6
- Il détermine le noeud en charge de la fragmentation en capturant le trafic sur le lien PC1-R1
Notre plateforme dispose de l'analyseur de protocoles Wireshark. Il est possible de l'utiliser sur les points de connexions symbolisés par un point vert sur la topologie pour lancer une capture.
Pour lancer une capture, allez dans la fenêtre à droite "Topology Summary", puis appuyez sur le + d'un élément réseau. Choisissez une interface : elle passe en rouge sur la fenêtre centrale. Ensuite, avec un clic-droit, vous pouvez lancer une capture sur ce lien en choisissant "Start capture".
L'arrêt des captures est possible, toujours depuis cette fenêtre "Topology Summary", en choisissant "Stop all captures".
Vous pouvez, par exemple, réaliser une capture des paquets circulant entre R1 et R2 alors que vous lancez un test de connectivité entre PC1 et PC2.
- Lancez Wireshark sur VyOS-Router-2 avec le lien e1<->2SW1.
Allez dans la fenêtre "Topology Summary" puis appuyez sur le + de VyOS-Router-2. Cliquez sur le lien e1<->2SW1 puis clic-droit et choisissez "Start capture".
- Ping de PC1 -> PC2
Depuis le shell de PC1, lancer un ping vers PC2.
apprenant@MOOCIPv6:~$ ping -6 -c 5 fd75:e4d9:cb77:0002::c2
Prenez soin d'arrêter la capture avant d'aller explorer le résultat de l'analyse : dans la fenêtre "Topology Summary", sous VyOS-Router-2, cliquez sur le lien e1<->2SW1 puis clic-droit et choisissez "Stop capture".
Vous pouvez explorer les différents champs des paquets IPv6 et, par exemple, découvrir que la valeur du champ Hop Limit est à 63.
- Ping de PC1 -> PC2
Relancez la capture : lancez Wireshark sur VyOS-Router-2 avec le lien e1<->2SW1. Allez dans la fenêtre "Topology Summary" puis appuyez sur le + de VyOS-Router-2. Cliquez sur le lien e1<->2SW1 puis clic-droit et choisissez "Start capture".
Depuis le shell de PC1, essayez de joindre PC2.
apprenant@MOOCIPv6:~$ ping -6 -c 1 -s 3000 fd75:e4d9:cb77:0002::c2
Prenez soin d'arrêter la capture avant d'aller explorer le résultat de l'analyse : dans la fenêtre "Topology Summary", sous VyOS-Router-2 cliquez sur le lien e1<->2SW1 puis clic-droit et choisissez "Stop capture".
Reprenez la même procédure que précédemment, et concentrez-vous sur le champ Next Header ainsi que sur le codage de l'extension Fragmentation.
Pouvez-vous expliquer pourquoi il faut 3 paquets IPv6 pour transporter les requêtes ICMPv6 Request et Reply de 3000 octets ? Quelle est la taille des données transportées dans chaque paquet ? Quelle est la taille de l'entête IPv6 dans ce cas ?
Compost
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é > _ "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.
Testez la connectivité depuis chaque PC
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
apprenant@MOOCIPv6:~$ ifconfig
Faites quelques tests de connectivité depuis PC1 avec la commande ping6.
Vers l'interface eth0 de R1
ping6 fd75:e4d9:cb77:1::ffff
Vers l'interface eth1 de R1
ping6 fd75:e4d9:cb77::1
Vers l'interface eth0 de R2
ping6 fd75:e4d9:cb77:2::ffff
Vers l'interface eth0 de PC2
ping6 fd75:e4d9:cb77:2::c2
Quelle(s) destination(s) avez vous réussie(s) à joindre avec la commande ping ?
Arrêt/Pause du simulateur
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".
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.
Pour les hôtes PC1 et PC2
Pour vous loguer sur les stations PC1 et PC2, les identifiant/mot de passe sont apprenant'/' (pas de mot de passe).
Vérifiez la configuration réseau.
apprenant@MOOCIPv6:~$ ifconfig apprenant@MOOCIPv6:~$ route -A inet6
Activez l'interface eth0.
apprenant@MOOCIPv6:~$ sudo ifconfig eth0 up
Vérifiez la configuration réseau.
apprenant@MOOCIPv6:~$ ifconfig apprenant@MOOCIPv6:~$ route -A inet6
Vous devez apercevoir qu'une adresse IPv6 lien-local (fe80:...) a été attribuée à l'interface de chaque PC.
Configurez l'adresse globale sur le PC1.
apprenant@MOOCIPv6:~$ sudo ifconfig eth0 fd75:e4d9:cb77:1::c1/64
Configurez l'adresse globale sur le PC2.
apprenant@MOOCIPv6:~$ sudo ifconfig eth0 fd75:e4d9:cb77:2::c2/64
Testez la connectivité
Après avoir repéré les adresses réseaux des routeurs et des PC, vous devez pouvoir vérifier que la connectivité est opérationnelle.
- PC1 - R1
Depuis le shell de PC1, essayez de joindre R1.
apprenant@MOOCIPv6:~$ ping -6 -c 5 fd75:e4d9:cb77:1::ffff
Nota : comme on utilise des adresses routables, et non pas des adresses lien-local (LLA), on ne spécifie pas l'interface de sortie ; cette dernière est indiquée automatiquement dans la table de routage.
- PC2 - R2
Depuis le shell de PC2, essayez de joindre R2.
apprenant@MOOCIPv6:~$ ping -6 -c 5 fd75:e4d9:cb77:2::ffff
- R1 - R2, puis R1 - PC1
Depuis le routeur R1, essayez de joindre PC1 et R2.
vyos# ping ipv6 fd75:e4d9:cb77:0001::c1 vyos# ping ipv6 fd75:e4d9:cb77:0000::2
Nota : comme on utilise des adresses routables, et non pas des adresses lien-local (LLA), on ne spécifie pas l'interface de sortie ; cette dernière est indiquée automatiquement dans la table de routage.
- R2 - R1 puis R2 - PC2
Depuis le routeur R2, essayez de joindre PC2 et R1.
vyos# ping ipv6 fd75:e4d9:cb77:0002::c2 vyos# ping ipv6 fd75:e4d9:cb77:0000::1
En principe, cela doit fonctionner en local. Par contre, si on essaie de joindre des adresses au-delà des routeurs, vous devez être en échec tant que le routage n'est pas activé ; ce que nous devons faire dans la prochaine étape.
- PC1 - R1
Depuis le shell de PC1, essayez de joindre les adresses de R1.
apprenant@MOOCIPv6:~$ ping -6 -c 5 fd75:e4d9:cb77:0001::ffff apprenant@MOOCIPv6:~$ ping -6 -c 5 fd75:e4d9:cb77:0::1
- PC2 - R2
Depuis le shell de PC2, essayez de joindre R2.
apprenant@MOOCIPv6:~$ ping -6 -c 5 fd75:e4d9:cb77:0002::ffff apprenant@MOOCIPv6:~$ ping -6 -c 5 fd75:e4d9:cb77:0::2
- R2 - R1 puis R2 - PC1
Depuis le routeur R2, essayez de joindre R1 et PC1.
vyos# ping ipv6 fd75:e4d9:cb77:0000::1 vyos# traceroute ipv6 fd75:e4d9:cb77:0001::c1
- PC1 - PC2
Depuis le shell de PC1, essayez de joindre PC2.
apprenant@MOOCIPv6:~$ ping -6 -c 5 fd75:e4d9:cb77:2::c2
apprenant@MOOCIPv6:~$ sudo route -A inet6 add ::/0 gw fd75:e4d9:cb77:1::ffff
Vérifiez la configuration réseau.
apprenant@MOOCIPv6:~$ route -A inet6
- La route par défaut (destination ::/0) doit être visible maintenant.
Nota : pour améliorer la lisibilité de la table de routage de PC1, vous serez peut être amené à agrandir la fenêtre de la console avant de lancer la commande précédente, de manière à afficher une entrée de la table de routage par ligne.
Configuration du routage sur PC2 : ajout d'une route par défaut vers R2.
apprenant@MOOCIPv6:~$ sudo route -A inet6 add ::/0 gw fd75:e4d9:cb77:2::ffff
Vérifiez la configuration réseau.
apprenant@MOOCIPv6:~$ route -A inet6
- La route par défaut (destination ::/0) doit être visible maintenant.
Nota : pour améliorer la lisibilité de la table de routage de PC1, vous serez peut être amené à agrandir la fenêtre de la console avant de lancer la commande précédente, de manière à afficher une entrée de la table de routage par ligne.
Configuration du routage sur PC1 : ajout d'une route par défaut vers R1.
Depuis les PC, essayez de joindre les routeurs.
apprenant@MOOCIPv6:~$ ping -6 -c 5 fe80::...%eth0
Nota : lorsque 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.
Depuis les routeurs, essayez de joindre les PC.
vyos@vyos:~$ vtysh vyos# ping ipv6 fe80::...%eth0
Nota : pour stopper la commande ping : Ctrl+C (appui simultané sur les touches Ctrl et C.
Conclusion
Grâce à cette deuxième séquence du Mooc IPv6 vous avez découvert et appréhendé différents aspects du protocole:
- Après avoir passé en revue le format de l’en-tête des paquets IPv6,
- Vous avez compris l'importance des mécanismes d’encapsulation,
- Vous avez intégré les principes de routage,
- Vous avez appréhendé les extensions de l’en-tête IPv6
- Enfin après avoir mis en oeuvre une configuration simplifiée
Dorénavent vous êtes aptes à approfondir d'autres mécanismes importants pour faciliter l'intégration du protocole dans toutes les infrastructures où IPv6 sera utile d'être déployer. C'est bien ce que vous allez découvrir dans les prochaines séquences.