Configurer le serveur DNS maître-esclave à l’aide des outils de liaison dans RHEL/CentOS 6.5
Serveur de noms de domaine (DNS) utilisé pour la résolution de noms sur n’importe quel hôte. Les serveurs DNS maîtres (serveur primaire) sont les gestionnaires de données de zone d’origine et les serveurs DNS esclaves (serveur secondaire) ne sont qu’un serveur de sauvegarde utilisé pour copier les mêmes informations de zone à partir des serveurs maîtres. Le serveur maître résoudra les noms de tous les hôtes que nous avons définis dans la base de données de zone et utilisera le protocole UDP, car les protocoles UDP n’utilisent jamais le processus d’accusé de réception tandis que tcp utilise l’accusé de réception. Les serveurs DNS utilisent également des protocoles UDP pour résoudre la demande de requête au plus tôt.
Comment fonctionne le DNS ?
Comprendre le DNS peut être un peu déroutant pour les débutants. Voici une brève explication sur le fonctionnement du DNS.
Disons, si nous avons besoin d’accéder à un site Web, que ferons-nous ? Il suffit de taper www.google.com dans le navigateur et d’appuyer sur Entrée. Hmm, c’est tout ce que nous savons, mais le fait est que le DNS traverse la douleur, lorsqu’il interroge pour nous. Pendant que nous tapons www.google.com le système recherchera www.google.com. Chaque fois que nous tapons un nom de domaine, il y a un . (point) à la fin de la www.google.com qui dit de rechercher le serveur racine de l’espace de noms.
À l’échelle mondiale, 13 serveurs racines sont disponibles pour résoudre la requête. Au début, lorsque nous appuyons sur Entrée comme www.google.com notre navigateur transmettra une requête à notre résolveur local, qui contient une entrée sur les informations de notre serveur DNS maître et esclave. S’ils n’ont pas d’informations sur cette requête demandée, ils passeront la demande au domaine de premier niveau (TLD), si TLD dit Je ne connais pas la demande, peut-être être le serveur faisant autorité connaître votre demande, il transmettra aux serveurs faisant autorité, ici seulement www.google.com a été défini comme l’adresse 72.36.15.56.
Dans le même temps, le serveur faisant autorité donnera la réponse au TLD et le TLD passera au serveur racine et la racine fournira les informations au navigateur, donc le navigateur mettra en cache la requête DNS pour une utilisation future. Ainsi, ces longs processus se résoudront en quelques millisecondes. S’ils ne connaissent pas la demande, ils répondront en tant que NXDOMAIN. Cela signifie qu’il n’y a aucun enregistrement trouvé dans la base de données de la Zone. J’espère que cela vous fera comprendre comment fonctionne le DNS.
Lire aussi : Configurer le serveur de cache DNS dans Ubuntu
Mon environnement de test
Pour cet article, j’utilise 3 machines, 2 pour la configuration du serveur (maître et esclave) et 1 pour le client.
---------------------------------------------------
Master DNS Server
---------------------------------------------------
IP Address : 192.168.0.200
Host-name : masterdns.tecmintlocal.com
OS : Centos 6.5 Final
---------------------------------------------------
Slave DNS Server
---------------------------------------------------
IP Address : 192.168.0.201
Host-name : slavedns.tecmintlocal.com
OS : Centos 6.5 Final
---------------------------------------------------
Client Machine to use DNS
---------------------------------------------------
IP Address : 192.168.0.210
Host-name : node1.tecmintlocal.com
OS : Centos 6.5 Final
Forfaits d’exigences
bind, bind-utils, bind-chroot
Fichiers de configuration utilisés
config file : /etc/named.conf
script file : /etc/init.d/named
Port et protocoles utilisés
53, UDPConfiguration du serveur DNS maître
Tout d’abord, vérifiez l’adresse IP, le nom d’hôte et la version de distribution du serveur DNS maître avant de procéder à la configuration.
$ sudo ifconfig | grep inet
hostname
cat /etc/redhat-release
Une fois que vous confirmez que les paramètres ci-dessus sont corrects, il est temps de passer à l’installation des paquets requis.
$ sudo yum install bind* -y
Installation et configuration de Bind
Après avoir installé les paquets requis, définissez maintenant les fichiers de zone dans le fichier de configuration maître 'named.conf'.
$ sudo vim /etc/named.conf
Vous trouverez ci-dessous mon entrée de fichier named.conf, modifiez le fichier de configuration selon vos besoins.
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1; 192.168.0.200; }; # Here we need to add our Master DNS Server IP.
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; 192.168.0.0/24; }; # subnet range where my hosts are allowed to query our DNS.
allow-transfer { localhost; 192.168.0.201; }; # Here we need to our Slave DNS server IP.
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
## Define our forward & reverse Zone file here for tecmintlocal.com.
zone"tecmintlocal.com" IN {
type master;
file "tecmintlocal.fwd.zone";
allow-update { none; };
};
zone"0.168.192.in-addr.arpa" IN {
type master;
file "tecmintlocal.rev.zone";
allow-update { none; };
};
#####
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
Voici l’explication de chaque configuration que nous avons utilisée dans le fichier ci-dessus.
- port d’écoute 53 : il est utilisé pour que le DNS écoute dans les interfaces disponibles.
- DNS maître – Définissez votre adresse IP DNS maître pour écouter la requête.
- DNS esclave – Définissez votre DNS esclave, qui est utilisé pour synchroniser nos informations de zone afin de résoudre les hôtes à partir du maître.
- recursion no – Si la valeur est yes, les requêtes récursives transformeront le serveur en attaque DDOS.
- Nom de la zone – Définissez le nom de votre zone, ici défini comme tecminlocal.com.
- type master – Comme ce système a été configuré pour un serveur maître, pour le serveur esclave à venir, ce sera esclave.
- tecmintlocal.fwd.zone – Ce fichier contient les informations d’hôte pour cette zone.
- allow-update none – Si none est défini. il n’utilisera pas le DNS dynamique (DDNS).
Création de fichiers de zone maître
Dans un premier temps, définissons l’entrée de la zone de recherche anticipée. Ici, nous devons créer les fichiers de zone dans le nom de ce que nous avons défini dans le fichier named.conf comme ci-dessous.
tecmintlocal.fwd.zone
tecmintlocal.rev.zone
Nous utilisons des exemples de fichiers de configuration pour créer des fichiers de zone avancée, pour cela nous devons copier les exemples de fichiers de configuration.
$ sudo cp /var/named/named.localhost /var/named/tecmintlocal.fwd.zone
sudo cp /var/named/named.loopback /var/named/tecmintlocal.rev.zone
Une fois que vous avez copié les fichiers de configuration, éditez maintenant ces fichiers de zones à l’aide de l’éditeur vim.
$ sudo vim /var/named/tecmintlocal.fwd.zone
Avant de définir nos informations d’hôte dans le fichier de zone directe, jetez d’abord un coup d’œil rapide au fichier de zone d’exemple.
Il s’agit de ma configuration de zone avant, ajoutez l’entrée ci-dessous et apportez les modifications selon vos besoins.
$TTL 86400
@ IN SOA masterdns.tecmintlocal.com. root.tecmintlocal.com. (
2014090401 ; serial
3600 ; refresh
1800 ; retry
604800 ; expire
86400 ) ; minimum
; Name server's
@ IN NS masterdns.tecmintlocal.com.
@ IN NS slavedns.tecmintlocal.com.
; Name server hostname to IP resolve.
@ IN A 192.168.0.200
@ IN A 192.168.0.201
; Hosts in this Domain
@ IN A 192.168.0.210
@ IN A 192.168.0.220
masterdns IN A 192.168.0.200
slavedns IN A 192.168.0.201
node1 IN A 192.168.0.210
rhel1 IN A 192.168.0.220
Enregistrez et quittez le fichier à l’aide de wq !. Après avoir modifié la recherche avant, cela ressemble à ce qui suit, utilisez TAB pour obtenir un format décent dans le fichier de zone.
Maintenant, créez un fichier de recherche inversée, nous avons déjà fait une copie du fichier de bouclage au nom de tecmintlocal.rev.zone. Nous utilisons donc ce fichier pour configurer notre recherche inversée.
$ sudo vim /var/named/tecmintlocal.rev.zone
Avant de définir nos informations d’hôte dans le fichier de zone inverse, jetez un coup d’œil rapide à l’exemple de fichier de recherche inverse comme indiqué ci-dessous.
Il s’agit de ma configuration de zone inversée, ajoutez l’entrée ci-dessous et apportez des modifications selon vos besoins.
$TTL 86400
@ IN SOA masterdns.tecmintlocal.com. root.tecmintlocal.com. (
2014090402 ; serial
3600 ; refresh
1800 ; retry
604800 ; expire
86400 ) ; minimum
; Name server's
@ IN NS masterdns.tecmintlocal.com.
@ IN NS slavedns.tecmintlocal.com.
@ IN PTR tecmintlocal.com.
; Name server hostname to IP resolve.
masterdns IN A 192.168.0.200
slavedns IN A 192.168.0.201
;Hosts in Domain
node1 IN A 192.168.0.210
rhel IN A 192.168.0.220
200 IN PTR masterdns.tecmintlocal.com.
201 IN PTR slavedns.tecmintlocal.com.
210 IN PTR node1.tecmintlocal.com.
220 IN PTR rhel1.tecmintlocal.com.
Enregistrez et quittez le fichier à l’aide de wq !. Après avoir modifié la recherche inversée, cela ressemble à ci-dessous, utilisez TAB pour obtenir un format décent dans le fichier de zone.
Vérifiez la propriété du groupe des fichiers de recherche directe et inverse avant de vérifier s’il y a des erreurs de configuration.
$ sudo ls -l /var/named/
Ici, nous pouvons voir que les deux fichiers sont la propriété des utilisateurs root, car les fichiers que nous faisons une copie à partir de fichiers d’exemple sont disponibles sous /var/named/. Remplacez le groupe par nommé sur les deux fichiers à l’aide des commandes suivantes.
$ sudo chgrp named /var/named/tecmintlocal.fwd.zone
sudo chgrp named /var/named/tecmintlocal.rev.zone
Après avoir défini la propriété correcte des fichiers, vérifiez-les à nouveau.
$ sudo ls -l /var/named/
Maintenant, vérifiez les erreurs dans les fichiers de zone, avant de démarrer le service DNS. Vérifiez d’abord le fichier named.conf, puis vérifiez les autres fichiers de zone.
$ sudo named-checkconf /etc/named.conf
sudo named-checkzone masterdns.tecminlocal.com /var/named/tecmintlocal.fwd.zone
sudo named-checkzone masterdns.tecminlocal.com /var/named/tecmintlocal.rev.zone
Par défaut, iptables fonctionnait et notre serveur DNS est limité à localhost, si le client veut résoudre le nom de notre serveur DNS, alors nous devons autoriser la requête entrante, pour cela nous devons ajouter la règle entrante iptables pour le port 53.
$ sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Maintenant, vérifiez que les règles ont été ajoutées correctement dans la chaîne INPUT.
$ sudo iptables -L INPUT
Ensuite, enregistrez les règles et redémarrez le pare-feu.
$ sudo service iptables save
sudo service iptables restart
Démarrez le service nommé et rendez-le persistant.
$ sudo service named start
sudo chkconfig named on
sudo chkconfig --list named
Enfin, testez les fichiers de la zone DNS maître configurés (avant et arrière), à l’aide des outils dig et nslookup.
$ dig masterdns.tecmintlocal.com [Forward Zone]
$ dig -x 192.168.0.200
$ nslookup tecmintlocal.com
nslookup masterdns.tecmintlocal.com
nslookup slavedns.tecmintlocal.com
Refroidir! nous avons configuré un DNS maître, nous devons maintenant configurer un serveur DNS esclave. Passons à la configuration d’un serveur esclave, cela ne prendra pas beaucoup de temps en tant que configuration principale.
Configurer le serveur DNS esclave
Sur la machine esclave, nous devons également installer les mêmes paquets de liaison que ceux indiqués dans Master, alors installons-les en utilisant la commande suivante.
$ sudo yum install bind* -y
Ouvrez et modifiez le fichier 'named.conf' pour notre base de données de zones et l’écoute des ports.
$ sudo vim /etc/named.conf
Apportez les modifications comme indiqué, selon vos besoins.
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1; 192.168.0.201}; # Our Slave DNS server IP
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; 192.168.0.0/24; };
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
## Define our slave forward and reverse zone, Zone files are replicated from master.
zone"tecmintlocal.com" IN {
type slave;
file "slaves/tecmintlocal.fwd.zone";
masters { 192.168.0.200; };
};
zone"0.168.192.in-addr.arpa" IN {
type slave;
file "slaves/tecmintlocal.rev.zone";
masters { 192.168.0.200; };
};
#####
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
Démarrez le service DNS à l’aide de.
$ sudo service named start
Après avoir redémarré le service de liaison, nous n’avons pas besoin de définir les informations de zone individuellement, car notre allow-transfer répliquera les informations de zone du serveur maître, comme le montre l’image ci-dessous.
$ sudo ls -l /var/named/slaves
Vérifiez les informations de la zone à l’aide de la commande cat.
$ sudo cat /var/named/slaves/tecmintlocal.fwd.zone
sudo cat /var/named/slaves/tecmintlocal.rev.zone
Ensuite, ouvrez le port DNS 53 sur iptables pour permettre la connexion entrante.
$ sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Enregistrez les règles iptables et redémarrez le service iptables.
$ sudo service iptables save
sudo service iptables restart
Rendre le service persistant au démarrage du système.
$ sudo chkconfig iptables onCheck whether persistent set for run-levels .$ sudo chkconfig --list iptables
Voilà!. Il est maintenant temps de configurer nos machines clientes et de vérifier le nom d’hôte.
Configurer l’ordinateur client
Côté client, nous devons attribuer l’entrée DNS primaire (192.168.0.200) et secondaire (192.168.0.201) dans les paramètres réseau pour obtenir l’attribution d’un nom d’hôte. Pour ce faire, exécutez la commande setup pour définir toutes ces entrées comme indiqué sur l’image.
$ setup
Sinon, éditez le fichier '/etc/reslov.conf' et ajoutez les entrées suivantes.
$ vim /etc/resolv.conf
search tecmintlocal.com
nameserver 192.168.0.200
nameserver 192.168.0.201
Maintenant, vérifiez l’adresse IP, le nom d’hôte et la recherche de serveur de noms.
$ ifconfig | grep inet
hostname
nslookup tecmintlocal.com
Maintenant, vérifiez la recherche DNS directe et inverse à l’aide de.
$ dig masterdns.tecmintlocal.com
dig -x 192.168.0.200
Sous-estimer le résultat de l’excavation :
- En-tête – Cela dit tout ce que nous avons demandé et comment le résultat a été.
- Statut – Le statut était AUCUNE ERREUR, cela signifie que la demande de requête que nous avons envoyée a réussi sans aucune ERREUR.
- Question – La requête que nous avons faite, ici ma question était masterdns.tecmintlocal.com.
- Réponse – La demande de requête est résolue si des informations sont disponibles.
- Autorité : réponse du serveur de noms pour le domaine et la zone.
- Supplémentaire – Informations supplémentaires concernant les serveurs de noms tels que le nom d’hôte et l’adresse IP.
- Temps de requête : temps nécessaire pour résoudre les noms des serveurs ci-dessus.
Enfin, vérifiez notre nœud et effectuez un ping.
$ dig node1.tecmintlocal.com
$ ping masterdns.tecmintlocal.com -c 2
ping slavedns.tecmintlocal.com -c 2
ping 192.168.0.200 -c 2
ping 192.168.0.201 -c 2
Enfin, l’installation terminée, ici nous avons configuré avec succès le serveur DNS principal (maître) et esclave (secondaire), espérons que tout le monde a configuré sans aucun problème, n’hésitez pas à laisser un commentaire si vous rencontrez un problème lors de la configuration.
























