[gull] Les requêtes DNS

Daniel Cordey dc at mjt.ch
Fri Sep 10 14:28:02 CEST 2004


On Friday 10 September 2004 13:43, Magnus wrote:

> De toute façon ce service doit être atteignable, la
> limitation en fonction du port source a-t-elle vraiment un
> sens?

Non, pas a mes yeux... 

> Le serveur doit de toute façon être démaré en root pour
> "binder" le port 53, mais il doit le rester s'il veut
> envoyer des données avec un port source privilégié (ma
> première question reste). Sinon il peut changer
> d'utilisateur).

Oups, j'ai oublie... le serveur demarre en root, "bind" le port 53, puis 
change son UID (real !). De plus, on peut le tourner en "chroot". Le nom de 
l'utilisateur sous lequel il tourne se configure dans le named.conf. Par 
contre, les adresses IP et les ports se configure dans les fichiers de zones. 
Par exemple, l'un des fichier "externe" chez MJT est :

acl slave-servers {
        212.74.77.22;
        194.88.9.21;
        };


view "external" {

    allow-transfer { slave-servers; };
    notify-source 194.88.9.23 port 53;

    recursion no;

    zone "mjt.ch" {
        type master;
        file "/master/mjt.external.zone";
    };

    zone "mjtsa.com" {
        type master;
        file "/master/mjtsa.external.zone";
    };

    zone "9.88.194.in-addr.arpa" {
        type master;
        file "/master/194.88.9.external.rev";
    };
};

On voit donc que l'on peut "binder" le serveur sur une adresse IP qui est en 
fait un alias et que l'on peut mettre ce que l'on veut comme port.

> En réfléchissant un peu, on peut se dire que les clients
> "normaux" utiliseront un port non-privilégié comme source
> et un autre bind, pour par exemple effectuer un transfer,
> utiliserait le port 53 en source... D'une façon générale,
> c'est au démon bind de définir qui a le droit à un service
> différent.

Il faut que tous les autres systemes sachent qu'ils doivent effectuer leurs 
requetes sur ce port... donc valable seulement pour des systemes configures 
comme tel.

> Il me semble que UDP est utilisé pour les 
> requêtes normale et tcp est plutôt utilisé pour les autres
> fonctions dns (zone tranfer par exemple.) mais je n'en
> suis pas sûr.

Absolument, les requetes sont UDP, sauf pour celles qui sont trop grosses pour 
tenir dans un seul paquet UDP... Ce sont des cas particuliers qui ne 
concernent pas la tres grande majorite des requetes, a moins d'avoir 
configurer le "groupage" de groupage des requetes (je resume...).

> l'illustre Daniel Cordey a dit un jour,

Deconne pas... je me donne un mal de chien pour qu'un minimum de mes erreurs 
ne deborde sur la liste :-)

A part ca, je mes suis un peu ecorche les doigts avec DNS il y a quelques 
temps. A partir du moment ou l'on utilise les zones (concept genial), on bute 
tres vite sur un probleme de gestion des fichiers zone et la configuration 
"fine" du serveur DNS. Ceci a mis a jour la necessite de disposer d'un outil 
permettant de configurer ces fichiers de maniere claire, non-ambigue et 
exempt d'erreurs de syntaxe. Sachant que le moindre petit "glitch" dans un de 
ces fichiers peut rendre vos donnees "invisibles". En plus, losrque vous avez 
la necessite de configurer le "reverse-IP mapping", les probabilites 
d'erreurs deviennent tres grandes. Ajoutez a ceci la TRES grosse difficulte a 
"debugguer" les problemes de DNS... J'ai donc l'obligation d'ecrire un outil 
pour notre infrastructure. Dans la foulee, j'essaierai de le rendre le plus 
souple possible et je le mettrai a disposition (GPL). Ce sera du code Python 
a tourner sur un serveur web.

Daniel




More information about the gull mailing list