Éric Boucher, 7 septembre 2004 (thebutch@videotron.ca)
Bdns est un système écrit en PHP pour gérer un serveur
DNS. J'ai écrit Bdns pour faciliter la gestion de notre (gros) DNS au
travail, durant mes temps libres. J'ai conçu le système dès
le début pour qu'il permette l'administration d'un grand nombre de zones
par de multiples usagers simultanément. Les caractéristiques de
Bdns sont:
- Données du DNS conservées dans une BD MySQL: les données sont facilement accessibles, et un SGBD comme MySQL permet de les manipuler facilement. Les rapports, recherches, tris ou mises-à-jour, même massives, sont faciles;
- Comptes usagers: plusieurs usagers peuvent mettre à jour le DNS en même temps. Mieux: trois types d'usager sont disponibles, ainsi vous pouvez créer des comptes qui peuvent tout faire dans le système (administrateurs), des comptes qui permettent de mettre à jour les données du DNS dans toutes les zones mais qui ne peuvent pas gérer les zones ni les comptes usagers (opérateurs), or ou des comptes qui ne peuvent que gérer une liste restreinte de zones que vous spécifiez (responsables). Pour les administrateurs qui gèrent des serveurs DNS de grande taille, c'est une bénédiction que de pouvoir déléguer les mises à jour à des usagers restreints.
- L'historique des mises-à-jour est conservé dans un journal dans la BD qui détaille qui, quand, et qu'est-ce qui a été modifié.
- Mises-à-jour dynamiques: Les mises-à-jour à la BD sont immédiatement propagées dans le cache du DNS via l'interface 'nsupdate' de BIND. Nul besoin de recharger le serveur DNS manuellement.
- Tout le DNS peut être parcouru par nom de domaine, de zone, ou de réseau IP: il est plus facile pour des usagers ordinaires de naviguer à travers des noms de domaines , des noms de serveurs et des adresses IP, plutôt que de rechercher la zone "3.45.199.in-addr.arpa"... ou est-ce plutôt "45.199.in-addr.arpa" ? Rogntudju !
- Les écrans valident les données saisies avant de mettre à jour le DNS: cela prévient la création de doublons ou d'orphelins dans le DNS. Pour les administrateurs inconditionels du 'vi' et de 'kill -HUP', c'est quand même un plus, puisque Bdns fait correctement des choses peu courantes comme des délégations de zone, donc vous ne briserez pas votre service DNS en le modifiant.
- Bdns fonctionne en français et en anglais pour le moment (d'autres langues peuvent être ajoutées facilement; il ne faut que traduire un seul fichier central qui contient tous les messages). Un administrateur peut choisir la langue d'affichage par défaut, et chaque usager peut choisir sa langue d'affichage préférée dans la section 'Mon compte' du système.
Bdns a été installé et testé sous Solaris 2.6, Solaris 8 et MacOS X; un de mes collègues l'a même installé sous Windows NT (il a certainement dû bidouiller un peu selon moi, et je doute fort que tout ait fonctionné correctement). Bref, Bdns devrait fonctionner sous tout système d'exploitation unix sous lequel vous pouvez installer les logiciels suivants:
- BIND version 8.x. Bdns n'a pas été testé avec BIND 9.x, mais il devrait fonctionner avec BIND 9 sans problème, puisqu'il n'utilise que 'nsupdate' et 'ndc reload' pour envoyer des signaux à BIND. De plus, les fichiers de configuration sont compatibles de BIND 8 à BIND 9.
- Apache 2.x, PHP 4.x, MySQL 4.x, sudo 1.x. Bdns est écrit en PHP, fonctionne dans un environnement WEB, stocke ses données dans une BD MySQL, s'exécute en tant qu'usager non privilégié, et utilise sudo pour envoyer ses signaux à BIND.
- Le logiciel peut être téléchargé ici sur le site de sourceforge.
En date du 11 décembre 2003, la documentation est toujours incomplète et seulement en français (vous y voyez un problème, vous ? ). J'essaie de la mettre à jour un peu chaque jour. Une version en anglais devrait sortir pour Noël, promis !
- La documentation peut être accédée en ligne ici, ou elle peut être téléchargée ici (fichier *.tar.gz, format HTML avec les images).
Des usagers m'ont fait des commentaires et ont demandé de nouvelles fonctionalités. Je travaille là dessus, et je devrais publier la version 2.1 autour de fnovembre 2004. Ces nouvelles fonctions vont inclure la synchronisation du DNS entre un serveur primaire et des serveurs 'slaves' et 'cache', en plus de la possibilité d'envoyer des commandes à des serveurs distants.
Pour finir, je mentionnerai simplement que le développement de Bdns m'a pris beaucoup, beaucoup de mon temps, et je le donne à la communauté Open Source car je crois au mouvement. J'aimerais cependant savoir que je n'ai pas fait tous ces efforts en vain, alors, si vous téléchargez Bdns, l'installez, l'utilisez, le trouvez utile ou merdique, écrivez-moi à thebutch@videotron.ca. Je serai très heureux de savoir que quelqu'un quelquepart l'utilise, et tout commentaire que je recevrai m'aidera à améliorer Bdns.
Éric Boucher