Configurer ton propre service de nom (DNS) avec ISPConfig

Internet fonctionne avec des numéros IP et pour passer d’un nom de domaine à son adresse de numéro IP, on utilise le système de nom de domaine DNS. Tu peux configurer ton propre service de nom ou utiliser, par exemple, le service de nom de ton hébergeur. Dans tous les cas, tu configures un mappage du nom de domaine entièrement qualifié à un numéro IP. Par exemple, le FQDN mail.howtoforge.com a l’adresse 78.46.214.220.

Ce tutoriel utilise le nom de domaine xyzzy.tld. Le nom d’hôte est un nom donné à un hôte, par exemple, foobar. La combinaison du nom d’hôte et du nom de domaine donne le nom de domaine pleinement qualifié FQDN, par exemple, foobar.xyzzy.tld.

Si le domaine doit être utilisé en dehors de ta propre organisation, il doit être enregistré. Le registraire demande deux serveurs de noms. Au moins certains registraires permettent de s’enregistrer d’abord et les serveurs de noms peuvent être donnés plus tard, peut-être jusqu’à un mois plus tard. Mais le registraire menace de révoquer ton nom de domaine s’il n’obtient pas deux serveurs de noms qui fonctionnent.

Si tu veux gérer tes propres serveurs de noms, tu as besoin de deux hôtes de serveurs de noms. Si tu n’as qu’un seul hôte, tu peux le configurer pour qu’il gère les sites Web, les e-mails, la base de données, etc. et le service de noms, mais il faut alors organiser le deuxième serveur de noms d’une manière ou d’une autre.

Si tu fournis un service de nom uniquement au sein de ta propre organisation, tu n’as pas besoin d’enregistrer le domaine et tu peux avoir un seul serveur de nom.

La partie ISPConfig de ce tutoriel suppose qu’une configuration multiserveur a été installée, avec un hôte avec tout sauf le service de nom, et deux hôtes pour le service de nom. Trois hôtes en tout. Les noms d’hôtes sont web, ns1 et ns2. Tu ne peux utiliser que deux hôtes si web exécute aussi le service de noms et que l’autre hôte est aussi serveur de noms.

Le service de nom a des enregistrements, de plusieurs types. Définis les enregistrements A avec le numéro IP de tes hôtes. Si tu utilises IPv6, c’est un enregistrement AAAA. Si tu as trois hôtes, configure trois enregistrements A. Configure deux enregistrements NS pour les noms d’hôtes du serveur de noms.

Rassemble les informations nécessaires comme suit :

hôte ou domaineAdresse IPUtilisé pour
xyzzy.tld192.168.260.71Adresse de la page Web
web192.168.250.71serveur web
ns1192.168.250.73serveur de noms
ns2192.168.258.75serveur de noms

1.1 Utilisation d’ISPConfig 3.x

Installe les trois hôtes et ISPConfig sur eux en utilisant la configuration multiserveur. J’ai utilisé Debian GNU/Linux 9.5 et ISPConfig 3.1.12 pour tester ce tutoriel.

Si tu prévois d’avoir plusieurs domaines, il est plus facile de configurer les Templates DNS. Voir le chapitre 4.8.1.3 Templates du manuel ISPConfig. Ici, un seul domaine est ajouté, les templates ne sont donc pas utilisés.

Va dans l’onglet DNS et clique sur « Ajouter une nouvelle zone DNS manuellement ». Cette zone est le fichier de configuration de ton domaine, tu peux considérer que c’est plus ou moins la même chose que le domaine que tu veux utiliser.

Les captures d’écran montrent comment remplir le formulaire de la zone DNS. Si tu configures cette zone pour un client, entre le client dans le formulaire. Tu peux le laisser vide si tu configures cette zone pour toi-même ou si tu ne veux pas créer de clients dans ISPConfig.

Formulaire de zone DNS dans ISPConfig

Sauvegarde et va dans l’onglet Enregistrements.

Enregistrements DNS

Dans l’onglet Enregistrements, ajoute des enregistrements en appuyant sur le bouton vert correspondant à l’enregistrement souhaité. Par exemple, pour obtenir un enregistrement A, appuie sur le bouton vert avec A. Lorsque tu écris des noms d’hôtes FQDN, n’oublie pas d’ajouter le caractère point « . » à la fin du nom. Certains champs des formulaires DNS d’ISPConfig en ont besoin pour créer une entrée de service de nom qui fonctionne correctement. Il est plus facile de l’écrire systématiquement que de se souvenir des endroits où il n’est pas nécessaire.

