Hello list!

I'm running into an issue with a DHCPv6-only dnsmasq setup, on versions 2.76 and 2.79 from Debian. I'm trying to set a DHCPv6 range and use the wide-dhcpv6-client to get my clients IPv6 addresses. Note that all IPv6 addresses use a fake prefix for anonymity.

I run dnsmasq with the following command (embedded in another daemon normally, but run manually here for testing):

sudo /usr/sbin/dnsmasq \
  --bogus-priv \
  --no-hosts \
  --dhcp-authoritative \
  --filterwin2k \
  --expand-hosts \
  --domain=test \
  --local=/test/ \
  --log-facility=- \
  --log-dhcp \
  --keep-in-foreground \
  --bind-interfaces \
  --interface=br1002 \
  --except-interface=lo \
  --listen-address=2001:ffff:1111::1 \
  --dhcp-range=::2,::ffff,constructor:br1002,24h

That `listen-address` is definitely bound to the server side:

6: br1002: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8800 qdisc noqueue state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet6 2001:ffff:1111::1/64 scope global
       valid_lft forever preferred_lft forever

What's happening is my DHCPv6 requests come in fine, but the server reports "no available addresses" even though I have what appears to be a valid range of available addresses:

dnsmasq-dhcp[746253]: 12629722 available DHCP range: 2001:ffff:1111::2 -- 2001:ffff:1111::ffff
dnsmasq-dhcp[746253]: 12629722 client MAC address: 52:54:00:5c:f1:32
dnsmasq-dhcp[746253]: 12629722 DHCPSOLICIT(br1002) 00:01:00:01:23:7e:62:3a:52:54:00:5c:f1:31 dnsmasq-dhcp[746253]: 12629722 DHCPADVERTISE(br1002) 00:01:00:01:23:7e:62:3a:52:54:00:5c:f1:31 no addresses available
dnsmasq-dhcp[746253]: 12629722 tags: dhcpv6, br1002
dnsmasq-dhcp[746253]: 12629722 sent size: 14 option: 1 client-id 00:01:00:01:23:7e:62:3a:52:54:00:5c:f1:31 dnsmasq-dhcp[746253]: 12629722 sent size: 14 option: 2 server-id 00:01:00:01:23:83:8e:6b:52:54:00:14:c5:11 dnsmasq-dhcp[746253]: 12629722 sent size: 24 option: 13 status 2 no addresses available dnsmasq-dhcp[746253]: 626033 available DHCP range: 2001:ffff:1111::2 -- 2001:ffff:1111::ffff
dnsmasq-dhcp[746253]: 626033 client MAC address: 52:54:00:5c:f1:32
dnsmasq-dhcp[746253]: 626033 DHCPREQUEST(br1002) 00:01:00:01:23:7e:62:3a:52:54:00:5c:f1:31 dnsmasq-dhcp[746253]: 626033 DHCPREPLY(br1002) 00:01:00:01:23:7e:62:3a:52:54:00:5c:f1:31 no addresses available
dnsmasq-dhcp[746253]: 626033 tags: dhcpv6, br1002
dnsmasq-dhcp[746253]: 626033 sent size: 14 option: 1 client-id 00:01:00:01:23:7e:62:3a:52:54:00:5c:f1:31 dnsmasq-dhcp[746253]: 626033 sent size: 14 option: 2 server-id 00:01:00:01:23:83:8e:6b:52:54:00:14:c5:11 dnsmasq-dhcp[746253]: 626033 sent size: 24 option: 13 status 2 no addresses available dnsmasq-dhcp[746253]: 626033 sent size: 16 option: 23 dns-server 2001:ffff:1111::1

From my understanding of the man page and the older thread "Using IPv6 DHCP" (http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2012q3/006306.html), this should be all I need to get a stateful DHCPv6 configuration. I've also tried every combination of options I can come up with in the `dhcp-range` config without success. Even if I set `static` mode and use a `dhcp-host` option for my test host, I get the exact same "no addresses available" message.

SLAAC works fine when I add `enable-ra`, and `ra-stateless` to `dhcp-range`, but this configuration to hand out only IPv6 addresses statefully never seems to work as described in that thread. The goal is to have a fully stateful DHCPv6 server that IPv6-only clients can get addresses from and, most importantly, update dnsmasq with their hostname (hence why I'm not using SLAAC or `ra-stateless`). The very specific binding config is due to me running a separate dnsmasq instance for each of an arbitrary number of interfaces.

Can anyone offer any advice on what I might be doing wrong here?

Thanks,
Joshua M. Boniface

_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss

Reply via email to