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
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
A voir également:
- Question bête sur resolv.conf ..
- Pense bete - Guide
- Petite bete blanche ordinateur ✓ - Forum Matériel & Système
- Pense bête windows - Guide
- Pense bete telecharger - Télécharger - Organisation
- Bête d'orage écran - Forum MacOS
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
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 :
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 :
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
Ensuite pour joindre une destination, linux regarde sa table de routage, visible avec la commande route :
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 :
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)
Et effectivement :
En espérant t'avoir éclairé, bon courage !
(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 !
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
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
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
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
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
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