[Dnsmasq-discuss] dnsmasq 2.61test7 & RA issues

Vladislav Grishenko themiron at mail.ru
Fri Mar 23 22:36:13 GMT 2012


Hi Simon,

 

Latets git (2.61test7) brings several RA issues,

My configuration (simplified):

HAVE_DHCP, HAVE_DHCPv6, HAVE_BROKEN_RTC

interface=br0

dhcp-range=192.168.1.101,192.168.1.254,86400

dhcp-range=2001:470:xxxx:xxxx::,ra-only,64,2h

dhcp-option=option6:23,[::]

 

I was trying to setup dual-stack environment with IPv6 SLAAC and DNS via
DHCPv6

Usually it's done by specifying Other bit in RA, while Managed is switched
off. This allows host to configure address from the prefix, but ask DNS,
Domain, etc via DHCPv6.

 

Unfortunately, this config is quite impossible now, refer issues list:

1.      M+O bits are set if dhcv6 enabled only, and no bits set, if
disabled. That means bits is always cleared with ra-only/ra-names, no matter
set dhcp6 options or not.

2.      Dhcp6 options without range will not create contexts, therefore
dnsmasq doesn't listen dhcp6 requests. So, without this pt.1 enhancement is
pointless.

3.      Periodic RA isn't working, because alarm code goes into (dhcp ||
dhcp6) path and don't trigger RA alarms

Only other netlink/dhcpv4 events could trigger it. Also, even if fixed event
logic leads to DHCP leases rewrite on every RA event by design.

4.      Router Solicitation messages doesn't trigger send RA, due 2 reasons:
icmp6fd isn't in read fdset , and icmp6fd socket isn't joined to ALL_ROUTERS
group.

All this because there's no dhcp6 context configured for ra-only/ra-names

 

About prefix lifetimes, you refer rfc2462 in the code which is obsoleted by
rfc4862.

2 hours rules is only about Valid Lifetime, but Preferred Lifetime might be
and usually is much smaller in dynamic v6 prefix environments.

The problem is dnsmasq doesn't use separate valid/preferred values, this
leads to default gateway lost issue due some "server" reconfiguration when
client still threat 2h prefix is valid and preferred.

 

Not related to subject, but have to say.

With HAVE_BROKEN_RTC lease file doesn't contain expire time, but length,
which is constant.

So, after restart/reload all leases get prolonged lease time, and possibly
never expired then.

Solution is quite simple - store not only lease length, but calculated
remaining time too. With this values it's possible to correct count all
previous timings.

 

Best Regards, Vladislav Grishenko

ICQ: 303357

MSN: themiron at mail.ru

Skype: the.miron

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/attachments/20120324/8a22375c/attachment.html>


More information about the Dnsmasq-discuss mailing list