Discussion:
[Dnsmasq-discuss] IPv6 Router Advertisements not working
Matthew Keeler
2018-01-15 18:03:27 UTC
Permalink
I setup a new vm running version 2.78 of dnsmasq.

I have this in my config:

enable-ra
dhcp-range=fd01::,ra-stateless,ra-names,64,24h

According to running dnsmasq in the foreground with -d

dnsmasq-dhcp: DHCPv6 stateless on fd01::
dnsmasq-dhcp: DHCPv4-derived IPv6 names on fd01::
dnsmasq-dhcp: router advertisement on fd01::
dnsmasq-dhcp: IPv6 router advertisement enabled

However I never see logs about sending router advertisements or receiving
router solicitations. I also confirmed they aren’t going out with
Wireshark. Are there any reasons why this wouldn’t work or does anyone know
what else I should look into to figure it out.
--
Matthew Keeler
Simon Kelley
2018-01-20 23:19:02 UTC
Permalink
Do you have an interface configured with an address in fd01::/64 ?


Cheers,

Simon.
Post by Matthew Keeler
I setup a new vm running version 2.78 of dnsmasq.
enable-ra
dhcp-range=fd01::,ra-stateless,ra-names,64,24h
According to running dnsmasq in the foreground with -d
dnsmasq-dhcp: IPv6 router advertisement enabled
However I never see logs about sending router advertisements or
receiving router solicitations. I also confirmed they aren’t going out
with Wireshark. Are there any reasons why this wouldn’t work or does
anyone know what else I should look into to figure it out. 
-- 
Matthew Keeler
_______________________________________________
Dnsmasq-discuss mailing list
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss
Andy Hawkins
2018-01-22 10:27:47 UTC
Permalink
Hi,
Post by Simon Kelley
Do you have an interface configured with an address in fd01::/64 ?
Is this a requirement? radvd is able to send advertisements out on an
interface that has no IPv6 address configured (indeed, I have been using
this facility to automatically configure the interface that router
advertisements are being sent on).

Would be nice to be able to do the same with dnsmasq without having to
manually configure the IPv6 address of the interface.

Thanks

Andy
Erik Nordmark
2018-01-23 16:51:24 UTC
Permalink
Post by Andy Hawkins
Hi,
Post by Simon Kelley
Do you have an interface configured with an address in fd01::/64 ?
Is this a requirement? radvd is able to send advertisements out on an
interface that has no IPv6 address configured (indeed, I have been using
this facility to automatically configure the interface that router
advertisements are being sent on).
Would be nice to be able to do the same with dnsmasq without having to
manually configure the IPv6 address of the interface.
Andy,

I've run into this limitation as well, due to using the "no on-link
prefixes" option in neighbor discovery (meaning that I use dhcpv6 for
address assignment, and radvd doesn't advertise any onlink prefix).

This means I don't have a /64 prefix configured on any interface which
matches the range from which dnsmasq assigns IPv6 addresses.

My workaround is to remove the /64 check from dnsmasq (see below). I've
been meaning to discuss this on the list.

Erik


diff -r -u ../dnsmasq-orig/dnsmasq-2.75/src/option.c src/option.c
--- ../dnsmasq-orig/dnsmasq-2.75/src/option.c 2015-07-30
12:59:07.000000000 -0
700
+++ src/option.c 2017-06-13 15:14:58.109166818 -0700
@@ -2734,9 +2734,6 @@
ret_err(_("prefix length must be exactly 64 for subnet constru
ctors"));
}

- if (new->prefix < 64)
- ret_err(_("prefix length must be at least 64"));
-
if (!is_same_net6(&new->start6, &new->end6, new->prefix))
ret_err(_("inconsistent DHCPv6 range"));
Matthew Keeler
2018-01-23 17:24:37 UTC
Permalink
Yes, one of my interfaces is fd01::1/64.

I just got it working actually. In my case I have a test lab setup with a
couple networks. The first is a smaller /24 with no ipv6 that is generally
accessible in my company. The second is a /16 using the 198.18/15 address
space for testing with the fd01::/64 ipv6 addressing. Originally I had two
dnsmasq configurations to provide DNS/DHCP (1 per network). When I switched
over to a single configuration with all the dhcp-option, dhcp-range
configurations including the network interface they should be applicable
to, things just started working. I am not sure why it helped but either way
I would rather have a single configuration anyways.
--
Matthew Keeler
Post by Andy Hawkins
Hi,
Post by Simon Kelley
Do you have an interface configured with an address in fd01::/64 ?
Is this a requirement? radvd is able to send advertisements out on an
interface that has no IPv6 address configured (indeed, I have been using
this facility to automatically configure the interface that router
advertisements are being sent on).
Would be nice to be able to do the same with dnsmasq without having to
manually configure the IPv6 address of the interface.
Andy,

I've run into this limitation as well, due to using the "no on-link
prefixes" option in neighbor discovery (meaning that I use dhcpv6 for
address assignment, and radvd doesn't advertise any onlink prefix).

This means I don't have a /64 prefix configured on any interface which
matches the range from which dnsmasq assigns IPv6 addresses.

My workaround is to remove the /64 check from dnsmasq (see below). I've
been meaning to discuss this on the list.

Erik


diff -r -u ../dnsmasq-orig/dnsmasq-2.75/src/option.c src/option.c
--- ../dnsmasq-orig/dnsmasq-2.75/src/option.c 2015-07-30
12:59:07.000000000 -0
700
+++ src/option.c 2017-06-13 15:14:58.109166818 -0700
@@ -2734,9 +2734,6 @@
ret_err(_("prefix length must be exactly 64 for subnet constru
ctors"));
}

- if (new->prefix < 64)
- ret_err(_("prefix length must be at least 64"));
-
if (!is_same_net6(&new->start6, &new->end6, new->prefix))
ret_err(_("inconsistent DHCPv6 range"));
Loading...