Solutions-4u.Net (Euro Web SARL) sd-france.com - Location de serveurs dédiés 100% infogérés
 
Consulting


Hébergement Web
Création Graphique
Création de Site
Scripts sur Mesure
Logiciels sur Mesure

infogerance

ServerGear ®
Maintenance
Intervention
Sauvegarde
Guides / How-To
Sécurité

Autres

Serveurs dédiés
Serveurs de jeux
Hébergement

 

netavous - hebergement web sur mesure

powered by djbdns

Valid HTML 4.01!
 
Configurer tinydns (djbdns)  
 
DNSNous connaissons dors et déjà les avantages de l'utilisation de djbdns au lieu de bind. Seulement, même si le système de configuration de tinydns (le module "serveur de noms" de djbdns), est assez intéréssant pour envisager des automatisations, il n'en est pas moins que son fichier de configuration reste un peu "flou" pour les personnes qui désirent quitter bind et passer à djbdns.
C'est pour quoi, pour faire suite à mon précédent guide sur djbdns, je vais vous expliquer maintenant comment configurer tinydns.

En aucun cas nous pourrions être responsables des conséquences que pourrait avoir ce guide sur votre serveur. En suivant et en appliquant ce guide, vous reconnaissez comprendre et approuver ce que vous ferez, vous serez donc seul responsable de ce qui pourrait arriver sur votre serveur.

Nous avons au mieux essayé de vous guider dans la configuration de tinydns (djbdns) sur votre serveur, il est probable que nous ayons fais éventuellement des erreurs, n'hésitez donc pas à nous communiquer toute erreurs, remarques, suggestions, compléments ; via la page Contact, Merci.

Si vous désirez faire appels à nos services pour configurer et/ou installer djbdns/tinydns sur votre serveur, merci de nous contacter en cliquant sur Contact


Retrouvez ce document sur le web :
http://www.s4u.fr/home/howto_configurer_tinydns_djbdns.php


etape 4 Pré requis

Pour commencer, vous devez avoir dors et déjà installé djbdns et avoir mis en place le serveur de noms (tinydns).

Si ce n'est pas le cas, vous trouverez, en suivant le lien ci-dessous, un guide qui vous permet de mettre tout ça en place :
http://www.s4u.fr/home/howto_installer_djbdns.php


etape 2 Comprendre tinydns

Nous allons tout simplement transformer un fichier de zone provenant de bind, pour qu'il soit utilisable par tinydns.

Pour commencer il faut savoir que tinydns lis sa configuration dans le fichier /etc/tinydns/root/data.cdb qui est un fichier généré par le programme tinydns-data depuis un fichier texte nommé data, se trouvant dans le même répertoire.

Donc, vous allez travailler avec le fichier /etc/tinydns/root/data, et, à chaques modifications, vous allez devoir regénerer le fichier data.cdb de la manière suivante:

cd /etc/tinydns/root
/usr/local/bin/tinydns-data


Pour faciliter la tâche, on va créer le fichier /etc/tinydns/root/Makefile qui aura ce contenu :

all: data.cdb
data.cdb:
     /usr/local/bin/tinydns-data

(Notez que la dernière ligne de ce fichier commence par une tabulation, il se peut que le copier/coller le transforme en plusieurs espaces, assurez vous que ce soit une tabulation, sinon, cela risque de ne pas fonctionner)

