BIND peut être configuré en tant que maître ou esclave pour servir la requête DNS pour chaque zone. Lorsque le BIND est configuré en tant qu'esclave, il obtient la copie des données de zone du serveur maître en utilisant la méthode de transfert de zone.
Dans le post précédent, nous avions configuré le serveur DNS sur CentOS 7 qui servira de source pour le serveur esclave.
Environnement
Nom de domaine :itzgeek.local | ||
---|---|---|
primaire.itzgeek.local | 192.168.1.10 | Serveur DNS maître |
secondaire.itzgeek.local | 192.168.1.20 | Serveur DNS esclave |
En cela, nous avons deux serveurs nommés primaire et secondaire. Le primaire a déjà été configuré en tant que maître pour le domaine itzgeek.local.
Nous allons maintenant configurer le secondaire en tant que serveur DNS esclave pour itzgeek.local.
Sur le serveur maître
Configurez BIND sur le serveur maître pour permettre le transfert de zone vers un serveur secondaire, modifiez le fichier /etc/named.conf dans primary.itzgeek.local.
vi /etc/named.conf
Ajoutez l'entrée suivante dans le fichier. Les serveurs mentionnés dans l'autorisation de transfert pourront transférer des zones depuis le serveur maître.
options { . . . allow-transfer { 192.168.1.20; }; also-notify { 192.168.1.20; }; . . . }
Ajoutez les informations de votre serveur DNS secondaire dans le fichier de recherche directe à primary.itzgeek.local.
vi /var/named/fwd.itzgeek.local.db
Les enregistrements ressembleront à ci-dessous.
@ IN SOA primary.itzgeek.local. root.itzgeek.local. ( 1002 ;Serial 3H ;Refresh 15M ;Retry 1W ;Expire 1D ;Minimum TTL ) ;Name Server Information @ IN NS primary.itzgeek.local. ;Secondary Name server @ IN NS secondary.itzgeek.local. ;IP address of Primary Name Server primary IN A 192.168.1.10 ;IP address of Secondary Name Server secondary IN A 192.168.1.20 ;Mail exchanger itzgeek.local. IN MX 10 mail.itzgeek.local. ;A - Record HostName To IP Address www IN A 192.168.1.100 mail IN A 192.168.1.150 ;CNAME record ftp IN CNAME www.itgeek.local.
Redémarrez le service BIND.
systemctl restart named
Ajoutez une règle d'autorisation dans le pare-feu pour autoriser les zones de transfert depuis le serveur maître.
firewall-cmd --permanent --add-port=53/tcp firewall-cmd --reload
Sur le serveur esclave
Il est temps d'ajouter une déclaration de zone esclave sur le serveur secondaire, assurez-vous d'installer les packages suivants sur le serveur secondaire.
yum -y install bind bind-utils
Modifier /etc/named.conf dossier. Commentez la ligne suivante pour permettre à BIND d'écouter sur toutes les interfaces.
// listen-on port 53 { 127.0.0.1; }; // listen-on-v6 port 53 { ::1; };
Ajoutez votre réseau dans la ligne suivante. J'ai ajouté 192.168.1.0/24 pour permettre aux clients du réseau 192.168.1.0/24 d'interroger le DNS pour la traduction du nom en IP.
options { . . . allow-query { localhost; 192.168.1.0/24; }; . . . }
Ajoutez la zone esclave comme ci-dessous.
zone "itzgeek.local" IN { type slave; masters { 192.168.1.10; }; file "slaves/fwd.itzgeek.local.db"; }; zone "1.168.192.in-addr.arpa" IN { type slave; masters { 192.168.1.10; }; file "slaves/1.168.192.db"; };
itzgeek.local – Nom de domaine
esclave – DNS secondaire
fwd.itzgeek.local.db &1.168.192.db – Fichier de recherche avant et arrière esclave
Redémarrez le service BIND sur Secondary.itzgeek.local
systemctl restart named
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érifiez la recherche de www.itzgeek.local à l'aide de Secondary.itzgeek.local (192.168.1.20)
[root@client ~]# dig @192.168.1.20 www.itzgeek.local
Sortie :
; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.1 <<>> @192.168.1.20 www.itzgeek.local ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5314 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 604800 IN A 192.168.1.100 ;; AUTHORITY SECTION: itzgeek.local. 604800 IN NS secondary.itzgeek.local. itzgeek.local. 604800 IN NS primary.itzgeek.local. ;; ADDITIONAL SECTION: primary.itzgeek.local. 604800 IN A 192.168.1.10 secondary.itzgeek.local. 604800 IN A 192.168.1.20 ;; Query time: 0 msec ;; SERVER: 192.168.1.20#53(192.168.1.20) ;; WHEN: Wed Jul 17 21:53:45 IST 2019 ;; MSG SIZE rcvd: 140
Mise à jour de l'enregistrement
Chaque fois que vous modifiez un enregistrement DNS sur le serveur maître, n'oubliez pas de modifier le numéro de série dans le fichier de zone et exécutez la commande suivante sur le serveur maître pour recharger la zone.
Changez itzgeek.local &1.168.192.in-addr.arpa avec vos noms de zone.
### Forward Zone ### rndc reload itzgeek.local ### Reverse Zone ### rndc reload 1.168.192.in-addr.arpa
Conclusion
C'est tout. J'espère que vous avez appris à configurer un serveur DNS esclave sur CentOS 7 / RHEL 7.