Domain Name Service (DNS) (Français)

Domain Name Service (DNS) est un service Internet qui mappe les adresses IP et les noms de domaine complets (FQDN) les uns aux autres. De cette façon, DNS soulage la nécessité de se souvenir des adresses IP. Les ordinateurs qui exécutent DNS sont appelés serveurs de noms. Ubuntu est livré avec BIND (Berkley Internet Naming Daemon), le programme le plus utilisé pour maintenir un serveur de noms sous Linux.,

à une invite de terminal, Entrez la commande suivante pour installer dns:

sudo apt install bind9

Un package très utile pour tester et résoudre les problèmes DNS est le packagednsutils. Très souvent, ces outils seront déjà installés, mais pour vérifier et/ou installer dnsutils entrez ce qui suit:

sudo apt install dnsutils

Configuration

Il existe de nombreuses façons de configurer BIND9. Certaines des configurations les plus courantes sont un serveur de noms de mise en cache, un serveur principal et un serveur secondaire.,

  • lorsqu’il est configuré en tant que serveur de noms en cache, BIND9 trouvera la réponse aux requêtes de nom et se souviendra de la réponse lorsque le domaine sera à nouveau interrogé.

  • en tant Que serveur principal, BIND9 lit les données d’une zone à partir d’un fichier sur son hôte et fait autorité pour cette zone.

  • en tant que serveur secondaire, BIND9 obtient les données de zone d’un autre serveur de noms qui fait autorité pour la zone.

aperçu

les fichiers de configuration DNS sont stockés dans le répertoire/etc/bind., Le fichier de configuration principal est /etc/bind/named.conf, qui dans la mise en page fournie par le package ne comprend que ces fichiers.

les serveurs de noms racine étaient décrits dans le fichier/etc/bind/db.root. Ceci est maintenant fourni à la place par le fichier/usr/share/dns/root.hints livré avec le packagedns-root-data, et est référencé dans le fichier de configurationnamed.conf.default-zones ci-dessus.

Il est possible de configurer le même serveur pour qu’il soit un serveur de noms de mise en cache, primaire et secondaire: tout dépend des zones qu’il dessert., Un serveur peut être le début D’Autorité (SOA) pour une zone, tout en fournissant un service secondaire pour une autre zone. Tout en fournissant des services de mise en cache pour les hôtes sur le réseau local.

serveur de noms de mise en cache

la configuration par défaut agit comme un serveur de mise en cache. Tout simplement dé-commenter et modifier /etc/bind/named.conf.options pour définir les adresses IP des serveurs DNS de votre ISP:

forwarders { 1.2.3.4; 5.6.7.8;};

Remarque

Remplacez 1.2.3.4 et 5.6.7.8 avec les Adresses IP réelle de serveurs de noms.,

Pour activer la nouvelle configuration, redémarrez le serveur DNS. À partir d’une invite de terminal:

sudo systemctl restart bind9.service

Voir dig pour plus d’informations sur le test d’un serveur DNS de mise en cache.

serveur primaire

dans cette section, BIND9 sera configuré comme serveur principal pour le domaineexample.com. Remplacez simplement example.com par votre nom de domaine complet (FQDN).,

transférer le fichier de Zone

pour ajouter une zone DNS à BIND9, en transformant BIND9 en serveur principal, modifiez d’abord /etc/bind/named.conf.local:

zone "example.com" { type master; file "/etc/bind/db.example.com";};

ecevoir des mises à jour automatiques du fichier comme avec DDNS, puis utiliser/var/lib/bind/db.example.com plutôt que /etc/bind/db.example.comà la fois ici et dans la commande copier ci-dessous.,

Maintenant utiliser un fichier de zone comme un modèle pour créer la balise /etc/bind/db.example.com fichier:

sudo cp /etc/bind/db.local /etc/bind/db.example.com

Modifier le nouveau fichier de zone /etc/bind/db.example.com et changez localhost. pour le nom de domaine complet de votre serveur, laissant supplémentaires . à la fin., Remplacez 127.0.0.1 par L’adresse IP du serveur de noms et root.localhost par une adresse e-mail VALIDE, mais avec un . au lieu du symbole @ habituel, en laissant à nouveau le . à la fin. Modifiez le commentaire pour indiquer le domaine pour lequel ce fichier est destiné.

créez un enregistrement A pour le domaine de base,example.com. Créez également un enregistrement A pour ns.example.com, le serveur de noms dans cet exemple:

Vous devez incrémenter le numéro de série chaque fois que vous apportez des modifications au fichier de zone., Si vous effectuez plusieurs modifications avant de redémarrer BIND9, incrémentez simplement la série Une fois.

Maintenant, vous pouvez ajouter des enregistrements DNS au bas du fichier de zone. Voir types D’enregistrements courants pour plus de détails.,

Remarque

