Re: /etc/resolv.conf,et client

Page principale

Répondre à ce message
Auteur: Olivier Allard-Jacquin
Date:  
CC: ML Guilde
Sujet: Re: /etc/resolv.conf,et client
    Salut Patrice,

Patrice Karatchentzeff a écrit :
> Salut,
>
> Deux p'tites questions...
>
> J'avais en effet merdé la config de ma passerelle qui marchait tout à
> fait par hasard sur une de mes bécanes et pas du tout sur une autre
> (ce qui était somme toute le bon comportement :)).
>
> Bon, maintenant, j'ai un autre soucis mais cette fois, plus de compréhension.
>
> Si j'ai bien compris l'IP forwarding, normalement, le client n'a pas à
> connaître d'autres « DNS » que le nom de la passerelle...


    La réponse, tu la veux diplomatique ou pas ? ;)


    Je dirais que tu as mal compris... ;)


> donc, en
> gros, ne doit apparaître que le nom de la passerelle dans
> /etc/resolv.conf...


    A la seul condition que ta passerelle fasse relais DNS et/ou serveur
DNS pour ton réseau local. Bref, qu'il écoute sur le port UDP/53.


> Or, chez moi, cela ne fonctionne pas : si je n'ai pas dans
> /etc/resolv.conf (sur le client) les DNS qui gèrent le trafic
> extérieur au réseau local, cela ne fonctionne pas.


    C'est normal. Bon, pour faire simple :


- L'IP forwarding permet à ton client interne d'aller où il veut sur
Internet, du moment qu'il connaît les adresses IP des machines qu'il
veut visiter

- Pour connaître ces adresses IP, il doit faire des requêtes DNS auprès
d'un serveur DNS. Donc il doit "titiller" le port UDP/53 d'une machine
(serveur DNS) pour avoir une réponse.

- Si tu mets l'adresse IP de ta passerelle dans le /etc/resolv.conf de
ton client, celui-ci va aller accéder au port UDP/53 de LA PASSERELLE
pour trouver l'association nom / adresse IP.

- Mais si tu ne fais pas tourner un serveur DNS sur la passerelle, le
client n'aura pas de réponse, et donc il ne pourra jamais trouver
l'adresse IP de la machine exterieur qu'il veut rejoindre. CQFD


> Est-ce moi qui n'ai pas bien saisi le fonctionnement ou bien j'ai
> encore merdé ma config ?


    Tu confonds 2 choses :
- le NAT/ip forwarding permet de faire passer des paquets à travers ta
passerelle.
- la résolution adresse IP/nom n'a rien à voir avec le NAT. Cele se
passe à un niveau au-dessus de IP.


> Corrolaire : si le comportement ci-dessus est normal, mon
> /etc/resolv.conf est réécrit à chaque fois que l'adresse IP est
> réallouée (DHCP) et donc je perds les DNS que j'entre à la main...
> quelqu'un sait comment obliger la non-réécriture de ce fichier à
> chaque fois ? Il y a eu un fil récemment sur DUF là-dessus mais la
> solution proposée tient vraiment du bricolage...


    Il y a 3 solutions à ton problème :
- si tu es geek un peu joueur :
 + tu installe un serveur DNS sur ta passerelle. "named" par exemple. Il
assurera le "relai DNS" entre les machines de l'exterieur, et tes
clients internes. Mais "named" étant un soft assez sensible, il convient
de le sécuriser à fond.
 + tu le configure pour qu'il connaisse les machines de ton réseau (ca,
c'est un "plus" sympa).
 + tu le fait tourner dans un chroot, afin de le protéger un peu (c'est
du "plus-plus" sympa)
 + tu configures named et dhcpd (le serveur DHCP) pour qu'ils
communiquent ensemble. Ainsi, losqu'un client DHCP demande une adresse
IP, son nom est rajouté à ceux que connaît déjà "named", et une autre
machine de ton LAN peu retrouver le nom du nouveau client. Ca c'est du
"plus-plus-plus" fun... ;) (*)


- si tu est un peu pressé, tu configures le serveur DHCP que tu as
installé sur la passerelle, afin qu'il renvoit les IP des DNS de ton
FAI. Exemple :

# Reseau interne 192.168.1.0/24
subnet 192.168.1.0 netmask 255.255.255.0 {

        # Configuration réseau
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.1.255;


        # default gateway
        option routers 192.168.1.50;
        option domain-name-servers 213.228.0.168 212.27.32.5;


        range dynamic-bootp 192.168.1.128 192.168.1.254;
        default-lease-time 21600;
        max-lease-time 43200;


        # Le serveur DHCP informe qu'il connaît la topologie du réseau
        # et que tout autre adresse IP sur ce segment est fausse
        authoritative;
}


Le truc important, c'est le "option domain-name-servers 213.228.0.168
212.27.32.5;". Il renverra au client DHCP la liste des serveurs DNS de
Free. Le client dhcp ("pump", "dhclient", etc..) modifiera le
"/etc/resolv.conf" avec ces valeurs-la.

"man dhcpd.conf" et recherche "domain-name-servers".

- dernière solution : Tu cherches vraiment la complexité, et tu fais du
port-forwarding entre le port UDP/53 interne de ta passerelle, et le
port UDP/53 de l'un des DNS de ton FAI. Mais là, c'est vraiment chercher
la complexité...


(*) Je me suis installé une telle configuration chez moi, c'est vraiment
sympa...

> Merci d'avance,


    De rien.


    Bon WE,


                        Olivier


-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
      /   / \  / \   \   Web:  http://olivieraj.free.fr/
     /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!