Hi Markus, Thanks for the reply. The problem is not only in nslookup, it is there in ping, tracert, curl, node.js, wget etc. :( I will debug and find the exact c api that is used for each of the scenarios. I am just wondering if there is any workaround ? Lot of folks are facing this issue (slow dns name resolution in alpine linux, with some dns servers) , and this may be the root cause? Kind Regards, Rsr On Wed, 4 Oct 2017 at 10:16 PM, Markus Wichmann wrote: > On Wed, Oct 04, 2017 at 07:18:10PM +0530, Srinivasa Raghavan wrote: > > Hi Rich, > > > > Thanks for the reply. > > > > Some updates: > > 1. Our DNS server is "Infoblox appliance". > > 2. When we had a delay, we found that there was a "AAAA" query along with > > "A" query. > > > > I did further debugging with "tcpdump" and able to narrow down on the > > difference in behavior between "debian" and "alpine" images. > > > > In debian: > > If ipv6 is disabled (net.ipv6.conf.default.disable_ipv6 = 1) > > Then the "nslookup" (or name resolution) does *not* do a "AAAA" query > > > > That's probably because glibc's DNS resolver only generates AAAA queries > if it can create an IPv6 socket. > > > In alpine: > > If ipv6 is disabled (net.ipv6.conf.default.disable_ipv6 = 1) > > Then the "nslookup" (or name resolution) does an "AAAA" query along with > > "A" query > > > > Is this intentional? > > > > Also, I was wondering if there was any way to disable AAAA query in name > > resolution? > > > > There does not appear to be a way without changing code. In musl, the > function name_from_dns() will always generate both the AAAA and the A > query unless "family" is explicitly set to one of the address families. > No input from resolv.conf or similar is used for this. And "family" > comes directly from the caller, i.e. nslookup. You'd have to change the > nslookup code to only ask for IPv4 addresses. > > > Kind Regards, > > Srinivasa Raghavan. > > Ciao, > Markus >