← Retour à la liste
Systèmes Linux Debian

Mise en place du DDNS (Dynamic DNS)

Publié le 24 Octobre 2022 par Jules Ravier

Dans ce tutoriel, nous allons configurer le DDNS (Dynamic DNS). Cette fonctionnalité permet au serveur DHCP de mettre à jour automatiquement les zones DNS lorsqu'il attribue une adresse IP à un client. Cela assure la cohérence entre les noms d'hôtes et leurs adresses IP dans le réseau local. Il faut préalablement avoir installé un serveur DNS et DHCP sur debian pour suivre ce tuto (CF: mes tutos précédents)

Télécharger le tutoriel en PDF

1. Configuration du serveur DNS (Bind9)

  • Nous devons d'abord autoriser le serveur DNS à accepter les mises à jour venant de l'extérieur via une clé de sécurité. Ouvrer le fichier de configuration des zones locales :
  • nano /etc/bind/named.conf.local
  • Ajouter l'instruction include "/etc/bind/rndc.key"; et autoriser la clé rndc-key pour vos zones directe et inverse comme ci-dessous :
  • // Inclusion de la clé
    include "/etc/bind/rndc.key";
    
    controls {
        inet 127.0.0.1 allow { localhost; } keys { rndc-key; };
    };
    
    zone "esgi.local" {
        type master;
        file "/var/lib/bind/db.esgi.local";
        allow-update { key rndc-key; };
    };
    
    zone "5.168.192.in-addr.arpa" {
        type master;
        file "/var/lib/bind/db.5.168.192.in-addr.arpa";
        allow-update { key rndc-key; };
    };
    Contenu du fichier named.conf.local montrant l'inclusion de la clé rndc-key et les directives allow-update pour les zones DNS
    Figure 1 : Ajout des droits de mise à jour dans Bind9.
    Note : Assurez-vous que vos fichiers de zone (db.*) ont bien été déplacés dans /var/lib/bind/ pour que l'utilisateur bind ait les droits d'écriture dessus.
  • Ensuite, générer la clé de sécurité nécessaire au fonctionnement du DDNS et redémarrer le service :
  • rndc-confgen -a
    systemctl restart bind9

    2. Configuration du serveur DHCP

  • Il faut maintenant configurer le serveur DHCP pour qu'il communique avec le DNS en utilisant la clé générée. Éditer le fichier de configuration DHCP :
  • nano /etc/dhcp/dhcpd.conf
  • Ajouter les paramètres globaux pour activer les mises à jour DDNS :
  • ddns-update-style interim;
    update-static-leases on;
    allow client-updates;
    include "/etc/bind/rndc.key";
    
    authoritative;
    Lignes de configuration globale activant les mises à jour DDNS dans le fichier dhcpd.conf
    Figure 2 : Configuration globale du DDNS dans le DHCP.
  • Ensuite, déclarer les zones à mettre à jour (directe et inverse) en précisant l'adresse du serveur DNS primaire et la clé à utiliser :
  • zone esgi.local. {
        primary 192.168.5.254;
        key rndc-key;
    }
    
    zone 5.168.192.in-addr.arpa. {
        primary 192.168.5.254;
        key rndc-key;
    }
    
    ddns-domainname "esgi.local.";
    ddns-rev-domainname "in-addr.arpa.";
    Déclaration des zones DNS directe et inverse avec l'adresse du serveur primaire et la clé rndc dans dhcpd.conf
    Figure 3 : Liaison des zones DNS dans la configuration DHCP.

    3. Validation et redémarrage

    Attention : Une erreur de syntaxe dans ces fichiers peut empêcher le démarrage des services. Vérifier bien les points-virgules !
  • Pour appliquer les modifications, redémarrer le service DHCP :
  • systemctl restart isc-dhcp-server

    Conclusion

    Votre serveur Linux est désormais capable de mettre à jour dynamiquement ses enregistrements DNS lors de l'attribution d'IPs aux clients. Vous pouvez tester cela en connectant un client et en vérifiant les logs ou la résolution de nom.