Le fichier hosts et la résolution DNS sont deux choses distinctes.
La résolution DNS, comme son nom l'indique sert à chercher des informations sur les serveurs de nom renseignés dans /etc/resolv.conf.
Le fichier hosts est l'un des fichiers de configuration de la base de données système hosts qui fait partie du sous système nss (au même titre que les bases de données passwd, group, services ...)
D'ailleurs en supposant que tu es mis toto.com dans ton fichier /etc/hosts tu peux observer que tu n'as pas le même résultat en faisant getent hosts toto.com et dig +short toto.com.
La base de données hosts est souvent configuré de façon à ce que si une entrée n'est pas dans le fichier hosts, elle soit retrouvée par le resolver de la libc (res_query). Mais cela n'a rien d'obligatoire.
Bref la base de données hosts n'est pas la résolution DNS et inversement.
Il n'est pas rare que pour des raisons de performances des softs utilisent un resolver différent que celui de la libc. Notamment pour ce qui concerne les mails, très gourmands en requêtes dns. Dans certains cas, les appels à nss ne sont pas satisfaisants. Les programmes ont tout à fait le droit d'effectuer des requêtes plus complexes (MX, SPF, DKIM ...). Ils peuvent également gérer leur propre cache et dans ce cas, ils ont besoin d'avoir toutes les infos.
Par exemple, imagine que ton serveur de mail fasse juste un appel à nss pour résoudre son smarthost.
Il doit faire un appel à chaque mail car il ne connaît pas la durée de validité de l'enregistrement.
S'il ne le fait pas il est plus rapide mais il se prive d'un éventuel round robin DNS.
Alors que si il fait une requête DNS, il a la totalité du résultat avec toutes les ips possibles et l'information du TTL qui lui permet de gérer sa mise en cache des informations.
...
Ceci mis à part :
1 - la resolution dns dans postfix se configure finement :
smtp_host_lookup=native devrait t'aider par exemple
2 - le fichier hosts ne sert pas à tricher mais à donner les IP d’hôtes qui n'ont pas de résolution DNS (nommer les liens locaux par exemple).
3 - Si tu veux tricher, la bonne méthode est q'utiliser un resolver qui sait le faire tel que unbound.
# Le fichier hosts
Posté par Joris Dedieu (site web personnel) . En réponse au message Fichier /etc/hosts non pris en compte par les logiciels. Évalué à 5. Dernière modification le 26 septembre 2014 à 14:49.
Le fichier hosts et la résolution DNS sont deux choses distinctes.
La résolution DNS, comme son nom l'indique sert à chercher des informations sur les serveurs de nom renseignés dans /etc/resolv.conf.
Le fichier hosts est l'un des fichiers de configuration de la base de données système hosts qui fait partie du sous système nss (au même titre que les bases de données passwd, group, services ...)
D'ailleurs en supposant que tu es mis toto.com dans ton fichier /etc/hosts tu peux observer que tu n'as pas le même résultat en faisant
getent hosts toto.cometdig +short toto.com.La base de données hosts est souvent configuré de façon à ce que si une entrée n'est pas dans le fichier hosts, elle soit retrouvée par le resolver de la libc (res_query). Mais cela n'a rien d'obligatoire.
Bref la base de données hosts n'est pas la résolution DNS et inversement.
Il n'est pas rare que pour des raisons de performances des softs utilisent un resolver différent que celui de la libc. Notamment pour ce qui concerne les mails, très gourmands en requêtes dns. Dans certains cas, les appels à nss ne sont pas satisfaisants. Les programmes ont tout à fait le droit d'effectuer des requêtes plus complexes (MX, SPF, DKIM ...). Ils peuvent également gérer leur propre cache et dans ce cas, ils ont besoin d'avoir toutes les infos.
Par exemple, imagine que ton serveur de mail fasse juste un appel à nss pour résoudre son smarthost.
Alors que si il fait une requête DNS, il a la totalité du résultat avec toutes les ips possibles et l'information du TTL qui lui permet de gérer sa mise en cache des informations.
...
Ceci mis à part :
1 - la resolution dns dans postfix se configure finement :
smtp_host_lookup=native devrait t'aider par exemple
2 - le fichier hosts ne sert pas à tricher mais à donner les IP d’hôtes qui n'ont pas de résolution DNS (nommer les liens locaux par exemple).
3 - Si tu veux tricher, la bonne méthode est q'utiliser un resolver qui sait le faire tel que unbound.