On Jan 28 Sami Dalouche wrote:
> > Je fais tourner un serveur de mail (exim, mais c'est par flemme de
> > prendre autre chose) et un serveur de noms (bind). J'envoie toujours le
> > mail vers [EMAIL PROTECTED], et je red�marre BIND d�s que je me
> > connecte par PPP (avec des fichiers de configs d�plac�s en fonction du
> > fournisseur d'acc�s pr�vu). Je ne vois pas pourquoi tu ne pourrais pas
> > mettre en place le m�me syst�me.
> Je serais bien int�ress� de savoir comment faire cel�. Pourrais tu m'envoyer
> les fichiers de configs avec qques br�ves explications...
> Merci
Alors voil�... on installe d'abord bind, et on se cr�e deux trois petits
fichiers locaux:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/var/named/boot.zones
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Name server zone boot file
; See named(8) for syntax and further information
;
; type domain source file
primary 0.0.127.in-addr.arpa primary/0.0.127
primary 14.168.192.in-addr.arpa primary/14.168.192
primary eidos.univers primary/eidos.univers
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
J'ai d�cid� de me mettre sur un r�seau fictif 192.168.x.y (en fait, avec
x=14, mais c'est pas important). Mon domaine s'appelle eidos.univers,
mais on peut l'appeller debian.nonet si on veut...
En local, on a pas besoin d'inverser les alias que l'on va d�finir, donc
c'est minimal:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/var/named/primary/0.0.127
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; BIND reverse data file for local loopback interface
;
@ IN SOA akasha.eidos.univers. akasha.eidos.univers. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Default TTL
;
@ NS akasha.eidos.univers.
1 PTR localhost.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Et de m�me pour la classe choisie:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/var/named/primary/14.168.192
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; BIND reverse data file for local loopback interface
;
@ IN SOA akasha.eidos.univers. root.eidos.univers. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire 604800) ; Default TTL
;
@ NS akasha.eidos.univers.
1 PTR localhost.eidos.univers.
14 PTR akasha.eidos.univers.
42 PTR cri.eidos.univers.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Le temps de vie de ces valeurs est totalement sans importance, puisque
les donn�es ne sont jamais export�es. Si vous utilisez cette m�thode
avec un petit r�seau local (et que vous avez donc d�j� configur� BIND),
je ne vous apprend probablement rien, et en plus, il faudra dans les
fichiers suivants faire changer les num�ros de s�rie. Il faudra
probablement mettre un temps de mise-�-jour plus court. En fait, si
quelqu'un a des id�es... j'ai qu'une seule machine :-)
Voici donc les fichiers � construire
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/var/named/primary/eidos.univers.disconnect
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@ IN SOA akasha.eidos.univers. root.eidos.univers. (
199900002 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Default TTL
;
TXT "Mon sous-domaine personnel"
NS akasha
MX 10 akasha
HINFO "K6" "Linux 2.2"localhost A
127.0.0.1
akasha A 127.0.0.1
nameserver CNAME akasha
cri A 140.77.1.32
TXT "[EMAIL PROTECTED]"
; smartmailer A 192.168.14.255
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ce qui est important � voir, c'est que je n'ai pas d�fini de nom
smartmailer (; = commentaire).
Et il faut construire un fichier similaire pour chaque fournisseur
d'acc�s (par exemple, ici, free.fr).
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/var/named/primary/eidos.univers.free
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; BIND data file for local loopback interface
;
@ IN SOA akasha.eidos.univers. root.eidos.univers. (
199900002 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Default TTL
;
TXT "Mon sous-domaine personnel"
NS akasha
MX 10 akasha
HINFO "K6" "Linux 2.2"
localhost A 127.0.0.1
akasha A 127.0.0.1
nameserver CNAME akasha
cri A 140.77.1.32
TXT "[EMAIL PROTECTED]"
smartmailer CNAME smtp.free.fr.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Il est possible, si plusieurs services doivent �tre chang�s, de d�finir
d'autres alias...
Pour le DNS, j'utilise personnellement toujours le m�me (celui de
free.fr), mais dans le cas contraire, il faut rajouter deux-trois trucs
dans mes scripts...
Dans /etc, j'ai ceci:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/etc/named.boot
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Boot file for name server
;
directory /var/named
; type domain source file
cache . named.root
; Zone boot information and daemon options are kept in other files
include boot.zones
include boot.options
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
et
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/var/named/boot.options
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
; Options for name server
; Use `bindconfig' to automatically configure this file
;
forwarders 212.27.32.5 212.27.32.6
;; Custom configurations below (will be preserved)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Si vous avez des serveurs diff�rents, il faut cr�er un r�pertoire
options, contenant forwarders.disconnect (o� on ne met pas de
forwarders), un fichier forwarders.fournisseur pour chaque fournisseur
que l'on utilise, et on change le
include boot.options
de /etc/named.boot par
include options/forwarders
Jusqu'ici, tout va bien, et vous avez juste un BIND qui fonctionne. Il
faut initialiser le tout par des liens symboliques ad�quats:
cd /var/named/primary
ln -s eidos.univers.disconnect eidos.univers
et �ventuellement
cd /var/named/options
ln -s forwarders.disconnect forwarders
Ensuite, il faut modifier les fichiers g�n�r�s par pppconfig:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/etc/ppp/peers/free-lyon
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# This file was generated by pppconfig. You can edit the following lines
# but please do not delete lines or the change the comments or you will
# confuse pppconfig.
noauth #pppconfig_noauth
connect "/usr/sbin/chat -v -f
/etc/chatscripts/free-lyon" #pppconfig_connect
debug #pppconfig_debug
/dev/ttyS0 #pppconfig_dev
115200 #pppconfig_speed
defaultroute #pppconfig_route
noipdefault #pppconfig_ipdefault
user jcdubacq #pppconfig_user
# End of pppconfig controlled lines. You can add lines below here
without
# confusing pppconfig.
remotename proxad
modem
ipcp-accept-remote
ipcp-accept-local
ipparam free
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Seule la derni�re ligne a �t� rajout�e. Le mot "free" est le nom que
vous avez ajout� pour "fournisseur", comme le nom par exemple
/var/named/primary/eidos.univers.free
Enfin, il faut rajouter deux scripts, un d�clench� � l'initialisation de
la connexion, et un � la fin...
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/etc/ppp/ip-up.d/00named
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#!/bin/sh
if [ -r /var/run/named.pid ]; then
if [ -r /var/named/primary/eidos.univers.$PPP_IPPARAM -a -L
/var/named/primary/eidos.univers ]; then
/etc/init.d/bind stop
rm /var/named/primary/eidos.univers
ln -s /var/named/primary/eidos.univers.$PPP_IPPARAM
/var/named/primary/eidos.univers
## rm /var/named/options/forwarders
##�ln -s /var/named/options/forwarders.$PPP_IPPARAM
/var/named/options/forwarders
## /usr/sbin/named-bootconf # Reconstruire le fichier de configuration suite au
changement des forwarders
sleep 1 # n�cessaire si pas de reconstruction
/etc/init.d/bind start
fi
fi
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Les lignes comment�es par ## sont pour le cas o� vous devez changer de
nameserver.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/etc/ppp/ip-down.d/99named
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#!/bin/sh
if [ -r /var/run/named.pid ]; then
if [ -r /var/named/primary/eidos.univers.disconnect -a -L
/var/named/primary/eidos.univers ]; then
rm /var/named/primary/eidos.univers
ln -s /var/named/primary/eidos.univers.disconnect
/var/named/primary/eidos.univers
/etc/init.d/bind restart
fi
fi
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Les lignes suppl�mentaires pour le cas o� vous changez d'options sont
laiss�es en exercice (indication, voir le fichier pr�c�dents et
remplacez $PPP_IPPARAM par disconnect).
...
Ouf?
Alors vous avez un serveur de nom (BIND), qui lorsqu'il tourne utilise
un fichier de configuration reconstitu� � partir de fichiers qui
diff�rent en fonction du fournisseur d'acc�s utilis�.
D�s que vous allez vouloir acc�der � un service g�n�rique (je pense
�videmment � smarthost, mais cela peut aussi �tre l'ajout d'une s�rie
d'alias, comme le proxy web, ou autre), votre machine va traduire de
fa�on automatique le nom demand� (smarthost.mondomaine.chezmoi) en ce
qu'il faut (smtp.free.fr ou smtp.monautrefournisseur.fr ou
smtp.monecole.fr).
Il y a probablement un autre moyen de faire �a. Il s'agit d'utiliser
bindconfig pour cr�er des configurations compl�tement diff�rentes, et de
modifier /etc/init.d/bind pour qu'il utilise un �ventuel deuxi�me
argument qui serait un fichier de configuration.
D'ailleurs, � propos du sleep 1, je tiens � ajouter que, de fa�on
non-test�e, il doit �tre possible d'utiliser plut�t
/etc/init.d/bind force-reload
J'ajoute la ligne de configuration ad�quate d'exim:
smarthost:
driver = domainlist
transport = remote_smtp
route_list = "* smartmailer.eidos.univers bydns_a"
end
Il y a sans doute plein de choses � dire sur cette configuration, mais
depuis que j'ai rajout� le sleep 1 (sans lui, des fois, le serveur ne se
relan�ait pas une fois la connexion obtenue), je n'ai jamais eu de
probl�mes...
N'h�sitez pas � me poser des questions...
--
Jean-Christophe Dubacq