From owner-freebsd-net@freebsd.org Thu Oct 18 16:39:30 2018 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 771B3EFA8FC for ; Thu, 18 Oct 2018 16:39:30 +0000 (UTC) (envelope-from vas@mpeks.tomsk.su) Received: from admin.sibptus.ru (admin.sibptus.ru [IPv6:2001:19f0:5001:21dc::10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1C0887294D; Thu, 18 Oct 2018 16:39:30 +0000 (UTC) (envelope-from vas@mpeks.tomsk.su) Received: from vas by admin.sibptus.ru with local (Exim 4.91 (FreeBSD)) (envelope-from ) id 1gDBKY-000NLx-U2; Thu, 18 Oct 2018 23:39:26 +0700 Date: Thu, 18 Oct 2018 23:39:26 +0700 From: Victor Sudakov To: =?utf-8?B?56We5piO6YGU5ZOJ?= Cc: FreeBSD Net , asomers@freebsd.org Subject: Re: why rtsold ? Message-ID: <20181018163926.GA89723@admin.sibptus.ru> References: <20180930022007.GA2041@admin.sibptus.ru> <20181018015314.GA81422@admin.sibptus.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-PGP-Key: http://www.dreamwidth.org/pubkey?user=victor_sudakov X-PGP-Fingerprint: 10E3 1171 1273 E007 C2E9 3532 0DA4 F259 9B5E C634 User-Agent: Mutt/1.10.1 (2018-07-13) Sender: Victor Sudakov X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Oct 2018 16:39:30 -0000 神明達哉 wrote: > > > > Who actually processes these router advertisements: the rtsold daemon > > or the kernel itself? > > > > Is this passage: > > > > 8.1.1.4. Plug and Play > > > > Most of the IPv6 stateless address autoconfiguration is implemented in > > the kernel. Neighbor Discovery functions are implemented in the kernel > > as a whole. Router Advertisement (RA) input for hosts is implemented > > in the kernel. Router Solicitation (RS) output for endhosts, RS input > > for routers, and RA output for routers are implemented in the > > userland. > > > > still correct? > > (from https://www.freebsd.org/doc/en/books/developers-handbook/ipv6.html) > > It's slightly outdated. "RA input for hosts" was originally limited > to what's described in RFC4862, but it's been extended over time. The > RFC4862-side (aka SLAAC) is still implemented in the kernel, but DNS > configuration options (RFC8106, although the FreeBSD implementation > may still only conform to RFC6106) are used in the user space. The > current trend seems to introduce more such high level config > information to RA, so I'd expect these will also be handled in the > user space. > > BTW, regarding the original topic of 'why rtsold', my understanding is > that its original motivation is to help hosts moving links. At least > at the time of development, there was no sophisticated detection > mechanism when a host is connected to a new link, so no one else could > send RS to get new network configuration information. rtsold monitors > link status and invokes new RS-RA exchanges when it detects a change > of the link status from off to on. Address lifetime expiration is not > usually an issue since routers are supposed to send RAs periodically > (with sufficiently short intervals to prevent accidental expiration); > and in any case (AFAIK) rtsold doesn't help that situation, as it > doesn't send RSes based on address lifetimes. > > Today, we now use DNS config information provided via RA in the user > space, so another role of rtsold is to reflect any changes to it while > the host is still connected to the same link. Routers are supposed > to advertise RAs with new information, but without rtsold (or > something equivalent) no one in the user space listens to those RAs to > apply the configuration change. Thank you for the explanation. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/