From a docker container when I try to curl 'another container name', curl first tries to resolve the name to IPv6. This causes few seconds delay because the web server is not reachable over ipv6.

I removed the link local address on the container interface and also disabled ipv6 on the container's lo and eth0 interface. curl still tries to resolve the name to IPv6 first (unless its forced via curl -4).

This seems wrong. Why does curl try to resolve the name to ipv6 even if ipv6 is disabled ?

  • 5
    Make the web server reachable over IPv6. Not using IPv6 is a less viable option every day. Feb 24 '16 at 23:12
  • 2
    Why is a name resolution failure causing a few second delay? Why is your DNS resolution so slow. Do you not have a caching DNS resolver or something? I would be more tempted to work on the slow DNS resolution problem.
    – Zoredache
    Feb 25 '16 at 0:25
  • 1
    @Zoredache Either the device is getting an AAAA record response and timing out on connecting to it, or the upstream DNS server is timing out on IPv6 to the DNS servers. The latter could be due to local misconfiguration of the DNS server (OS thinks it has routable IPv6 but doesn't), or remote misconfiguration of the authoritative DNS server, which happens more often than people think with IPv6. In all circumstances there is not enough information here to troubleshoot the problem.
    – Andrew B
    Feb 25 '16 at 7:35
  • You need to include the output of curl running with -v.
    – kasperd
    Feb 25 '16 at 21:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.