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

Répondre à