Introduction
La synchronisation de zone est un processus essentiel pour garantir que toutes les copies d’une zone DNS sont à jour et cohérentes. Dans un environnement de basculement, où vous avez deux serveurs DNS primaires qui assurent la disponibilité de la zone en cas de panne, la synchronisation de zone doit être effectuée des deux côtés pour garantir une continuité de service sans interruption. Dans cet article, nous allons expliquer comment synchroniser une zone entre Bind et Unbound dans un environnement de basculement.
Configuration de Bind
Bind est un serveur DNS bien établi et largement utilisé. Pour synchroniser une zone avec Unbound, nous devons tout d’abord configurer Bind pour autoriser le transfert de zone pour la zone que nous souhaitons synchroniser.
Dans le fichier de zone de Bind, ajoutez les enregistrements NS et SOA pour la zone, qui définissent les serveurs DNS primaires pour la zone et les paramètres de synchronisation de zone, respectivement.
$ORIGIN example.com.
@ IN SOA ns1.example.com. hostmaster.example.com. (
2023041901 ; Serial
86400 ; Refresh
7200 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
IN NS ns1.example.com.
Ensuite, ajoutez une directive de type « allow-transfer » dans la configuration de la zone pour autoriser le transfert de zone à partir d’autres serveurs DNS.
zone "example.com" {
type master;
file "/path/to/example.com.zone";
allow-transfer { 192.0.2.11; }; // Replace with the IP address of the other Bind server
};
Ensuite, configurez Bind pour effectuer une requête de transfert de zone auprès de l’autre serveur Bind pour synchroniser la zone. Pour cela, ajoutez une directive de type « also-notify » dans la configuration de la zone.
zone "example.com" {
type master;
file "/path/to/example.com.zone";
allow-transfer { 192.0.2.11; }; // Replace with the IP address of the other Bind server
also-notify { 192.0.2.11; }; // Replace with the IP address of the other Bind server
};
Enfin, configurez Bind pour écouter les requêtes de transfert de zone entrantes en ajoutant une directive de type « listen-on » dans la configuration globale.
options {
listen-on port 53 { any; };
...
};
Configuration d’Unbound
Unbound est un autre serveur DNS populaire qui peut être utilisé pour synchroniser une zone avec Bind. Pour synchroniser la zone avec Bind, nous devons configurer Unbound pour effectuer une requête de transfert de zone auprès de Bind.
Dans la configuration d’Unbound, ajoutez une zone pour la zone que vous souhaitez synchroniser avec Bind.
server:
...
local-zone: "example.com." transparent
stub-zone:
name: "example.com."
stub-addr: 192.0.2.11 # Replace with the IP address of the other Bind server
Ensuite, planifier les requêtes de transfert de zone à intervalles réguliers en utilisant un outil comme « cron » pour exécuter la commande « unbound-control ».
*/5 * * * * /usr/sbin/unbound-control reload
Cela exécutera la commande « unbound-control reload » toutes les 5 minutes pour effectuer une requête de transfert de zone auprès de Bind et mettre à jour la zone d’Unbound avec les données de Bind.
Synchronisation de zone dans un environnement de basculement
Dans un environnement de basculement, où vous avez deux serveurs DNS primaires qui assurent la disponibilité de la zone en cas de panne, la synchronisation de zone doit être effectuée des deux côtés pour garantir une continuité de service sans interruption. Cela signifie que chaque serveur DNS doit être configuré à la fois comme un serveur DNS primaire pour la zone et comme un client qui effectue des requêtes de transfert de zone auprès de l’autre serveur DNS primaire.
En conséquence, toute modification apportée à la zone sur l’un des serveurs DNS sera propagée à l’autre serveur DNS et vice versa. Pour réaliser cela, répétez les étapes de configuration de Bind et Unbound pour les deux serveurs DNS dans votre environnement de basculement.
Considérations supplémentaires
Il y a quelques considérations supplémentaires à prendre en compte lors de la configuration de la synchronisation de zone entre Bind et Unbound dans un environnement de basculement :
- Assurez-vous que les serveurs Bind et Unbound sont synchronisés en termes d’heure système pour garantir que les enregistrements de séquence (serials) dans les zones de Bind reflètent l’ordre correct des modifications.
- Gardez à l’esprit que le transfert de zone peut être bloqué par des pare-feu ou d’autres mécanismes de sécurité réseau, donc assurez-vous que les connexions réseau entre Bind et Unbound sont correctement configurées pour autoriser le transfert de zone.
- Si la zone est fréquemment modifiée, envisagez d’utiliser le type de transfert de zone incrémental (IXFR) plutôt que le type de transfert de zone complet (AXFR) pour réduire le trafic réseau.
- Si vous utilisez DNSSEC, assurez-vous que la clé de signature (KSK) de la zone est synchronisée entre Bind et Unbound pour garantir la validité de la signature DNSSEC.
En suivant ces étapes de configuration et ces considérations supplémentaires, vous devriez être en mesure de synchroniser avec succès une zone entre Bind et Unbound dans un environnement de basculement.