DNS ou Domain Name System est l'une des parties les plus intégrantes d'Internet. Toute personne qui utilise Internet utilise le service DNS tous les jours. Cependant, il est également massivement négligé par rapport aux autres frénésies Internet. En bref, le service DNS convertit les URL en adresses IP. Comme vous devez le savoir maintenant, une adresse IP est un numéro unique qui identifie tout ce qui est connecté à un réseau. Si vous souhaitez poursuivre une carrière dans l'administration Linux, vous devez avoir une solide compréhension du fonctionnement du DNS. Ce guide donne un aperçu pratique des concepts DNS de base et des exemples pratiques d'un serveur DNS Ubuntu.
Exploration approfondie du système de noms de domaine (DNS)
Étant donné que le DNS se compose de plusieurs services et d'interactions complexes entre eux, les utilisateurs doivent se familiariser avec les terminologies de base pour comprendre ce qui se passe dans les coulisses. C'est pourquoi nous avons divisé l'ensemble du guide en plusieurs sections. Le premier offre une brève introduction aux termes et concepts, tandis que d'autres traitent des flux de travail et des configurations.
Présentation des principaux termes et concepts du DNS
Lorsque vous travaillez avec DNS, vous serez confronté à divers termes et terminologies tels que les hôtes, les zones, les TLD et les résolveurs. La section ci-dessous fournit une introduction concise à certains de ces concepts.
DNS
DNS ou Domain Name System est le mécanisme qui interprète un nom de domaine complet (FQDN) à une adresse IP spécifique. Il s'agit de l'adresse que nos systèmes utilisent pour envoyer et récupérer des ressources Web. DNS se compose de plusieurs systèmes et effectue des communications multidirectionnelles pour récupérer l'adresse IP associée à une URL.
Nom de domaine
Les noms de domaine sont des adresses lisibles par l'homme associées à des ressources Web. Ils suppriment l'ambiguïté de la mémorisation d'un grand nombre d'adresses IP. Par exemple, google.com est le nom de domaine du moteur de recherche Google. Lorsque vous entrez ceci dans la barre d'adresse de votre navigateur, il utilise le système DNS pour trouver l'adresse IP réelle.
Adresse IP
Une adresse IP est un numéro unique attribué à tous les appareils connectés à Internet à un moment donné. Les adresses IP ont plusieurs classes et deux versions principales. La plupart des gens utilisent la version IP 4 à partir de maintenant. Les adresses IPv4 sont composées de quatre octets, chacun séparé par un point "." symbole.
TLD
TLD s ou Domaines de premier niveau se situe au plus haut niveau dans la hiérarchie des noms de domaine. Ce sont les parties les plus générales d'un nom de domaine et elles sont situées à l'extrême droite. Par exemple, le "com ” est le TLD de l'URL www.example.com . Certains domaines de premier niveau populaires incluent "com", "org, "gov", "net" et "edu".
Hôtes
Les propriétaires d'un domaine peuvent définir plusieurs hôtes différents au sein de ce domaine. Ceux-ci peuvent être utilisés pour accéder à des services ou à des ordinateurs distincts. La plupart des serveurs Web sont accessibles via le domaine nu comme example.com ou via la déclaration d'hôte comme www.example.com. La partie "www" est l'hôte ici. Une autre utilisation courante d'un hôte consiste à fournir un accès API comme api.example.com.
Sous-domaine
- -Les sous-domaines sont simplement un sous-ensemble d'un domaine. Cela permet aux propriétaires de sites d'avoir plusieurs sous-domaines sous un domaine parent. Par exemple, un domaine appelé université.edu peut avoir plusieurs sous-domaines pour chacun de ses départements, tels que www.cs.university.edu ou www.phy.university.edu. La différence entre les hôtes et les sous-domaines est que le premier spécifie différents ordinateurs ou services, tandis que le second divise le domaine parent en différents groupes.
Nom de domaine complet
Un nom de domaine complet ou FQDN est le domaine absolu d'un site Web. Il représente la racine du domaine en question. Un domaine contient généralement plusieurs sous-routes ou chemins tels que www.example.com/new/example. Ici, la section www.example.com est le FQDN. De plus, le FQDN se termine toujours par un point "." symbole comme "www.example.com.". Mais, les utilisateurs ne sont pas obligés d'entrer ce point de fin car le programme client s'en charge.
Serveur de noms
Dans le DNS, un serveur de noms est un système informatique chargé de traduire les noms de domaine en adresses IP adressables. Ils effectuent la majeure partie du travail réel au sein d'une infrastructure DNS Ubuntu. Comme les serveurs de noms doivent traiter des milliers de requêtes par seconde, ils redirigent souvent les requêtes supplémentaires vers de nouveaux serveurs. De plus, les serveurs de noms peuvent également fonctionner comme un serveur faisant autorité. Dans ce scénario, ils répondent aux requêtes qui sont sous leur contrôle et servent sinon les réponses mises en cache d'autres serveurs.
Fichiers de zone
Les fichiers de zone sont de véritables fichiers texte qui stockent les relations entre les noms de domaine et les adresses IP associées. Un système DNS récupère les informations IP d'un FQDN à partir de ce document. Ils sont stockés sur le serveur de noms et spécifient quelles ressources sont accessibles pour un domaine particulier. Si les informations ne sont pas disponibles dans le fichier de zone, ils pointent vers l'emplacement qui contient ces données.
Serveur racine
Comme indiqué précédemment, le DNS est un système hiérarchique qui comprend des composants à plusieurs niveaux. Le serveur racine se situe au sommet de cette hiérarchie. Ce sont des serveurs extrêmement puissants gérés par plusieurs organisations et contrôlés par ICANN (Internet Corporation for Assigned Names and Numbers) . Actuellement, il existe 13 serveurs racine principaux dans le monde, et chacun d'eux est mis en miroir pour une disponibilité accrue.
Lorsque quelqu'un demande un serveur racine, la demande est transmise au miroir le plus proche. Les serveurs racine gèrent les requêtes concernant les domaines de premier niveau. Chaque fois qu'il y a quelque chose qu'un serveur de noms de niveau inférieur ne peut pas résoudre, le serveur racine se voit présenter cette question. Cependant, les serveurs racine ne disposent en réalité d'aucune information IP. Ils pointent plutôt vers les serveurs de noms qui gèrent ce TLD spécifique.
Serveur TLD
Les serveurs TLD se trouvent sous les serveurs racine dans la hiérarchie DNS. Les serveurs racine dirigent les entités de requête DNS vers le serveur TLD de cette requête. Le serveur TLD redirige ensuite l'entité demandeuse vers le serveur de noms, qui dispose des informations IP spécifiques pour le domaine en question.
Serveurs de noms au niveau du domaine
Les serveurs TLD redirigent l'entité demandeuse vers le serveur de noms au niveau du domaine. Il s'agit du serveur dont le fichier de zone contient les mappages IP pour le domaine. Donc, c'est le serveur de noms qui a l'adressage IP spécifique pour le nom de domaine demandé.
Résolveur
Un résolveur est l'entité de requête chargée de récupérer les informations IP d'un domaine à partir du DNS. Habituellement, il est configuré dans le système client comme dans le navigateur ou via un paramètre DNS Ubuntu personnalisé. La plupart des gens utilisent le résolveur DNS fourni par leur FAI. Un résolveur est essentiellement une abstraction qui permet à l'utilisateur final d'ignorer ce qui se passe sous le capot. Il peut fonctionner de manière récursive jusqu'à ce qu'il récupère l'adresse IP d'un domaine donné.
Enregistrements
Nous avons déjà expliqué que le serveur de noms stocke les mappages domaine vers IP dans le fichier de zone. Les informations contenues dans les fichiers de zone sont enregistrées sous forme d'enregistrements. Il existe de nombreux types d'enregistrements dans un fichier de zone. Nous abordons ici quelques-uns des plus importants.
Enregistrements SOA
SOA signifie Démarrage de l'Autorité et est un enregistrement obligatoire pour tous les fichiers de zone. Le premier enregistrement réel dans un fichier de zone doit être de type SOA. Cela peut prendre un certain temps avant que vous ne compreniez parfaitement les enregistrements SOA. Jusque-là, rappelez-vous les plats à emporter suivants. Tout d'abord, un enregistrement SOA ressemble à l'extrait suivant.
example.com. IN SOA ns1.example.com. admin.example.com. ( 12083 ; serial number 3h ; refresh interval 30m ; retry interval 3w ; expiry period 1h ; negative TTL )
Les parties essentielles sont les suivantes.
- exemple.com – Il s'agit de la racine de la zone et précise que le fichier est destiné à « example.com ». domaine.
- EN SOA - Le "IN" signifie Internet, et SOA représente le fait qu'il s'agit d'un enregistrement SOA.
- ns1.example.com. - Il s'agit du serveur de noms principal pour "example.com". domaine. De plus, si vous avez configuré un DNS Ubuntu dynamique, votre serveur de noms principal va ici.
- admin.exemple.com. – Il s'agit de l'adresse e-mail de l'administrateur responsable de cette zone particulière. Le symbole "@" est remplacé par un point "." symbole de l'adresse e-mail.
- 12083 – Il s'agit du numéro de série de cette zone, et vous devez incrémenter ce numéro de série chaque fois que vous mettez à jour le fichier de zone. C'est ainsi que les serveurs secondaires déterminent qu'un changement a eu lieu dans cette zone.
- 3h – L'intervalle d'actualisation de la zone spécifie combien de temps les serveurs secondaires doivent attendre avant de rechercher des modifications dans le fichier de zone du serveur principal.
- 30 m – L'intervalle entre les tentatives d'une zone spécifie combien de temps les serveurs secondaires doivent attendre avant de réessayer d'interroger le serveur principal.
- 3 semaines – Il s'agit de la période d'expiration et définit la durée pendant laquelle les serveurs secondaires doivent essayer d'établir une communication réussie. Si une connexion ne peut pas être établie dans ce délai, les serveurs secondaires cesseront de répondre comme faisant autorité pour cette zone.
- 1h – Si le serveur de noms ne trouve pas le nom demandé dans ce fichier de zone, il mettra en cache une erreur de nom pendant ce laps de temps.
Enregistrements A et AAAA
Les enregistrements A et AAAA mappent un hôte à une adresse IP réelle. L'enregistrement « A » mappe un hôte à une adresse IPv4 fonctionnelle, et les enregistrements « AAAA » mappent des hôtes à des adresses IPv6. Vous trouverez ci-dessous le format général de ces types d'enregistrement.
hostname IN A IPv4Address hostname IN AAAA IPv6Address
Vous trouverez ci-dessous un exemple approprié utilisant le serveur de noms ns1 défini dans l'enregistrement SOA.
ns1.example.com. IN A 111.112.221.222
L'enregistrement "A" suivant définit le serveur Web comme "www".
www IN A 111.112.211.212
Enregistrements CNAME
Les enregistrements CNAME représentent un alias pour le serveur de noms défini par un enregistrement A ou AAAA. Par exemple, l'extrait de code suivant déclare un hôte appelé "serveur" à l'aide d'un enregistrement A, puis crée un alias "www" pour cet hôte.
server IN A 111.111.111.111 www IN CNAME server
Cependant, la création d'alias peut entraîner une baisse des performances car ils nécessitent une requête supplémentaire sur le serveur. Les enregistrements CNAME sont généralement utilisés pour donner un nom canonique à une ressource externe.
Enregistrements MX
Les enregistrements MX sont utilisés pour spécifier les échanges de courrier pour un nom de domaine et aident à recevoir les communications par courrier électronique qui arrivent sur votre serveur de messagerie Linux. Contrairement à la plupart des types d'enregistrements, ils ne mappent pas les hôtes aux adresses IP car ils s'appliquent à l'ensemble de la zone. Vous trouverez ci-dessous un exemple simple d'enregistrement MX.
IN MX 10 mail.example.com.
Notez qu'aucun hôte n'est défini dans cet enregistrement et qu'il a également un nouveau numéro "10". Ceci est utilisé pour indiquer la préférence. S'il existe plusieurs enregistrements MX, les e-mails seront dirigés vers le serveur qui a le numéro de préférence le plus bas.
Enregistrements NS
Les enregistrements NS spécifient les serveurs de noms utilisés pour une zone. Bien que cela puisse sembler non pertinent puisque le fichier de zone existe déjà sur le serveur de noms, il est utilisé pour certaines raisons. Comme souvent, le fichier de zone servi par un serveur DNS peut en fait être une copie en cache d'un autre serveur.
IN NS ns1.example.com. IN NS ns2.example.com.
Comme les enregistrements MX, les enregistrements NS sont également définis pour une zone entière et ne nécessitent pas de noms d'hôte. De plus, de nombreux DNS ubuntu considèrent que les fichiers de zone sont invalides s'ils ne contiennent pas plusieurs enregistrements ns. Ainsi, la plupart des fichiers de zone définissent plus d'un serveur de noms.
Enregistrements PTR
Les enregistrements PTR spécifient un nom associé à une adresse IP fonctionnelle et sont simplement l'inverse de l'enregistrement A ou AAAA. Ils doivent commencer à la racine .arpa et sont commandés au propriétaire de l'IP. La délégation des adresses IP aux organisations et aux fournisseurs de services est gérée par les Registres Internet régionaux (RIR) .
222.111.222.111.in-addr.arpa. 33692 IN PTR host.example.com.
L'extrait ci-dessus fournit un exemple de base d'un enregistrement PTR. Il mappe l'IP 222.111.222.111 sur "host.example.com".
Enregistrements CAA
Les enregistrements CAA définissent quelles autorités de certification (CA) sont autorisés à émettre des certificats SSL/TLS pour un nom de domaine particulier. Si aucun enregistrement CAA n'est défini pour un domaine, n'importe quelle autorité de certification peut émettre un certificat. Cependant, si une autorité de certification est définie explicitement, seule cette autorité spécifique peut émettre le certificat.
example.com. IN CAA 0 issue "letsencrypt.org"
Un enregistrement CAA ressemble à l'extrait ci-dessus. Les champs hôte, IN et CAA sont spécifiques au DNS tandis que les drapeaux (0), les balises (problème) et les valeurs ("letsencrypt.org") sont spécifiques au CAA. L'autorité de certification ignorera l'enregistrement si le drapeau est défini sur "0", mais elle doit s'abstenir d'émettre un certificat s'il est défini sur "1".
Comment fonctionne réellement le DNS ?
Maintenant que nous avons appris tous les principaux termes et concepts associés, nous pouvons découvrir comment fonctionne une requête DNS réelle. Nous allons proposer une illustration simple du monde réel et analyser attentivement le chemin de la requête.
Supposons que nous essayons d'établir une connexion entre mon ordinateur portable alimenté par Ubuntu et le site Web "www.example.com. “. J'ouvre un navigateur Internet, tape l'URL dans la barre d'adresse et appuie sur Entrée. Dans un premier temps, le client ou mon navigateur, dans ce cas, vérifiera si l'adresse IP de « www.example.com ». existe déjà dans son cache. S'il le trouve, il ignorera toutes les étapes ultérieures.
Lorsque le client ne parvient pas à trouver l'adresse IP dans le cache du navigateur, il transmet la demande au résolveur ou au serveur de noms du FAI dans mon cas. Le résolveur essaie de voir si d'autres utilisateurs ont récemment visité ce site Web et, si c'est le cas, localise l'adresse IP à partir de son cache. Sinon, le résolveur transmet la demande à l'un des serveurs de noms racine.
Le serveur racine renvoie l'adresse du serveur de noms TLD pour ce domaine, qui est un ".com ” serveur de noms dans cet exemple. Maintenant, le résolveur envoie une requête au serveur TLD pour voir s'il a le résultat attendu. Cependant, le serveur TLD n'a pas non plus les informations mais sait quel serveur de noms en a. Il renvoie l'adresse de ce serveur de noms qui a le domaine vers les mappages IP pour notre URL.
Une fois que le résolveur demande au serveur de noms notre domaine, il renvoie l'adresse IP appropriée. Le résolveur envoie alors simplement l'adresse IP réelle au programme client, qui peut maintenant établir la communication nécessaire.
Comme vous pouvez le voir, le chemin d'une requête DNS ubuntu totale comprend de nombreuses requêtes récursives et itératives. De plus, plusieurs couches de caches sont ajoutées à ce mécanisme pour rendre les choses simples et plus rapides. C'est pourquoi la plupart du temps, votre navigateur n'a pas besoin d'attendre qu'une requête DNS complète ait lieu. Par exemple, si vous allez sur un site Web populaire comme YouTube, il y a de fortes chances que le cache de votre FAI ait déjà l'IP de ce domaine.
De plus, les configurations DNS d'Ubuntu peuvent varier largement en fonction de l'application et du rôle du serveur. Lorsqu'il est configuré en tant que serveur de noms de mise en cache, le serveur DNS localise la réponse aux requêtes du client et mémorise la réponse pour les requêtes futures. Si vous définissez plutôt votre DNS comme serveur principal, il lira les données d'une zone à partir du fichier de zone et fera autorité pour cette zone uniquement. Lorsqu'il est configuré en tant que serveur secondaire, il récupère les données du fichier de zone d'un autre serveur de noms.
Installation et configuration d'un serveur DNS Ubuntu
Maintenant que nous avons discuté du fonctionnement du DNS et de la plupart des concepts clés, nous pouvons commencer à créer notre propre serveur DNS. Pour cette partie du tutoriel, nous utiliserons le BIND (démon de nommage Internet Berkley) programme, qui est l'implémentation DNS la plus populaire et offre des performances extrêmement solides même sous une charge importante.
Utilisez la commande simple suivante pour installer BIND sur votre machine Ubuntu. Nous recommandons également aux utilisateurs de télécharger dnsutils , un package robuste pour tester et résoudre les problèmes avec votre serveur DNS.
$ sudo apt install bind9 $ sudo apt install dnsutils
Les fichiers de configuration pour BIND se trouvent dans le répertoire /etc/bind répertoire de votre système de fichiers Linux. Les principales données de configuration sont enregistrées dans le fichier /etc/bind/named.conf dossier. Les options /etc/bind/named.conf.options est utilisé pour définir les options globales, le /etc/bind/named.conf.local pour configurer les zones, et les /etc/bind/named.conf.default-zones fichier de gestion des zones par défaut.
Auparavant, Ubuntu utilisait /etc/bind/db.root fichier pour décrire les serveurs de noms racine. Maintenant, il utilise le fichier /usr/share/dns/root.hints Au lieu. Ce fichier est donc référencé dans les /etc/bind/named.conf.default-zones fichier.
De plus, il est tout à fait possible de configurer le même serveur DNS Ubuntu en tant que serveur principal, secondaire et de mise en cache. Les rôles changent en fonction des zones desservies par le serveur. Par exemple, vous pouvez configurer votre serveur pour qu'il soit Start of Authority (SOA) pour une zone tout en offrant des services secondaires à une zone différente. En attendant, il peut offrir des services de mise en cache pour les hôtes qui se trouvent sur votre LAN local.
Serveur principal
Dans cette section, nous montrerons comment créer des configurations DNS Ubuntu pour un serveur de noms principal. Ce serveur traitera les requêtes pour le FQDN "example.com “. Remplacez simplement ce nom de domaine par votre propre URL pour mettre en place les mêmes configurations.
Tout d'abord, nous devrons configurer le fichier de zone de transfert. Ouvrez le fichier /etc/bind/named.conf.local fichier à l'aide de votre éditeur de texte Linux préféré et ajoutez les extraits suivants.
$ sudo nano /etc/bind/named.conf.local
zone "example.com" { type master; file "/etc/bind/db.example.com"; };
Vous pouvez configurer votre serveur DNS BIND pour obtenir des mises à jour automatiques chaque fois que vous modifiez les fichiers de configuration. Pour cela, utilisez le fichier /var/lib/bind/db.example.com dans l'extrait ci-dessus et dans la commande suivante.
$ sudo cp /etc/bind/db.local /etc/bind/db.example.com
La commande ci-dessus copie un fichier de zone déjà existant que nous utiliserons comme modèle pour nos prochaines étapes. Maintenant, nous allons éditer notre fichier de zone (/etc/bind/db.example.com ) et apportez les modifications requises.
$ sudo nano /etc/bind/db.example.com
Tout d'abord, nous remplaçons "localhost". au nom de domaine complet de notre serveur, qui est "example.com". N'oubliez pas d'ajouter le "." dans le FQDN. Maintenant, remplacez "127.0.0.1" par l'adresse IP réelle de votre serveur de noms et "root.localhost". à une adresse e-mail active. N'oubliez pas d'utiliser un "." au lieu du symbole "@" dans votre adresse e-mail. Nous vous recommandons également d'ajouter un commentaire documentant le FQDN pour ce fichier de zone. Notre fichier ressemble maintenant à ce qui suit.
; ; BIND data file for example.com ; $TTL 604800 @ IN SOA example.com. root.example.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ------------------------------------------------------------------ ------------------------------------------------------------------
Nous n'avons modifié que l'enregistrement SOA jusqu'à présent. Il est temps d'apporter des modifications à l'enregistrement NS ainsi qu'aux enregistrements A de notre fichier de zone. Changez le "localhost". une partie de l'enregistrement NS correspondant à votre serveur de noms, qui est "ns.example.com". pour notre démo FQDN. Remplacez la partie "127.0.0.1" du premier enregistrement A par l'adresse IP de votre serveur de noms. Nous avons utilisé "192.168.1.10". Enfin, créez un enregistrement A pour notre serveur de noms "ns.example.com" en ajoutant la dernière ligne dans l'extrait ci-dessous.
; ; BIND data file for example.com ; $TTL 604800 @ IN SOA example.com. root.example.com. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL @ IN NS ns.example.com. @ IN A 192.168.1.10 @ IN AAAA ::1 ns IN A 192.168.1.10
Voici à quoi ressemblera la configuration finale pour la zone de transfert de notre serveur principal.
N'oubliez pas d'incrémenter le numéro de série, sinon BIND ne remarquera pas les modifications apportées à ses configurations. Lorsque vous ajoutez plusieurs chances, vous n'avez pas besoin de changer la série à chaque fois. Si vous souhaitez ajouter des enregistrements DNS Ubuntu supplémentaires, ajoutez-les simplement sous les options ci-dessus. Une fois que tout est configuré, redémarrez BIND en utilisant la commande ci-dessous.
$ sudo systemctl restart bind9.service
Maintenant que notre fichier de zone directe est configuré correctement, modifions le fichier de zone inverse. Cela permet au serveur DNS Ubuntu de résoudre une adresse IP en un FQDN. Modifiez simplement le fichier /etc/bind/named.conf.local fichier et ajoutez les extraits ci-dessous.
$ sudo nano /etc/bind/named.conf.local
zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192"; };
Vous devrez remplacer "1.168.192" par les trois premiers octets de votre propre réseau. De plus, le fichier de zone doit être nommé en conséquence. Remplacez le "192" partie du fichier de zone "/etc/bind/db.192" pour correspondre au premier octet de votre réseau. Ainsi, par exemple, si vous êtes sur le réseau 10.1.1.1/24 ; votre fichier de zone sera "/etc/bind/db.10 ” et l'entrée “1.168.192.in-addr.arpa " sera "10.1.1.in-addr.arpa ".
$ sudo cp /etc/bind/db.127 /etc/bind/db.192
Nous avons créé le fichier /etc/bind/db.192 fichier en copiant un fichier modèle existant. Maintenant, éditons ce fichier et apportons les mêmes modifications apportées à /etc/bind/db.example.com fichier.
$ sudo nano /etc/bind/db.192
; ; BIND reverse data file for local 192.168.1.XXX net ; $TTL 604800 @ IN SOA ns.example.com. root.example.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns. 10 IN PTR ns.example.com.
N'oubliez pas d'incrémenter le numéro de série à chaque modification successive du fichier de zone inversée. De plus, pour chaque enregistrement A configuré dans /etc/bind/db.example.com , vous devez toujours ajouter un enregistrement PTR dans le fichier /etc/bind/db.192 .
Une fois que tout cela est fait, redémarrez simplement le service BIND.
$ sudo systemctl restart bind9.service
Serveur secondaire
Comme nous l'avons déjà dit, la création de serveurs secondaires est une excellente idée pour plusieurs raisons, l'une d'entre elles étant une disponibilité accrue. Cela rendra vos serveurs DNS Ubuntu plus résilients et vous aidera à servir plus de clients. Alors, consultez la section ci-dessous si vous souhaitez créer un serveur de noms secondaire.
Tout d'abord, vous devez autoriser le transfert de zone sur votre serveur principal. Modifiez simplement les configurations de zone avant et arrière et ajoutez le "allow-transfer ” option aux zones.
$ sudo nano /etc/bind/named.conf.local
zone "example.com" { type master; file "/etc/bind/db.example.com"; allow-transfer { 192.168.1.11; }; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192"; allow-transfer { 192.168.1.11; }; };
Maintenant, remplacez simplement "192.168.1.11 ” avec l'adresse IP de votre serveur secondaire.
Redémarrez ensuite BIND sur votre serveur principal en exécutant la commande suivante.
$ sudo systemctl restart bind9.service
Vous devez maintenant installer BIND sur le serveur secondaire. Procédez ensuite à la modification de /etc/bind/named.conf.local fichier et ajoutez ce qui suit pour les zones avant et arrière.
zone "example.com" { type slave; file "db.example.com"; masters { 192.168.1.10; }; }; zone "1.168.192.in-addr.arpa" { type slave; file "db.192"; masters { 192.168.1.10; }; };
Remplacez simplement "192.168.1.10 ” avec l'adresse IP de votre serveur de noms principal. Redémarrez BIND une fois de plus, et vous êtes prêt à partir.
$ sudo systemctl restart bind9.service
Notez qu'une zone DNS Ubuntu n'est transférable que lorsque le numéro de série sur le serveur principal est supérieur à celui sur le serveur secondaire. Cependant, vous pouvez contourner cela en ajoutant l'option "notify also { ipaddress; } ; ” à /etc/bind/named.conf.local fichier sur votre serveur principal. Après cela, le fichier devrait ressembler à ce qui suit.
$ sudo nano /etc/bind/named.conf.local
zone "example.com" { type master; file "/etc/bind/db.example.com"; allow-transfer { 192.168.1.11; }; also-notify { 192.168.1.11; }; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192"; allow-transfer { 192.168.1.11; }; also-notify { 192.168.1.11; }; };
Serveur de mise en cache
Vous n'avez pas besoin de faire grand-chose pour créer un serveur de noms de mise en cache puisque les configurations par défaut agissent déjà comme un serveur de mise en cache. Modifiez simplement /etc/bind/named.conf.options fichier et décommentez la section des transitaires. Entrez l'adresse IP du serveur DNS de votre FAI, comme indiqué ci-dessous.
$ sudo nano /etc/bind/named.conf.options
forwarders { 1.2.3.4; 5.6.7.8; };
N'oubliez pas de remplacer les adresses IP en conséquence par des serveurs de noms réels.
Ouvrez maintenant votre émulateur de terminal Linux préféré et lancez la commande ci-dessous pour redémarrer BIND.
$ sudo systemctl restart bind9.service
Test et dépannage des configurations DNS Ubuntu
Une fois que vous avez terminé de configurer vos serveurs de noms DNS, vous voudrez vérifier s'ils fonctionnent comme prévu ou non. La première étape consiste à ajouter l'adresse IP des serveurs de noms au résolveur d'une machine hôte. La manière la plus simple de procéder consiste à modifier le fichier /etc/resolv.conf et à vous assurer que la ligne du serveur de noms pointe vers 127.0.0.53 . Ajoutez ensuite un paramètre de recherche pour votre FQDN, comme illustré ci-dessous.
$ sudo nano /etc/resolv.conf
nameserver 127.0.0.53 search example.com
Vous pouvez facilement trouver le serveur DNS utilisé par le résolveur de votre machine locale en utilisant la commande suivante.
$ systemd-resolve --status
Notez que vous pouvez également ajouter l'adresse IP du serveur secondaire à votre configuration client. Cela offrira une meilleure disponibilité et utilisera ce serveur de noms secondaire que vous venez de créer.
Un autre moyen utile de vérifier les configurations DNS consiste à utiliser la commande Linx dig. Utilisez simplement dig contre l'interface de bouclage et voyez si elle écoute sur le port 53 ou non.
$ dig -x 127.0.0.1
La commande ci-dessous utilise la commande Linux grep pour filtrer les informations pertinentes.
$ dig -x 127.0.0.1 | grep -i "53"
Si vous avez configuré BIND en tant que serveur de mise en cache, utilisez dig pour vérifier un domaine extérieur et notez l'heure de la requête.
$ dig ubuntu.com
Exécutez la commande une fois de plus et vérifiez si le temps de requête a diminué ou non. Il devrait réduire considérablement si la mise en cache réussit.
Vous pouvez également utiliser la commande Linux ping pour voir comment les clients utilisent le DNS Ubuntu pour résoudre les noms d'hôte en adresses IP.
$ ping example.com
Fin des pensées
Une solide compréhension du système DNS est cruciale si vous souhaitez décrocher un emploi CS bien rémunéré en tant qu'administrateur système ou réseau. Le but de ce guide est d'aider les débutants à maîtriser les principes du DNS le plus rapidement possible. De plus, nos éditeurs ont également fourni une illustration fonctionnelle de diverses configurations DNS Ubuntu pour faciliter votre processus d'apprentissage. À la fin de ce didacticiel, vous devriez acquérir une connaissance approfondie des concepts DNS de base ainsi qu'une expérience pratique. J'espère que nous avons pu vous fournir les informations essentielles. N'oubliez pas de nous laisser un commentaire si vous avez d'autres questions ou suggestions.