[Dnsmasq-discuss] DHCP from dnsmasq in docker container

Craig Younkins cyounkins at gmail.com
Thu Dec 13 14:10:59 GMT 2018


First, thank you for dnsmasq!

I'm among a number of people[1][2][3][4] having trouble using dnsmasq for
DHCP when it is running in a docker container. Everyone seems to get "no
address range available for DHCP request via eth0" in their log unless they
change to host networking mode.

The code path for that error message is at [5]. I'm having a little trouble
understanding the 'contexts', but I think the problem is that the container
is running in bridged networking mode, and thus the interface has an IP
address outside the netmask range.

Is there a way to make this work without using host networking? Maybe
adding the external IP to the container interface? Thank you for any
suggestions!

Relevant sample configuration:
addn-hosts=/etc/pihole/gravity.list
addn-hosts=/etc/pihole/black.list
addn-hosts=/etc/pihole/local.list
localise-queries
no-resolv
cache-size=10000
log-queries=extra
log-facility=/var/log/pihole.log
local-ttl=2
log-async
server=8.8.8.8
server=8.8.4.4
interface=eth0
dhcp-authoritative
dhcp-range=192.168.1.200,192.168.1.251,24h
dhcp-option=option:router,192.168.1.1
dhcp-leasefile=/etc/pihole/dhcp.leases
domain=local

root at 6082bda95199:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
10: eth0 at if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
state UP group default
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet *172.17.0.2/16 <http://172.17.0.2/16>* brd 172.17.255.255 scope
global eth0
       valid_lft forever preferred_lft forever

To reproduce, you can run something like what is in [6], then enabling the
DHCP server through the non-ssl web interface. `docker exec -it pihole
/bin/bash` to get into the container and `tail -f /var/log/pihole.log` for
the log.

[1] https://github.com/pi-hole/docker-pi-hole/issues/355
[2] https://discourse.pi-hole.net/t/dhcp-not-working-docker/12593
[3]
https://discourse.pi-hole.net/t/no-address-range-available-for-dhcp-request-via-eth0/14350
[4]
https://serverfault.com/questions/825497/running-dnsmasq-in-docker-container-on-debian-check-dhcp-ignores-dnsmasq
[5]
http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=blob;f=src/rfc2131.c;h=56dc3d103741baeb68a730f0ce15a10338a2f885;hb=91421cb7575df7bb211dacc30dc7c7c715c38299#l345
[6] https://github.com/pi-hole/docker-pi-hole/blob/master/docker_run.sh

Craig Younkins
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/attachments/20181213/dbb97af3/attachment.html>


More information about the Dnsmasq-discuss mailing list