de nombreux administrateurs aiment utiliser la dernière date modifiée comme la série d’une zone, telle que 2020012100 qui est aaaaammddss (où ss est le numéro de série)

Une fois que vous avez apporté des modifications au pour que les modifications prennent effet:

sudo systemctl restart bind9.service

fichier de zone inverse

maintenant que la zone est configurée et que les noms sont résolus en adresses IP, une zone inverse doit être ajoutée pour permettre au DNS de résoudre une adresse en nom.,

Edit: /etc/bind/named.conf.local et ajoutez la ligne suivante:

zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192";};

Remarque

Remplacez 1.168.192 avec les trois premiers octets de tout réseau que vous utilisez. Nommez également le fichier de zone /etc/bind/db.192 de manière appropriée. Il doit correspondre au premier octet de votre réseau.,

Maintenant créer la balise /etc/bind/db.192 fichier:

sudo cp /etc/bind/db.127 /etc/bind/db.192

Ensuite modifier /etc/bind/db.192 le changement de la même options /etc/bind/db.example.com:

Le Numéro de Série dans la zone de recherche Inversée doit être incrémenté à chaque modification. Pour chaque Un enregistrement que vous configurez dans le /etc/bind/db.example.com, c’est pour une autre adresse, vous devez créer un enregistrement PTR dans /etc/bind/db.192.,

Après avoir créé le fichier de zone inverse, redémarrez BIND9:

sudo systemctl restart bind9.service

serveur secondaire

Une fois qu’un serveur primaire a été configuré, un serveur secondaire est fortement recommandé afin de maintenir la disponibilité du domaine en cas d’indisponibilité du serveur principal.

Tout d’abord, sur le serveur principal, le transfert de zone doit être autorisé., Ajouter la balise allow-transfer option à l’exemple de l’Avant et Inverse les définitions de zone dans /etc/bind/named.conf.local:

Remarque

Remplacez 192.168.1.11 par l’Adresse IP de votre serveur de noms Secondaire.

Redémarrer BIND9 sur le serveur Principal:

sudo systemctl restart bind9.service

Ensuite, sur le serveur Secondaire, installez le paquet bind9 la même manière que sur le Primaire., Modifiez ensuite le /etc/bind/named.conf.local et ajoutez les déclarations suivantes pour les zones avant et arrière:

Remarque

remplacez 192.168.1.10 par l’adresse IP de votre serveur de noms principal.,

redémarrez BIND9 sur le serveur secondaire:

sudo systemctl restart bind9.service

Dans /var/log/syslog vous devriez voir quelque chose de similaire à ce qui suit (certaines lignes ont été divisées pour s’adapter au format de ce document):

remarque

remarque: une zone N’est transférée que si le numéro de série du primaire est plus grand que celui du secondaire., Si vous souhaitez que votre DNS principal informe les autres serveurs DNS secondaires des modifications de zone, vous pouvez ajouter also-notify { ipaddress; }; à /etc/bind/named.conf.local comme indiqué dans l’exemple ci-dessous:

Remarque

le répertoire par défaut pour les fichiers de zone non faisant autorité est /var/cache/bind/. Ce répertoire est également configuré dans AppArmor pour permettre au démon nommé d’y écrire. Pour plus d’informations sur AppArmor, consultez Security – AppArmor.,

dépannage

Cette section couvre le diagnostic des problèmes avec les configurations DNS et BIND9.

Test

resolv.conf

la première étape du test BIND9 consiste à ajouter l’adresse IP du serveur de noms à un résolveur hosts. Le serveur de noms principal doit être configuré ainsi qu’un autre hôte pour vérifier les choses. Reportez-vous à Configuration du client DNS pour plus de détails sur l’ajout d’adresses de serveur de noms à vos clients réseau., À la fin de votre nameserver ligne /etc/resolv.conf doit être orienté vers le 127.0.0.53 et vous devriez avoir un search paramètre de votre domaine. Quelque chose comme ceci:

nameserver 127.0.0.53search example.com

pour vérifier quel serveur DNS votre résolveur local utilise, exécutez:

systemd-resolve --status

Remarque

vous devez également ajouter l’adresse IP du serveur de noms secondaire à la configuration de votre client le primaire devient indisponible.,

dig

Si vous avez installé le paquet dnsutils, vous pouvez tester votre configuration en utilisant L’utilitaire de recherche DNS dig:

  • Après avoir installé BIND9, utilisez dig contre l’interface de bouclage pour vous assurer qu’il écoute sur le port 53.,i>

    Si vous avez configuré BIND9 en tant que serveur de noms de mise en cache, « creusez” un domaine extérieur pour vérifier l’Heure de la requête:

    dig ubuntu.com

    notez l’Heure de la requête vers la fin de la sortie de la commande:

    ;; Query time: 49 msec

ping

