The manual Page
English version
accueil | glossaire | downloads | liens ]
 

Ajouter le support Dynamic DNS update

Introduction

Ce qui suit est en fait une alternative au support Dynamic DNS update qui est en cours d'implémentation sur sur les derniers serveurs DHCP de l'ISC. L'intérêt de cette méthode est qu'elle peut être adaptée à tous les serveurs (dans la mesure où le fichier de configuration reste compréhensible par le script perl) et que l'on n'utilise plus cron pour appeler les scripts : les scripts sont appelés uniquement en cas de besoin, ce qui garantit une mise à jour très rapide du DNS. La mise en place est particulièrement simple.

Objectif

Il s'agit de donner à un serveur DHCP la capacité de mettre à jour un serveur DNS en fonction des requêtes et des baux attribués. Ainsi, tout nouvel ordinateur configuré et reconnu par le serveur DHCP sera immédiatement enregistrer auprès du DNS. A l'inverse, lorsque cet ordinateur aura atteint la limite de validité du bail et qu'il ne l'aura pas renouvellé ou lorsqu'il aura lui-même résilié le bail, il se verra supprimé du DNS.

Ceci est relativement utile sur un réseau déservi par un DHCP et que beaucoup d'hôtes se connectent et se déconnectent fréquemment (locaux commerciaux avec beaucoup d'ordinateurs portables, réseau d'université). Chaque machine reconnue pourra donc se connecter au serveur mail et envoyer des mails sans difficultés. Pour des raisons de sécurité sur un réseau, il est fortement recommandé de déclarer toutes les machines autorisées auprès d'un serveur DNS et de n'autoriser l'utilisation des ressources réseau qu'à ces seules machines.

Ce qu'il faut faire

L'idée est de faire en sorte que le serveur DHCP appele lui-même les scripts perl du package DHCP-DNS lorsqu'il écrit dans sa base de baux.

Il faut donc patcher le code source du serveur DHCP en insérant un appel aux scripts à la fin de la fonction qui met à jour les leases. Cette fonction, sur les serveurs DHCP de l'ISC s'appelle commit_leases (db.c file). Il faut donc rajouter tout à la fin de la fonction le code suivant :

#if defined (NSUPDATE)
        note ("updating DNS server");
        if (system(NSUPDATE_SCRIPT) != 0)
                note ("updating failed");
#endif

note n'est là que pour logger l'appel à la fonction NSUPDATE_SCRIPT.

NSUPDATE_SCRIPT est une constante définie dans le fichier includes/dhcpd.h et qui contient le chemin complet vers la script ddns.cron.pl. Il faut aussi rajouté les lignes suivantes dans ce fichier pour terminer le patch :

/* The following lines are used to define the script to be
   executed for Dynanic DNS update */
#ifndef NSUPDATE_SCRIPT
#define NSUPDATE_SCRIPT      "/usr/bin/perl /...../ddns.cron.pl"
#endif

Il faut bien entendu remplacer les ..... par le chemin complet vers le script perl ddns.cron.pl.

Il est également possible de patcher le script configure et le fichier Makefile.conf utilisés pour préparer la compilation du serveur, de sorte à pouvoir choisir entre une compilation "oridinaire" sans support DNS et une compilation améliorée avec support Dynamic DNS update. Il suffit alors de définir ou non la variable NSUPDATE pour gcc avec la directive -DNSUPDATE.


format imprimable format imprimable



Copyright © 2000-2006 themanualpage.org - Ce site est soumis aux conditions décrites dans les licences GNU GPL et FDL.