Le système de noms de domaine (DNS) est un système de nommage distribué hiérarchique pour les ordinateurs, les services ou toute ressource connectée à Internet ou à un réseau privé. Il associe diverses informations aux noms de domaine attribués à chacune des entités participantes.
Plus important encore, il traduit les noms de domaine significatifs pour les humains en identifiants numériques associés aux équipements réseau dans le but de localiser et d'adresser ces appareils dans le monde entier.
Ce guide vous aidera à configurer le serveur DNS sur CentOS 7 / RHEL 7.
Environnement
Nom du serveur : ns1itzgeek.local
Adresse IP : 192.168.0.10
Installer DNS (BIND)
BIND signifie Berkeley Internet Name Domain, un logiciel qui permet d'effectuer une conversion de nom en IP.
yum -y install bind bind-utils
Configurer DNS (BIND)
Par défaut, BIND écoute sur l'hôte local. Nous allons donc configurer le serveur DNS pour qu'il écoute l'adresse IP du système afin de permettre aux clients d'accéder au serveur DNS pour résoudre les noms de domaine.
vi /etc/named.conf
Écouter sur toutes les adresses IP :
Configurez BIND pour écouter sur toutes les adresses IP.
// listen-on port 53 { 127.0.0.1; }; // listen-on-v6 port 53 { ::1; };
Écouter sur une adresse IP particulière :
Configurez BIND pour écouter une adresse IP particulière.
listen-on port 53 { 127.0.0.1; 192.168.0.10; };
Ajoutez votre réseau dans la ligne suivante. Ce paramètre permettra aux clients du réseau mentionné d'interroger le DNS pour la traduction du nom en IP.
J'ai ajouté 192.168.0.0/24 pour cette démo.
allow-query { localhost; 192.168.0.0/24; };
Créer des zones
Modifier /etc/named.conf.
vi /etc/named.conf
Zone avant
La zone suivante est l'entrée de zone de transfert pour le domaine itzgeek.local.
zone "itzgeek.local" IN { type master; file "/var/named/itzgeek.local.db"; allow-update { none; }; };
itzgeek.local – Nom de domaine
maître – DNS principal
fwd.itzgeek.local.db – Fichier de recherche directe
autoriser la mise à jour – Puisqu'il s'agit du DNS principal, il ne devrait en être aucun
Zone Inversée
La zone suivante est l'entrée de zone inverse.
zone "0.168.192.in-addr.arpa" IN { type master; file "/var/named/192.168.0.db"; allow-update { none; }; };
0.168.192.in-addr.arpa – Nom de recherche inversée
maître – DNS principal
192.168.0.db – Fichier de recherche inversée
autoriser la mise à jour – Puisqu'il s'agit du DNS principal, il ne devrait en être aucun
Créer des fichiers de zone
Par défaut, les fichiers de recherche de zone sont placés dans le répertoire /var/named. Créez un fichier de zone appelé fwd.itzgeek.local.db pour la recherche directe sous le répertoire /var/named. Tous les noms de domaine doivent se terminer par un point (.).
vi /var/named/itzgeek.local.db
Il existe des mots clés spéciaux pour les fichiers de zone
A – Unenregistrement
NS – Serveur de noms
MX – Courrier pour échange
CNAME – Nom canonique
@ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 1001 ;Serial 3H ;Refresh 15M ;Retry 1W ;Expire 1D ;Minimum TTL ) ;Name Server Information @ IN NS ns1.itzgeek.local. ;IP address of Name Server ns1 IN A 192.168.0.10 ;Mail exchanger itzgeek.local. IN MX 10 mail.itzgeek.local. ;A - Record HostName To IP Address www IN A 192.168.0.100 mail IN A 192.168.0.150 ;CNAME record ftp IN CNAME www.itgeek.local.Chaque fois que vous mettez à jour le fichier de recherche de zone, vous devez modifier/incrémenter le numéro de série comme 1002 ;Serial.
Créez un fichier de zone appelé 192.168.0.db pour la zone inverse sous /var/répertoire nommé.
vi /var/named/192.168.0.db
Créez un pointeur inversé pour les entrées de zone de transfert que nous avons créées précédemment.
PTR – Pointeur
SOA– Début de l'autorité
@ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 1001 ;Serial 3H ;Refresh 15M ;Retry 1W ;Expire 1D ;Minimum TTL ) ;Name Server Information @ IN NS ns1.itzgeek.local. ;Reverse lookup for Name Server 10 IN PTR ns1.itzgeek.local. ;PTR Record IP address to HostName 100 IN PTR www.itzgeek.local. 150 IN PTR mail.itzgeek.local.Chaque fois que vous mettez à jour le fichier de recherche de zone, vous devez modifier/incrémenter le numéro de série comme 1002 ;Serial.
Une fois les fichiers de zone créés, redémarrez le service de liaison.
systemctl restart named
Activez-le au démarrage du système.
systemctl enable named
Pare-feu
Ajoutez une règle d'autorisation dans le pare-feu pour permettre aux clients de se connecter au serveur DNS pour la résolution de noms.
firewall-cmd --permanent --add-port=53/udp firewall-cmd --reload
Vérifier les zones
Visitez n'importe quelle machine cliente et ajoutez une adresse IP de serveur DNS dans /etc/resolv.conf.
nameserver 192.168.0.10
Si Network Manager gère la mise en réseau, placez l'entrée suivante dans le fichier /etc/sysconfig/network-scripts/ifcfg-eXX.
DNS1=192.168.0.10
Redémarrez le service réseau.
systemctl restart NetworkManager
Utilisez la commande suivante pour vérifier la recherche directe.
dig www.itzgeek.local
Sortie : Le serveur DNS doit donner 192.168.0.100 comme IP pour www.itzgeek.local.
; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.1 <<>> www.itzgeek.local ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35563 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 86400 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 86400 IN NS primary.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 86400 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Wed Jul 03 02:00:40 EDT 2019 ;; MSG SIZE rcvd: 100Installez le package yum install -y bind-utils des utilitaires BIND pour obtenir la commande nslookup ou dig.
Confirmez la recherche inversée.
dig -x 192.168.0.100
Sortie : Le serveur DNS donne www.itzgeek.local comme nom pour 192.168.0.100.
; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.1 <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4807 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;100.0.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.0.168.192.in-addr.arpa. 86400 IN PTR www.itzgeek.local. ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa. 86400 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 86400 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Wed Jul 03 02:02:47 EDT 2019 ;; MSG SIZE rcvd: 124
Il est maintenant confirmé que les recherches directes et inversées fonctionnent correctement.
Conclusion
C'est tout. Vous avez installé avec succès BIND sur CentOS 7 / RHEL 7 en tant que serveur maître. Vous pouvez configurer un serveur DNS esclave pour la redondance.