maintenant, pour démontrer comment les applications utilisent le DNS pour résoudre un nom d’hôte, utilisez l’utilitaire Ping pour envoyer une demande d’écho ICMP:

ping example.com

cela teste si le serveur de noms peut résoudre le nom ns.example.comà une adresse IP., La sortie de la commande doit ressembler à:

named-checkzone

un excellent moyen de tester vos fichiers de zone est d’utiliser l’utilitairenamed-checkzone installé avec le packagebind9. Cet utilitaire vous permet de vous assurer que la configuration est correcte avant de redémarrer BIND9 et de faire vivre les modifications.,

  • pour tester notre exemple de fichier de zone avant, entrez ce qui suit à partir d’une invite de commande:

    named-checkzone example.com /etc/bind/db.example.com

    Si tout est configuré correctement, vous devriez voir une sortie similaire à:

    zone example.com/IN: loaded serial 6OK
  • de même, pour tester le fichier de zone arrière, entrez id= »97e09ba220″>

    la sortie doit être similaire à:

    zone 1.168.192.in-addr.arpa/IN: loaded serial 3OK

remarque

le numéro de série de votre fichier de zone sera probablement différent.,

journalisation temporaire rapide des requêtes

avec l’outilrndc, vous pouvez rapidement activer et désactiver la journalisation des requêtes, sans redémarrer le service ni modifier le fichier de configuration.

Pour activer la journalisation des requêtes sur, exécuter:

sudo rndc querylog on

de Même, pour le désactiver, exécuter:

sudo rndc querylog off

Les logs seront envoyés à syslog, et s’affichera dans /var/log/syslog par défaut:

Remarque

La quantité de logs générés par l’activation querylog pourrait être énorme!,

journalisation

BIND9 a une grande variété d’options de configuration de journalisation disponibles, mais les deux principales sont channel et category, qui configurent respectivement où vont les journaux et quelles informations sont enregistrées.

Si aucune option de journalisation n’est configurée, la configuration par défaut est la suivante:

logging { category default { default_syslog; default_debug; }; category unmatched { null; };};

configurons plutôt BIND9 pour envoyer les messages de débogage liés aux requêtes DNS dans un fichier séparé.

nous devons configurer un canal pour spécifier le fichier vers lequel envoyer les messages, et une catégorie., Dans cet exemple, la catégorie enregistrera toutes les requêtes. Edit /etc/bind/named.conf.local et ajoutez la ligne suivante:

logging { channel query.log { file "/var/log/named/query.log"; severity debug 3; }; category queries { query.log; };};

Remarque

L’option debug peut être réglée de 1 à 3. Si un niveau n’est pas spécifié, le niveau 1 est la valeur par défaut.,

  • Depuis le démon named s’exécute en tant qu’utilisateur bind le /var/log/named le répertoire doit être créé et de la propriété a changé:

    sudo mkdir /var/log/namedsudo chown bind:bind /var/log/named
  • Maintenant, redémarrez BIND9 pour que les modifications prennent effet:

    sudo systemctl restart bind9.service

Vous devriez voir le fichier /var/log/named/query.log remplir avec les informations de requête. Ceci est un exemple simple des options de journalisation BIND9. Pour la couverture des options avancées voir Plus d’Informations.,

types D’enregistrements courants

Cette section couvre certains des types d’enregistrements DNS Les plus courants.

  • A enregistrement: cet enregistrement mappe une adresse IP à un nom d’hôte.

    www IN A 192.168.1.12
  • CNAME enregistrer: permet de créer un alias à un enregistrement. Vous ne pouvez pas créer un CNAME enregistrer pointant vers un autre CNAME enregistrer.

    web IN CNAME www
  • MX enregistrer: permet de définir l’endroit où l’e-mail doit être envoyé., Doit pointer vers un A enregistrer, pas un CNAME.

    @ IN MX 1 mail.example.com.mail IN A 192.168.1.13
  • NS enregistrer: permet de définir les serveurs qui servent des copies d’une zone. Il doit pointer vers un A enregistrer, pas un CNAME. C’est là que les serveurs primaires et secondaires sont définis.

    @ IN NS ns.example.com.@ IN NS ns2.example.com.ns IN A 192.168.1.10ns2 IN A 192.168.1.11

plus d’informations

  • documentation amont BIND9

  • Bind9.net a des liens vers une grande collection de ressources DNS et BIND9.,

  • DNS et BIND est un livre populaire maintenant à sa cinquième édition. Il y a maintenant aussi un livre DNS et BIND sur IPv6.

  • Le canal IRC #ubuntu-server sur freenode est un excellent endroit pour demander de l’aide à BIND9 et s’impliquer dans la communauté Ubuntu Server.

Dernière mise à jour il y a 10 mois. Aidez à améliorer ce document dans le forum.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller à la barre d’outils