Il vous suffira dorénavant de tapper les commandes suivantes pour valider les modifications dans le fichier data (vous ne voyez pas encore l'intêret de ce fichier Makefile, vous comprendrez plus bas) :

cd /etc/tinydns/root
make


etape 3 Faire un découpage par zone

Au cas ou vous ne l'auriez pas compris, l'ensemble des informations dont tinydns à besoin pour publier vos zones sont rassemblés dans un seul et même fichier.

Ceci peut être handicapant pour des interventions régulières à la main, pour cela, je vous propose une solution qui vous permettra d'avoir un fichier pour chaques zones

Pour commencer on va créer un répertoire "zones" dans lequel nous mettrons nos zones DNS :

cd /etc/tinydns
mkdir zones


Maintenant nous allons modifier notre fichier /etc/tinydns/root/Makefile pour qu'il génère un fichier data à partir de nos zones se trouvant dans /etc/tinydns/zones
Bien sûr, pour des questions de sécurités, on ne va prendre en compte uniquement les fichiers qui appartiennent à root :

all: clean data.cdb
clean:
     rm -f data
     rm -rf ../datas
data:
     ./Makedatas
     sort -u ../datas/* >data
     rm -rf ../datas
data.cdb: data
     /usr/local/bin/tinydns-data


Pour commencer, prenez soins de mettres des tabulations là où il le faut, ensuite, vous aurez remarqués que nous faisons référence à un script (/etc/tinydns/root/Makedatas) qui n'existe pas encore, créeons-le :

#!/bin/bash
rm -rf ../datas
mkdir ../datas
find ../zones -uid `id -u root` -type f > root.zones
for ZONE in `cat root.zones`; do cp $ZONE ../datas/; done
rm -f root.zones



Voilà, désormais, lorsque vous ferez :

cd /etc/tinydns/root
make



..., pour valider les éventuelles modifications que vous aurez faites, le script se chargera de générer un fichier data grâce à tout les fichiers se trouvant dans le répertoire /etc/tinydns/zones/


etape 4 Configurer tinydns

Allons-y, voici le contenu d'un fichier de zones au format bind, que nous allons convertir au format DNS :

$ttl 1h
domaine.com.     IN SOA     ns1.sd-france.net. postmaster.domaine.com. (
               2005052489
               1h
               1h
               1w
               1h )

domaine.com.     IN NS     ns1.sd-france.net.
domaine.com.     IN NS     ns2.sd-france.net.

domaine.com.     IN MX     10 mx10.domaine.com.
domaine.com.     IN MX     20 mx20.domaine.com.

domaine.com.     IN A 213.251.145.236

mx10.domaine.com.     IN A     213.251.145.238
mx20.domaine.com.     IN A     213.246.39.64

mysql.domaine.com.     IN A     213.253.145.236
gestion.domaine.com.     IN A     213.251.145.243

pop.domaine.com.     IN CNAME     mx10.domaine.com.
smtp.domaine.com.     IN CNAME     mx10.domaine.com.
mail.domaine.com.     IN CNAME     mx10.domaine.com.
webmail.domaine.com.     IN CNAME     mx10.domaine.com.

ftp.domaine.com.     IN CNAME     domaine.com.
www.domaine.com.     IN CNAME     domaine.com.
*.domaine.com.     IN CNAME     domaine.com


Pour commencer, vous devez comprendre qu'avec tinydns, c'est le premier caractère d'une ligne qui va décider le type d'enregistrement, commençont par l'enregistrement SOA :

$ttl 1h
domaine.com.     IN SOA     ns1.sd-france.net. postmaster.domaine.com. (
               2005052489
               1h
               1h
               1w
               1h )


Voici cet enregistrement transformé pour qu'il soit utilisable par tinydns (sur une seule ligne) :

Zdomaine.com:ns1.sd-france.net.:postmaster.domaine.com.:2005052489:3600:3600:604800:3600:3600


Ensuite on déclare les serveurs de noms pour cette zone, version bind :

domaine.com.     IN NS     ns1.sd-france.net.
domaine.com.     IN NS     ns2.sd-france.net.


Voici cet enregistrement transformé pour qu'il soit utilisable par tinydns; vous noterez que les champs non spécifiés prendront les valeurs par défaut, que les champs que l'on ne souhaite pas spécifier mais qui ne sont pas en fin de ligne doivent être simplement vides, et que, pour finir, les champs que l'on ne veut pas spécifier et qui se trouvent en fin de ligne peuvent être complètement omis:

&domaine.com::ns1.sd-france.net.
&domaine.com::ns2.sd-france.net.


Ensuite on déclare les serveurs de mails (MX) pour cette zone, version bind :

domaine.com.     IN MX     10 mx10.domaine.com.
domaine.com.     IN MX     20 mx20.domaine.com.


Voici cet enregistrement transformé pour qu'il soit utilisable par tinydns :

@domaine.com::mx10.domaine.com.:10
@domaine.com::mx20.domaine.com.:20


Ensuite on déclare les pointages classiques (A) pour cette zone, version bind :

domaine.com.     IN A 213.251.145.236

mx10.domaine.com.     IN A     213.251.145.238
mx20.domaine.com.     IN A     213.246.39.64

mysql.domaine.com.     IN A     213.253.145.236
gestion.domaine.com.     IN A     213.251.145.243


Voici cet enregistrement transformé pour qu'il soit utilisable par tinydns :

+domaine.com:213.251.145.236
+mx10.domaine.com:213.251.145.238
+mx20.domaine.com:213.246.39.64
+mysql.domaine.com:213.253.145.236
+gestion.domaine.com:213.251.145.243


Enfin on déclare les alias (CNAME) pour cette zone, version bind :

pop.domaine.com.     IN CNAME     mx10.domaine.com.
smtp.domaine.com.     IN CNAME     mx10.domaine.com.
mail.domaine.com.     IN CNAME     mx10.domaine.com.
webmail.domaine.com.     IN CNAME     mx10.domaine.com.

ftp.domaine.com.     IN CNAME     domaine.com.
www.domaine.com.     IN CNAME     domaine.com.
*.domaine.com.     IN CNAME     domaine.com


Voici cet enregistrement transformé pour qu'il soit utilisable par tinydns :

Cpop.domaine.com:mx10.domaine.com.
Csmtp.domaine.com:mx10.domaine.com.
Cmail.domaine.com:mx10.domaine.com.
Cwebmail.domaine.com:mx10.domaine.com.
Cftp.domaine.com:domaine.com.
Cwww.domaine.com:domaine.com.
C*.domaine.com:domaine.com.

Et voilà on a notre fichier utilisable pour tinydns :

Zdomaine.com:ns1.sd-france.net.:postmaster.domaine.com.:2005052489:3600:3600:604800:3600:3600
&domaine.com::ns1.sd-france.net.
&domaine.com::ns2.sd-france.net.
@domaine.com::mx10.domaine.com.:10
@domaine.com::mx20.domaine.com.:20
+domaine.com:213.251.145.236
+mx10.domaine.com:213.251.145.238
+mx20.domaine.com:213.246.39.64
+mysql.domaine.com:213.253.145.236
+gestion.domaine.com:213.251.145.243
Cpop.domaine.com:mx10.domaine.com.
Csmtp.domaine.com:mx10.domaine.com.
Cmail.domaine.com:mx10.domaine.com.
Cwebmail.domaine.com:mx10.domaine.com.
Cftp.domaine.com:domaine.com.
Cwww.domaine.com:domaine.com.
C*.domaine.com:domaine.com.

Je sais pas pour vous mais pour moi, je trouve ça bien plus clair... Enregistrez cette zone par exemple sous : /etc/tinydns/zones/djb.domaine.com, et appliquez les modifications :

cd /etc/tinydns/root
make


etape 4 Délégations en .fr

 

L'AFNIC, l'organisme qui administre les délégations en .fr, est un peu restrictif (au final c'est pas plus mal), pour que votre .fr puisse fonctionner, votre serveur de noms doit "s'annoncer", et aussi contenir l'enregistrement des root-servers. Bref, ajoutez le fichier /etc/tinydns/zones/dot.fr dont le contenu et ci-dessous (et n'oubliez pas d'appliquer les modifications), pour que le zonecheck vous renvoie à coup sur un SUCCES :

&:198.41.0.4:a.root-servers.net
&:128.9.0.107:b.root-servers.net
&:192.33.4.12:c.root-servers.net
&:128.8.10.90:d.root-servers.net
&:192.203.230.10:e.root-servers.net
&:192.5.5.241:f.root-servers.net
&:192.112.36.4:g.root-servers.net
&:128.63.2.53:h.root-servers.net
&:192.36.148.17:i.root-servers.net
&:192.58.128.30:j.root-servers.net
&:193.0.14.129:k.root-servers.net
&:198.32.64.12:l.root-servers.net
&:202.12.27.33:m.root-servers.net
.localhost
.1.0.0.127.in-addr.arpa
=localhost:127.0.0.1

Je considère aussi que vous avez compris, dans mon howto qui vous guide lors de l'installation de djbdns, que vous devez écouter le port TCP/53 (axfrdns) pour que les .fr puissent vous être déléguer. Si vous ne voyez pas de quoi je parle, relisez mon précédent guide, et consultez les pages de djbdns.

Plus d'infos sur :
http://cr.yp.to/djbdns/dot-fr.html


etape 4 Pour finir

Ce guide est largement incomplet, c'est juste pour vous mettre "sur la voie"... Je suis ouvert à toutes vos éventuelles contributions...

En attendant DJB à fais des pages "très claires" sur lesquelles j'ai tout appris, alors foncez :

Pages officielle de djbdns (FAQ et Guides) US :
http://cr.yp.to/djbdns.html


Guide réalisé par David CHANIAL le 04 Juin 2005