Un peu coincé ici.
J'ai 2 machines qui ne peuvent pas résoudre les noms d'hôtes LAN, sauf s'il y a des entrées spécifiques dans / etc / hosts
Mais d'autres machines sur le LAN peuvent résoudre les noms d'hôte.
Mon LAN:
- 1 x routeur Cisco exécutant DD-WRT v24-sp2 avec DNSMasq activé. J'ai configuré ceci avec les noms d'hôtes et les IP sur mon LAN.
- 1 x Kubuntu 12.10 (résout tous les noms d'hôtes correctement tant qu'ils sont entrés dans DNSMasq sur le routeur)
2 x NAS (résolvez également tous les noms correctement)
1 x Ubuntu Server 12.04 (cela ne résout PAS les noms d'hôtes locaux sauf s'ils sont entrés dans / etc / hosts)
- 1 x XBMCLive (Dharma) (idem - ne résout pas sauf si les entrées sont dans / etc / hosts)
Comment puis-je obtenir les 2 derniers à utiliser les entrées DNSMasq sur le routeur? Chaque machine est configurée pour utiliser le routeur comme serveur de noms et toutes les unités résolvent correctement les adresses externes.
Merci.
quelques informations supplémentaires:
sur le serveur, si je cingle un autre PC (wstation)
$ ping wstation
PING wstation.local.domain (x.x.x.x)
Si j'ajoute ensuite .local
$ ping wstation.local
PING wstation.local.local.domain (x.x.x.x)
et directement
$ ping 10.0.0.4
PING 10.0.0.4 (10.0.0.4) 56(84) bytes of data.
64 bytes from 10.0.0.4: icmp_req=1 ttl=64 time=0.387 ms
64 bytes from 10.0.0.4: icmp_req=2 ttl=64 time=0.316 ms
64 bytes from 10.0.0.4: icmp_req=3 ttl=64 time=0.312 ms
64 bytes from 10.0.0.4: icmp_req=4 ttl=64 time=0.280 ms
64 bytes from 10.0.0.4: icmp_req=5 ttl=64 time=0.322 ms
^C
--- 10.0.0.4 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.280/0.323/0.387/0.038 ms
Réponses:
À propos de votre sortie actuelle
Indique clairement que votre PC s’ajoute
.local.domain
aux requêtes non-FQDN. C'est quelque chose de mal configuré ou du moins incorrect dans votre configuration. (sauf si vous utilisez le.local.domain
suffixe à dessein)Résolution de noms et périodes
Une chose importante que beaucoup de gens ne savent pas, c'est qu'un nom complet doit toujours se terminer par un point (
.
). Si vous l'omettez, la machine essaiera de le résoudre dans le domaine de recherche local (par exemple mydomain.tld). Donc, dans ce cas, une requête pourmypc.local
deviendraitmypc.local.mydomain.tld
. Pour éviter cela, interrogez avec le point.Configuration du résolveur
La configuration du résolveur est ici d'une grande importance. Dans Ubuntu (et Debian), cela est configuré dans le fichier
/etc/network/interfaces
(en supposant que vous n'exécutez pas NetworkManager):La résolution de noms sous Linux peut également être effectuée par d'autres moyens. Ce n'est pas seulement que le serveur DNS local est interrogé pour tout cela. Jetez un œil à votre
/etc/nsswitch.conf
fichier pour lahosts
configuration de la résolution:Cela signifie que les fichiers sont essayés en premier (c'est le
/etc/hosts
fichier), puis mDNS et seulement plus tard, le vrai serveur DNS est interrogé. mDNS est implémenté à l'aide d'Avahi sous Linux et s'appelle Bonjour sur les appareils Apple. Il utilise le.local
suffixe par défaut et fonctionne via des messages de diffusion. Tout comme ARP fonctionne, mais pour DNS.Tous ces systèmes peuvent être très déroutants et encore plus lorsqu'ils sont utilisés
.local
dans une configuration DNS régulière mélangée à des périphériques mDNS. Je suppose que c'est pourquoi vous ne savez plus pourquoi un appareil fonctionne et l'autre non: ils n'utilisent pas tous la même méthode de résolution.Pour trier les choses
.local
sauf si vous souhaitez vous fier complètement à mDNS. D'après votre question, je comprends que vous aimeriez garder les choses configurées vous-même dans un endroit central, donc mon approche ici est de l'éviter.my.home
. Pour dnsmasq, il s'agit d'un paramètre unique, mais dans les configurations normales, il doit être configuré à la fois sur le serveur DNS et sur le serveur DHCP (car il est annoncé via DHCP)./etc/resolv.conf
au cas où vous l'auriez manipulé dans le passé.Configurez les PC de votre réseau à utiliser
my.home
comme domaine de recherche local. Cela peut être fait via DHCP automatiquement, ou si vous utilisez des adresses statiques via le/etc/network/interfaces
fichier ou dans Network Manager:ping hostname
) ainsi que le nom complet (ping hostname.my.home
) devraient fonctionner.la source
files mdns4_minimal [NOTFOUND=return] dns mdns4
. Maintenant, tout se comporte plus comme je l'attend avec mes machines adressées host.foo.local (mal nommées). Avant, ce changementping hostname
fonctionnerait maisping hostname.foo.local
échouait. J'étais vraiment confus quanddig hostname
j'échouais etdig hostname.foo.local
retournais un résultat, l'opposé de ce que j'attendais. Maintenant je peux cingler des FQDN comme je m'y attendais. Y a-t-il un inconvénient à ce que la commande soit définie de cette façon?Sur la base de la réponse de gertvdijk, je viens de commenter la ligne dans nsswitch.conf
la source
J'ai eu des problèmes similaires avec un / etc / hosts contenant plusieurs espaces entre IP et nom d'hôte, à la place en utilisant un TAB. Après avoir changé en TAB, le nom d'hôte peut être résolu par ping.
voir aussi sur /superuser//a/938366/467479
la source