Les serveurs DNS peuvent être configurés pour agir en tant que maître ou esclave pour servir la requête DNS. Lorsque le DNS est configuré en tant qu'esclave, il obtient la copie des données de zone du maître en utilisant une méthode de transfert de zone et la conserve dans un cache pendant une période donnée pour répondre aux requêtes DNS.
Environnement
itzgeek.local | ||
---|---|---|
ns1.itzgeek.local | 192.168.0.10 | Serveur DNS maître |
ns2.itzgeek.local | 192.168.0.20 | Serveur DNS esclave. Prend en charge les requêtes DNS lorsque le serveur maître tombe en panne |
ns1.itzgeek.local est déjà configuré comme maître pour le domaine itzgeek.local.
LIRE :Configurer le serveur DNS sur Ubuntu 18.04 / Ubuntu 16.04
LIRE :Configurer le serveur DNS sur Debian 10 / Debian 9
Nous allons maintenant configurer ns2.itzgeek.local en tant que serveur DNS esclave pour le domaine itzgeek.local.
Configurer le serveur maître
Nous devons configurer BIND sur le serveur maître (ns1.itzgeek.local) pour permettre le transfert de zone vers notre serveur secondaire (ns2.itzgeek.local).
Modifiez le fichier /etc/named.conf.local dans ns1.itzgeek.local.
sudo nano /etc/bind/named.conf.local
Vous devrez mettre à jour les zones existantes que nous avons créées pour itzgeek.local avec les paramètres allow-transfer et also-notify.
Le transfert d'autorisation vous permettra de transférer des zones du maître vers un serveur esclave et également de notifier nous aide à notifier un serveur esclave lorsqu'il y a un changement de zones sur le serveur maître.
Zone avant
zone "itzgeek.local" IN { // Domain name type master; // Primary DNS file "/etc/bind/forward.itzgeek.local.db"; // Forward lookup file allow-transfer { 192.168.0.20; }; //Allow Transfer of zone from the master server also-notify { 192.168.0.20; }; //Notify slave for zone changes };
Zone Inversée
zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order type master; // Primary DNS file "/etc/bind/reverse.itzgeek.local.db"; //Reverse lookup file allow-transfer { 192.168.0.20; }; //Allow Transfer of zone from the master server also-notify { 192.168.0.20; }; //Notify slave for zone changes };
Redémarrez le service DNS sur ns1.itzgeek.local.
sudo systemctl restart bind9
Configurer le serveur esclave
Assurez-vous d'installer les packages suivants sur le serveur esclave.
sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils
C'est le moment d'ajouter une déclaration de zone esclave sur le serveur esclave (ns2.itzgeek.local). Modifiez le fichier /etc/bind/named.conf.local.
sudo nano /etc/bind/named.conf.local
Zone avant
Ajoutez la zone esclave comme ci-dessous.
zone "itzgeek.local" IN { //Domain name type slave; //Secondary Slave DNS file "/var/cache/bind/forward.itzgeek.local.db"; //Forward Zone Cache file masters { 192.168.0.10; }; //Master Server IP };
Zone Inversée
Ajoutez la zone esclave comme ci-dessous.
zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name. Should match your network in reverse order type slave; // Secondary/Slave DNS file "/var/cache/bind/reverse.itzgeek.local.db"; //Reverse Zone Cache file masters { 192.168.0.10; }; //Master Server IP };
Redémarrez le service DNS sur ns2.itzgeek.local
sudo systemctl restart bind9
Attendez quelques minutes et vous commencerez à voir quelque chose comme ci-dessous dans le fichier /var/log/syslog.
Jan 4 23:18:49 ns2 named[2637]: zone itzgeek.local/IN: Transfer started. Jan 4 23:18:49 ns2 named[2637]: transfer of 'itzgeek.local/IN' from 192.168.0.10#53: connected using 192.168.0.20#54333 Jan 4 23:18:49 ns2 named[2637]: zone itzgeek.local/IN: transferred serial 3 Jan 4 23:18:49 ns2 named[2637]: transfer of 'itzgeek.local/IN' from 192.168.0.10#53: Transfer status: success Jan 4 23:18:49 ns2 named[2637]: transfer of 'itzgeek.local/IN' from 192.168.0.10#53: Transfer completed: 1 messages, 8 records, 228 bytes, 0.004 secs (57000 bytes/sec) Jan 4 23:18:49 ns2 named[2637]: managed-keys-zone: Key 20326 for zone . acceptance timer complete: key now trusted Jan 4 23:18:49 ns2 named[2637]: resolver priming query complete Jan 4 23:18:49 ns2 named[2637]: zone 0.168.192.in-addr.arpa/IN: Transfer started. Jan 4 23:18:49 ns2 named[2637]: transfer of '0.168.192.in-addr.arpa/IN' from 192.168.0.10#53: connected using 192.168.0.20#55105 Jan 4 23:18:49 ns2 named[2637]: zone 0.168.192.in-addr.arpa/IN: transferred serial 3 Jan 4 23:18:49 ns2 named[2637]: transfer of '0.168.192.in-addr.arpa/IN' from 192.168.0.10#53: Transfer status: success Jan 4 23:18:49 ns2 named[2637]: transfer of '0.168.192.in-addr.arpa/IN' from 192.168.0.10#53: Transfer completed: 1 messages, 6 records, 210 bytes, 0.007 secs (30000 bytes/sec) Jan 4 23:18:49 ns2 named[2637]: zone 0.168.192.in-addr.arpa/IN: sending notifies (serial 3)
Mise à jour des enregistrements DNS
Lors de la modification des enregistrements de n'importe quelle zone sur le serveur maître, assurez-vous de mettre à jour le numéro de série vers un nombre aléatoire, supérieur à l'actuel. Exécutez également la commande suivante sur le serveur maître pour recharger la zone afin que la zone esclave obtienne les enregistrements mis à jour.Changez itzgeek.local &0.168.192.in-addr.arpa avec vos noms de zone.
### Forward Zone ### sudo rndc reload itzgeek.local ### Reverse Zone ### sudo rndc reload 0.168.192.in-addr.arpa
Vérifier le serveur DNS esclave
Sur la machine cliente, ajoutez une adresse IP de serveur DNS esclave dans le fichier /etc/resolv.conf.
sudo nano /etc/resolv.conf
Ajoutez une entrée DNS supplémentaire comme ci-dessous avec les entrées existantes.
nameserver 192.168.0.20
OU
Lisez le tutoriel ci-dessous pour définir l'adresse IP du serveur DNS sous Linux.
LIRE : Comment définir l'adresse IP DNS dans CentOS / Fedora
LIRE : Comment définir l'adresse IP DNS dans Ubuntu / Debian - ifupdown
LIRE : Comment définir l'adresse IP DNS dans Ubuntu 18.04 - Netplan
Vous pouvez utiliser la commande nslookup ou dig pour vérifier le serveur DNS.
Utilisez la commande dig pour vérifier la recherche directe avec @Vérifiez la recherche de www.itzgeek.local à l'aide de ns2.itzgeek.local (192.168.0.20)
dig www.itzgeek.local @192.168.0.20
Sortie :
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> www.itzgeek.local @192.168.0.20 ;; global options: +cmd ;; Got answer: ;; WARNING: .local is reserved for Multicast DNS ;; You are currently testing what happens when an mDNS query is leaked to DNS ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29076 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 0ff4fbeabbfe6d45cf28f0e85e11725b14943fb073203e78 (good) ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 604800 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 604800 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 604800 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.20#53(192.168.0.20) ;; WHEN: Sun Jan 05 10:51:26 IST 2020 ;; MSG SIZE rcvd: 124
Maintenant, vous pouvez voir que le serveur esclave répond aux requêtes DNS.
Conclusion
C'est tout. Vous avez configuré avec succès le serveur DNS esclave sur Ubuntu 18.04 / Ubuntu 16.04 et Debian 10 / Debian 9. Veuillez partager vos commentaires dans la section des commentaires.