Tu peux ajouter d’autres enregistrements si tu veux.

La boule rouge avec un chiffre en haut de la fenêtre du panneau ISPConfig indique que la sauvegarde sur le disque est en cours. Le nombre indique le nombre d’enregistrements qui doivent encore être écrits. Attends deux minutes ou jusqu’à ce que la boule rouge disparaisse avant de tester, sinon tu risques de tester les anciennes configurations.

Si tu as besoin de plus de serveurs de noms, ou si tu n’avais qu’un seul hôte sur lequel tu as installé ISPConfig, tu peux ajouter des hôtes à la configuration d’ISPConfig. Pour les hôtes qui n’exécutent que le service de noms, même un petit hôte est suffisant. Si tu peux installer Linux et ISPConfig sur l’hôte et qu’il a une adresse IP statique, tu peux l’utiliser comme serveur de noms. Tu peux le faire fonctionner dans ton bureau ou à la maison, mais l’adresse IP statique peut être difficile à obtenir ou coûteuse. Les hébergeurs ont des offres petites et bon marché, et tu peux obtenir cette adresse IP statique. Tu peux mettre en place une configuration multiserveur ISPConfig, où un hôte est quelque part et l’autre hôte est ailleurs.

Si tu es confus, lis le manuel d’ISPConfig.

1.2 Utiliser le service de nom des fournisseurs

Saute cette étape si tu as déjà utilisé ISPConfig pour configurer le service de nom.

Si tes hôtes sont chez un hébergeur, ils proposent probablement un service DNS pour leurs clients. Ou tu peux trouver un fournisseur de services DNS.

Sur la façon d’utiliser ces services, il est difficile de donner des conseils précis. Chaque fournisseur a probablement un système différent. Cependant, ils ont tous besoin que tu entres les informations que tu as recueillies dans le tableau au début.

Lis le chapitre précédent et adapte-toi au formulaire de saisie de ton fournisseur.

Le fournisseur d’hébergement ou le fournisseur DNS gère très probablement un ensemble de serveurs de noms, et tous les clients DNS les utilisent. Les serveurs de noms sont probablement nommés ns1.tonfournisseur.com, ns2.tonfournisseur.com. Le fournisseur peut proposer des enregistrements de colle, ce qui fait que tes serveurs de noms sont nommés ns1.xyzzy.tld, ns2.xyzzy.tld. Vérifie dans les instructions de ton fournisseur si des enregistrements de colle sont disponibles et comment les utiliser.

1.3 Test

N’oublie pas de vérifier que le service de noms fonctionne maintenant correctement. Connecte-toi à l’hôte ns1 ou ns2 et commence les tests. Cet exemple fonctionne sur Debian GNU/Linux 9.5 Stretch, je pense qu’Ubuntu est à peu près le même. Les autres systèmes d’exploitation peuvent être différents. Si tu fais le test sous Windows, il n’y a pas de commande host, utilise nslookup à la place.

[email protected]:~# host web.xyzzy.tld 192.168.250.73
Using domain server:
Name: 192.168.250.73
Address: 192.168.250.73#53
Aliases: 

web.xyzzy.tld has address 192.168.250.71
[email protected]:~#

Le test ci-dessus montre que le serveur de noms utilisé est 192.168.250.73 et qu’il résout le nom web.xyzzy.tld au numéro IP 192.168.250.71, ce qui est ce que nous voulons dans ce cas. Tester comme cela est utile car

  • La commande host teste le service de nom, si tu pingnes le nom de l’hôte, il peut apparaître en premier dans le fichier /etc/hosts et donc ne pas tester le service de nom du tout.
  • Le numéro IP dans la commande host après le FQDN est l’adresse du serveur de noms où la requête est envoyée. De cette façon, nous sommes sûrs de tester le serveur de noms que nous venons de configurer.
  • Le numéro IP est utilisé pour le serveur de noms au lieu du nom d’hôte, car si le service de noms ne fonctionne pas, le nom peut ne pas se résoudre au numéro IP prévu, il est donc préférable d’utiliser directement l’adresse IP.

