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
 |
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
 |
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
|
 |
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/
 |
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
|
 |
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
 |
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
|