Estou usando o docker 1.7.1 no Ubuntu 14.04 LTS com o kernel 3.13.0-55. O Docker é iniciado usando as opções
DOCKER_OPTS="--bip=172.17.42.1/24 --dns=172.17.42.1 --dns=8.8.8.8"
para garantir um intervalo de ip fixo para contêineres. Eu quero usar um contêiner como servidor DNS para todos os outros contêineres (consulte a opção de configuração dns acima). Portanto, iniciei meu contêiner de DNS com uma ligação de porta para 172.17.42.1:53/udp:
$ docker inspect --format='{{.HostConfig.PortBindings}}' mydns
map[53/udp:[{172.17.42.1 53}]]
Eu posso consultar o servidor DNS do meu host usando o ip 172.17.42.1 , mas não consigo de dentro de qualquer um dos contêineres:
$ nslookup some-host 172.17.42.1
;; connection timed out; no servers could be reached
Eu tentei explicitamente permitir isso com o iptables como segue
iptables -A INPUT -s 172.17.42.1 -d 172.17.42.1 -p udp -m udp --dport 53 -j ACCEPT
mas ainda não funciona.
Tem alguma ideia do problema?
[Editar] Este é o resultado de uma consulta DNS emitida a partir de um contêiner capturado pelo tcpdump e visualizada pelo Wireshark:
Tags docker linux linux-networking