Vérifie les autres noms d’hôtes que tu as configurés de la même manière.

  • Si l’adresse IP renvoyée est fausse, va la corriger
  • Si elle n’est pas trouvée, vérifie l’orthographe
  • Si elle n’est pas trouvée, vérifie le point à la fin du FQDN dans ISPConfig où tu as écrit les noms.
  • Si « la connexion a expiré, aucun serveur n’a pu être atteint » : le serveur de noms ne fonctionne pas ou la connexion réseau est perdue. Vérifie le réseau en envoyant un ping au numéro IP, par exemple. Vérifie que l’hôte est en marche. Vérifie que le service de noms est en cours d’exécution, sur Debian et Ubuntu avec
    systemctl status bind9.service

    .

  • Si toutes les mesures ci-dessus ne permettent pas d’obtenir un service de noms fonctionnel, va au chapitre Outils.

Vérifie les informations de la zone, en particulier les serveurs de noms, comme ceci :

[email protected]:~# dig @192.168.250.73 xyzzy.tld

; <<>> DiG 9.10.3-P4-Debian <<>> @192.168.250.73 xyzzy.tld
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64352
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xyzzy.tld.			IN	A

;; ANSWER SECTION:
xyzzy.tld.		3600	IN	A	192.168.250.71

;; AUTHORITY SECTION:
xyzzy.tld.		3600	IN	NS	ns1.xyzzy.tld.
xyzzy.tld.		3600	IN	NS	ns2.xyzzy.tld.

;; ADDITIONAL SECTION:
ns1.xyzzy.tld.		3600	IN	A	192.168.250.73
ns2.xyzzy.tld.		3600	IN	A	192.168.250.75

;; Query time: 0 msec
;; SERVER: 192.168.250.73#53(192.168.250.73)
;; WHEN: Fri Aug 10 15:41:53 EEST 2018
;; MSG SIZE  rcvd: 122

[email protected]:~#

Dig obtient le serveur de noms auquel il envoie la requête à partir du paramètre @. Mets-y le numéro IP du serveur de noms.

Si dig affiche les enregistrements NS correctement et les numéros IP corrects pour les serveurs de noms dans les enregistrements A, alors les choses se présentent bien.

Fais maintenant le test ci-dessus en utilisant l’autre serveur de noms, tu n’as pas besoin de te connecter à ns2, exécute simplement les commandes à nouveau mais utilise le numéro IP de l’autre serveur. Cela permet de s’assurer que l’autre serveur de noms fonctionne comme il se doit.

Tu peux faire d’autres tests en configurant ta station de travail pour qu’elle utilise les nouveaux serveurs de noms que tu as configurés. Tu dois changer les serveurs DNS sur ta station de travail. Cherche comment le faire pour ton système d’exploitation dans le manuel ou sur Internet. Sous Linux, tu peux modifier le fichier /etc/resolv.conf. Sous Windows, il se trouve dans les paramètres réseau (au même endroit où tu configures l’obtention de l’adresse IP automatiquement).

1.4 Service de nom inversé

Saute cette étape si tu n’as pas besoin du service de nom inversé (les enregistrements PTR).

Le service de nom inversé résout le nom lorsqu’une adresse IP est donnée. C’est l’opération inverse du service de nom habituel.

Si tu configures un service de nom interne à ton organisation, tu peux configurer un service de nom inverse dans les mêmes serveurs de nom. Si tu utilises ISPConfig, crée d’abord la zone inverse, puis crée des enregistrements PTR dans cette zone pour chaque numéro IP que tu as.

Si le service de nom inversé doit fonctionner depuis l’Internet public, tu ne peux pas utiliser ton propre serveur de noms car il n’est probablement pas un serveur de noms faisant autorité pour la zone inverse de l’IP. S’il l’est, tu dois le savoir. Contacte ton fournisseur de services ou la société qui t’a donné tes numéros IP, et demande-leur de configurer le service de nom inversé. Indique-leur les enregistrements PTR dont tu as besoin, ou découvre comment utiliser l’interface utilisateur Web que la société d’hébergement fournit probablement pour utiliser le service de nom inversé.

Pour configurer le service de nom inversé avec ISPConfig, crée la zone DNS pour le service inversé, elle doit être nommée avec les trois premiers octets du numéro IP dans l’ordre inverse avec « .in-addr.arpa » ajouté à la fin. Dans ce cas, les numéros IP proviennent du sous-réseau 192.168.250/24, la zone inverse est donc nommée 250.168.192.in-addr.arpa. N’oublie pas d’ajouter aussi des enregistrements NS à la zone inverse.

Zone inversée

