Hilmar Preuße hille42@web.de (Mo 20 Nov 2017 10:46:46 CET):
Moin,
ich habe hier ein nerviges Problem mit DNS-Resolving. Ich kann einen Host mittels dig/nslookup auflösen, aber dann nicht pingen/anbrowsen:
root@haka:~# nslookup confluence.amasol.local
Auf nslookup würde ich nicht viel geben, das hat zu viel Magie eingebaut.
root@haka:~# dig confluence.amasol.local
…
confluence.amasol.local. 3478 IN A 192.168.42.37
Ok, das war eine ordentlich DNS-Query incl. der Antwort. (Im konkreten Fall ist nslookup auch nicht falsch, aber man weiß ja nie…)
---> Ping/getent geht aber nicht
root@haka:~# ping confluence.amasol.local ping: confluence.amasol.local: Name or service not known root@haka:~# getent hosts confluence.amasol.local
`getent` macht nicht zwingend DNS. Ebenso wie `ping`, welches auch nur getent (bzw. die Library-Entsprechnungen (gethostbyname(3)…) dafür benutzt)¹
---> Ping/getent gegen Hostname geht aber. root@haka:~# ping confluence PING confluence.amasol.local (192.168.42.37) 56(84) bytes of data. ^C64 bytes from 192.168.42.37: icmp_seq=1 ttl=63 time=39.8 ms
# Generated by NetworkManager search amasol.local fritz.box
Liegt es daran, daß er .local nicht als TLD erkennt, dann immer die
Wer ist ER? Warum sollten TLDs hier eine Rolle spielen?
In Deiner nsswitch.conf steht vermutlich mdns mit drin. Multicast-DNS wird von .local getriggert.
$ getent ahosts confluence.amasol.local -> mdns springt an, kann aber aus irgendwelchen Gründen den Namen nicht auflösen. Jetzt müsste die Auflösung eigentlich durchfallen zum DNS und dann doch funktionieren. Wie sieht die hosts-Zeile in der nsswitch.conf bei Dir aus?
$ getent ahosts confluence -> hier springt das mdns in der nsswitch.conf nicht an, weil kein .local hinten dran hängt! -> dns (aus der nsswitch.conf) fühlt sich verantwortlich, liest noch die resolv.conf ein (denn das ist die Konfiguration für libnss_dns) und kann das mit der angehängten .amasol.local-Endung dann auflösen.
Du möchtest für Deine eigenen Domain eigentlich nie .local verwenden, weil das im Zusammenhang mit AVAHI/Zeroconf/MDNS verwendet wird. Alternativ weißst Du, was Du tust :)
¹) In Wirklichkeit sollten moderne Programme inzwischen nicht mehr gethostbyname() verwenden, sondern getaddressinfo(), das CLI pendant dazu wäre dann `getent ahosts …`
Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann