Question bête sur resolv.conf ..

Fermé
hips Messages postés 5 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 23 novembre 2007 - 18 nov. 2007 à 14:23
mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 - 19 nov. 2007 à 10:24
Bonjour,

J'ai lu un peu de doc sur ce fichier car je n'arrivais pas à mettre à jour la date de mon serveur avec "nptdate" faute de l'avoir configurer..
Mais pas de réponse à mon questionnement..

Bref ma question toute bête:

mon serveur n'accédait pas à internet faute d'avoir oublier de configurer le fichier "resolv.conf" jusque la normal. Mais ce que j'ai remarqué aussi avant de modifier le fichier est que je n'arrivais pas non plus à ping mon reseau local depuis le serveur alors que le serveur etait accéssible depuis les postes clients. Une fois le fichier configuré et reboot, plus aucun problème de ping ou d'accès au réseau local.

Cela me semble etonant que le serveur dns necessaire pour accéder à internet soit aussi necessaire pour acceder au reseau local..
j'imagine qu'un processus ne demarait pas correctement faute d'avoir configuré ce ficher mais je vois pas quoi ..

Si quelqu'un pourrait eclairer ma lanterne cela serait sympa
@++
A voir également:

3 réponses

mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 7 783
19 nov. 2007 à 01:18
Attention ne mélangeons pas tout :-) Le rôle de /etc/resolv.conf est de fournir (notamment) des adresses IP de serveur DNS. Un serveur DNS permet de convertir un nom de domaine (par exemple www.google.fr) en une adresse Sous linux deux commandes permettent d'interroger les DNS :
(mando@aldur) (~) $ host www.google.fr
www.google.fr is an alias for www.google.com.
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 209.85.129.147
www.l.google.com has address 209.85.129.104
www.l.google.com has address 209.85.129.99

(mando@aldur) (~) $ nslookup www.google.fr
Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
www.google.fr   canonical name = www.google.com.
www.google.com  canonical name = www.l.google.com.
Name:   www.l.google.com
Address: 209.85.129.147
Name:   www.l.google.com
Address: 209.85.129.104
Name:   www.l.google.com
Address: 209.85.129.99

Tu notereas qu'ici c'est 192.168.1.1 (mon routeur) qui a répondu (dans ce cas particulier il fait relai DNS, mais ça peut être une IP quelconque dans le cas général). C'est bien lui qui apparaît quand je regarde le contenu de /etc/resolv.conf :
(mando@aldur) (~) $ cat /etc/resolv.conf
nameserver 192.168.1.1
nameserver 0.0.0.0

Ok maintenant revenons au routage IP. Chaque interface réseau connectée à un réseau IP reçoit une adresse IP l'identifiant de manière unique sur son réseau (ou sous-réseau). Les IP associées à chaque interface se voient avec la commande ifconfig. Par exemple ici ma carte ethernet s'appelle eth3 et a pour IP 192.168.1.13
(mando@aldur) (~) $ /sbin/ifconfig
eth3      Lien encap:Ethernet  HWaddr
          inet adr:192.168.1.13  Bcast:192.168.1.255  Masque:255.255.255.0
....

Ensuite pour joindre une destination, linux regarde sa table de routage, visible avec la commande route :
(mando@aldur) (~) $ /sbin/route -n
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth3
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth3

Ici ça veut dire que le sous réseau 192.168.1.* est directement accessible sans passer une passerelle. C'est normal ce sont les adresses de mon sous réseau. Pour les autres je dois quitter mon sous réseau via une passerelle (concrètement mon routeur branché à ma prise murale). La seconde route (appelée route par défaut) permet de joindre toute les destinations, en précisant qu'il faut passer par mon routeur (qui à l'IP 192.168.1.1). Concrètement dans cet exemple le réseau est donc ainsi :
Web
  |
  |
Mon @IP publique
Routeur
192.168.1.1
  |
  |---- 192.168.1.13 eth3 Mon PC

A présent dépilons un exemple. Je veux me connecter sur www.google.fr (que ce soit avec un ping ou mon navigateur)

1) Résoudre : je dois donc avoir une route pour joindre mon DNS. En général c'est la route par défaut qui permet de l'atteindre. Ici le DNS est bien entendu joignable et me répond c'est 209.85.129.99.

2) Router le trafic vers l'IP résolue. Ici la route par défaut est empruntée (donc via eth3 connectée à mon routeur)

Cas particuliers

Il est possible de définir des résolutions statiques dans /etc/hosts. Par exemple debian (et je pense la plupart des linux) spécifie un alias pour localhost (toi même) et ton nom de machine (ici aldur)
127.0.0.1   localhost
127.0.1.1   aldur

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Et effectivement :
(mando@aldur) (~) $ ping -c2 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.033 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.028 ms

--- localhost ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.028/0.030/0.033/0.006 ms

(mando@aldur) (~) $ ping -c2 aldur
PING aldur (127.0.1.1) 56(84) bytes of data.
64 bytes from aldur (127.0.1.1): icmp_seq=1 ttl=64 time=0.030 ms
64 bytes from aldur (127.0.1.1): icmp_seq=2 ttl=64 time=0.029 ms

--- aldur ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.029/0.029/0.030/0.005 ms

En espérant t'avoir éclairé, bon courage !
0
hips Messages postés 5 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 23 novembre 2007
19 nov. 2007 à 10:01
Merci Mamie pour ce petit rappel de réseau ca fait toujours de bien :)
Neanmois, tu réponds à moitié à ma question ^^

ce que je demandais en fait c'est plus particulierement, c'est pourquoi:

Sans configuration de "resolv.conf" --> mon serveur "pinguable" et accessible depuis une machine cliente n'arrivait pas lui à "pinguer" les machines du reseau, ni à accéder.

Avec la configuration de "resolv.conf" --> le ping devient possible dans les 2 sens, des machines clientes vers le serveur mais aussi maintenant du serveur vers les machines.

Le role de "resolv.conf" ne semble pas seuleument etre de permettre les requetes DNS mais il semble avoir un effet localement mais lequel ?

J'espere que cela te parle plus comme explication :)

Merci d'avance
0
mamiemando Messages postés 33274 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 septembre 2024 7 783
19 nov. 2007 à 10:24
En fait pour moi le resolv.conf ne sert qu'à résoudre donc je pense que c'est une coïncidence (peut-être que tu as changé autre chose entre temps ?). Évidemment je peux me tromper...

Un exemple : suppose que ton serveur puisse être résolu de l'extérieur par exemple grâce à un dyndns. Supposons que ton PC client utilise un DNS public (donc qui pointera sur l'IP publique de ta passerelle) et que ta passerelle filtre les pings venant de l'extérieur. Du coup ton trafic sort par ta passerelle et rerentre immédiatement au lieu de rester dans ton réseau local. Les pings sont alors filtrés. Supposons maintenant que tu utilises un DNS privé ou /etc/hosts pour éviter ça. Si le trafic reste dans le réseau local le ping n'est pas sorti donc n'est pas filtré.

Bref il y a des explications possibles. Ce n'est peut être pas celle-là, peut-être as-tu changé autre chose sans t'en rendre compte (essaye de voir en changeant /etc/resolv.conf)

Bonne chance
0