Difference between revisions of "MOOC:Part2"

From Livre IPv6

(Created page with "== Etape 3 : Configuration de PC2 par l'auto-configuration ''avec état'' == Vous allez maintenant mettre en oeuvre la configuration automatique '''avec état''' sur le sous-...")
 
(Blanked the page)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Etape 3 : Configuration de PC2 par l'auto-configuration ''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.
 
 
<center>
 
[[Image:MOOC_Act35_Etape2.png|400px|thumb|center|Figure 5: Localisation du client et du serveur DHCPv6.]]
 
</center>
 
 
=== 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 <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 '''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é <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 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
 
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 <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 ===
 
 
Activer l'interface <tt>eth0</tt> 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 <tt>eth0</tt> :
 
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 4 : Configuration du 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 <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 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>.
 
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 <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'''. - 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> :
 
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 <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'''
 
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 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 <tt>ping6</tt> :
 
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é <tt>/usr/local/etc/bind/db.tp.ipv6.rev</tt> :
 
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 <tt>/usr/local/etc/bind/db.tp.ipv6.rev</tt> :
 
...
 
...
 
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 5 : Distribution des informations d'accès au service de noms 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.
 
 
<center>
 
[[image:MOOC_Act35_Etape4.png|400px|thumb|center|Figure 6: .Localisation des éléments du service DHCPv6.]]
 
</center>
 
 
=== 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 <tt>eth1</tt> 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 <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# '''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'''
 
 
== Conclusion==
 

Latest revision as of 07:02, 17 February 2017

Personal tools