tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Question about NetBSD implementation of IPv6 SLAAC and RFC4941



On 07/04/2020 22:22, Christos Zoulas wrote:


On Apr 7, 2020, at 5:15 PM, Roy Marples <roy%marples.name@localhost> wrote:

On 06/04/2020 21:25, Christos Zoulas wrote:
On Apr 5, 2020, at 9:35 PM, Roy Marples <roy%marples.name@localhost> wrote:

Ah, now we are getting interesting! So, some questions:

1) Are you soliciting a router or just waiting for an RA to magically appear?
   This is fairly important as recent RFC 7772 vastly reduces broadcasts to the
   network - it unicasts a lot more than it broadcasts - and makes each node
   wanting a router actually solicit one.
   If you're not using dhcpcd to solicit, what are you using?
I am not doing anything special. I just set ip6mode=autohost in rc.conf which does:
                 /sbin/sysctl -qw net.inet6.ip6.accept_rtadv=1
and I am all set.

The default maximum time from one RA to the next without solicition is 600 seconds, the upport limit is 1800 seconds.

Now, if your IPv6 routers don't support RFC 7772 and there are many IPv6 nodes soliciting a RA (you'll get a RA every 3 seconds or so) or are configured with a low MaxRtrAdvInterval then that explains why it "works" for you.

Given an IPv6 router which supports RFC 7772, I wouldn't want to wait 10 minutes (default, max 30 minutes) after userland has booted before network connectivity comes up (assuming IPv6 is required for connectivity). And frankly if anyone submitted a bug report for this I would just tell them to solicit a RA because that's how IPv6 is designed.

Is this something we want to support?

I am not sure. Do you mean running dhcpcd with the right flags to behave like rtsold?

Yes

dhcpcd -T6 --nodhcp6 $interface

gets you the same behaviour as rtsol, keeping RA in the kernel.

dhcpcd -6 --nodhcp6 $interface

gets you the same, just puts the RA handling in dhcpcd, although you should probably drop the nodhcp6 option so the dhcpcd can respect the M or O flags if set in the RA.

We're at the point where something in userland needs to solicit an RA to guarantee connectivity ASAP - unless everything is static of course (but then we don't care about RA's here). I would rather have something that solicits the RA actually process the RA. Which makes sense because the RDNSS and DNSSL options within a RA need to be written to resolv.conf(5).

Fixing the kernel to support RFC 7772?

Our rtadvd(8) has supported RFC 7772 since NetBSD-9.
It's not a kernel thing, it's how a router sends RA's.

Roy


Home | Main Index | Thread Index | Old Index