our internal network uses domain with .local suffix
when i try to ping host with .local suffix an error “host not found” appear.
i use tcpdump to analyze this problem.
It was found out that resolving hosts with .local always use multicast DNS and dont make request to DNS server.
Disabling avahi and remove mdns from nsswitch.conf take no effect. OpenSuse continue trying send mDNS requests.
So … does anyone know how to fix this problem? I think this is a bug in glibc libraries, maybe in libnss_dns-2.8.so
temporary fixed problem adding mdns off to /etc/host.conf
hrustov schrieb:
> when i try to ping host with .local suffix an error “host not found”
> appear.
> It was found out that resolving hosts with .local always use multicast
> DNS and dont make request to DNS server.
> So … does anyone know how to fix this problem?
The canonical fix is not to use the reserved “.local” TLD.
> I think this is a bug
> in glibc libraries, maybe in libnss_dns-2.8.so
The jury’s still out on the bug vs. feature decision for this one.
HTH
T.
RFC don’t reserve “.local” for TLD.
RFC 2606 - Reserved Top Level DNS Names
So … the jury’s still out on the bug decision
Yea, the assumption that everyone uses multicasting for dns is quite stupid. As was posted, mdns off in /etc/host.conf will fix it. Multicasting is fine in some vlan’d corporate environments, but that’s it. I don’t know why they started doing this. This was in SLES10 as well. Sucked.
/etc/hosts.conf does not fix the problem.
I have a windows domain xxx.xxx.local
ping xxx.xxx.local gives no reply but dig and nslookup work fine.
Might sound silly but whats the search order in your resolv.conf file.
/etc/resolv.conf
search xxx.xxx.local
nameserver xxx.xxx.xxx.101
/etc/hosts.conf
mdns off
/etc/nsswitch
hosts: dns files
Basically. no matter what I try. I cannot turn off mdns either.
tcpdump show multi every time I try:
ping xxx.xxx.local
My mistake. I created a hosts.conf instead of adding to
host.conf
Thanks all.