OVH Community, votre nouvel espace communautaire.

HOW TO : Serveurs dns secondaires valable pour plesk etc


quentinheb
22/05/2009, 09h00
Ok nickel ca ! Je vais test le script recodé d'ici 24h je te tiens au courant si je rencontre une erreur.
Bonne journée

TBC_Ly0n
22/05/2009, 01h50
Oui, tu te plantes :
- Le master, tu n'as pas besoin de le recharger une fois par jour ! Tu n'as pas changé sa configuration
- En temps normal, vas-tu modifier tes zones DNS au moins une fois par jour ?

Donc, conclusion, il ne faut pas faire de rndc reload une fois par jour de manière systématique.

Le script réécrit permet de recharger de manière propre les zones si et seulement si la configuration a été modifiée sur le maste.

quentinheb
21/05/2009, 16h05
BIND contient un utilitaire appelé rndc qui permet d'administrer, localement ou à distance, le démon named grâce à des déclarations en lignes de commandes. Le programme rndc utilise le fichier /etc/rndc.conf pour ses options de configuration qui seront outrepassées par la priorité des options de lignes de commandes.

Afin d'empêcher des utilisateurs non autorisés sur d'autres systèmes de contrôler BIND sur votre serveur, on utilise une méthode de clé secrète partagée pour accorder explicitement des privilèges à certains hôtes. Pour que rndc émette des commandes vers n'importe quel named, même sur un ordinateur local, les clés utilisées dans /etc/named.conf et /etc/rndc.conf doivent se correspondre.
Donc en gros (je pense) on doit simplement remplacer :
10 12 * * * /var/named/run-root/etc/transfert-sec.sh > /dev/null 2>&1
20 12 * * * /etc/init.d/named restart > /dev/null 2>&1
par
10 12 * * * /var/named/run-root/etc/transfert-sec.sh > /dev/null 2>&1
20 12 * * * rndc reload > /dev/null 2>&1
ainsi que :
0 12 * * * /var/named/run-root/etc/generer-secondaires.sh > /dev/null 2>&1
5 12 * * * /etc/init.d/named restart > /dev/null 2>&1
par
0 12 * * * /var/named/run-root/etc/generer-secondaires.sh > /dev/null 2>&1
5 12 * * * rndc reload > /dev/null 2>&1
Si je me plante dis le moi je suis la pour ca !
Le script que tu as refais permet de se passer du cron job si il télécharge un nouveau fichier non vide alors il relance rndc reload sinon il le fait pas.

TBC_Ly0n
21/05/2009, 15h09
Allez, c'est parti pour le deuxième script :

Code:
#!/bin/sh

MASTER=
NAMED_ROOT=/var/named/run-root/etc
HTTPDOCS=/var/www/vhosts/default/htdocs/

awk -F'"' '/^zone/ && $2 !~ /in-addr.arpa$|localhost|^\.$/ {print $2}' $NAMED_ROOT/named.conf > $NAMED_ROOT/domains

rm $HTTPDOCS/secondaries.include 2>/dev/null
for DOMAINE in `cat $NAMED_ROOT/domains`; do
echo "zone \"$DOMAINE\" {
  type slave;
  file \"slave/$DOMAINE\";
  masters { $MASTER; };
  allow-transfer { none; };
};
" >> $HTTPDOCS/dns-secondaires.include

done

chmod 644 $HTTPDOCS/dns-secondaires.include

TBC_Ly0n
21/05/2009, 14h56
Allez, on refait le code, maintenant :

Code:
#!/bin/sh
                                                                                               
MASTER=
FILE=/var/named/run-root/etc/dns-secondaires.include
                                                                                               
rm $FILE.tmp 2>/dev/null

wget http://$MASTER/`basename $FILE` -O $FILE.tmp
if [ $? -eq 0 ]
then
	if [ -s $FILE.tmp ]; then
		if [ "`md5sum $FILE.tmp | cut -d" " -f1`" != "`md5sum $FILE | cut -d" " -f1`" ]
		then
			mv $FILE.tmp $FILE
			chmod 644 $FILE
			rndc reload
			exit $?
		fi
	else
		echo "ERROR! The secondary file is 0 length!"
		exit 1
	fi
else
	echo "ERROR! Unable to donwload the zone file."
	exit 2
fi
Et avec ce code, tu arrêtes de redémarrer BIND tous les jours. C'est INUTILE. Et donc à supprimer.

quentinheb
21/05/2009, 14h32
Salut j'ai corrigé le cron job merci
Heu non ce n'est pas du plesk ca marche sur ton les serveurs dédiés.
Il va juste copier tes zones des serveurs maitres dans un fichiers dns-secondaires.include et sur le secondaire telecharger les zones et les mettre en slave.
Personnellement j'utilise le script et ca très bien.
Tu as raison pour le notify yes, c'est juste que comme j'édite la conf du named je le restart mais un reload est suffisant ^^
Si tu vois d'autres erreur n'hésite pas à me les signaler !
Bonne journée

TBC_Ly0n
21/05/2009, 14h02
Code:
10 12 * * * /var/named/run-root/etc/xfer-config.sh > /dev/null 2>&1
20 12 * * * /etc/init.d/named restart > /dev/null 2>&1
Non, on ne redémarre pas BIND pour lui faire prendre en compte de nouveaux domaines.
Si sur le master, on spécifie "notify yes", les slaves seront automatiquement prévenus, et la configuration des slaves se mettra automatiquement à jour.

AU PIRE, on fait un rndc reload. Pas un redémarrage de bind.

Le premier script, c'est du Plesk ?

quentinheb
21/05/2009, 09h01
Bon voila accrochez vos slips c'est vraiment un tuto facile donc on se détend et on essaie de bien comprendre chaque ligne du tuto.

1) on telecharge :
transfert-sec.sh
generer-secondaires.sh

Sur le serveur maitre
on install le script :
generer-secondaires.sh
dans /var/named/run-root/etc

chmod 755 generer-secondaires.sh

Editez les fichiers .sh
generer-secondaires.sh
transfert-sec.sh
et remplacer dedans :
MASTER=IPDEVOTRESERVEURMAITRE

On crée une tache cron

0 12 * * * /var/named/run-root/etc/generer-secondaires.sh > /dev/null 2>&1
5 12 * * * /etc/init.d/named restart > /dev/null 2>&1

Au serveur secondaire
On met le fichier
transfert-sec.sh
dans /var/named/run-root/etc
cd /etc
vi named.conf
include “/etc/dns-secondaires.include”;
ln -s /var/named/run-root/etc/dns-secondaires.include dns-secondaires.include

On crée une tache cron

10 12 * * * /var/named/run-root/etc/transfert-sec.sh > /dev/null 2>&1
20 12 * * * /etc/init.d/named restart > /dev/null 2>&1

On va ensuite dans plesk on ajoute le allow transfert pour le master sur les serveurs esclaves
On ajoute les NS correspondants aux serveurs secondaires

On relance named des deux cotés /etc/init.d/named restart


Voila , j'espère avoir été clair