DHCP : Mise à jour dynamique du DNS

De Adadov.net wiki
Article en cours de rédaction ou de modification !
Le présent article est actuellement en cours de rédaction ou de modification.
Adressez-vous à la personne en charge pour toute proposition ou modification.
Auteur / Editeur : Adadov
Dernière édition : 09/02/2015
Ecrit Par : Adadov

Le serveur DHCP est un élément indispensable de tout réseau informatique aujourd'hui. Il permet d'adresser dynamiquement tous les équipements actifs du réseau qui possèdent un client DHCP (en gros n'importe quel équipement de nos jours).

L'adressage dynamique montre par contre vite ses limites quand on souhaite retrouver ses équipements. C'est là que plusieurs solutions s'offrent à nous.

  • La réservation d'adresse qui permet de fixer pour un équipement donné une adresse qui ne changera donc jamais
  • La mise à jour automatique du DNS qui permet de s'assurer que le nom de l'équipement client est ajouté par le serveur DHCP lui même dans le DNS, avec l'adresse IP qui lui est attribué.

Présentation

La mise à jour automatique du DNS permet d'avoir des entrées DNS toujours à jour pour les clients dont les adresses sont attribuées dynamiquement par le serveur DHCP ce qui serait totalement impossible à faire manuellement.
Cette mise à jour se fait en configurant un lien privilégié entre le serveur DHCP et le serveur DNS. Le serveur DHCP recevra le nom de la machine lors de la requête initiale, il fait parti des options standard d'une requête DHCP, puis le transmettra au serveur DNS accompagné de la durée du bail et de l'adresse IP.

Cet article utilise les logiciels ISC DHCPD et ISC BIND. Il est probablement possible de le faire avec d'autres logiciels mais je vous laisse le plaisir de découvrir comment adapter ça.

Problématique liées à la mise à jour

Il serait bien sûr possible de réserver les adresses afin qu'elles ne changent pas et de mettre une bonne fois pour toutes les entrées dans le DNS mais dans ce cas il serait plus compliqué de déplacer la machine d'un réseau logique à un autre car le serveur refuserait d'attribuer l'adresse réservée sur un réseau logique qui n'utilise pas la même plage IP.

Par défaut les machines utilisant Windows souhaitent elles même mettre à jour le DNS mais pour des raisons de sécurité il n'est pas forcément idéal d'autoriser les clients à mettre à jour les entrées, des logiciels malveillants risqueraient d'utiliser ce droit pour changer d'autres entrées ou il faudrait trouver des solutions assez complexes pour n'autoriser les machines à mettre à jour uniquement leur propre entrée mais ça complexifierait probablement les changements de noms pour les machines.

Il faut aussi prendre en compte que le serveur DHCP ne fait pas la mise à jour du DNS pour les clients dont les IP sont réservées, il ne faudra donc pas oublier dans les procédures de mettre à jour manuellement le DNS pour ces machines lors de la création ou de la modification d'une attribution.

Création de la clé TSIG

Afin de sécuriser les mises à jour, une clé TSIG sera utilisée (Pour plus d'infos : Wikipedia:TSIG).

Pour la générer :

[root@linux] # dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATERdblclick to copy
Paramètre Description
-a Algorithme à utiliser
-b Taille de la clé
-n Type de propriétaire
DHCP_UPDATER Nom de la clé

La clé sera générée et placée dans deux fichiers: un fichier en .key et un fichier en .private.
Nous n'allons pas utiliser les fichiers générés mais simplement récupérer la clé et l'intégrer directement dans les fichiers de configuration.

Le fichier en .private se présente comme ceci : <file> Private-key-format: v1.2 Algorithm: 157 (HMAC_MD5) Key: WoY0txiBiG+ZK22RjJN6AQ== Bits: AAA= </file>

La ligne qui nous intéresse est celle qui commence par Key:, la clé est tout le reste de la ligne.

Et le bloc qui sera intégré dans la configuration se présente comme ceci : <file> key DHCP_UPDATER { algorithm HMAC-MD5;

       secret <LACLEVIENTICI>;

}; </file>

Configuration du serveur DHCP

Voici les parties qui nous intéressent dans le fichier de configuration du serveur DHCP /etc/dhcp/dhcpd.conf

<file> key DHCP_UPDATER { algorithm HMAC-MD5;

       secret <LACLEVIENTICI>;

};

subnet 192.168.0.0 netmask 255.255.255.0 { [...] ddns-updates on; ignore client-updates; default-lease-time 86400; }

ddns-update-style interim;

zone exemple.loc. { primary 127.0.0.1; key DHCP_UPDATER; }

zone 0.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; } </file>

Configuration du serveur DNS