Difference between revisions of "MOOC:Support Act36"
From Livre IPv6
(→Etape 4 : Configuration de résolution récursif par DHCPv6) |
(→Vérifier la configuration initiale du réseau) |
||
(48 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | |||
− | = | + | = Activité 36: Configurez un réseau IPv6 administré = |
− | L'objectif de cette activité pratique est de mettre en oeuvre un réseau IPv6 d'une façon proche de l'opérationnel. L'activité précédente vous a permis de configurer un réseau IPv6 de manière statique. Si cette méthode | + | L'objectif de cette activité pratique est de mettre en oeuvre un réseau IPv6 d'une façon proche de l'opérationnel. L'activité précédente vous a permis de configurer un réseau IPv6 de manière statique. Si cette méthode aboutit à un résultat fonctionnel, il n'est pas envisageable de l'appliquer à l'échelle d'un réseau de production ; la tâche de configuration du réseau devenant alors trop importante si le nombre de machines grandit. |
− | Les réseaux IPv6 opérationnels utilisent les mécanismes de configuration automatique des paramètres réseau pour simplifier la tâche de l'administrateur et améliorer l'expérience de l'utilisateur. Vous allez dans cette activité configurer un réseau pour mettre en oeuvre : | + | Les réseaux IPv6 opérationnels utilisent les mécanismes de configuration automatique des paramètres réseau pour simplifier la tâche de l'administrateur et améliorer l'expérience de l'utilisateur. Vous allez, dans cette activité, configurer un réseau pour mettre en oeuvre : |
− | * l'auto-configuration sans état à travers la découverte des voisins | + | * l'auto-configuration '''sans état''' à travers la découverte des voisins ; |
* la configuration avec état par le protocole DHCPv6. | * la configuration avec état par le protocole DHCPv6. | ||
− | |||
La topologie du réseau que vous allez utiliser est identique à l'activité pratique de la séquence 2. Les 3 réseaux seront considérés de la façon suivante : | La topologie du réseau que vous allez utiliser est identique à l'activité pratique de la séquence 2. Les 3 réseaux seront considérés de la façon suivante : | ||
− | * le réseau R1-R2 est un sous-réseau d'infrastructure | + | * le réseau R1-R2 est un sous-réseau d'infrastructure. Les mécanismes d'auto-configuration ne s'y appliquent pas ; |
− | * les réseaux R1-PC1 et R2-PC2 sont 2 sous-réseaux destinés à recevoir des stations | + | * les réseaux R1-PC1 et R2-PC2 sont 2 sous-réseaux destinés à recevoir des stations. Les protocoles de configuration automatique y seront déployés. |
<center> | <center> | ||
Line 21: | Line 19: | ||
Le plan d'adressage pour les réseaux est identique à celui de l'activité précédente. Le préfixe <tt>fd75:e4d9:cb77::/48</tt> disponible pour notre plateforme a été divisé de la manière suivante : | Le plan d'adressage pour les réseaux est identique à celui de l'activité précédente. Le préfixe <tt>fd75:e4d9:cb77::/48</tt> disponible pour notre plateforme a été divisé de la manière suivante : | ||
− | * le préfixe <tt>fd75:e4d9:cb77::/64</tt> est utilisé pour le sous-réseau d'infrastructure | + | * le préfixe <tt>fd75:e4d9:cb77::/64</tt> est utilisé pour le sous-réseau d'infrastructure ; |
− | * le préfixe <tt>fd75:e4d9:cb77:1::/64</tt> est utilisé pour le sous-réseau R1-PC1 | + | * le préfixe <tt>fd75:e4d9:cb77:1::/64</tt> est utilisé pour le sous-réseau R1-PC1 ; |
− | * le préfixe <tt>fd75:e4d9:cb77:2::/64</tt> est utilisé pour le sous-réseau R2-PC2 | + | * le préfixe <tt>fd75:e4d9:cb77:2::/64</tt> est utilisé pour le sous-réseau R2-PC2. |
− | Vous allez dans une première étape configurer le sous-réseau R1-PC1 pour mettre en oeuvre la configuration sans état. La seconde étape consistera à déployer le protocole DHCPv6 sur le sous-réseau R2-PC2. Pour la troisième étape, PC2 sera configuré pour servir de serveur DNS pour la plateforme. La disponibilité du service de nommage sera | + | Vous allez, dans une première étape, configurer le sous-réseau R1-PC1 pour mettre en oeuvre la configuration '''sans état'''. La seconde étape consistera à déployer le protocole DHCPv6 sur le sous-réseau R2-PC2. Pour la troisième étape, PC2 sera configuré pour servir de serveur DNS pour la plateforme. La disponibilité du service de nommage sera distribuée sur les différents sous-réseaux en utilisant DHCPv6 dans la quatrième étape. |
== Etape 1 : Configurer l'auto-configuration sur le réseau R1-PC1 == | == Etape 1 : Configurer l'auto-configuration sur le réseau R1-PC1 == | ||
=== Démarrer la plateforme === | === Démarrer la plateforme === | ||
− | # Démarrer la machine virtuelle '''MOOC_IPv6_Debian''' | + | # Démarrer la machine virtuelle '''MOOC_IPv6_Debian'''. |
− | # Ouvrir le dossier '''TP3''' sur le bureau et double-cliquer sur l'icône '''Etape0''' | + | # Ouvrir le dossier '''TP3''' sur le bureau et double-cliquer sur l'icône '''Etape0'''. |
− | # Démarrer les machines de la plateforme par le bouton '''Start''' (icône triangle vert) et ouvrir les consoles des machines | + | # Démarrer les machines de la plateforme par le bouton '''Start''' (icône triangle vert) et ouvrir les consoles des machines. |
=== Vérifier la configuration initiale du réseau === | === Vérifier la configuration initiale du réseau === | ||
− | Sur '''R1''', vérifier que l'interface <tt>eth0</tt> est '''activée''' | + | Sur '''R1''', vérifier que l'interface <tt>eth0</tt> est '''activée'''. |
vyos@vyos:~$ '''show interfaces detail''' | vyos@vyos:~$ '''show interfaces detail''' | ||
Les interfaces <tt>eth0</tt> et <tt>eth1</tt> doivent être activées et configurées. | Les interfaces <tt>eth0</tt> et <tt>eth1</tt> doivent être activées et configurées. | ||
− | Sur '''PC1''', vérifier que l'interface <tt>eth0</tt> de PC1 ''' | + | Sur '''PC1''', vérifier que l'interface <tt>eth0</tt> de PC1 est '''désactivée''' |
apprenant@MOOCIPv6:~$ '''ifconfig''' | apprenant@MOOCIPv6:~$ '''ifconfig''' | ||
Seule l'interface <tt>lo</tt> doit s'afficher. | Seule l'interface <tt>lo</tt> doit s'afficher. | ||
− | Lancer la capture réseau sur le réseau R1-PC1 | + | Lancer la capture réseau sur le réseau R1-PC1. |
− | # Faire un clic-droit sur l'une des interfaces du switch ''' | + | # Faire un clic-droit sur l'une des interfaces du switch '''SW2'''. |
− | # Choisir dans le menu '''Start Network Capture''' | + | # Choisir dans le menu '''Start Network Capture'''. |
− | # L'outil de capture réseau doit s'afficher | + | # L'outil de capture réseau doit s'afficher. |
=== Configurer les annonces de routeur sur R1 === | === Configurer les annonces de routeur sur R1 === | ||
− | La configuration automatique sans état est contrôlée par la diffusion sur le réseau des messages d'annonce de routeur (''Routeur Advertisement'' ou RA). Le routeur de ce réseau étant R1, c'est à lui de diffuser ces messages. Vous allez maintenant activer la diffusion des messages d'annonce sur l'interface <tt>eth0</tt> du routeur R1. | + | La configuration automatique '''sans état''' est contrôlée par la diffusion, sur le réseau, des messages d'annonce de routeur (''Routeur Advertisement'' ou RA). Le routeur de ce réseau étant R1, c'est à lui de diffuser ces messages. Vous allez maintenant activer la diffusion des messages d'annonce sur l'interface <tt>eth0</tt> du routeur R1. |
vyos@vyos:~$ '''vtysh''' | vyos@vyos:~$ '''vtysh''' | ||
Line 66: | Line 64: | ||
Analyser dans l'outil de capture le contenu des messages d'annonce de routeur pour identifier : | Analyser dans l'outil de capture le contenu des messages d'annonce de routeur pour identifier : | ||
− | * | + | * la source du message ; |
− | * | + | * la destination du message ; |
− | * | + | * le protocole utilisé pour le transport des annonces au dessus d'IPv6 ; |
− | * | + | * la valeur de la durée de validité de l'annonce ; |
− | * | + | * le préfixe annoncé sur le réseau ; |
− | * | + | * la valeur des durées de préférence et de validité du préfixe. |
=== Connecter PC1 au réseau === | === Connecter PC1 au réseau === | ||
Line 83: | Line 81: | ||
Quelles sont les configurations que PC1 a pu automatiquement effectuer grâce à la configuration sans état ? | Quelles sont les configurations que PC1 a pu automatiquement effectuer grâce à la configuration sans état ? | ||
− | Dans l'outil de capture, | + | Dans l'outil de capture, analysez les échanges entre '''R1''' et '''PC1''' pour identifier : |
− | * | + | * les messages envoyés par PC1 pour solliciter la configuration '''sans état''' ; |
− | * | + | * les messages envoyés par R1 en réponse à ces sollicitations ; |
− | * | + | * les messages envoyés par PC1 pour valider les paramètres réseau configurés automatiquement. |
Valider la configuration en testant l'accessibilité de '''R1''' et '''R2''' depuis '''PC1'''. | Valider la configuration en testant l'accessibilité de '''R1''' et '''R2''' depuis '''PC1'''. | ||
− | apprenant@MOOCIPv6:~$ '''ping6 fd75:e4d9:cb77:1::ffff''' | + | apprenant@MOOCIPv6:~$ '''ping6 -c 5 fd75:e4d9:cb77:1::ffff''' |
− | apprenant@MOOCIPv6:~$ '''ping6 fd75:e4d9:cb77::1''' | + | apprenant@MOOCIPv6:~$ '''ping6 -c 5 fd75:e4d9:cb77::1''' |
− | apprenant@MOOCIPv6:~$ '''ping6 fd75:e4d9:cb77::2''' | + | apprenant@MOOCIPv6:~$ '''ping6 -c 5 fd75:e4d9:cb77::2''' |
− | '''Note | + | '''Note'''. - Si vous rencontrez des problèmes sur les configurations de cette étape et n'arrivez pas à valider les configurations, vous pouvez étudier une configuration fonctionnelle en démarrant la plateforme par l'icône '''Etape1''' disponible dans le dossier '''TP3''' sur le bureau de la machine virtuelle. Vous pourrez ensuite commencer l'étape 2 à partir de cette configuration. Afin de ne pas surcharger votre machine virtuelle, il est conseillé de ne pas lancer '''Etape1''' sans avoir au préalable stoppé '''Etape0'''. |
− | == Etape 2 : Configurer PC2 par la configuration automatique avec état == | + | == Etape 2 : Configurer PC2 par la configuration automatique ''avec état'' == |
− | Vous allez maintenant mettre en oeuvre la configuration automatique avec état sur le sous-réseau R2-PC2. | + | Vous allez maintenant mettre en oeuvre la configuration automatique '''avec état''' sur le sous-réseau R2-PC2. À l'instar de la configuration automatique '''sans état''', ce mode de configuration permet de centraliser les paramètres réseau sur un équipement administré et d'automatiser leur mise en oeuvre sur la station se connectant au réseau. |
− | La configuration avec état permet par contre à l'administrateur de mieux contrôler les adresses configurées par cette méthode. Il va ainsi pouvoir indiquer explicitement quelles adresses seront attribuées aux interfaces. Les adresses configurées au moment de la connexion sont donc stables, prévisibles et connues avant la première connexion de la station. | + | La configuration '''avec état''' permet par contre, à l'administrateur, de mieux contrôler les adresses configurées par cette méthode. Il va ainsi pouvoir indiquer explicitement quelles adresses seront attribuées aux interfaces. Les adresses configurées au moment de la connexion sont donc stables, prévisibles et connues avant la première connexion de la station. |
Dans cette activité pratique, vous allez utiliser ce mode de configuration pour PC2, qui va tenir lieu dans la suite de serveur de noms. L'adresse d'un tel serveur étant par la suite à configurer sur les autres machines de la plateforme, la stabilité de cette adresse est donc fortement recommandée. | Dans cette activité pratique, vous allez utiliser ce mode de configuration pour PC2, qui va tenir lieu dans la suite de serveur de noms. L'adresse d'un tel serveur étant par la suite à configurer sur les autres machines de la plateforme, la stabilité de cette adresse est donc fortement recommandée. | ||
Les fonctions du protocole DHCPv6 seront réparties sur le réseau de la manière suivante : | Les fonctions du protocole DHCPv6 seront réparties sur le réseau de la manière suivante : | ||
− | * le serveur DHCPv6 sera déployé sur '''R2''' | + | * le serveur DHCPv6 sera déployé sur '''R2''' ; |
* le client DHCPv6 sera déployé sur '''PC2'''. | * le client DHCPv6 sera déployé sur '''PC2'''. | ||
L'étape 4 permettra de voir la mise en oeuvre d'un relai DHCPv6. | L'étape 4 permettra de voir la mise en oeuvre d'un relai DHCPv6. | ||
Line 115: | Line 113: | ||
Le serveur DHCPv6 a la possibilité d'attribuer les adresses selon 2 modes : | Le serveur DHCPv6 a la possibilité d'attribuer les adresses selon 2 modes : | ||
− | * Statique : les adresses sont fixées au préalable par machine en fonction de leur DUID | + | * Statique : les adresses sont fixées au préalable par machine en fonction de leur DUID ; |
− | * Dynamique : l'adresse à attribuer est choisie à la première requête dans une plage d' | + | * Dynamique : l'adresse à attribuer est choisie à la première requête dans une plage d'adresses définie par l'administrateur. L'attribution sera ensuite enregistrée pour les prochaines demandes. |
C'est le second mode d'attribution que vous allez mettre en oeuvre pour configurer le serveur DHCPv6 sur R2. | C'est le second mode d'attribution que vous allez mettre en oeuvre pour configurer le serveur DHCPv6 sur R2. | ||
− | La plage d' | + | La plage d'adresses disponibles pour l'attribution dynamique va s'étendre sur les 16 adresses possibles sur le préfixe <tt>fd75:e4d9:cb77:2::c0/124</tt>. La première adresse disponible sera donc <tt>fd75:e4d9:cb77:2::c0</tt>, la dernière <tt>fd75:e4d9:cb77:2::cf</tt>. |
− | Le serveur DHCPv6 sous VyOS est un service qui se configure en mode | + | Le serveur DHCPv6 sous VyOS est un service qui se configure en mode '''administrateur''' : |
vyos@vyos:~$ '''configure''' | vyos@vyos:~$ '''configure''' | ||
vyos@vyos# '''set service dhcpv6-server shared-network-name LAN subnet fd75:e4d9:cb77:2::/64 address-range start fd75:e4d9:cb77:2::c0 stop fd75:e4d9:cb77:2::cf''' | vyos@vyos# '''set service dhcpv6-server shared-network-name LAN subnet fd75:e4d9:cb77:2::/64 address-range start fd75:e4d9:cb77:2::c0 stop fd75:e4d9:cb77:2::cf''' | ||
Line 127: | Line 125: | ||
La ligne configurant le service définit : | La ligne configurant le service définit : | ||
− | * par le mot clé <tt> shared-network-name</tt> un identifiant pour le sous-réseau correspondant à la configuration | + | * par le mot clé <tt> shared-network-name</tt>, un identifiant pour le sous-réseau correspondant à la configuration ; |
− | * par le mot clé <tt>subnet</tt> un préfixe IPv6 permettant de déterminer l'interface sur lequel s'applique la configuration | + | * par le mot clé <tt>subnet</tt>, un préfixe IPv6 permettant de déterminer l'interface sur lequel s'applique la configuration ; |
− | * par les mots clés <tt>address-range start ... stop</tt> la plage d'adresse pour l'attribution dynamique | + | * par les mots clés <tt>address-range start ... stop</tt>, la plage d'adresse pour l'attribution dynamique. |
La configuration générée par la commande peut être vérifiée par la commande | La configuration générée par la commande peut être vérifiée par la commande | ||
− | vyos@vyos# '''show | + | vyos@vyos# '''show service'''. |
− | La configuration automatique avec état nécessite toujours la diffusion des annonces de routeur, ne serait-ce que pour annoncer l'adresse du routeur par défaut. Il faut donc | + | Lancer la capture sur le réseau R2-PC2. |
+ | |||
+ | La configuration automatique '''avec état''' nécessite toujours la diffusion des annonces de routeur, ne serait-ce que pour annoncer l'adresse du routeur par défaut. Il faut donc activer sur '''R2''' les annonces de routeurs. Ces messages vont de plus présenter 2 drapeaux (''flags'') spécifiques à l'auto-configuration '''avec état''' : | ||
vyos@vyos:~$ '''vtysh''' | vyos@vyos:~$ '''vtysh''' | ||
Line 143: | Line 143: | ||
vyos(config-if)# '''ipv6 nd managed-config-flag''' | vyos(config-if)# '''ipv6 nd managed-config-flag''' | ||
− | La commande <tt>ipv6 nd prefix</tt> présente l'option <tt>no-autoconfig</tt> pour interdire aux stations se connectant de configurer leurs adresses à partir de ce préfixe. La commande <tt>ipv6 nd managed-config-flag</tt> va permettre d'indiquer aux stations que la configuration automatique avec état est disponible sur ce réseau | + | La commande <tt>ipv6 nd prefix</tt> présente l'option <tt>no-autoconfig</tt> pour interdire aux stations se connectant de configurer leurs adresses à partir de ce préfixe. La commande <tt>ipv6 nd managed-config-flag</tt> va permettre d'indiquer aux stations que la configuration automatique '''avec état''' est disponible sur ce réseau. |
− | + | ||
− | + | ||
=== Connecter PC2 au réseau === | === Connecter PC2 au réseau === | ||
− | Activer l'interface <tt>eth0</tt> de '''PC2''' | + | Activer l'interface <tt>eth0</tt> de '''PC2'''. |
apprenant@MOOCIPv6:~$ '''sudo ifconfig eth0 up''' | apprenant@MOOCIPv6:~$ '''sudo ifconfig eth0 up''' | ||
− | Vérifier la configuration réseau de '''PC2''' | + | Dans la capture, vérifier le contenu des messages d'annonce de routeur, notamment les drapeaux ("Managed address configuration" de l'annonce et "Autonomous address-configurationflag(A) de l'option préfixe) qui ont été positionnés par la configuration précédente. |
+ | |||
+ | Vérifier la configuration réseau de '''PC2'''. | ||
apprenant@MOOCIPv6:~$ '''ifconfig''' | apprenant@MOOCIPv6:~$ '''ifconfig''' | ||
apprenant@MOOCIPv6:~$ '''route -A inet6''' | apprenant@MOOCIPv6:~$ '''route -A inet6''' | ||
− | Analyser les échanges entre '''R2''' et '''PC2''' dans l'outil de capture réseau. | + | Analyser les échanges entre '''R2''' et '''PC2''' dans l'outil de capture réseau. Expliquer les différences avec les échanges entre '''R1''' et '''PC1'''. |
− | '''PC2''' n'a pas encore configuré d'adresse IPv6 | + | '''PC2''' n'a pas encore configuré d'adresse IPv6 car le message d'annonce de routeur interdit la configuration automatique '''sans état'''. Le drapeau annonçant la configuration automatique '''avec état''' est censé indiquer à '''PC2''' d'initier une requête DHCPv6. Or, dans le système Linux, celle-ci doit encore être lancée manuellement. |
− | Lancer le client DHCPv6 sur '''PC2''' | + | Lancer le client DHCPv6 sur '''PC2'''. |
apprenant@MOOCIPv6:~$ '''sudo dhclient -6 eth0''' | apprenant@MOOCIPv6:~$ '''sudo dhclient -6 eth0''' | ||
− | Vérifier la configuration réseau de '''PC2''' | + | Vérifier la configuration réseau de '''PC2'''. |
apprenant@MOOCIPv6:~$ '''ifconfig''' | apprenant@MOOCIPv6:~$ '''ifconfig''' | ||
apprenant@MOOCIPv6:~$ '''route -A inet6''' | apprenant@MOOCIPv6:~$ '''route -A inet6''' | ||
Line 169: | Line 169: | ||
Analyser les échanges entre '''R2''' et '''PC2''' dans l'outil de capture réseau. | Analyser les échanges entre '''R2''' et '''PC2''' dans l'outil de capture réseau. | ||
− | Valider la prise en compte des requêtes de '''PC2''' sur le serveur DHCPv6 de '''R2''' | + | Valider la prise en compte des requêtes de '''PC2''' sur le serveur DHCPv6 de '''R2''', |
− | vyos@vyos# '''show | + | vyos@vyos# '''show service''' |
− | ou | + | ou quitter le mode '''administrateur''' pour repasser en mode '''utilisateur''' et exécuter la commande d'affichage des baux dhcpv6. |
− | vyos@vyos# '''show dhcpv6 server lease''' | + | vyos@vyos# '''exit''' |
+ | vyos@vyos$ | ||
+ | vyos@vyos$ '''show dhcpv6 server lease''' | ||
− | Tester la connectivité avec '''PC1''' depuis '''PC2''' | + | Tester la connectivité avec '''PC1''' depuis '''PC2'''. |
− | apprenant@MOOCIPv6:~$ '''ping6 <adresse IPv6 de PC1>''' | + | apprenant@MOOCIPv6:~$ '''ping6 -c 5 <adresse IPv6 de PC1>''' |
Vous pouvez tester la stabilité de l'adresse IPv6 obtenue par DHCPv6 en simulant une déconnexion puis une reconnexion au réseau de l'interface <tt>eth0</tt> : | Vous pouvez tester la stabilité de l'adresse IPv6 obtenue par DHCPv6 en simulant une déconnexion puis une reconnexion au réseau de l'interface <tt>eth0</tt> : | ||
Line 183: | Line 185: | ||
apprenant@MOOCIPv6:~$ '''ifconfig''' | apprenant@MOOCIPv6:~$ '''ifconfig''' | ||
− | '''Note | + | '''Note'''. - Si vous rencontrez des problèmes sur les configurations de cette étape et n'arrivez pas à valider les configurations, vous pouvez étudier une configuration fonctionnelle en démarrant la plateforme par l'icône '''Etape2''' disponible dans le dossier '''TP3''' sur le bureau de la machine virtuelle. Vous pourrez ensuite commencer l'étape 3 à partir de cette configuration. Afin de ne pas surcharger votre machine virtuelle, il est conseillé de ne pas lancer '''Etape2''' sans avoir au préalable stoppé l'étape précédente de GNS3. |
== Etape 3 : Configurer un serveur de noms == | == Etape 3 : Configurer un serveur de noms == | ||
− | Lors de cette étape, vous allez mettre en oeuvre un service de nommage pour la plateforme. Ce service va permettre d'utiliser des noms à la place des (longues) adresses IPv6 lorsque vous devez désigner une machine distante | + | Lors de cette étape, vous allez mettre en oeuvre un service de nommage pour la plateforme. Ce service va permettre d'utiliser des noms à la place des (longues) adresses IPv6 lorsque vous devez désigner une machine distante comme, par exemple, lors d'un test d'accessibilité. |
− | Le service de nommage sera basé sur le logiciel Bind, très communément utilisé dans l'Internet. Ce logiciel offre les fonctions de serveur de | + | Le service de nommage sera basé sur le logiciel Bind, très communément utilisé dans l'Internet. Ce logiciel offre les fonctions de serveur de noms, ainsi que de serveur de résolution récursif. Notre plateforme n'étant pas connectée à l'Internet et ne pouvant pas être liée à l'arbre récursif racine du service de nommage, nous utiliserons une zone de nommage propre <tt>*.tp</tt>. Le serveur de résolution sera le même serveur que celui pour les noms. Ces fonctions seront mises en oeuvre sur '''PC2'''. |
Le serveur Bind installé sur '''PC2''' possède différents fichiers définissant : | Le serveur Bind installé sur '''PC2''' possède différents fichiers définissant : | ||
− | * le nommage direct dans la zone <tt>*.tp</tt> | + | * le nommage direct dans la zone <tt>*.tp</tt> ; |
− | * le nommage inversé pour la zone correspondant au préfixe de la plateforme <tt>fd75:e4d9:cb77::/48</tt> | + | * le nommage inversé pour la zone correspondant au préfixe de la plateforme <tt>fd75:e4d9:cb77::/48</tt>. |
Cette étape consiste donc à renseigner les adresses et les noms dans ces fichiers afin d'établir les correspondances qui pourront être ensuite utilisées par toutes les machines de la plateforme. | Cette étape consiste donc à renseigner les adresses et les noms dans ces fichiers afin d'établir les correspondances qui pourront être ensuite utilisées par toutes les machines de la plateforme. | ||
=== Configurer le nommage direct === | === Configurer le nommage direct === | ||
− | Il s'agit ici d'indiquer les correspondances entre des noms pour les machines de la plateforme et leurs adresses IPv6. Ces correspondances utilisent des noms de la zone <tt>*.tp</tt> | + | Il s'agit ici d'indiquer les correspondances entre des noms pour les machines de la plateforme et leurs adresses IPv6. Ces correspondances utilisent des noms de la zone <tt>*.tp</tt>. C'est donc dans le fichier désigné dans la configuration du serveur de nom Bind pour cette zone qu'il faut renseigner ces correspondances. |
− | '''Note | + | '''Note'''. - Chaque zone possède un numéro de série appelé, dans la configuration, <tt>serial</tt>. Il s'apparente à un numéro de version permettant de repérer les informations les plus à jour pour la zone. Il est donc nécessaire d'incrémenter ce numéro <tt>serial</tt> à chaque modification du fichier de la zone. |
Sur '''PC2''', modifier le fichier <tt>/usr/local/etc/bind/db.tp</tt> : | Sur '''PC2''', modifier le fichier <tt>/usr/local/etc/bind/db.tp</tt> : | ||
− | apprenant@MOOCIPv6:~$ '''sudo nano /usr/local/etc/bind/db.tp''' | + | apprenant@MOOCIPv6:~$ '''sudo nano -w /usr/local/etc/bind/db.tp''' |
− | Modifier | + | Modifier : |
... | ... | ||
... | ... | ||
Line 224: | Line 226: | ||
... | ... | ||
pc1 IN AAAA fd75:e4d9:cb77:1:200:abff:fee2:8c00 | pc1 IN AAAA fd75:e4d9:cb77:1:200:abff:fee2:8c00 | ||
− | pc2 IN AAAA fd75:e4d9:cb77:2:: | + | pc2 IN AAAA fd75:e4d9:cb77:2::c0 |
r1-eth1 IN AAAA fd75:e4d9:cb77::1 | r1-eth1 IN AAAA fd75:e4d9:cb77::1 | ||
r2-eth1 IN AAAA fd75:e4d9:cb77::2 | r2-eth1 IN AAAA fd75:e4d9:cb77::2 | ||
− | + | Lancer le logiciel de serveur de nom BIND : | |
apprenant@MOOCIPv6:~$ '''sudo named -c /usr/local/etc/bind/named.conf''' | apprenant@MOOCIPv6:~$ '''sudo named -c /usr/local/etc/bind/named.conf''' | ||
Pour tester la configuration que vous venez d'effectuer, il faut maintenant interroger le serveur de nom pour un nom de la zone. Il existe des outils sous Linux permettant de faire explicitement ces requêtes, tels que <tt>host</tt> ou <tt>dig</tt>. | Pour tester la configuration que vous venez d'effectuer, il faut maintenant interroger le serveur de nom pour un nom de la zone. Il existe des outils sous Linux permettant de faire explicitement ces requêtes, tels que <tt>host</tt> ou <tt>dig</tt>. | ||
− | + | Tester la configuration en local sur '''PC2''' en interrogeant le serveur de nom local : | |
apprenant@MOOCIPv6:~$ '''host pc1.tp ::1''' | apprenant@MOOCIPv6:~$ '''host pc1.tp ::1''' | ||
− | Le premier argument de la commande <tt>host</tt> indique le nom à rechercher, le second le serveur à interroger (ici l'adresse IPv6 correspondant à ''localhost'') | + | Le premier argument de la commande <tt>host</tt> indique le nom à rechercher, le second le serveur à interroger (ici l'adresse IPv6 correspondant à ''localhost''). |
− | Pour que la résolution de nom soit disponible depuis les autres commandes du système, il est nécessaire que l'adresse du serveur soit renseignée au niveau du système. Sous Linux, cette configuration se fait dans le fichier <tt>/etc/resolv.conf</tt>. Normalement, ce fichier doit indiquer l'adresse d'un serveur de résolution récursif. Mais notre plateforme n'étant pas | + | Pour que la résolution de nom soit disponible depuis les autres commandes du système, il est nécessaire que l'adresse du serveur soit renseignée au niveau du système. Sous Linux, cette configuration se fait dans le fichier <tt>/etc/resolv.conf</tt>. Normalement, ce fichier doit indiquer l'adresse d'un serveur de résolution récursif. Mais notre plateforme n'étant pas reliée à l'Internet, nous utiliserons directement le serveur de noms que nous venons de configurer. |
− | Vérifier la configuration du serveur de | + | Vérifier la configuration du serveur de noms pour le système : |
apprenant@MOOCIPv6:~$ '''cat /etc/resolv.conf''' | apprenant@MOOCIPv6:~$ '''cat /etc/resolv.conf''' | ||
nameserver ::1 | nameserver ::1 | ||
− | Cette configuration permet d'utiliser le serveur de | + | Cette configuration permet d'utiliser le serveur de noms local depuis les autres commandes du système. |
Vérifier la disponibilité de la résolution de nom à partir de l'outil <tt>ping6</tt> : | Vérifier la disponibilité de la résolution de nom à partir de l'outil <tt>ping6</tt> : | ||
− | apprenant@MOOCIPv6:~$ '''ping6 r2-eth1.tp''' | + | apprenant@MOOCIPv6:~$ '''ping6 -c 5 r2-eth1.tp''' |
− | apprenant@MOOCIPv6:~$ '''ping6 r1-eth1.tp''' | + | apprenant@MOOCIPv6:~$ '''ping6 -c 5 r1-eth1.tp''' |
− | apprenant@MOOCIPv6:~$ '''ping6 pc1.tp''' | + | apprenant@MOOCIPv6:~$ '''ping6 -c 5 pc1.tp''' |
Les commandes entrées sur '''PC2''' peuvent maintenant utiliser des noms à la place des adresses IPv6. | Les commandes entrées sur '''PC2''' peuvent maintenant utiliser des noms à la place des adresses IPv6. | ||
Line 255: | Line 257: | ||
Pour calculer les noms inversés à partir des adresses IPv6, il est possible d'utiliser '''ipv6calc'''. Cet outil est disponible dans la machine virtuelle Debian qui vous sert à lancer l'outil GNS3. | Pour calculer les noms inversés à partir des adresses IPv6, il est possible d'utiliser '''ipv6calc'''. Cet outil est disponible dans la machine virtuelle Debian qui vous sert à lancer l'outil GNS3. | ||
− | Ouvrir le terminal sur la machine virtuelle Debian | + | Ouvrir le terminal sur la machine virtuelle Debian. |
apprenant@MOOCIPv6:~$ '''ipv6calc -a <@IPv6(PC1,R1,R2,PC2)>''' | apprenant@MOOCIPv6:~$ '''ipv6calc -a <@IPv6(PC1,R1,R2,PC2)>''' | ||
Line 264: | Line 266: | ||
Modifier le fichier correspondant à la zone de nommage inversé <tt>/usr/local/etc/bind/db.tp.ipv6.rev</tt> : | Modifier le fichier correspondant à la zone de nommage inversé <tt>/usr/local/etc/bind/db.tp.ipv6.rev</tt> : | ||
− | apprenant@MOOCIPv6:~$ '''sudo nano /usr/local/etc/bind/db.tp.ipv6.rev''' | + | apprenant@MOOCIPv6:~$ '''sudo nano -w /usr/local/etc/bind/db.tp.ipv6.rev''' |
− | Modifier | + | '''Note'''. - Le paramètre '''-w''' de la commande nano est nécessaire pour s'assurer que chaque ressource ''record'' soit bien définie sur une seule ligne (Sans le '''-w''', l'éditeur insérera des sauts de ligne qui empêcheront le service ''named'' de fonctionner correctement). |
+ | |||
+ | Modifier : | ||
... | ... | ||
... | ... | ||
Line 272: | Line 276: | ||
... | ... | ||
... | ... | ||
− | '''<l’adresse_pc1_REVERSE> IN PTR pc1.tp''' | + | '''<l’adresse_pc1_REVERSE> IN PTR pc1.tp.''' |
− | '''<l’adresse_pc2_REVERSE> IN PTR pc2.tp''' | + | '''<l’adresse_pc2_REVERSE> IN PTR pc2.tp.''' |
'''1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR r1-eth1.tp.''' | '''1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR r1-eth1.tp.''' | ||
'''2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR r2-eth1.tp.''' | '''2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR r2-eth1.tp.''' | ||
− | Exemple sur la modification du fichier /usr/local/etc/bind/db.tp.ipv6.rev : | + | Exemple sur la modification du fichier <tt>/usr/local/etc/bind/db.tp.ipv6.rev</tt> : |
... | ... | ||
... | ... | ||
Line 288: | Line 292: | ||
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR r2-eth1.tp. | 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR r2-eth1.tp. | ||
− | '''Note | + | '''Note'''. - Le fichier de la zone pour le nommage inversé contient une directive, |
$ORIGIN 7.7.b.c.9.d.4.e.5.7.d.f.ip6.arpa. | $ORIGIN 7.7.b.c.9.d.4.e.5.7.d.f.ip6.arpa. | ||
permettant d'éviter de noter de manière redondante les éléments communs aux noms inversés. | permettant d'éviter de noter de manière redondante les éléments communs aux noms inversés. | ||
− | + | '''Note'''. - Le "'''.'''" final à la fin de chaque RR (''Ressource Record'') de type PTR est nécessaire. | |
+ | |||
+ | Relancer BIND. | ||
apprenant@MOOCIPv6:~$ '''sudo killall named''' | apprenant@MOOCIPv6:~$ '''sudo killall named''' | ||
apprenant@MOOCIPv6:~$ '''sudo named -c /usr/local/etc/bind/named.conf''' | apprenant@MOOCIPv6:~$ '''sudo named -c /usr/local/etc/bind/named.conf''' | ||
− | + | Tester la configuration en local sur PC2. | |
apprenant@MOOCIPv6:~$ '''dig -x <adresse_PC1>''' | apprenant@MOOCIPv6:~$ '''dig -x <adresse_PC1>''' | ||
− | '''Note | + | '''Note'''. - Si vous rencontrez des problèmes sur les configurations de cette étape et n'arrivez pas à valider les configurations, vous pouvez étudier une configuration fonctionnelle en démarrant la plateforme par l'icône '''Etape3''' disponible dans le dossier '''TP3''' sur le bureau de la machine virtuelle. Vous pourrez ensuite commencer l'étape 4 à partir de cette configuration. Afin de ne pas surcharger votre machine virtuelle, il est conseillé de ne pas lancer '''Etape3''' sans avoir au préalable stoppé l'étape précédente de GNS3. |
== Etape 4 : Configuration de résolution récursif par DHCPv6 == | == Etape 4 : Configuration de résolution récursif par DHCPv6 == | ||
− | Votre plateforme comporte maintenant un serveur permettant d'utiliser des noms à la place des adresses IPv6. Pour que ce serveur puisse être utilisé par les autres machines de la plateforme, le système de chaque machine peut être | + | Votre plateforme comporte maintenant un serveur permettant d'utiliser des noms à la place des adresses IPv6. Pour que ce serveur puisse être utilisé par les autres machines de la plateforme, le système de chaque machine peut être configuré manuellement avec l'adresse du serveur. Mais certaines de ces machines (notamment '''PC1''') utilisent la configuration automatique des paramètres réseau. Pour être cohérent, l'adresse du serveur de résolution récursif doit donc être, elle aussi, configurée automatiquement sur '''PC1'''. |
− | Il existe plusieurs méthodes pour effectuer cette configuration automatiquement, dont | + | Il existe plusieurs méthodes pour effectuer cette configuration automatiquement, dont le RFC 6106, permettant d'inclure l'adresse dans les annonces de routeur, et DHCPv6. C'est cette dernière méthode que vous allez mettre en oeuvre. Vous allez réutiliser le serveur DHCPv6 configuré dans l'étape 2 pour qu'il transmette aussi l'adresse du serveur de résolution récursif. Pour que '''PC1''' puisse atteindre ce serveur, la configuration d'un relai DHCPv6 sur '''R1''' est alors nécessaire. |
<center> | <center> | ||
Line 313: | Line 319: | ||
=== Configurer le serveur DHCPv6 === | === Configurer le serveur DHCPv6 === | ||
− | Sur R2 : | + | Le serveur DHCPv6 sur '''R2''' doit être configuré pour transmettre l'adresse du serveur de résolution ainsi que pour accepter les requêtes relayées par R1 depuis son interface <tt>eth1</tt> connectée au réseau d'infrastructure le reliant à R1. |
+ | |||
+ | Sur R2, activer le serveur DHCPv6 : | ||
vyos@vyos:~$ '''configure''' | vyos@vyos:~$ '''configure''' | ||
vyos@vyos# '''set service dhcpv6-server shared-network-name LAN2 subnet fd75:e4d9:cb77:1::/64 address-range start fd75:e4d9:cb77:1::c1 stop fd75:e4d9:cb77:1::cf''' | vyos@vyos# '''set service dhcpv6-server shared-network-name LAN2 subnet fd75:e4d9:cb77:1::/64 address-range start fd75:e4d9:cb77:1::c1 stop fd75:e4d9:cb77:1::cf''' | ||
vyos@vyos# '''set service dhcpv6-server shared-network-name LAN2 subnet fd75:e4d9:cb77:1::/64 name-server <adresse PC2>''' | vyos@vyos# '''set service dhcpv6-server shared-network-name LAN2 subnet fd75:e4d9:cb77:1::/64 name-server <adresse PC2>''' | ||
− | vyos@vyos# '''set service dhcpv6-server shared-network-name | + | vyos@vyos# '''set service dhcpv6-server shared-network-name INFRA subnet fd75:e4d9:cb77::/64''' |
vyos@vyos# '''commit''' | vyos@vyos# '''commit''' | ||
− | + | '''Note'''. - Du fait d'une limitation du système VyOS, il n'est pas possible d'utiliser DHCPv6 uniquement pour transmettre l'adresse du serveur de résolution. La configuration d'une attribution d'adresse est alors nécessaire. | |
=== Configurer le relai DHCPv6 === | === Configurer le relai DHCPv6 === | ||
Line 331: | Line 339: | ||
vyos@vyos# '''commit''' | vyos@vyos# '''commit''' | ||
vyos@vyos# '''exit''' | vyos@vyos# '''exit''' | ||
− | |||
− | + | '''R1''' est maintenant configuré avec la fonction de relai. Les 2 premières commandes permettent de désigner les interfaces où le logiciel de relayage doit être en écoute, ici <tt>eth0</tt> (pour recevoir les requêtes du client) et <tt>eth1</tt> pour les réponses du serveur. | |
+ | |||
+ | Configurer les annonces de routeur pour le réseau PC1-R1. | ||
vyos@vyos:~$ '''vtysh''' | vyos@vyos:~$ '''vtysh''' | ||
vyos# '''configure terminal''' | vyos# '''configure terminal''' | ||
Line 341: | Line 350: | ||
vyos(config)# '''exit''' | vyos(config)# '''exit''' | ||
− | + | Les annonces de '''R1''' contiennent maintenant une indication que les autres paramètres réseau (dont l'adresse du serveur de résolution) doivent être récupérés par DHCPv6. | |
=== Récupérer et tester l'obtention du DNS depuis PC1 === | === Récupérer et tester l'obtention du DNS depuis PC1 === | ||
− | apprenant@MOOCIPv6:~$ sudo dhclient -6 eth0 | + | |
− | apprenant@MOOCIPv6:~$ | + | Sur PC, lancer la requête DHCPv6 par la commande : |
− | (''Normalement nameserver | + | apprenant@MOOCIPv6:~$ '''sudo dhclient -6 eth0''' |
+ | |||
+ | Vérifier ensuite les paramètres réseau obtenus par PC1. | ||
+ | |||
+ | apprenant@MOOCIPv6:~$ '''ifconfig''' | ||
+ | apprenant@MOOCIPv6:~$ '''route -A inet6''' | ||
+ | apprenant@MOOCIPv6:~$ '''cat /etc/resolv.conf''' | ||
+ | (''Normalement'' nameserver ''doit être celui de PC2'') | ||
− | + | Tester maintenant la configuration en local sur PC1. | |
− | apprenant@MOOCIPv6:~$ '''dig pc1.tp''' | + | apprenant@MOOCIPv6:~$ '''dig -t AAAA pc1.tp''' |
apprenant@MOOCIPv6:~$ '''dig -x <adresse_PC1>''' | apprenant@MOOCIPv6:~$ '''dig -x <adresse_PC1>''' | ||
+ | apprenant@MOOCIPv6:~$ '''ping6 -c 5 r2-eth1.tp''' |
Latest revision as of 08:27, 22 May 2017
Activité 36: Configurez un réseau IPv6 administré
L'objectif de cette activité pratique est de mettre en oeuvre un réseau IPv6 d'une façon proche de l'opérationnel. L'activité précédente vous a permis de configurer un réseau IPv6 de manière statique. Si cette méthode aboutit à un résultat fonctionnel, il n'est pas envisageable de l'appliquer à l'échelle d'un réseau de production ; la tâche de configuration du réseau devenant alors trop importante si le nombre de machines grandit.
Les réseaux IPv6 opérationnels utilisent les mécanismes de configuration automatique des paramètres réseau pour simplifier la tâche de l'administrateur et améliorer l'expérience de l'utilisateur. Vous allez, dans cette activité, configurer un réseau pour mettre en oeuvre :
- l'auto-configuration sans état à travers la découverte des voisins ;
- la configuration avec état par le protocole DHCPv6.
La topologie du réseau que vous allez utiliser est identique à l'activité pratique de la séquence 2. Les 3 réseaux seront considérés de la façon suivante :
- le réseau R1-R2 est un sous-réseau d'infrastructure. Les mécanismes d'auto-configuration ne s'y appliquent pas ;
- les réseaux R1-PC1 et R2-PC2 sont 2 sous-réseaux destinés à recevoir des stations. Les protocoles de configuration automatique y seront déployés.
Le plan d'adressage pour les réseaux est identique à celui de l'activité précédente. Le préfixe fd75:e4d9:cb77::/48 disponible pour notre plateforme a été divisé de la manière suivante :
- le préfixe fd75:e4d9:cb77::/64 est utilisé pour le sous-réseau d'infrastructure ;
- le préfixe fd75:e4d9:cb77:1::/64 est utilisé pour le sous-réseau R1-PC1 ;
- le préfixe fd75:e4d9:cb77:2::/64 est utilisé pour le sous-réseau R2-PC2.
Vous allez, dans une première étape, configurer le sous-réseau R1-PC1 pour mettre en oeuvre la configuration sans état. La seconde étape consistera à déployer le protocole DHCPv6 sur le sous-réseau R2-PC2. Pour la troisième étape, PC2 sera configuré pour servir de serveur DNS pour la plateforme. La disponibilité du service de nommage sera distribuée sur les différents sous-réseaux en utilisant DHCPv6 dans la quatrième étape.
Etape 1 : Configurer l'auto-configuration sur le réseau R1-PC1
Démarrer la plateforme
- Démarrer la machine virtuelle MOOC_IPv6_Debian.
- Ouvrir le dossier TP3 sur le bureau et double-cliquer sur l'icône Etape0.
- Démarrer les machines de la plateforme par le bouton Start (icône triangle vert) et ouvrir les consoles des machines.
Vérifier la configuration initiale du réseau
Sur R1, vérifier que l'interface eth0 est activée.
vyos@vyos:~$ show interfaces detail
Les interfaces eth0 et eth1 doivent être activées et configurées.
Sur PC1, vérifier que l'interface eth0 de PC1 est désactivée
apprenant@MOOCIPv6:~$ ifconfig
Seule l'interface lo doit s'afficher.
Lancer la capture réseau sur le réseau R1-PC1.
- Faire un clic-droit sur l'une des interfaces du switch SW2.
- Choisir dans le menu Start Network Capture.
- L'outil de capture réseau doit s'afficher.
Configurer les annonces de routeur sur R1
La configuration automatique sans état est contrôlée par la diffusion, sur le réseau, des messages d'annonce de routeur (Routeur Advertisement ou RA). Le routeur de ce réseau étant R1, c'est à lui de diffuser ces messages. Vous allez maintenant activer la diffusion des messages d'annonce sur l'interface eth0 du routeur R1.
vyos@vyos:~$ vtysh vyos# configure terminal vyos(config)# interface eth0 vyos(config-if)# no ipv6 nd suppress-ra vyos(config-if)# ipv6 nd prefix fd75:e4d9:cb77:1::/64 vyos(config-if)# exit vyos(config)# exit
La commande no ipv6 nd suppress-ra est en fait la négation d'une configuration par défaut de VyOS qui désactive la diffusion des annonces de routeur. La commande suivante permet de préciser à VyOS le préfixe à diffuser dans ces messages. Ce préfixe va permettre aux stations qui se connectent sur le réseau de connaitre le préfixe à utiliser pour configurer leurs adresses.
Dans l'outil de capture réseau, vérifier la diffusion périodique des annonces de routeur sur le réseau. Quelle est la période de diffusion de ces messages ?
Analyser dans l'outil de capture le contenu des messages d'annonce de routeur pour identifier :
- la source du message ;
- la destination du message ;
- le protocole utilisé pour le transport des annonces au dessus d'IPv6 ;
- la valeur de la durée de validité de l'annonce ;
- le préfixe annoncé sur le réseau ;
- la valeur des durées de préférence et de validité du préfixe.
Connecter PC1 au réseau
Sur PC1, activer l'interface eth0 pour simuler la connexion d'une nouvelle station au réseau.
apprenant@MOOCIPv6:~$ sudo ifconfig eth0 up
Observez maintenant la configuration réseau de l'interface eth0 et celle de la table de routage IPv6.
apprenant@MOOCIPv6:~$ ifconfig apprenant@MOOCIPv6:~$ route -A inet6
Quelles sont les configurations que PC1 a pu automatiquement effectuer grâce à la configuration sans état ?
Dans l'outil de capture, analysez les échanges entre R1 et PC1 pour identifier :
- les messages envoyés par PC1 pour solliciter la configuration sans état ;
- les messages envoyés par R1 en réponse à ces sollicitations ;
- les messages envoyés par PC1 pour valider les paramètres réseau configurés automatiquement.
Valider la configuration en testant l'accessibilité de R1 et R2 depuis PC1.
apprenant@MOOCIPv6:~$ ping6 -c 5 fd75:e4d9:cb77:1::ffff apprenant@MOOCIPv6:~$ ping6 -c 5 fd75:e4d9:cb77::1 apprenant@MOOCIPv6:~$ ping6 -c 5 fd75:e4d9:cb77::2
Note. - Si vous rencontrez des problèmes sur les configurations de cette étape et n'arrivez pas à valider les configurations, vous pouvez étudier une configuration fonctionnelle en démarrant la plateforme par l'icône Etape1 disponible dans le dossier TP3 sur le bureau de la machine virtuelle. Vous pourrez ensuite commencer l'étape 2 à partir de cette configuration. Afin de ne pas surcharger votre machine virtuelle, il est conseillé de ne pas lancer Etape1 sans avoir au préalable stoppé Etape0.
Etape 2 : Configurer PC2 par la configuration automatique avec état
Vous allez maintenant mettre en oeuvre la configuration automatique avec état sur le sous-réseau R2-PC2. À l'instar de la configuration automatique sans état, ce mode de configuration permet de centraliser les paramètres réseau sur un équipement administré et d'automatiser leur mise en oeuvre sur la station se connectant au réseau.
La configuration avec état permet par contre, à l'administrateur, de mieux contrôler les adresses configurées par cette méthode. Il va ainsi pouvoir indiquer explicitement quelles adresses seront attribuées aux interfaces. Les adresses configurées au moment de la connexion sont donc stables, prévisibles et connues avant la première connexion de la station.
Dans cette activité pratique, vous allez utiliser ce mode de configuration pour PC2, qui va tenir lieu dans la suite de serveur de noms. L'adresse d'un tel serveur étant par la suite à configurer sur les autres machines de la plateforme, la stabilité de cette adresse est donc fortement recommandée.
Les fonctions du protocole DHCPv6 seront réparties sur le réseau de la manière suivante :
- le serveur DHCPv6 sera déployé sur R2 ;
- le client DHCPv6 sera déployé sur PC2.
L'étape 4 permettra de voir la mise en oeuvre d'un relai DHCPv6.
Configurer le serveur DHCPv6 sur R2
Le serveur DHCPv6 a la possibilité d'attribuer les adresses selon 2 modes :
- Statique : les adresses sont fixées au préalable par machine en fonction de leur DUID ;
- Dynamique : l'adresse à attribuer est choisie à la première requête dans une plage d'adresses définie par l'administrateur. L'attribution sera ensuite enregistrée pour les prochaines demandes.
C'est le second mode d'attribution que vous allez mettre en oeuvre pour configurer le serveur DHCPv6 sur R2.
La plage d'adresses disponibles pour l'attribution dynamique va s'étendre sur les 16 adresses possibles sur le préfixe fd75:e4d9:cb77:2::c0/124. La première adresse disponible sera donc fd75:e4d9:cb77:2::c0, la dernière fd75:e4d9:cb77:2::cf.
Le serveur DHCPv6 sous VyOS est un service qui se configure en mode administrateur :
vyos@vyos:~$ configure vyos@vyos# set service dhcpv6-server shared-network-name LAN subnet fd75:e4d9:cb77:2::/64 address-range start fd75:e4d9:cb77:2::c0 stop fd75:e4d9:cb77:2::cf vyos@vyos# commit
La ligne configurant le service définit :
- par le mot clé shared-network-name, un identifiant pour le sous-réseau correspondant à la configuration ;
- par le mot clé subnet, un préfixe IPv6 permettant de déterminer l'interface sur lequel s'applique la configuration ;
- par les mots clés address-range start ... stop, la plage d'adresse pour l'attribution dynamique.
La configuration générée par la commande peut être vérifiée par la commande
vyos@vyos# show service.
Lancer la capture sur le réseau R2-PC2.
La configuration automatique avec état nécessite toujours la diffusion des annonces de routeur, ne serait-ce que pour annoncer l'adresse du routeur par défaut. Il faut donc activer sur R2 les annonces de routeurs. Ces messages vont de plus présenter 2 drapeaux (flags) spécifiques à l'auto-configuration avec état :
vyos@vyos:~$ vtysh vyos# configure terminal vyos(config)# interface eth0 vyos(config-if)# no ipv6 nd suppress-ra vyos(config-if)# ipv6 nd prefix fd75:e4d9:cb77:2::/64 no-autoconfig vyos(config-if)# ipv6 nd managed-config-flag
La commande ipv6 nd prefix présente l'option no-autoconfig pour interdire aux stations se connectant de configurer leurs adresses à partir de ce préfixe. La commande ipv6 nd managed-config-flag va permettre d'indiquer aux stations que la configuration automatique avec état est disponible sur ce réseau.
Connecter PC2 au réseau
Activer l'interface eth0 de PC2.
apprenant@MOOCIPv6:~$ sudo ifconfig eth0 up
Dans la capture, vérifier le contenu des messages d'annonce de routeur, notamment les drapeaux ("Managed address configuration" de l'annonce et "Autonomous address-configurationflag(A) de l'option préfixe) qui ont été positionnés par la configuration précédente.
Vérifier la configuration réseau de PC2.
apprenant@MOOCIPv6:~$ ifconfig apprenant@MOOCIPv6:~$ route -A inet6
Analyser les échanges entre R2 et PC2 dans l'outil de capture réseau. Expliquer les différences avec les échanges entre R1 et PC1.
PC2 n'a pas encore configuré d'adresse IPv6 car le message d'annonce de routeur interdit la configuration automatique sans état. Le drapeau annonçant la configuration automatique avec état est censé indiquer à PC2 d'initier une requête DHCPv6. Or, dans le système Linux, celle-ci doit encore être lancée manuellement.
Lancer le client DHCPv6 sur PC2.
apprenant@MOOCIPv6:~$ sudo dhclient -6 eth0
Vérifier la configuration réseau de PC2.
apprenant@MOOCIPv6:~$ ifconfig apprenant@MOOCIPv6:~$ route -A inet6
Analyser les échanges entre R2 et PC2 dans l'outil de capture réseau.
Valider la prise en compte des requêtes de PC2 sur le serveur DHCPv6 de R2,
vyos@vyos# show service
ou quitter le mode administrateur pour repasser en mode utilisateur et exécuter la commande d'affichage des baux dhcpv6.
vyos@vyos# exit vyos@vyos$ vyos@vyos$ show dhcpv6 server lease
Tester la connectivité avec PC1 depuis PC2.
apprenant@MOOCIPv6:~$ ping6 -c 5 <adresse IPv6 de PC1>
Vous pouvez tester la stabilité de l'adresse IPv6 obtenue par DHCPv6 en simulant une déconnexion puis une reconnexion au réseau de l'interface eth0 :
apprenant@MOOCIPv6:~$ sudo ifconfig eth0 down apprenant@MOOCIPv6:~$ sudo ifconfig eth0 up apprenant@MOOCIPv6:~$ sudo dhclient -6 eth0 apprenant@MOOCIPv6:~$ ifconfig
Note. - Si vous rencontrez des problèmes sur les configurations de cette étape et n'arrivez pas à valider les configurations, vous pouvez étudier une configuration fonctionnelle en démarrant la plateforme par l'icône Etape2 disponible dans le dossier TP3 sur le bureau de la machine virtuelle. Vous pourrez ensuite commencer l'étape 3 à partir de cette configuration. Afin de ne pas surcharger votre machine virtuelle, il est conseillé de ne pas lancer Etape2 sans avoir au préalable stoppé l'étape précédente de GNS3.
Etape 3 : Configurer un serveur de noms
Lors de cette étape, vous allez mettre en oeuvre un service de nommage pour la plateforme. Ce service va permettre d'utiliser des noms à la place des (longues) adresses IPv6 lorsque vous devez désigner une machine distante comme, par exemple, lors d'un test d'accessibilité.
Le service de nommage sera basé sur le logiciel Bind, très communément utilisé dans l'Internet. Ce logiciel offre les fonctions de serveur de noms, ainsi que de serveur de résolution récursif. Notre plateforme n'étant pas connectée à l'Internet et ne pouvant pas être liée à l'arbre récursif racine du service de nommage, nous utiliserons une zone de nommage propre *.tp. Le serveur de résolution sera le même serveur que celui pour les noms. Ces fonctions seront mises en oeuvre sur PC2.
Le serveur Bind installé sur PC2 possède différents fichiers définissant :
- le nommage direct dans la zone *.tp ;
- le nommage inversé pour la zone correspondant au préfixe de la plateforme fd75:e4d9:cb77::/48.
Cette étape consiste donc à renseigner les adresses et les noms dans ces fichiers afin d'établir les correspondances qui pourront être ensuite utilisées par toutes les machines de la plateforme.
Configurer le nommage direct
Il s'agit ici d'indiquer les correspondances entre des noms pour les machines de la plateforme et leurs adresses IPv6. Ces correspondances utilisent des noms de la zone *.tp. C'est donc dans le fichier désigné dans la configuration du serveur de nom Bind pour cette zone qu'il faut renseigner ces correspondances.
Note. - Chaque zone possède un numéro de série appelé, dans la configuration, serial. Il s'apparente à un numéro de version permettant de repérer les informations les plus à jour pour la zone. Il est donc nécessaire d'incrémenter ce numéro serial à chaque modification du fichier de la zone.
Sur PC2, modifier le fichier /usr/local/etc/bind/db.tp :
apprenant@MOOCIPv6:~$ sudo nano -w /usr/local/etc/bind/db.tp
Modifier :
... ... 2015102200 ; serial ... ... pc1 IN AAAA <adresse_PC1(Utiliser ifconfig dans PC1, fd75:e4d9:cb77:1::x)> pc2 IN AAAA <adresse_PC2(Utiliser ifconfig dans PC2, fd75:e4d9:cb77:2::x)> r1-eth1 IN AAAA fd75:e4d9:cb77::1 r2-eth1 IN AAAA fd75:e4d9:cb77::2
Exemple sur la modification du fichier /usr/local/etc/bind/db.tp :
... ... 2015102200 ; serial ... ... pc1 IN AAAA fd75:e4d9:cb77:1:200:abff:fee2:8c00 pc2 IN AAAA fd75:e4d9:cb77:2::c0 r1-eth1 IN AAAA fd75:e4d9:cb77::1 r2-eth1 IN AAAA fd75:e4d9:cb77::2
Lancer le logiciel de serveur de nom BIND :
apprenant@MOOCIPv6:~$ sudo named -c /usr/local/etc/bind/named.conf
Pour tester la configuration que vous venez d'effectuer, il faut maintenant interroger le serveur de nom pour un nom de la zone. Il existe des outils sous Linux permettant de faire explicitement ces requêtes, tels que host ou dig.
Tester la configuration en local sur PC2 en interrogeant le serveur de nom local :
apprenant@MOOCIPv6:~$ host pc1.tp ::1
Le premier argument de la commande host indique le nom à rechercher, le second le serveur à interroger (ici l'adresse IPv6 correspondant à localhost).
Pour que la résolution de nom soit disponible depuis les autres commandes du système, il est nécessaire que l'adresse du serveur soit renseignée au niveau du système. Sous Linux, cette configuration se fait dans le fichier /etc/resolv.conf. Normalement, ce fichier doit indiquer l'adresse d'un serveur de résolution récursif. Mais notre plateforme n'étant pas reliée à l'Internet, nous utiliserons directement le serveur de noms que nous venons de configurer.
Vérifier la configuration du serveur de noms pour le système :
apprenant@MOOCIPv6:~$ cat /etc/resolv.conf nameserver ::1
Cette configuration permet d'utiliser le serveur de noms local depuis les autres commandes du système.
Vérifier la disponibilité de la résolution de nom à partir de l'outil ping6 :
apprenant@MOOCIPv6:~$ ping6 -c 5 r2-eth1.tp apprenant@MOOCIPv6:~$ ping6 -c 5 r1-eth1.tp apprenant@MOOCIPv6:~$ ping6 -c 5 pc1.tp
Les commandes entrées sur PC2 peuvent maintenant utiliser des noms à la place des adresses IPv6.
Configurer le nommage inversé
Pour calculer les noms inversés à partir des adresses IPv6, il est possible d'utiliser ipv6calc. Cet outil est disponible dans la machine virtuelle Debian qui vous sert à lancer l'outil GNS3.
Ouvrir le terminal sur la machine virtuelle Debian.
apprenant@MOOCIPv6:~$ ipv6calc -a <@IPv6(PC1,R1,R2,PC2)>
Exemple :
apprenant@MOOCIPv6:~$ ipv6calc -a fd75:e4d9:cb77:1:200:abff:fe2d:bf00 No input type specified, try autodetection...found type: ipv6addr 0.0.f.b.d.2.e.f.f.f.b.a.0.0.2.0.1.0.0.0.7.7.b.c.9.d.4.e.5.7.d.f.ip6.arpa.
Modifier le fichier correspondant à la zone de nommage inversé /usr/local/etc/bind/db.tp.ipv6.rev :
apprenant@MOOCIPv6:~$ sudo nano -w /usr/local/etc/bind/db.tp.ipv6.rev
Note. - Le paramètre -w de la commande nano est nécessaire pour s'assurer que chaque ressource record soit bien définie sur une seule ligne (Sans le -w, l'éditeur insérera des sauts de ligne qui empêcheront le service named de fonctionner correctement).
Modifier :
... ... 2015102200 ; serial ... ... <l’adresse_pc1_REVERSE> IN PTR pc1.tp. <l’adresse_pc2_REVERSE> IN PTR pc2.tp. 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR r1-eth1.tp. 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR r2-eth1.tp.
Exemple sur la modification du fichier /usr/local/etc/bind/db.tp.ipv6.rev :
... ... 2015102200 ; serial ... ... 0.0.c.8.2.e.e.f.f.f.b.a.0.0.2.0.1.0.0.0 IN PTR pc1.tp. e.c.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0 IN PTR pc2.tp. 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR r1-eth1.tp. 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR r2-eth1.tp.
Note. - Le fichier de la zone pour le nommage inversé contient une directive,
$ORIGIN 7.7.b.c.9.d.4.e.5.7.d.f.ip6.arpa.
permettant d'éviter de noter de manière redondante les éléments communs aux noms inversés.
Note. - Le "." final à la fin de chaque RR (Ressource Record) de type PTR est nécessaire.
Relancer BIND.
apprenant@MOOCIPv6:~$ sudo killall named apprenant@MOOCIPv6:~$ sudo named -c /usr/local/etc/bind/named.conf
Tester la configuration en local sur PC2.
apprenant@MOOCIPv6:~$ dig -x <adresse_PC1>
Note. - Si vous rencontrez des problèmes sur les configurations de cette étape et n'arrivez pas à valider les configurations, vous pouvez étudier une configuration fonctionnelle en démarrant la plateforme par l'icône Etape3 disponible dans le dossier TP3 sur le bureau de la machine virtuelle. Vous pourrez ensuite commencer l'étape 4 à partir de cette configuration. Afin de ne pas surcharger votre machine virtuelle, il est conseillé de ne pas lancer Etape3 sans avoir au préalable stoppé l'étape précédente de GNS3.
Etape 4 : Configuration de résolution récursif par DHCPv6
Votre plateforme comporte maintenant un serveur permettant d'utiliser des noms à la place des adresses IPv6. Pour que ce serveur puisse être utilisé par les autres machines de la plateforme, le système de chaque machine peut être configuré manuellement avec l'adresse du serveur. Mais certaines de ces machines (notamment PC1) utilisent la configuration automatique des paramètres réseau. Pour être cohérent, l'adresse du serveur de résolution récursif doit donc être, elle aussi, configurée automatiquement sur PC1.
Il existe plusieurs méthodes pour effectuer cette configuration automatiquement, dont le RFC 6106, permettant d'inclure l'adresse dans les annonces de routeur, et DHCPv6. C'est cette dernière méthode que vous allez mettre en oeuvre. Vous allez réutiliser le serveur DHCPv6 configuré dans l'étape 2 pour qu'il transmette aussi l'adresse du serveur de résolution récursif. Pour que PC1 puisse atteindre ce serveur, la configuration d'un relai DHCPv6 sur R1 est alors nécessaire.
Configurer le serveur DHCPv6
Le serveur DHCPv6 sur R2 doit être configuré pour transmettre l'adresse du serveur de résolution ainsi que pour accepter les requêtes relayées par R1 depuis son interface eth1 connectée au réseau d'infrastructure le reliant à R1.
Sur R2, activer le serveur DHCPv6 :
vyos@vyos:~$ configure vyos@vyos# set service dhcpv6-server shared-network-name LAN2 subnet fd75:e4d9:cb77:1::/64 address-range start fd75:e4d9:cb77:1::c1 stop fd75:e4d9:cb77:1::cf vyos@vyos# set service dhcpv6-server shared-network-name LAN2 subnet fd75:e4d9:cb77:1::/64 name-server <adresse PC2> vyos@vyos# set service dhcpv6-server shared-network-name INFRA subnet fd75:e4d9:cb77::/64 vyos@vyos# commit
Note. - Du fait d'une limitation du système VyOS, il n'est pas possible d'utiliser DHCPv6 uniquement pour transmettre l'adresse du serveur de résolution. La configuration d'une attribution d'adresse est alors nécessaire.
Configurer le relai DHCPv6
Sur R1 :
vyos@vyos:~$ configure vyos@vyos# set service dhcpv6‐relay listen-interface eth0 vyos@vyos# set service dhcpv6‐relay listen-interface eth1 vyos@vyos# set service dhcpv6-relay upstream-interface eth1 address fd75:e4d9:cb77::2 vyos@vyos# commit vyos@vyos# exit
R1 est maintenant configuré avec la fonction de relai. Les 2 premières commandes permettent de désigner les interfaces où le logiciel de relayage doit être en écoute, ici eth0 (pour recevoir les requêtes du client) et eth1 pour les réponses du serveur.
Configurer les annonces de routeur pour le réseau PC1-R1.
vyos@vyos:~$ vtysh vyos# configure terminal vyos(config)# interface eth0 vyos(config-if)# ipv6 nd other-config-flag vyos(config-if)# exit vyos(config)# exit
Les annonces de R1 contiennent maintenant une indication que les autres paramètres réseau (dont l'adresse du serveur de résolution) doivent être récupérés par DHCPv6.
Récupérer et tester l'obtention du DNS depuis PC1
Sur PC, lancer la requête DHCPv6 par la commande :
apprenant@MOOCIPv6:~$ sudo dhclient -6 eth0
Vérifier ensuite les paramètres réseau obtenus par PC1.
apprenant@MOOCIPv6:~$ ifconfig apprenant@MOOCIPv6:~$ route -A inet6 apprenant@MOOCIPv6:~$ cat /etc/resolv.conf (Normalement nameserver doit être celui de PC2)
Tester maintenant la configuration en local sur PC1.
apprenant@MOOCIPv6:~$ dig -t AAAA pc1.tp apprenant@MOOCIPv6:~$ dig -x <adresse_PC1> apprenant@MOOCIPv6:~$ ping6 -c 5 r2-eth1.tp