Skip to content

Reverse hostname lookup fails in user-defined networks with embedded DNS server #20847

@dimaspivak

Description

@dimaspivak

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions