moby: Reverse hostname lookup fails in user-defined networks with embedded DNS server

Output of docker version:

Client:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Mon Feb 22 21:37:01 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Mon Feb 22 21:37:01 2016
 OS/Arch:      linux/amd64

Output of docker info:

Containers: 10
 Running: 8
 Paused: 0
 Stopped: 2
Images: 40
Server Version: 1.10.2
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 60
 Dirperm1 Supported: false
Execution Driver: native-0.2
Logging Driver: json-file
Plugins: 
 Volume: local
 Network: null host bridge
Kernel Version: 3.13.0-24-generic
Operating System: Ubuntu 14.04 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 29.4 GiB
Name: myhostname.myemployer.com
ID: PO2A:QS2L:UA3R:FCYP:W452:DCSQ:OTGJ:EJSX:XYNI:RUTR:KAHK:NU35
WARNING: No swap limit support

Provide additional environment details (AWS, VirtualBox, physical, etc.): Have reproduced this on physical systems and AWS.

List the steps to reproduce the issue:

  1. Create a user-defined bridge network with docker network create .... For this example, I called mine “blahnetwork.”
  2. Start a Docker container in daemon mode, attaching it to the network, with /sbin/init. As an example:
docker run docker run -d --net=blahnetwork --net-alias=blah --hostname=blah centos:6.6 /sbin/init

This creates a container reachable within blahnetwork with the alias blah. 3. Use docker inspect to find out the IP address of this daemon container within blahnetwork. I got 192.168.124.6. 4. Test forward name resolution of containers in this network using the host utility:

docker run --net=blahnetwork centos:6.6 host blah
blah has address 192.168.124.6
Host blah not found: 3(NXDOMAIN)
Host blah not found: 3(NXDOMAIN)
  1. That worked. Now test reverse resolution:
docker run --net=blahnetwork centos:6.6 host 192.168.124.6
Host 6.124.168.192.in-addr.arpa. not found: 3(NXDOMAIN)

Describe the results you received: Using just the embedded Docker daemon’s DNS in 1.10, forward name resolution works great. Reverse name resolution fails, though.

Describe the results you expected: I’d expect reverse resolution to work. A simple workaround of specifying each container’s DNS server by passing the IP address of a separate daemon container running dnsmasq gives the expected behavior.

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 19 (8 by maintainers)

Most upvoted comments

Looks like the reverse DNS is appending the network name to the net alias (e.g. my-container on my-network reports as my-container.my-network instead of just my-container). 😦 That’s less than ideal.