Sébastien Delafond
2016-07-15 10:28:33 UTC
Hello,
I have a server with a bridge containing only one interface (ideally
it'll of course include more interfaces, but I've tried to eliminate as
many factors as possible):
$ brctl show
bridge name bridge id STP enabled interfaces
br.eth0-2 8000.1cb72c761568 no eth0.2
$ ip ad show br.eth0-2
15: br.eth0-2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
\ noqueue state UP group default qlen 1000
link/ether 1c:b7:2c:76:15:68 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/16 brd 192.168.255.255 scope global br.eth0-2
valid_lft forever preferred_lft forever
The DHCP-relevant parts of dnsmasq.conf are:
interface=*
dhcp-authoritative
dhcp-lease-max=5000
dhcp-range=set:br.eth0-2,192.168.1.100,192.168.1.200,86400
dhcp-option=tag:br.eth0-2,3,192.168.1.1 # gateway
dhcp-option=tag:br.eth0-2,1,255.255.0.0 # netmask
dhcp-option=tag:br.eth0-2,6,192.168.1.1 # dns
My client, sitting on the other end of eth0.2, is issuing DHCP requests
that correctly make it up to the server (tcpdump sees them on both
eth0.2 and br.eth0-2). However, dnsmasq is acting like it doesn't
receive them at all: it stays silent, even when run with "-d
--log-dhcp". In strace, I don't see anything either after it's started.
The most interesting point is probably that ISC-dhcpd serves DHCP leases
just fine in the same exact setup: simply stopping dnsmasq and starting
ISC-dhcpd with a minimal "subnet 192.168.0.0 netmask 255.255.0.0 { range
192.168.1.100 192.168.1.200;}" configuration results in leases being
handed to the same client.
Also, if I remove the bridge, assign 192.168.1.1/16 to eth0.2, and
restart dnsmasq, then my client gets a DHCP lease.
Another thing I've done is to replay all the aforementioned tests with a
wlan0 interface instead of the eth0.2, with the same results: ISC dhcpd
works fine, dnsmasq doesn't serve DHCP over the bridge containing only
wlan0, but does if I kill the bridge and work with wlan0 alone.
Any clue what's going on ? This is a 4.4.3 kernel, and I've tried both
2.62 from Debian jessie, and 2.76 from stretch.
Cheers,
--Seb
I have a server with a bridge containing only one interface (ideally
it'll of course include more interfaces, but I've tried to eliminate as
many factors as possible):
$ brctl show
bridge name bridge id STP enabled interfaces
br.eth0-2 8000.1cb72c761568 no eth0.2
$ ip ad show br.eth0-2
15: br.eth0-2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
\ noqueue state UP group default qlen 1000
link/ether 1c:b7:2c:76:15:68 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/16 brd 192.168.255.255 scope global br.eth0-2
valid_lft forever preferred_lft forever
The DHCP-relevant parts of dnsmasq.conf are:
interface=*
dhcp-authoritative
dhcp-lease-max=5000
dhcp-range=set:br.eth0-2,192.168.1.100,192.168.1.200,86400
dhcp-option=tag:br.eth0-2,3,192.168.1.1 # gateway
dhcp-option=tag:br.eth0-2,1,255.255.0.0 # netmask
dhcp-option=tag:br.eth0-2,6,192.168.1.1 # dns
My client, sitting on the other end of eth0.2, is issuing DHCP requests
that correctly make it up to the server (tcpdump sees them on both
eth0.2 and br.eth0-2). However, dnsmasq is acting like it doesn't
receive them at all: it stays silent, even when run with "-d
--log-dhcp". In strace, I don't see anything either after it's started.
The most interesting point is probably that ISC-dhcpd serves DHCP leases
just fine in the same exact setup: simply stopping dnsmasq and starting
ISC-dhcpd with a minimal "subnet 192.168.0.0 netmask 255.255.0.0 { range
192.168.1.100 192.168.1.200;}" configuration results in leases being
handed to the same client.
Also, if I remove the bridge, assign 192.168.1.1/16 to eth0.2, and
restart dnsmasq, then my client gets a DHCP lease.
Another thing I've done is to replay all the aforementioned tests with a
wlan0 interface instead of the eth0.2, with the same results: ISC dhcpd
works fine, dnsmasq doesn't serve DHCP over the bridge containing only
wlan0, but does if I kill the bridge and work with wlan0 alone.
Any clue what's going on ? This is a 4.4.3 kernel, and I've tried both
2.62 from Debian jessie, and 2.76 from stretch.
Cheers,
--Seb