[Dnsmasq-discuss] dhcp-pd, and autoassigned internal interfaces issues

Simon Kelley simon at thekelleys.org.uk
Tue Jan 21 22:13:23 GMT 2014


On 21/01/14 16:19, Dave Taht wrote:
> I have finally got my first-ever comcast ipv6 set of users up, and we
> have a problem
> with the interrelationship between addresses assigned dynamically by
> dhcpv6-pd and other means in dnsmasq 2.68.
>
> What happens now is that dhcpv6-pd works but dnsmasq 2.68 filters out the
> interface
>
> 13: sw00: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
>      inet6 2601:X:Y:9a1::1/64 scope global dynamic
>         valid_lft 182420sec preferred_lft 182420sec
>
> so sends no ras.
>
> adding a second "stable" interface dnsmasq picks up.
>
>
>      inet6 2601:3:8180:9a1::2/64 scope global
>         valid_lft forever preferred_lft forever
>
>
> this check was not in dnsmasq 2.66, and was put in later for fairly
> sound reasons
> (like you don't want to start serving RAs on a SLAAC assigned
> address), but in the
> dhcp-pd case or otherwise assigned by the router (6in4) case, we do.
>
> Anyway the below patch "fixes it" but I'd like there to be some clear indicator
> of where things came from somehow.

Comparing the code in bpf.c (for *BSD) and netlink.c (for Linux) I think 
it's clear what's meant: exclusion of privacy addresses and addresses 
installed as a result of RAs received.  The patch covers the first of 
those, but there doesn't seem to be a Linux equivalent of the BSD 
IN6_IFF_AUTOCONF flag to detect RA-originated addresses. I looked at the 
kernel source, and there's no candidate I can see.

I suspect that this patch is the best that can be done.


Cheers,

Simon.

>
>>From 4f55df81d69d20230e18c90d772904372b2b90a4 Mon Sep 17 00:00:00 2001
>> From: Jonas Gorski <XXXXX at openwrt.org>
>> Date: Wed, 8 Jan 2014 11:55:08 +0100
>> Subject: [PATCH] allow dhcp range construction with non-permanent addresses
>
> The linux kernel treats all addresses with a limited lifetime as being
> non permanent, but when taking over the prefix livetimes from upstream
> assigned prefixes through DHCP, addresses will always have a limited
> lifetime.
>
> Still reject temporary addresses, as they indicate autoconfigured
> interfaces.
>
> Contributed by T-Labs, Deutsche Telekom Innovation Laboratories
>
> Signed-off-by: Jonas Gorski <jogo at openwrt.org>
> ---
>   src/netlink.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/netlink.c b/src/netlink.c
> index 3be94ee..d5de4ab 100644
> --- a/src/netlink.c
> +++ b/src/netlink.c
> @@ -265,7 +265,7 @@ int iface_enumerate(int family, void *parm, int
> (*callback)())
>       if (ifa->ifa_flags & IFA_F_DEPRECATED)
>         flags |= IFACE_DEPRECATED;
>
> -    if (ifa->ifa_flags & IFA_F_PERMANENT)
> +    if (!(ifa->ifa_flags & IFA_F_TEMPORARY))
>         flags |= IFACE_PERMANENT;
>
>       if (addrp && callback_ok)
>
>




More information about the Dnsmasq-discuss mailing list