|
|
(2 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| | | |
− |
| |
− | == 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==
| |