[gull] Les requêtes DNS
Daniel Cordey
dc at mjt.ch
Fri Sep 10 14:48:01 CEST 2004
On Friday 10 September 2004 14:00, Julien Escario wrote:
> .. si le serveur envoie des requêtes depuis le port 53, cela signifie
> qu'il tourne forcement en root non ?
Uniquement pour faire le "bind". Apres, il a le "socket" a disposition pour le
process. Les droits d'acces ne sont verifier que pour les "system calls" qui
y sont confrontes. Soit, en grande majorite, des commandes du style open().
Les fonctions read(), write(), close(), select() n'en ont pas besoin
puisqu'elle manipulent un "file descriptor" pour lequel les droits d'acces
ont deja ete verifies. Ce qui fait que, dans le cas de "named", le "bind" est
fait en "root", puis le UID du process est change.
> Pomment un serveur peut-il utiliser le même port pour envoyer et recevoir
> des requêtes ?
Un socket, comme un fichier, permet d'ecrire et de lire.
> cela signifie qu'il ne peut faire une requête et en
> recevoir une en même temps ?
Pas "vraiment" en meme temps... quoique... Par defaut, named essaie de
determiner le nombre de CPUS (y compris les dual-core) afin de determiner le
niveau de "threading" qu'il peut se permettre. Dans ce cas, et puisque
select() est "tread-safe", il est parfaitement possible d'envoyer une requete
et d'en recevoir une en meme temps. Ceci n'est donc pas valable sur un
machine n'ayant qu'un seul CPU (quoique... mais entrer dans les details nous
ferait trop deriver).
> Une requête DNS implique un temps de timeout,
UDP...
> si le côté client tombe sur un temps de réponse long, le côté serveur ne
> plus répondre pendant quelqeus secondes ??? ca me parait gênant ...
Non, voir l'explication ci-dessus.
> Cela, je veux bien admettre qu'il puisse ouvrir un port privilégié en
> root, switcher en user et l'utiliser. Donc pourquoi pour envoyer aussi des
> requêtes ?
e depuis un AUTRE port (non
> privilégié) ?
Oui, un seul process en mode 'root' s'occupe d'obtenir le socket, puis
celui-ci "fork" N process (dependant de son niveau de threading) qui heritent
du socket; mais apres avoir change son UID.
Daniel
More information about the gull
mailing list