Hello, I'm starting my work on linux NetworkManager. I've been following several bugreports during the recent months that all lead to problems with maintaining the list of recursive nameservers.
I've already spent quite some time analyzing RDNSS problems and I came to a conclusion that the problem actually lives in the RFC itself. Please look at section 5.1. in RFC 6106. It states: MaxRtrAdvInterval <= Lifetime <= 2*MaxRtrAdvInterval Considering MaxRtrAdvInterval the maximum time between RAs, setting Lifetime to MaxRtrAdvInterval IMO constitutes a race condition. Moreover, any Lifetime in this interval can timeout with just one or two lost RAs. This makes RA-based IPv6-only networks drop RDNSS regularly. In many implementations IPv6 and IPv4 are bound together so that if one of them fails, the whole link is restarted. This is also the case in NetworkManager. In the current situation, it's not advisable to use RFC 6106 in production because it can cause problems even to IPv4 applications. In the real world, radvd uses Lifetime=MaxRtrAdvInterval by default and NetworkManager internally adds 10s to the lifetime, that only helps to avoid the race condition but not lost packets that are common on wireless networks. I appreciate any help to get this right both in the standards and in the software. Cheers, Pavel Šimerda -------------------------------------------------------------------- IETF IPv6 working group mailing list ipv6@ietf.org Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6 --------------------------------------------------------------------