Rechercher

1.6. Configuration des transferts de zone entre serveurs DNS BIND

download PDF

Les transferts de zone garantissent que tous les serveurs DNS disposant d'une copie de la zone utilisent des données actualisées.

Conditions préalables

  • Sur le futur serveur primaire, la zone pour laquelle vous souhaitez mettre en place des transferts de zone est déjà configurée.
  • Sur le futur serveur secondaire, BIND est déjà configuré, par exemple en tant que serveur de noms de cache.
  • Sur les deux serveurs, le service named ou named-chroot est en cours d'exécution.

Procédure

  1. Sur le serveur primaire existant :

    1. Créez une clé partagée et ajoutez-la au fichier /etc/named.conf:

      # tsig-keygen example-transfer-key | tee -a /etc/named.conf
      key "example-transfer-key" {
              algorithm hmac-sha256;
              secret "q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ=";
      };

      Cette commande affiche la sortie de la commande tsig-keygen et l'ajoute automatiquement à /etc/named.conf.

      Vous aurez besoin de la sortie de la commande ultérieurement sur le serveur secondaire également.

    2. Modifiez la définition de la zone dans le fichier /etc/named.conf:

      1. Dans la déclaration allow-transfer, définissez que les serveurs doivent fournir la clé spécifiée dans la déclaration example-transfer-key pour transférer une zone :

        zone "example.com" {
            ...
            allow-transfer { key example-transfer-key; };
        };

        Il est également possible d'utiliser les surnoms de la liste de contrôle d'accès (ACL) de BIND dans l'instruction allow-transfer.

      2. Par défaut, après la mise à jour d'une zone, BIND notifie tous les serveurs de noms qui ont un enregistrement de serveur de noms (NS) dans cette zone. Si vous n'avez pas l'intention d'ajouter un enregistrement NS pour le serveur secondaire dans la zone, vous pouvez configurer BIND pour qu'il notifie quand même ce serveur. Pour ce faire, ajoutez la déclaration also-notify avec les adresses IP de ce serveur secondaire dans la zone :

        zone "example.com" {
            ...
            also-notify { 192.0.2.2; 2001:db8:1::2; };
        };
    3. Vérifier la syntaxe du fichier /etc/named.conf:

      # named-checkconf

      Si la commande n'affiche aucune sortie, la syntaxe est correcte.

    4. Recharger BIND :

      # systemctl reload named

      Si vous exécutez BIND dans un environnement change-root, utilisez la commande systemctl reload named-chroot pour recharger le service.

  2. Sur le futur serveur secondaire :

    1. Modifiez le fichier /etc/named.conf comme suit :

      1. Ajoutez la même définition de clé que sur le serveur primaire :

        key "example-transfer-key" {
                algorithm hmac-sha256;
                secret "q7ANbnyliDMuvWgnKOxMLi313JGcTZB5ydMW5CyUGXQ=";
        };
      2. Ajouter la définition de la zone au fichier /etc/named.conf:

        zone "example.com" {
            type slave;
            file "slaves/example.com.zone";
            allow-query { any; };
            allow-transfer { none; };
            masters {
              192.0.2.1 key example-transfer-key;
              2001:db8:1::1 key example-transfer-key;
            };
        };

        Ces paramètres sont les suivants :

        • Ce serveur est un serveur secondaire (type slave) pour la zone example.com.
        • Le fichier /var/named/slaves/example.com.zone est le fichier de zone. Si vous définissez un chemin d'accès relatif, comme dans cet exemple, ce chemin d'accès est relatif au répertoire que vous avez défini dans directory dans l'instruction options. Pour séparer les fichiers de zone pour lesquels ce serveur est secondaire des fichiers primaires, vous pouvez les stocker, par exemple, dans le répertoire /var/named/slaves/.
        • Tout hôte peut interroger cette zone. Vous pouvez également spécifier des plages d'adresses IP ou des pseudonymes ACL pour limiter l'accès.
        • Aucun hôte ne peut transférer la zone à partir de ce serveur.
        • Les adresses IP du serveur primaire de cette zone sont 192.0.2.1 et 2001:db8:1::2. Vous pouvez également spécifier des surnoms ACL. Ce serveur secondaire utilisera la clé nommée example-transfer-key pour s'authentifier auprès du serveur primaire.
    2. Vérifier la syntaxe du fichier /etc/named.conf:

      # named-checkconf
    3. Recharger BIND :

      # systemctl reload named

      Si vous exécutez BIND dans un environnement change-root, utilisez la commande systemctl reload named-chroot pour recharger le service.

  3. Facultatif : Modifiez le fichier de zone sur le serveur primaire et ajoutez un enregistrement NS pour le nouveau serveur secondaire.

Vérification

Sur le serveur secondaire :

  1. Afficher les écritures du journal systemd du service named:

    # journalctl -u named
    ...
    Jul 06 15:08:51 ns2.example.com named[2024]: zone example.com/IN: Transfer started.
    Jul 06 15:08:51 ns2.example.com named[2024]: transfer of 'example.com/IN' from 192.0.2.1#53: connected using 192.0.2.2#45803
    Jul 06 15:08:51 ns2.example.com named[2024]: zone example.com/IN: transferred serial 2022070101
    Jul 06 15:08:51 ns2.example.com named[2024]: transfer of 'example.com/IN' from 192.0.2.1#53: Transfer status: success
    Jul 06 15:08:51 ns2.example.com named[2024]: transfer of 'example.com/IN' from 192.0.2.1#53: Transfer completed: 1 messages, 29 records, 2002 bytes, 0.003 secs (667333 bytes/sec)

    Si vous exécutez BIND dans un environnement change-root, utilisez la commande journalctl -u named-chroot pour afficher les entrées du journal.

  2. Vérifiez que BIND a créé le fichier de zone :

    # ls -l /var/named/slaves/
    total 4
    -rw-r--r--. 1 named named 2736 Jul  6 15:08 example.com.zone

    Notez que, par défaut, les serveurs secondaires stockent les fichiers de zone dans un format binaire brut.

  3. Interroger un enregistrement de la zone transférée à partir du serveur secondaire :

    # dig +short @192.0.2.2 AAAA www.example.com
    2001:db8:1::30

    Cet exemple suppose que le serveur secondaire que vous avez configuré dans cette procédure écoute sur l'adresse IP 192.0.2.2.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.