Dans cette zone inverse, crée des enregistrements PTR comme suit :

PTR Records

Le test est facile avec la commande host, comme ceci :

[email protected]:~# host 192.168.250.71 192.168.250.73
Using domain server:
Name: 192.168.250.73
Address: 192.168.250.73#53
Aliases: 

71.250.168.192.in-addr.arpa domain name pointer web.xyzzy.tld.

Il est possible de créer de nombreux enregistrements PTR pour le même numéro IP. La requête inverse les renvoie alors tous. Tu ne veux peut-être pas cela, alors ne le fais pas à moins de savoir ce que tu fais.

Si tu configures un serveur de messagerie, par exemple, mail.xyzzy.tld, tu dois définir l’enregistrement PTR car la plupart des serveurs de messagerie vérifient que le numéro IP d’envoi se résout au nom d’hôte utilisé par le serveur de messagerie.

1.5 Outils

Si tu penses que le service de nom n’a pas démarré, vérifie avec

systemctl status bind9.service

S’il affiche « Active : active (running) … », alors le service de noms fonctionne. Ne fais pas attention aux éventuelles lignes « network unreachable resolving … AAAA« , si tu les obtiens, cela signifie que tu n’as pas de réseau IPv6 disponible.

Si le service de nom fonctionne mais que les tests avec la commande host ne donnent pas de réponse, il se peut que le fichier de zone soit défectueux. Utilise named-checkzone si bind n’accepte pas la zone. Le fichier de zone défectueux se trouve (sur Debian GNU/Linux) dans le fichier /etc/bind/pri<nom de la zone>.err, c’est-à-dire que .err a été ajouté à la fin du nom du fichier. Vérifie comme suit :

[email protected]:~# named-checkzone  250.168.192.in-addr.arpa /etc/bind/pri.250.168.192.in-addr.arpa.err
zone 250.168.192.in-addr.arpa/IN: has no NS records
zone 250.168.192.in-addr.arpa/IN: not loaded due to errors.
[email protected]:~#

Répare les erreurs, dans ISPConfig si tu l’as configuré à l’aide d’ISPConfig Panel.

Il peut y avoir des erreurs dans le fichier journal, arrête et démarre le service de nom et regarde ce qui se trouve dans le fichier /var/log/syslog. Par exemple avec

grep named /var/log/syslog

Il existe des sites Web qui vérifient la configuration de ton service de noms, tu peux utiliser les moteurs de recherche Internet pour les trouver. Je connais zonecheck.org, mxtoolbox.com, zonemaster.net.

1.6 Obtenir de l’aide

Si tu demandes de l’aide sur le forum, cacher le nom du domaine rend l’aide difficile. Si tu révèles le nom du domaine, il est facile de vérifier la configuration et de donner des conseils si quelque chose ne va pas. Si tu ne peux pas révéler le nom de domaine publiquement et que l’utilisation de ce tutoriel et de la documentation sur Internet ne t’aide pas, trouve quelqu’un de confiance avec ton nom de domaine et qui connaît le service de nom, puis demande à cette personne de t’aider avec ton domaine.

1.7 Enregistrement d’un domaine

Lorsque ton service de noms fonctionne correctement pour ta zone, tu peux l’enregistrer, ou s’il était déjà enregistré auparavant, tu peux maintenant ajouter des serveurs de noms à l’enregistrement et le domaine est disponible sur Internet, après 4 à 48 heures pendant que les informations du service de noms voyagent dans le monde entier.

Si tu enregistres xyzzy.tld et qu’il a un serveur de noms ns1.xyzzy.tld, tu donnes des numéros IP pour les serveurs de noms au lieu des noms d’hôtes. Si tu ne donnes que le nom d’hôte ns1.xyzzy.tld, comment trouver le serveur de noms ? Le seul endroit où le numéro IP est disponible est sur ns1.xyzzy.tld mais comment y accéder sans connaître le numéro IP ? Une autre façon de résoudre ce dilemme est d’utiliser les enregistrements glue (voir précédemment), tu peux alors utiliser des noms au lieu de numéros IP pour tes serveurs de noms.

Lorsque tu enregistres un autre domaine plugh.tld, tu peux donner des serveurs de noms comme noms d’hôtes ns1.xyzzy.tld et ns2.xyzzy.tld puisque le domaine xyzzy.tld est déjà bien enregistré et que les serveurs de noms sont connus.

Vous aimerez aussi...