draft-ietf-6man-slaac-renum: Text for the heuristics (Section 4.5)
Fernando Gont <fgont@si6networks.com> Fri, 12 August 2022 18:06 UTC
Return-Path: <fgont@si6networks.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B4004C14CF04 for <ipv6@ietfa.amsl.com>; Fri, 12 Aug 2022 11:06:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.908
X-Spam-Level:
X-Spam-Status: No, score=-1.908 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wQBT_hKj_-lA for <ipv6@ietfa.amsl.com>; Fri, 12 Aug 2022 11:05:59 -0700 (PDT)
Received: from fgont.go6lab.si (fgont.go6lab.si [IPv6:2001:67c:27e4::14]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D7845C14CEFC for <6man@ietf.org>; Fri, 12 Aug 2022 11:05:27 -0700 (PDT)
Received: from [IPV6:2001:67c:27e4:c::1000] (unknown [IPv6:2001:67c:27e4:c::1000]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by fgont.go6lab.si (Postfix) with ESMTPSA id 7F8B628012E; Fri, 12 Aug 2022 18:05:20 +0000 (UTC)
Message-ID: <020f2bf2-a381-ed7c-203b-3bfeb02921e2@si6networks.com>
Date: Fri, 12 Aug 2022 15:05:18 -0300
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1
Content-Language: en-US
To: 6man@ietf.org
From: Fernando Gont <fgont@si6networks.com>
Subject: draft-ietf-6man-slaac-renum: Text for the heuristics (Section 4.5)
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/KD_Vpqg0NmkVXOQntVTOMlWHWwA>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Aug 2022 18:06:04 -0000
Folks,
As discussed during my presentation at the last 6man wg meeting, this is
the text for the heuristics to deprecate stale information:
Your input/reviews will be highly appreciated!
---- cut here ----
4.5. Recovery from Stale Configuration Information without Explicit
Signaling
This section specifies an algorithm, "Lifetime Avoidance Algorithm"
(LTA), that allows hosts to infer when previously-advertised
information (such as autoconfiguration prefixes) has become stale,
such that the stale configuration information can be deprecated in a
timelier manner. Most of the value of this algorithm is in being
able to mitigate the problem discussed in [RFC8978] at hosts
themselves, without relying on updates of the behavior of local
routers.
The algorithm consists of two conceptual building-blocks:
* Detection of possible configuration change
* Validation/Refresh of configuration information
Possible configuration changes can be inferred when a SLAAC router
(as identified by its link-local address) ceases to advertise a
previously-advertised information. In such scenarios, nodes should
poll the local router via unicasted Router Solicitations (RS) to
verify that the router in question has indeed ceased to advertise the
aforementioned information. And, in such cases the associated
configuration information may be discarded.
Please note that in the context of multi-prefix/multi-router networks
[RFC8028] [RFC8504], SLAAC configuration information should be
associated with each advertising router. Thus, when a router ceases
to advertise some configuration information:
* If this was the only router advertising the aforementioned
information, the associated information should be discarded.
* If other routers were advertising the aforementioned information,
this information should simply be dis-associated with the router
that ceased to advertise it, and the fate of this information (and
configured resources) should depend solely on the routers that
continue advertising it.
Implementation of this kind of heuristic allows a timelier reaction
to network configuration changes even in scenarios where there is no
explicit signaling from the network, thus improving robustness.
As discussed in Section 4.4, [RFC4861] does not require routers to
convey all RA options in the same message. Therefore, the algorithm
specified in this section is designed such that it can cope with this
corner case that, while not found in the deployed Internet, could
still theoretically exist.
4.5.1. Target Neighbor Discovery Options
The LTA algorithm SHOULD be applied to the following Neighbor
Discovery options:
* Prefix Information Option [RFC4861]
* Route Information Option (RIO) [RFC4191]
* DNS Search Options (RDNSSO) [RFC8106]
* DNS Search List Options (DNSSLO) [RFC8106]
4.5.2. Configuration Variables and Local State Information
In the context of multi-prefix/multi-router networks [RFC8028]
[RFC8504], each option from Section 4.5.1 is associated with each
advertising SLAAC router.
NOTE:
Throughout this specification, each router is identified by its
link-local address.
Additionally, hosts will augment state information for each option
with a timestamp (OPT_LAST variable bellow) that records the time at
which the option was last advertised by a particular router.
NOTE:
While not strictly required, we note that existing implementations
may already record the last time an option was advertised by a
given router as a possible implementation approach to be able to
compute the remaining lifetime of the option.
The algorithm employs the following variables:
LTA_MODE:
A boolean variable associated with each SLAAC advertising router
that specifies whether the local host is currently performing the
LTA algorithm for that router. It is initialized to FALSE.
LTA_LAST:
A variable associated with each SLAAC advertising router that
stores the time (in seconds) when the local host last entered the
LTA algorithm for this router. It is initialized to 0.
RS_LAST:
A variable associated with each SLAAC advertising router that
stores the time (in seconds) when the local host last sent a
unicasted Router Solicitation to the router in question. It is
initialized to 0.
RS_COUNT:
A variable associated with each SLAAC advertising router that
stores the number of unicasted Router Solicitations that have been
set to the associated router since the last time the LTA algorithm
was executed. It is initialized to 0.
RS_COUNT_MAX:
A configuration variable specifying the maximum number of
unicasted Router Solicitations that a host will send to a SLAAC
advertising router as part of the LTA algorithm. It defaults to
1.
RS_RNDTIME:
A host-wide variable specifying a random amount of time the host
should wait before sending the first unicasted Router Solicitation
message to a SLAAC router as part of the LTA algorithm. It should
be initialized to a value in the range from 0 to 10 seconds when
the system is bootstrapped.
RS_TIMEOUT:
A host-wide variable specifying the amount of time to wait for a
response to a unicasted Router Solicitation sent as part of the
LTA algorithm.
OPT_LAST:
A timestamp associated with each option (from Section 4.5.1)
received from each SLAAC advertising router. It is set to the
current system time.
RA_WIN:
A host-wide configuration variable specifying a time window over
which a SLAAC advertising router may convey all SLAAC
configuration information. It is meant to cope with the
theoretical case where a router may spread SLAAC information over
several RA messages. It defaults to 3 seconds.
LTA_CYCLE:
This variable accounts for the maximum time that may elapse for
the entire LTA algorithm. It is used as a shortcut throughout the
algorithm. Its value is computed as:
LTA_CYCLE=RA_WIN+RS_RNDTIME+RS_COUNT_MAX*RS_TIMEOUT.
4.5.3. Algorithm Specification
Initialization when a new SLAAC advertising router is learned:
LTA_MODE=FALSE
LTA_LAST=0
RS_LAST=0
RS_COUNT=0
LTA_CYCLE=RA_WIN+RS_RNDTIME+RS_COUNT_MAX*RS_TIMEOUT
Upon receipt of a Router Advertisement message, and after normal
processing of the message, perform the following actions:
TIME= time()
For each option advertised by this router in the received RA:
OPT_LAST= time()
IF LTA_MODE==FALSE && TIME > (LTA_LAST+LTA_CYCLE)
IF the RA is missing any previously-received information:
LTA_MODE=TRUE
LTA_LAST=TIME
Time-driven events:
IF LTA_MODE==TRUE:
TIME=time()
IF TIME > (LTA_LAST + RA_WIN + RS_RNDTIME) && TIME >
(RS_LAST + RS_TIMEOUT) && RS_COUNT < RS_COUNT_MAX:
SendRS()
RS_LAST=TIME
RS_COUNT++
IF TIME > (LTA_LAST + LTA_CYCLE)
Disaasociate any options for which OPT_LAST < LTA_LAST
LTA_MODE= FALSE
RS_COUNT=0
NOTES:
* time() is a monotonically-increasing counter that is incremented
once per second, and is employed to measure time.
* SendRS() is a function sends a unicasted Router Solicitation
message to the target router (subject to sending rules in
[RFC4861]).
---- cut here ----
Thanks,
--
Fernando Gont
SI6 Networks
e-mail: fgont@si6networks.com
PGP Fingerprint: F242 FF0E A804 AF81 EB10 2F07 7CA1 321D 663B B494
- draft-ietf-6man-slaac-renum: Text for the heurist… Fernando Gont
- RE: draft-ietf-6man-slaac-renum: Text for the heu… Vasilenko Eduard
- Re: draft-ietf-6man-slaac-renum: Text for the heu… Ted Lemon
- Re: draft-ietf-6man-slaac-renum: Text for the heu… Fernando Gont
- Re: draft-ietf-6man-slaac-renum: Text for the heu… Fernando Gont
- RE: draft-ietf-6man-slaac-renum: Text for the heu… Vasilenko Eduard
- RE: draft-ietf-6man-slaac-renum: Text for the heu… Vasilenko Eduard