Internet Engineering Task Force (IETF) P. Pfister Request for Comments: 7695 B. Paterson Category: Standards Track Cisco Systems ISSN: 2070-1721 J. Arkko Ericsson November 2015
Internet Engineering Task Force (IETF) P. Pfister Request for Comments: 7695 B. Paterson Category: Standards Track Cisco Systems ISSN: 2070-1721 J. Arkko Ericsson November 2015
Distributed Prefix Assignment Algorithm
分布式前缀分配算法
Abstract
摘要
This document specifies a distributed algorithm for dividing a set of prefixes in a manner that allows for automatic assignment of sub-prefixes that are unique and non-overlapping. Used in conjunction with a protocol that provides flooding of information among a set of participating nodes, prefix configuration within a network may be automated.
本文档指定了一种分布式算法,用于以允许自动分配唯一且不重叠的子前缀的方式划分一组前缀。与在一组参与节点之间提供信息洪泛的协议结合使用,网络内的前缀配置可以自动化。
Status of This Memo
关于下段备忘
This is an Internet Standards Track document.
这是一份互联网标准跟踪文件。
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.
本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。有关互联网标准的更多信息,请参见RFC 5741第2节。
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc7695.
有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc7695.
Copyright Notice
版权公告
Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved.
版权所有(c)2015 IETF信托基金和确定为文件作者的人员。版权所有。
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。
Table of Contents
目录
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Subroutine-Specific Terminology . . . . . . . . . . . . . 6 3. Applicability Statement . . . . . . . . . . . . . . . . . . . 7 4. Algorithm Specification . . . . . . . . . . . . . . . . . . . 9 4.1. Prefix Assignment Algorithm Subroutine . . . . . . . . . 9 4.2. Overriding and Destroying Existing Assignments . . . . . 12 4.3. Other Events . . . . . . . . . . . . . . . . . . . . . . 13 5. Prefix Selection Considerations . . . . . . . . . . . . . . . 14 6. Implementation Capabilities and Node Behavior . . . . . . . . 16 7. Algorithm Parameters . . . . . . . . . . . . . . . . . . . . 17 8. Security Considerations . . . . . . . . . . . . . . . . . . . 17 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 11.1. Normative References . . . . . . . . . . . . . . . . . . 18 11.2. Informative References . . . . . . . . . . . . . . . . . 18 Appendix A. Static Configuration Example . . . . . . . . . . . . 19 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 20 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Subroutine-Specific Terminology . . . . . . . . . . . . . 6 3. Applicability Statement . . . . . . . . . . . . . . . . . . . 7 4. Algorithm Specification . . . . . . . . . . . . . . . . . . . 9 4.1. Prefix Assignment Algorithm Subroutine . . . . . . . . . 9 4.2. Overriding and Destroying Existing Assignments . . . . . 12 4.3. Other Events . . . . . . . . . . . . . . . . . . . . . . 13 5. Prefix Selection Considerations . . . . . . . . . . . . . . . 14 6. Implementation Capabilities and Node Behavior . . . . . . . . 16 7. Algorithm Parameters . . . . . . . . . . . . . . . . . . . . 17 8. Security Considerations . . . . . . . . . . . . . . . . . . . 17 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 11.1. Normative References . . . . . . . . . . . . . . . . . . 18 11.2. Informative References . . . . . . . . . . . . . . . . . 18 Appendix A. Static Configuration Example . . . . . . . . . . . . 19 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 20 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20
This document specifies a distributed algorithm for automatic prefix assignment. The algorithm provides a generic alternative to centralized (human- or software-based) approaches for network prefix and address assignment. Although it does not have to be configured to operate properly, it supports custom configuration by means of variable priority assignments, and can therefore be used in fully autonomic as well as configured networks. This document focuses on the algorithm itself and therefore context-specific considerations (such as the process of selecting a prefix value and length when making a new assignment) are out of scope.
本文档指定了自动前缀分配的分布式算法。该算法为网络前缀和地址分配提供了集中式(基于人工或基于软件)方法的通用替代方法。尽管它不必配置为正常运行,但它支持通过可变优先级分配进行自定义配置,因此可以在完全自主和配置的网络中使用。本文档主要关注算法本身,因此特定于上下文的注意事项(例如,在进行新赋值时选择前缀值和长度的过程)超出了范围。
The algorithm makes use of a flooding mechanism allowing participating nodes to advertise prefixes assigned to the links to which they are directly connected or for other purposes, e.g., for private assignment or prefix delegation. Advertising a prefix therefore serves two purposes. It is a claim that a prefix is in use, meaning that no other node may advertise an overlapping prefix (unless it has a greater priority). And, it is a way for other nodes to know which prefixes have been assigned to the links to which they are directly connected.
该算法利用泛洪机制,允许参与节点公布分配给它们直接连接到的链路的前缀,或用于其他目的,例如用于私有分配或前缀委派。因此,为前缀做广告有两个目的。这是一个前缀正在使用的声明,这意味着没有其他节点可以公布重叠前缀(除非它具有更高的优先级)。而且,这是一种让其他节点知道哪些前缀已分配给它们直接连接到的链接的方法。
The algorithm is given a set of delegated prefixes and ensures that the following assertions are satisfied after a finite convergence period:
该算法提供了一组委托前缀,并确保在有限的收敛期后满足以下断言:
1. At most one prefix from each delegated prefix is assigned to each link.
1. 每个委派前缀中最多有一个前缀分配给每个链接。
2. Assigned prefixes are non-overlapping (i.e., an assigned prefix never includes another assigned prefix).
2. 分配的前缀不重叠(即,分配的前缀从不包括另一个分配的前缀)。
3. Assigned prefixes do not change in the absence of topology or configuration changes.
3. 在没有拓扑或配置更改的情况下,分配的前缀不会更改。
In the rest of this document, the two first conditions are referred to as the correctness conditions of the algorithm, while the third condition is referred to as its convergence condition.
在本文档的其余部分中,前两个条件称为算法的正确性条件,而第三个条件称为其收敛条件。
Each assignment has a priority specified by the node making the assignment, allowing for custom assignment policies. When multiple nodes assign different prefixes from the same delegated prefix to the same link, or when multiple nodes assign overlapping prefixes (to the same link or to different links), the assignment with the greatest priority is kept and other assignments are removed.
每个分配都有一个由进行分配的节点指定的优先级,允许自定义分配策略。当多个节点将同一委派前缀中的不同前缀分配给同一链路时,或当多个节点将重叠前缀分配给(同一链路或不同链路)时,保留优先级最高的分配,并删除其他分配。
The prefix assignment algorithm requires that participating nodes share information through a flooding mechanism. If the flooding mechanism ensures that all messages are propagated to all nodes within a given time window, the algorithm also ensures that all assigned prefixes used for networking operations (e.g., host configuration) remain unchanged, unless another node assigns an overlapping prefix with a higher assignment priority, or the topology changes and renumbering cannot be avoided.
前缀分配算法要求参与节点通过泛洪机制共享信息。如果泛洪机制确保在给定时间窗口内将所有消息传播到所有节点,则该算法还确保用于联网操作(例如,主机配置)的所有分配前缀保持不变,除非另一个节点分配具有更高分配优先级的重叠前缀,或者无法避免拓扑更改和重新编号。
In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in [RFC2119].
本文件中的关键词“必须”、“不得”、“要求”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照[RFC2119]中的说明进行解释。
This document makes use of the following terminology. The terms defined here are ordered in such a way as to try to avoid forward references, and therefore are not sorted alphabetically.
本文件使用了以下术语。此处定义的术语的排序方式应尽量避免向前引用,因此不按字母顺序排序。
Node: An entity executing the algorithm specified in this document and able to communicate with other Nodes using the Flooding Mechanism.
节点:执行本文档中指定的算法并能够使用泛洪机制与其他节点通信的实体。
Flooding Mechanism: A mechanism allowing participating Nodes to reliably share information with all other participating Nodes.
泛洪机制:允许参与节点与所有其他参与节点可靠共享信息的机制。
Link: An object to which the distributed algorithm will assign prefixes. A Node may only assign prefixes to Links to which it is directly connected. A Link is either Shared or Private.
链接:分布式算法将为其分配前缀的对象。节点只能为其直接连接的链接分配前缀。链接可以是共享的,也可以是私有的。
Shared Link: A Link to which multiple Nodes may be connected. Most of the time, a Shared Link is a multi-access link or point-to-point link, virtual or physical, requiring prefixes to be assigned to it.
共享链接:可以连接多个节点的链接。大多数情况下,共享链路是多址链路或点对点链路,无论是虚拟链路还是物理链路,都需要为其分配前缀。
Private Link: A Private Link is an abstract concept defined for the sake of this document. It allows Nodes to make assignments for their private use or delegation. For instance, every DHCPv6-PD [RFC3633] requesting router may be considered as a different Private Link.
私有链接:私有链接是为本文档定义的抽象概念。它允许节点为其私人使用或委派进行分配。例如,每个请求路由器的DHCPv6 PD[RFC3633]可被视为不同的专用链路。
Delegated Prefix: A prefix provided to the algorithm and used as a prefix pool for Assigned Prefixes.
委托前缀:提供给算法的前缀,用作已分配前缀的前缀池。
Node ID: A value identifying a given participating Node. The set of identifiers MUST be strictly and totally ordered (e.g., using the alphanumeric order). The mechanism used to assign Node IDs, whether manual or automated, is out of scope for this document.
节点ID:标识给定参与节点的值。标识符集必须严格且完全有序(例如,使用字母数字顺序)。用于分配节点ID的机制(手动或自动)不在本文档的范围内。
Flooding Delay: A value that MUST be provided by the Flooding Mechanism and SHOULD be a deterministic or likely upper bound on the information propagation delay among participating Nodes.
泛洪延迟:泛洪机制必须提供的一个值,应该是参与节点之间信息传播延迟的确定性或可能的上限。
Advertised Prefix: A prefix advertised by another Node and delivered to the local Node by the Flooding Mechanism. It has an Advertised Prefix Priority and, when assigned to a directly connected Shared Link, is associated with that Shared Link.
播发前缀:由另一个节点播发并通过泛洪机制传递到本地节点的前缀。它具有播发的前缀优先级,当分配给直接连接的共享链接时,它与该共享链接相关联。
Advertised Prefix Priority: A value that defines the priority of an Advertised Prefix received from the Flooding Mechanism or a published Assigned Prefix. Whenever multiple Advertised Prefixes are conflicting (i.e., overlapping or from the same Delegated Prefix and assigned to the same link), all Advertised Prefixes but the one with the greatest priority will eventually be removed. In case of a tie, the assignment advertised by the Node with the greatest Node ID is kept, and others are removed. In order to ensure convergence, the range of priority values MUST have an upper bound.
播发前缀优先级:定义从泛洪机制接收的播发前缀或已发布的分配前缀的优先级的值。当多个播发前缀冲突时(即,重叠或来自同一委派前缀并分配给同一链接),除具有最高优先级的前缀外,所有播发前缀最终将被删除。在平局的情况下,保留由具有最大节点ID的节点播发的分配,并删除其他分配。为了确保收敛,优先级值的范围必须有一个上限。
Assigned Prefix: A prefix included in a Delegated Prefix and assigned to a Shared or Private Link. It represents a local decision to assign a given prefix from a given Delegated Prefix to a given Link. The algorithm ensures that there is never more than one Assigned Prefix per Delegated Prefix and Link pair. When destroyed, an Assigned Prefix is set as not applied, ceases to be advertised, and is removed from the set of Assigned Prefixes.
已分配前缀:包含在委派前缀中并分配给共享或专用链接的前缀。它表示将给定前缀从给定委派前缀分配给给定链接的本地决策。该算法确保每个委派前缀和链接对中分配的前缀不会超过一个。销毁时,分配的前缀将设置为未应用,停止播发,并从分配的前缀集中删除。
Applied (Assigned Prefix): When an Assigned Prefix is applied, it MAY be used (e.g., for host configuration, routing protocol configuration, prefix delegation). When not applied, it MUST NOT be used for any purpose outside of the prefix assignment algorithm. Each Assigned Prefix is associated with a timer (Apply Timer) used to apply the Assigned Prefix. An Assigned Prefix is unapplied when destroyed.
应用(已分配前缀):应用已分配前缀时,可以使用它(例如,用于主机配置、路由协议配置、前缀委派)。未应用时,不得将其用于前缀分配算法之外的任何目的。每个分配的前缀都与用于应用分配的前缀的计时器(应用计时器)相关联。已分配的前缀在销毁时将被取消应用。
Published (Assigned Prefix): The Assigned Prefix is advertised through the Flooding Mechanism as assigned to its associated Link. A published Assigned Prefix MUST have an Advertised Prefix Priority. It will appear as an Advertised Prefix to other Nodes, once received from the Flooding Mechanism.
已发布(已分配的前缀):已分配的前缀通过分配给其关联链接的泛洪机制进行播发。已发布的分配前缀必须具有播发的前缀优先级。一旦从泛洪机制接收到,它将作为播发前缀显示给其他节点。
Destroy (an Assigned Prefix): Local action of removing an Assigned Prefix from the set of Assigned Prefixes. If applied, the prefix is unapplied. If published, the prefix stops being advertised through the Flooding Mechanism.
销毁(指定前缀):从指定前缀集中删除指定前缀的本地操作。如果已应用,则不应用前缀。如果发布,前缀将停止通过泛洪机制播发。
Prefix Adoption: When an Advertised Prefix that does not conflict with any other Advertised Prefix or published Assigned Prefix stops being advertised, any other Node connected to the same Link may, after some random delay, start advertising the same prefix. This procedure is called adoption and provides seamless assignment transfer from a Node to another, e.g., in case of Node failure.
前缀采用:当与任何其他播发前缀或已发布的分配前缀不冲突的播发前缀停止播发时,连接到同一链路的任何其他节点可能会在一些随机延迟后开始播发相同的前缀。此过程称为采用,并提供从一个节点到另一个节点的无缝分配传输,例如,在节点故障的情况下。
Backoff Timer: Every Delegated Prefix and Link pair is associated with a timer counting down to zero. By delaying the creation of new Assigned Prefixes or the advertisement of adopted Assigned Prefixes by a random amount of time, it reduces the probability of colliding assignments made by multiple Nodes.
退避计时器:每个委派的前缀和链接对都与一个倒计时到零的计时器相关联。通过将新分配前缀的创建或所采用分配前缀的公布延迟随机时间量,它降低了多个节点所做分配发生冲突的概率。
Renumbering: Event occurring when an Assigned Prefix that was applied is destroyed. Renumbering is undesirable as it usually implies reconfiguring routers or hosts.
重新编号:应用的指定前缀被销毁时发生的事件。重新编号是不可取的,因为它通常意味着重新配置路由器或主机。
In addition to the terms defined in Section 2, the subroutine specified in Section 4 makes use of the following terms.
除第2节中定义的术语外,第4节中指定的子程序还使用以下术语。
Current Assignment: For a given Delegated Prefix and Link, the Current Assignment is the Assigned Prefix (if any) included in the Delegated Prefix and assigned to the given Link by the Node executing the algorithm. At some point in time, the Current Assignment from different Nodes may differ, but the algorithm ensures that, eventually, all Nodes directly connected to a Shared Link have the same Current Assignment for any given Delegated Prefix.
当前分配:对于给定的委派前缀和链接,当前分配是委派前缀中包含的已分配前缀(如果有),并由执行算法的节点分配给给定链接。在某个时间点,来自不同节点的当前分配可能不同,但该算法确保最终,直接连接到共享链路的所有节点对于任何给定的委托前缀都具有相同的当前分配。
Precedence: An Advertised Prefix takes precedence over an Assigned Prefix if and only if one of the following conditions is met:
优先级:当且仅当满足以下条件之一时,播发前缀优先于分配的前缀:
* The Assigned Prefix is not published.
* 分配的前缀未发布。
* The Assigned Prefix is published, and the Advertised Prefix Priority from the Advertised Prefix is strictly greater than the Advertised Prefix Priority from the Assigned Prefix.
* 已发布分配的前缀,且播发前缀的播发前缀优先级严格大于已分配前缀的播发前缀优先级。
* The Assigned Prefix is published, the priorities are identical, and the Node ID from the Node advertising the Advertised Prefix is strictly greater than the local Node ID.
* 分配的前缀已发布,优先级相同,并且播发前缀的节点的节点ID严格大于本地节点ID。
Best Assignment: For a given Delegated Prefix and Link, the Best Assignment is computed as the unique Advertised Prefix (if any) that:
最佳分配:对于给定的委派前缀和链接,最佳分配计算为唯一的播发前缀(如果有):
* Includes or is included in the Delegated Prefix (i.e., the Advertised Prefix is a sub-prefix of the Delegated Prefix, or the Delegated Prefix is a sub-prefix of the Advertised Prefix).
* 包括或包含在委托前缀中(即,广告前缀是委托前缀的子前缀,或委托前缀是广告前缀的子前缀)。
* Is assigned on the given Link.
* 在给定链接上指定。
* Has the greatest Advertised Prefix Priority among Advertised Prefixes fulfilling the two preceding conditions (and, in case of a tie, the prefix advertised by the Node with the greatest Node ID among all prefixes with greatest priority).
* 在满足上述两个条件的播发前缀中具有最大的播发前缀优先级(并且,在平局的情况下,由具有最大优先级的所有前缀中具有最大节点ID的节点播发的前缀)。
* Takes precedence over the Current Assignment associated with the same Link and Delegated Prefix (if any).
* 优先于与同一链接和委派前缀(如果有)关联的当前分配。
Valid (Assigned Prefix): An Assigned Prefix is valid if and only if the following two conditions are met:
有效(分配的前缀):当且仅当满足以下两个条件时,分配的前缀才有效:
* No Advertised Prefix including or included in the Assigned Prefix takes precedence over the Assigned Prefix.
* 包含或包含在指定前缀中的播发前缀不优先于指定前缀。
* No Advertised Prefix including or included in the same Delegated Prefix as the Assigned Prefix and assigned to the same Link takes precedence over the Assigned Prefix.
* 包含或包含在与分配的前缀相同的委托前缀中且分配给同一链接的播发前缀不优先于分配的前缀。
Although the algorithm was primarily designed as an autonomic prefix assignment tool for home networks, it is applicable to other areas. In particular, it can operate without any kind of configuration as well as use advanced prefix assignment rules. Additionally, it can be applied to any address space and can be used to manage multiple address spaces simultaneously. For instance, an implementation can make use of IPv4-mapped IPv6 addresses [RFC4291] in order to manage both IPv4 and IPv6 prefix assignment using a single prefix space.
虽然该算法主要是作为家庭网络的自主前缀分配工具设计的,但它也适用于其他领域。特别是,它可以在没有任何配置的情况下运行,也可以使用高级前缀分配规则。此外,它可以应用于任何地址空间,并可用于同时管理多个地址空间。例如,实现可以使用IPv4映射的IPv6地址[RFC4291],以便使用单个前缀空间管理IPv4和IPv6前缀分配。
Each Node MUST have a set of non-overlapping Delegated Prefixes (i.e., that do not include each other). This set MAY change over time and be different from one Node to another at some point, but Nodes MUST eventually have the same set of non-overlapping Delegated Prefixes.
每个节点必须有一组不重叠的委托前缀(即,不包含彼此)。该集合可能会随着时间的推移而改变,并且在某个点上不同于不同的节点,但节点最终必须具有相同的一组不重叠的委托前缀。
Given this set of non-overlapping Delegated Prefixes, Nodes may assign available prefixes from each Delegated Prefix to the Links they are directly connected to. The algorithm ensures that at most one prefix from a given Delegated Prefix is assigned to any given Link. Prefixes may also be assigned for private use. For example, an assigned prefix may be delegated to some other entity that does not implement this algorithm [RFC3633], or associated with a high priority in order to prevent other nodes from assigning any overlapping prefix [RFC6603].
给定这组不重叠的委托前缀,节点可以将每个委托前缀中的可用前缀分配给它们直接连接到的链路。该算法可确保给定委派前缀中最多有一个前缀分配给任何给定链路。前缀也可以分配给私人使用。例如,分配的前缀可以委托给未实现该算法的其他实体[RFC3633],或者与高优先级相关联,以防止其他节点分配任何重叠前缀[RFC6603]。
The algorithm supports dynamically changing topologies and therefore will converge if the topology remains unmodified for a long enough period of time. (That time depends on the Flooding Mechanism properties.) Nevertheless, some topology changes may induce renumbering, while others do not. In particular, Nodes joining the set of participating Nodes do not cause renumbering. Similarly, Nodes leaving the network may be handled without renumbering by using the prefix adoption procedure. On the other hand, Links that merge or split may break correctness conditions, and therefore cause renumbering.
该算法支持动态更改拓扑,因此,如果拓扑在足够长的时间内保持不变,则会收敛。(时间取决于泛洪机制属性。)然而,某些拓扑更改可能会导致重新编号,而其他拓扑更改则不会。特别是,加入参与节点集的节点不会导致重新编号。类似地,可以通过使用前缀采用过程来处理离开网络的节点,而无需重新编号。另一方面,合并或拆分的链接可能会破坏正确性条件,从而导致重新编号。
All Nodes MUST run a common Flooding Mechanism in order to share published Assigned Prefixes. The set of participating Nodes is defined as the set of Nodes participating in the Flooding Mechanism.
所有节点必须运行公共泛洪机制才能共享已发布的指定前缀。参与节点集定义为参与泛洪机制的节点集。
The Flooding Mechanism MUST:
洪水机制必须:
o Provide a way to flood Assigned Prefixes assigned to a directly connected Link along with their respective Advertised Prefix Priority and the Node ID of the Node that is advertising them.
o 提供一种方法,可以将分配给直接连接链路的已分配前缀及其各自的播发前缀优先级和播发它们的节点的节点ID一起使用。
o Specify whether an Advertised Prefix is assigned to a directly connected Shared Link, and if so, which one. This information also needs to be updated in case of Links that merge or split.
o 指定是否将播发前缀分配给直接连接的共享链接,如果是,则指定哪一个。如果链接合并或拆分,也需要更新此信息。
o Provide a Flooding Delay value, which SHOULD represent a deterministic or likely upper bound on the information propagation delay among participating Nodes. Whenever the Flooding Mechanism is unable to adhere to the provided Flooding Delay, renumbering may happen. As such, a delay often depends on the size of the network, it MAY change over time and MAY be different from one Node to another. Furthermore, the process of selecting this value is subject to a tradeoff between convergence speed and lower renumbering probability (e.g., the value 0 may be used when renumbering is harmless), and is therefore out of scope for this document.
o 提供泛洪延迟值,该值应表示参与节点之间信息传播延迟的确定性或可能的上限。当泛洪机制无法遵守规定的泛洪延迟时,可能会重新编号。因此,延迟通常取决于网络的大小,它可能随着时间的推移而改变,并且在不同的节点之间可能不同。此外,选择该值的过程在收敛速度和较低的重新编号概率之间进行权衡(例如,在重新编号无害时可使用值0),因此不在本文件的范围内。
The algorithm ensures that whenever the Flooding Delay is provided and held, and in the absence of any topology change or Delegated Prefix removal, renumbering only happens when a Node deliberately overrides an existing assignment. In the absence of such deliberate override, the algorithm converges within an absolute worst-case timespan of (2 * Flooding Delay * L) seconds, where L is the number of links.
该算法确保,只要提供并保持泛洪延迟,并且在没有任何拓扑更改或委派前缀移除的情况下,只有当节点故意覆盖现有分配时,才会重新编号。在没有这种故意覆盖的情况下,该算法在(2*泛洪延迟*L)秒的绝对最坏情况时间跨度内收敛,其中L是链路数。
Each Node MUST have a Node ID. In the situation where multiple nodes have the same Node ID, the algorithm will not suffer, assuming there are no colliding assignments. However, in order for collisions to be resolved, that situation MUST be transient.
每个节点必须有一个节点ID。在多个节点具有相同节点ID的情况下,假设没有冲突分配,则算法不会受到影响。然而,为了解决碰撞,这种情况必须是暂时的。
Finally, leaving the Flooding Mechanism or Node ID assignment process unsecured makes the network vulnerable to denial-of-service attacks, as detailed in Section 8. Additionally, as this algorithm requires all Nodes to know which Node has made which assignment, it may be unsuitable depending on privacy requirements among participating Nodes.
最后,使泛洪机制或节点ID分配过程不受保护会使网络容易受到拒绝服务攻击,详见第8节。此外,由于该算法要求所有节点知道哪个节点进行了哪个分配,因此根据参与节点之间的隐私要求,该算法可能不合适。
This section specifies the behavior of Nodes implementing the prefix assignment algorithm. The terms 'Current Assignment', 'Precedence', 'Best Assignment', and 'Valid' are used as defined in Section 2.1.
本节指定实现前缀分配算法的节点的行为。术语“当前分配”、“优先级”、“最佳分配”和“有效”的使用如第2.1节所定义。
This section specifies the prefix assignment algorithm subroutine. It is defined for a given Delegated Prefix and Link pair and takes a BackoffTriggered boolean as parameter (indicating whether the subroutine execution was triggered by the Backoff Timer or by another event). The subroutine also makes use of the two following configuration parameters: ADOPT_MAX_DELAY and BACKOFF_MAX_DELAY, which are defined in Section 7.
本节指定前缀分配算法子例程。它是为给定的委托前缀和链接对定义的,并采用BackoffTriggered boolean作为参数(指示子例程执行是由Backoff计时器触发还是由其他事件触发)。子例程还使用了以下两个配置参数:采用最大延迟和退避最大延迟,这两个参数在第7节中定义。
For a given Delegated Prefix and Link pair, the subroutine MUST be run with the BackoffTriggered boolean set to false whenever:
对于给定的委托前缀和链接对,在以下情况下,必须在BackoffTriggered布尔值设置为false的情况下运行子例程:
o An Advertised Prefix including or included in the considered Delegated Prefix is added or removed.
o 添加或删除包含或包含在所考虑的委派前缀中的播发前缀。
o An Assigned Prefix included in the considered Delegated Prefix and associated with a different Link than the considered Link was destroyed, while there is no Current Assignment associated with the given pair. This case MAY be ignored if the creation of a new Assigned Prefix associated with the considered pair is not desired.
o 包含在所考虑的委派前缀中并与所考虑的链接以外的其他链接关联的已分配前缀已被销毁,而当前没有与给定对关联的分配。如果不希望创建与所考虑的对关联的新分配前缀,则可以忽略这种情况。
o The considered Delegated Prefix is added.
o 将添加所考虑的委派前缀。
o The considered Link is added.
o 添加所考虑的链接。
o The Node ID is modified.
o 节点ID已修改。
o An Assigned Prefix included in the considered Delegated Prefix and associated with the considered Link is destroyed outside of the context of the subroutine, as specified in Section 4.2.
o 根据第4.2节的规定,包含在所考虑的委托前缀中并与所考虑的链接相关联的已分配前缀在子例程上下文之外被销毁。
Furthermore, for a given Delegated Prefix and Link pair, the subroutine MUST be run with the BackoffTriggered boolean set to true whenever:
此外,对于给定的委托前缀和链接对,在以下情况下,必须在BackoffTriggered布尔值设置为true的情况下运行子例程:
o The Backoff Timer associated with the considered Delegated Prefix and Link pair fires while there is no Current Assignment associated with the given pair.
o 与所考虑的委派前缀和链接对关联的退避计时器将在没有与给定对关联的当前分配时触发。
When such an event occurs, a Node MAY delay the execution of the subroutine instead of executing it immediately, e.g., while receiving an update from the Flooding Mechanism, or for security reasons (see Section 8). Even if other events occur in the meantime, the subroutine MUST be run only once. It is also assumed that if one of these events is the firing of the Backoff Timer while there is no Current Assignment associated with the given pair, the subroutine is executed with the BackoffTriggered boolean set to true.
当此类事件发生时,节点可能会延迟子例程的执行,而不是立即执行,例如,在从泛洪机制接收更新时,或出于安全原因(参见第8节)。即使同时发生其他事件,子例程也只能运行一次。还假设,如果其中一个事件是回退计时器的触发,而没有与给定对关联的当前赋值,则在回退触发布尔值设置为true的情况下执行子例程。
In order to execute the subroutine for a given Delegated Prefix and Link pair, first get the Current Assignment and compute the Best Assignment associated with the Delegated Prefix and Link pair, then execute the steps depending on the following cases:
为了执行给定委派前缀和链接对的子例程,首先获取当前分配并计算与委派前缀和链接对关联的最佳分配,然后根据以下情况执行步骤:
1. If there is no Best Assignment and no Current Assignment: Decide whether the creation of a new assignment for the given Delegated Prefix and Link pair is desired. (As any result would be valid, the process of making this decision is out of scope for this document.) And, do the following:
1. 如果没有最佳分配和当前分配:决定是否需要为给定的委派前缀和链接对创建新分配。(由于任何结果都是有效的,因此做出此决定的过程超出了本文件的范围。)并且,请执行以下操作:
* If it is not desired, stop the execution of the subroutine.
* 如果不需要,停止子例程的执行。
* Else if the Backoff Timer is running, stop the execution of the subroutine.
* 否则,如果回退计时器正在运行,则停止子例程的执行。
* Else if the BackoffTriggered boolean is set to false, set the Backoff Timer to some random delay between ADOPT_MAX_DELAY and BACKOFF_MAX_DELAY (see Section 7) and stop the execution of the subroutine.
* 否则,如果回退触发布尔值设置为false,则将回退计时器设置为采用_MAX_延迟和回退_MAX_延迟之间的某个随机延迟(参见第7节),并停止子例程的执行。
* Else, continue the execution of the subroutine.
* 否则,继续执行子例程。
Select a prefix for the new assignment (see Section 5 for guidance regarding prefix selection). This prefix MUST be included in or be equal to the considered Delegated Prefix and MUST NOT include or be included in any Advertised Prefix. If a suitable prefix is found, use it to create a new Assigned Prefix:
为新分配选择前缀(有关前缀选择的指导,请参见第5节)。此前缀必须包含在或等于所考虑的委托前缀中,且不得包含或包含在任何广告前缀中。如果找到合适的前缀,请使用它创建新的指定前缀:
* Assigned to the considered Link.
* 分配给所考虑的链接。
* Set as not applied.
* 设置为未应用。
* The Apply Timer set to (2 * Flooding Delay).
* 应用计时器设置为(2*泛洪延迟)。
* Published with some selected Advertised Prefix Priority.
* 以某些选定的播发前缀优先级发布。
2. If there is a Best Assignment but no Current Assignment: First, check if the Best Assignment is equal to or included in the Delegated Prefix. If not, stop the execution of the subroutine. Otherwise, cancel the Backoff Timer and use the prefix from the Best Assignment to create a new Assigned Prefix:
2. 如果存在最佳分配但没有当前分配:首先,检查最佳分配是否等于或包含在委派前缀中。如果不是,则停止子例程的执行。否则,取消回退计时器,并使用最佳分配中的前缀创建新的分配前缀:
* Assigned to the considered Link.
* 分配给所考虑的链接。
* Set as not applied.
* 设置为未应用。
* With the Apply Timer set to (2 * Flooding Delay).
* 应用计时器设置为(2*泛洪延迟)。
* Set as not published.
* 设置为未发布。
3. If there is a Current Assignment but no Best Assignment:
3. 如果存在当前分配但没有最佳分配:
* If the Current Assignment is not valid, destroy it, and execute the subroutine again with the BackoffTriggered boolean set to false.
* 如果当前赋值无效,请销毁它,然后再次执行子例程,并将BackoffTriggered boolean设置为false。
* If the Current Assignment is valid and published, stop the execution of the subroutine.
* 如果当前赋值有效且已发布,请停止执行子例程。
* If the Current Assignment is valid and not published, the Node MUST either:
* 如果当前分配有效且未发布,则节点必须:
+ Adopt the prefix by canceling the Apply Timer and set the Backoff Timer to some random delay between 0 and ADOPT_MAX_DELAY (see Section 7). This procedure is used to avoid renumbering when the Node advertising the prefix left the Shared Link, and it SHOULD therefore be preferred.
+ 通过取消应用计时器来采用前缀,并将回退计时器设置为0和采用最大延迟之间的某个随机延迟(参见第7节)。此过程用于避免在公布前缀的节点离开共享链接时重新编号,因此应首选此过程。
+ Destroy it and go to case 1, allowing a different prefix to be assigned, or the prefix to be removed. When the Current Assignment is applied, this causes renumbering.
+ 销毁它并转到案例1,允许分配不同的前缀或删除前缀。应用当前分配时,会导致重新编号。
4. If there is a Current Assignment and a Best Assignment:
4. 如果存在当前分配和最佳分配:
* Cancel the Backoff Timer.
* 取消回退计时器。
* If the two prefixes are identical, set the Current Assignment as not published. If the Current Assignment is not applied and the Apply Timer is not set, set the Apply Timer to (2 * Flooding Delay).
* 如果两个前缀相同,请将当前分配设置为“未发布”。如果未应用当前分配且未设置应用计时器,请将应用计时器设置为(2*泛洪延迟)。
* If the two prefixes are not identical, destroy the Current Assignment and go to case 2.
* 如果两个前缀不相同,请销毁当前分配并转到案例2。
When the prefix assignment algorithm subroutine requires an assignment to be created or adopted, any Advertised Prefix Priority value can be used. Other documents MAY provide restrictions over this value depending on the context in which the algorithm is operating or leave it as implementation specific.
当前缀分配算法子例程要求创建或采用分配时,可以使用任何公布的前缀优先级值。其他文档可能会根据算法运行的上下文提供对该值的限制,或者将其保留为特定于实现的。
In addition to the behaviors specified in Section 4.1, the following procedures MAY be used in order to provide additional behavior options (Section 6).
除了第4.1节中规定的行为外,还可以使用以下程序来提供其他行为选项(第6节)。
Overriding Existing Assignments: For any given Link and Delegated Prefix, a Node MAY create a new Assigned Prefix using a chosen prefix and Advertised Prefix Priority such that:
覆盖现有分配:对于任何给定的链接和委派前缀,节点可以使用选定的前缀和播发的前缀优先级创建新的分配前缀,以便:
* The chosen prefix is included in or is equal to the considered Delegated Prefix.
* 所选前缀包含在所考虑的委派前缀中,或等于所考虑的委派前缀。
* The Current Assignment, if any, as well as all existing Assigned Prefixes that include or are included inside the chosen prefix are destroyed.
* 当前分配(如果有)以及包含或包含在所选前缀中的所有现有分配前缀都将被销毁。
* It is not applied.
* 它不适用。
* The Apply Timer is set to (2 * Flooding Delay).
* 应用定时器设置为(2*泛洪延迟)。
* It is published.
* 它已经出版了。
* The Advertised Prefix Priority is greater than the Advertised Prefix Priority from all Advertised Prefixes that include or are included in the chosen prefix.
* 播发前缀优先级大于包含或包含在所选前缀中的所有播发前缀的播发前缀优先级。
* The Advertised Prefix Priority is greater than the Advertised Prefix Priority from all Advertised Prefixes that include or are included in the considered Delegated Prefix and are assigned to the considered Link.
* 播发前缀优先级大于所有播发前缀的播发前缀优先级,这些播发前缀包括或包含在所考虑的委派前缀中,并分配给所考虑的链接。
In order to ensure algorithm convergence:
为了确保算法收敛:
* Such overriding assignments MUST NOT be created unless there was a change in the Node configuration, a Link was added, or an Advertised Prefix was added or removed.
* 除非节点配置发生更改、添加了链接或添加或删除了播发的前缀,否则不得创建此类覆盖分配。
* The chosen Advertised Prefix Priority for the new Assigned Prefix SHOULD be greater than all priorities from the destroyed Assigned Prefixes. If not, simple topologies with only two Nodes may not converge. Nodes that do not adhere to this rule
* 为新分配的前缀选择的播发前缀优先级应大于已销毁分配前缀的所有优先级。否则,只有两个节点的简单拓扑可能不会收敛。不遵守此规则的节点
MUST implement a mechanism that detects if the distributed algorithm does not converge and, when this occurs, they MUST stop creating overriding Assigned Prefixes that do not adhere to this rule. The specifications for such safety procedures are out of scope for this document.
必须实现一种检测分布式算法是否收敛的机制,当发生这种情况时,必须停止创建不符合此规则的覆盖指定前缀。此类安全程序的规范不在本文件的范围内。
Removing an Assigned Prefix: A Node MAY destroy any Assigned Prefix that is published. Such an event reflects the desire of a Node to not assign a prefix from a given Delegated Prefix to a given Link anymore. In order to ensure algorithm convergence, such a procedure MUST NOT be executed unless there was a change in the Node configuration. Furthermore, whenever an Assigned Prefix is destroyed in this way, the prefix assignment algorithm subroutine MUST be run for the Delegated Prefix and Link pair associated with the destroyed Assigned Prefix.
删除指定的前缀:节点可能会销毁任何已发布的指定前缀。这样的事件反映了节点不再将来自给定委派前缀的前缀分配给给定链路的愿望。为了确保算法收敛,除非节点配置发生变化,否则不得执行此类过程。此外,无论何时以这种方式销毁分配的前缀,都必须为与销毁的分配前缀相关联的委派前缀和链接对运行前缀分配算法子例程。
The two procedures specified in this section are OPTIONAL. They could be used for various purposes, e.g., for providing custom prefix assignment configuration or reacting to prefix space exhaustion (by overriding short Assigned Prefixes and assigning longer ones).
本节中规定的两个程序是可选的。它们可用于各种用途,例如,提供自定义前缀分配配置或对前缀空间耗尽作出反应(通过覆盖短前缀和分配长前缀)。
When the Apply Timer fires, the associated Assigned Prefix MUST be applied.
当应用计时器启动时,必须应用关联的已分配前缀。
When the Backoff Timer associated with a given Delegated Prefix and Link pair fires while there is a Current Assignment associated with the same pair, the Current Assignment MUST be published with some associated Advertised Prefix Priority and, if the prefix is not applied, the Apply Timer MUST be set to (2 * Flooding Delay).
当与给定委派前缀和链路对关联的退避计时器启动时,同时存在与同一对关联的当前分配,则必须使用某些关联的播发前缀优先级发布当前分配,如果未应用前缀,则应用计时器必须设为(2*泛洪延迟)。
When a Delegated Prefix is removed from the set of Delegated Prefixes (e.g., when the Delegated Prefix expires), all Assigned Prefixes included in the removed Delegated Prefix MUST be destroyed.
从委托前缀集中删除委托前缀时(例如,当委托前缀过期时),必须销毁删除的委托前缀中包含的所有已分配前缀。
When one Delegated Prefix is replaced by another one that includes or is included in the deleted Delegated Prefix, all Assigned Prefixes that were included in the deleted Delegated Prefix but are not included in the added Delegated Prefix MUST be destroyed. Others MAY be kept.
当一个委派前缀替换为包含或包含在已删除委派前缀中的另一个委派前缀时,必须销毁已删除委派前缀中包含但未包含在已添加委派前缀中的所有已分配前缀。其他的可以保留。
When a Link is removed, all Assigned Prefixes assigned to that Link MUST be destroyed.
删除链接时,必须销毁分配给该链接的所有前缀。
When the prefix assignment algorithm subroutine specified in Section 4.1 requires a new prefix to be selected, the prefix MUST be selected either:
当第4.1节中规定的前缀分配算法子程序要求选择新前缀时,必须选择前缀:
o Among prefixes included in the considered Delegated Prefix that were previously assigned and applied on the considered Link. For that purpose, Applied Prefixes may be stored in stable storage along with their associated Link.
o 在考虑的委派前缀中包含的前缀中,以前分配并应用于考虑的链接。为此,所应用的前缀可以与其相关联的链接一起存储在稳定存储器中。
o Randomly, picked from a set of prefixes, where the set is of at least RANDOM_SET_SIZE (see Section 7). The prefixes are those included in the considered Delegated Prefix and not including or included in any Assigned or Advertised Prefix. If less than RANDOM_SET_SIZE candidates are found, the prefix MUST be picked among all candidates.
o 随机,从一组前缀中选择,其中该前缀集的大小至少为随机集(见第7节)。前缀包括在所考虑的委派前缀中,但不包括或包含在任何分配或公布的前缀中。如果发现小于随机集大小的候选项,则必须在所有候选项中选择前缀。
o Based on some custom selection process specified in the configuration.
o 基于配置中指定的某些自定义选择过程。
A simple implementation MAY randomly pick the prefix among all available prefixes, but this strategy is inefficient in terms of address space use as a few long prefixes may exhaust the pool of available short prefixes.
一个简单的实现可能会在所有可用的前缀中随机选择前缀,但这种策略在地址空间使用方面效率低下,因为几个长前缀可能会耗尽可用的短前缀池。
The rest of this section describes a more efficient approach that MAY be applied any time a Node needs to pick a prefix for a new assignment. The two following definitions are used:
本节其余部分介绍了一种更有效的方法,可在节点需要为新分配选择前缀时应用。使用以下两种定义:
Available prefix: The prefix of the form Prefix/PrefixLength is available if and only if it satisfies the three following conditions:
可用前缀:当且仅当表单前缀/前缀长度满足以下三个条件时,该前缀才可用:
* It is included in the considered Delegated Prefix.
* 它包含在所考虑的委托前缀中。
* It does not include and is not included in any Assigned or Advertised Prefix.
* 它不包括也不包括在任何指定或公布的前缀中。
* It is equal to the considered Delegated Prefix or Prefix/(PrefixLength-1) includes an Assigned or Advertised Prefix.
* 它等于所考虑的委派前缀或前缀/(PrefixLength-1)包括分配或公布的前缀。
Candidate prefix: A prefix of desired length that is included in or is equal to an available prefix.
候选前缀:包含在可用前缀中或等于可用前缀的所需长度的前缀。
The procedure described in this section takes the three following criteria into account:
本节所述程序考虑了以下三个标准:
Prefix Stability: In some cases, it is desirable that the selected prefix should remain the same across executions and reboots. For this purpose, prefixes previously applied on the Link or pseudorandom prefixes generated based on Node- and Link-specific values may be considered.
前缀稳定性:在某些情况下,希望所选前缀在执行和重新启动期间保持不变。为此,可以考虑先前应用于链路的前缀或基于节点和链路特定值生成的伪随机前缀。
Randomness: When no stored or pseudorandom prefix is chosen, a prefix may be randomly picked among RANDOM_SET_SIZE candidates of desired length. If less than RANDOM_SET_SIZE candidates can be found, the prefix is picked among all candidates.
随机性:当未选择存储或伪随机前缀时,可在所需长度的随机集大小候选中随机选取前缀。如果可以找到小于随机集大小的候选项,则在所有候选项中选择前缀。
Addressing-space usage efficiency: In the process of assigning prefixes, a small set of badly chosen long prefixes may prevent any shorter prefix from being assigned. For this reason, the set of RANDOM_SET_SIZE candidates is created from available prefixes with longest prefix lengths, and, in case of a tie, numerically small prefix values are preferred.
寻址空间使用效率:在分配前缀的过程中,一小部分选择不当的长前缀可能会阻止分配任何较短的前缀。因此,从具有最长前缀长度的可用前缀创建随机_set_大小候选集,并且在平局的情况下,优选数值较小的前缀值。
When executing the procedure, do as follows:
执行程序时,请执行以下操作:
1. For each prefix stored in stable storage, check if the prefix is included in or equal to an available prefix. If so, pick that prefix and stop.
1. 对于存储在稳定存储中的每个前缀,请检查该前缀是否包含在或等于可用前缀中。如果是,请选择该前缀并停止。
2. For each prefix length, count the number of available prefixes of the given length.
2. 对于每个前缀长度,计算给定长度的可用前缀数。
3. If the desired prefix length was not specified, select one. The available prefixes count computed previously may be used to help pick a prefix length such that:
3. 如果未指定所需的前缀长度,请选择一个。先前计算的可用前缀计数可用于帮助选择前缀长度,以便:
* There is at least one candidate prefix.
* 至少有一个候选前缀。
* The prefix length is chosen large enough to not exhaust the address space.
* 选择的前缀长度足够大,不会耗尽地址空间。
Let N be the chosen prefix length.
设N为所选前缀长度。
4. Iterate over available prefixes starting with prefixes of length N down to length 0 and create a set of RANDOM_SET_SIZE candidate prefixes of length exactly N included in or equal to available prefixes. The end goal here is to create a set of RANDOM_SET_SIZE candidate prefixes of length N included in a set of available prefixes of maximized prefix length. In case of a tie, smaller prefix values (as defined by the bit-wise lexicographical order) are preferred.
4. 迭代可用前缀,从长度为N的前缀开始,一直到长度为0,并创建一组长度正好为N的随机_set_SIZE候选前缀,这些前缀包含在可用前缀中或等于可用前缀。这里的最终目标是创建一组长度为N的随机集大小候选前缀,这些前缀包含在一组最大化前缀长度的可用前缀中。在平局的情况下,首选较小的前缀值(按位词典顺序定义)。
5. Generate a set of prefixes of desired length, which are pseudorandomly chosen based on Node- and Link-specific values. For each pseudorandom prefix, check if the prefix is equal to a candidate prefix. If so, pick that prefix and stop.
5. 生成一组所需长度的前缀,这些前缀是基于节点和链路特定值伪随机选择的。对于每个伪随机前缀,检查前缀是否等于候选前缀。如果是,请选择该前缀并停止。
6. Choose a random prefix from the set of selected candidates.
6. 从所选候选项集中选择一个随机前缀。
The complexity of this procedure is equivalent to the complexity of iterating over available prefixes. Such operation may be accomplished in linear time, e.g., by storing Advertised and Assigned Prefixes in a binary tree.
此过程的复杂性相当于对可用前缀进行迭代的复杂性。这种操作可以在线性时间内完成,例如,通过在二叉树中存储广告和分配的前缀。
Implementations of the prefix assignment algorithm may vary from very basic to highly customizable, enabling different types of fully interoperable behaviors. The three following behaviors are given as examples:
前缀分配算法的实现可能从非常基本到高度可定制不等,支持不同类型的完全互操作行为。以下三种行为作为示例:
Listener: The Node only acts upon assignments made by other Nodes, i.e, it never creates new assignments nor adopts existing ones. Such behavior does not require the implementation of the considerations specified in Section 4.2 or 5. The Node never checks the validity of existing assignments, which makes this behavior particularly suited to lightweight devices that can rely on more capable neighbors to make assignments on directly connected Shared Links.
侦听器:节点仅对其他节点所做的分配进行操作,即,它不会创建新的分配,也不会采用现有的分配。此类行为不需要实施第4.2节或第5节中规定的注意事项。该节点从不检查现有分配的有效性,这使得该行为特别适合于轻量级设备,这些设备可以依赖更强大的邻居在直接连接的共享链接上进行分配。
Basic: The Node is capable of assigning new prefixes or adopting prefixes that do not conflict with any other existing assignment. Such behavior does not require the implementation of the considerations specified in Section 4.2. It is suited to situations where there is no preference over which prefix should be assigned to which Link, and there is no priority between different Links.
基本:节点能够分配新前缀或采用与任何其他现有分配不冲突的前缀。此类行为不需要实施第4.2节中规定的注意事项。它适用于没有优先权的情况下,前缀应该分配给哪个链接,并且不同的链接之间没有优先级。
Advanced: The Node is capable of assigning new prefixes, adopting existing ones, making overriding assignments, and destroying existing ones. Such behavior requires the implementation of the considerations specified in Sections 4.2 and 5. It is suitable when the administrator desires some particular prefix to be assigned on a given Link, or some Link to be assigned prefixes with a greater priority when there are not enough prefixes available for all Links.
高级:节点能够分配新前缀、采用现有前缀、进行覆盖分配和销毁现有前缀。此类行为需要实施第4.2节和第5节中规定的注意事项。当管理员希望在给定的链接上分配某个特定前缀时,或者当没有足够的前缀可用于所有链接时,为某个链接分配具有更高优先级的前缀时,这种方法是合适的。
Note that if all Nodes directly connected to some Link are listener Nodes or none of these Nodes are willing to make an assignment from a given Delegated Prefix to the given Link, no prefix from the given
请注意,如果直接连接到某个链接的所有节点都是侦听器节点,或者这些节点中没有一个愿意从给定的委托前缀向给定的链接进行赋值,则给定的代理前缀中没有前缀
Delegated Prefix will ever be assigned to the Link. This situation may be detected by monitoring whether any prefix from a given Delegated Prefix has been assigned to the Link for longer than BACKOFF_MAX_DELAY plus the Flooding Delay.
委托前缀将永远分配给链接。这种情况可以通过监控给定委派前缀中的任何前缀是否分配给链路的时间超过退避\u MAX\u延迟加上泛洪延迟来检测。
This document does not provide values for ADOPT_MAX_DELAY, BACKOFF_MAX_DELAY, and RANDOM_SET_SIZE. The algorithm ensures convergence and correctness for any chosen values, even when these are different from Node to Node. They MAY be adjusted depending on the context, providing a tradeoff between convergence time, efficient addressing, control traffic (generated by the Flooding Mechanism), and collision probability.
本文档不提供采用最大延迟、退避最大延迟和随机设置大小的值。该算法确保了任何选定值的收敛性和正确性,即使这些值在节点之间是不同的。它们可以根据上下文进行调整,在收敛时间、有效寻址、控制流量(由泛洪机制生成)和冲突概率之间进行权衡。
ADOPT_MAX_DELAY represents the maximum backoff time a Node may wait before adopting an assignment; BACKOFF_MAX_DELAY represents the maximum backoff time a Node may wait before making a new assignment. BACKOFF_MAX_DELAY MUST be greater than or equal to ADOPT_MAX_DELAY. The greater ADOPT_MAX_DELAY and (BACKOFF_MAX_DELAY - ADOPT_MAX_DELAY), the lower the collision probability and the lesser the amount of control traffic, but the greater the convergence time.
Adoption_MAX_DELAY表示节点在采用分配之前可能等待的最大退避时间;退避\u MAX\u DELAY表示节点在进行新分配之前可能等待的最大退避时间。退避最大延迟必须大于或等于采用最大延迟。采用_MAX_延迟和(退避_MAX_延迟-采用_MAX_延迟)越大,碰撞概率越低,控制流量越小,但收敛时间越长。
RANDOM_SET_SIZE represents the desired size of the set from which a random prefix will be picked. The greater RANDOM_SET_SIZE, the better the convergence time and the lower the collision probability, but the worse the addressing-space usage efficiency.
RANDOM_SET_SIZE表示将从中拾取随机前缀的集合的所需大小。随机集大小越大,收敛时间越好,冲突概率越低,但寻址空间使用效率越差。
The prefix assignment algorithm functions on top of two distinct mechanisms, the Flooding Mechanism and the Node ID assignment mechanism.
前缀分配算法基于两种不同的机制,即泛洪机制和节点ID分配机制。
An attacker able to publish Advertised Prefixes through the Flooding Mechanism may perform the following attacks:
能够通过泛洪机制发布播发前缀的攻击者可能会执行以下攻击:
* Publish a single overriding assignment for a whole Delegated Prefix or for the whole address space, thus preventing any Node from assigning prefixes to Links.
* 为整个委派前缀或整个地址空间发布单个覆盖分配,从而防止任何节点将前缀分配给链接。
* Quickly publish and remove Advertised Prefixes, generating traffic at the Flooding Mechanism layer and causing multiple executions of the prefix assignment algorithm in all participating Nodes.
* 快速发布和删除播发的前缀,在泛洪机制层生成流量,并在所有参与节点中多次执行前缀分配算法。
* Publish and remove Advertised Prefixes in order to prevent the convergence of the algorithm.
* 发布并删除播发的前缀,以防止算法收敛。
An attacker able to prevent other Nodes from accessing a portion or the whole set of Advertised Prefixes may compromise the correctness of the algorithm.
能够阻止其他节点访问部分或整套播发前缀的攻击者可能会损害算法的正确性。
An attacker able to cause repetitive Node ID changes may cause traffic to be generated in the Flooding Mechanism and multiple executions of the prefix assignment algorithm in all participating Nodes.
能够导致重复节点ID更改的攻击者可能会导致在泛洪机制中生成流量,并在所有参与节点中多次执行前缀分配算法。
An attacker able to publish Advertised Prefixes using a Node ID used by another Node may impede the ability to resolve prefix assignment collisions.
能够使用另一个节点使用的节点ID发布播发前缀的攻击者可能会妨碍解决前缀分配冲突的能力。
Whenever the security of the Flooding Mechanism and Node ID assignment mechanism cannot be ensured, the convergence of the algorithm may be prevented. In environments where such attacks may be performed, the execution of the prefix assignment algorithm subroutine SHOULD be rate limited, as specified in Section 4.1.
当泛洪机制和节点ID分配机制的安全性无法保证时,可能会阻止算法的收敛。在可能执行此类攻击的环境中,前缀分配算法子例程的执行应受到速率限制,如第4.1节所述。
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>.
[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,DOI 10.17487/RFC2119,1997年3月<http://www.rfc-editor.org/info/rfc2119>.
[RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6", RFC 3633, DOI 10.17487/RFC3633, December 2003, <http://www.rfc-editor.org/info/rfc3633>.
[RFC3633]Troan,O.和R.Droms,“动态主机配置协议(DHCP)版本6的IPv6前缀选项”,RFC 3633,DOI 10.17487/RFC3633,2003年12月<http://www.rfc-editor.org/info/rfc3633>.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, DOI 10.17487/RFC4291, February 2006, <http://www.rfc-editor.org/info/rfc4291>.
[RFC4291]Hinden,R.和S.Deering,“IP版本6寻址体系结构”,RFC 4291,DOI 10.17487/RFC42912006年2月<http://www.rfc-editor.org/info/rfc4291>.
[RFC6603] Korhonen, J., Ed., Savolainen, T., Krishnan, S., and O. Troan, "Prefix Exclude Option for DHCPv6-based Prefix Delegation", RFC 6603, DOI 10.17487/RFC6603, May 2012, <http://www.rfc-editor.org/info/rfc6603>.
[RFC6603]Korhonen,J.,Ed.,Savolainen,T.,Krishnan,S.,和O.Troan,“基于DHCPv6的前缀委托的前缀排除选项”,RFC 6603,DOI 10.17487/RFC6603,2012年5月<http://www.rfc-editor.org/info/rfc6603>.
This section describes an example of how custom configuration of the prefix assignment algorithm may be implemented.
本节描述如何实现前缀分配算法的自定义配置的示例。
The Node configuration is specified as a finite set of rules. A rule is defined as:
节点配置被指定为一组有限的规则。规则定义为:
o A prefix to be used.
o 要使用的前缀。
o A Link on which the prefix may be assigned.
o 可以分配前缀的链接。
o An Assigned Prefix Priority (the smallest possible Assigned Prefix Priority if the rule may not override other Assigned Prefixes).
o 分配的前缀优先级(如果规则不能覆盖其他分配的前缀,则最小可能的分配前缀优先级)。
o A rule priority (0 if the rule may not override existing Advertised Prefixes).
o 规则优先级(如果规则不能覆盖现有的播发前缀,则为0)。
In order to ensure the convergence of the algorithm, the Assigned Prefix Priority MUST be an increasing function (not necessarily strictly) of the configuration rule priority (i.e., the greater the configuration rule priority is, the greater the Assigned Prefix Priority must be).
为了确保算法的收敛性,分配的前缀优先级必须是配置规则优先级的递增函数(不一定严格),即配置规则优先级越大,分配的前缀优先级必须越高。
Each Assigned Prefix is associated with a rule priority. Assigned Prefixes that are created as specified in Section 4.1 are given a rule priority of 0.
每个分配的前缀都与规则优先级相关联。按照第4.1节的规定创建的指定前缀的规则优先级为0。
Whenever the configuration is changed or the prefix assignment algorithm subroutine is run, for each Link/Delegated Prefix pair, look for the configuration rule with the greatest configuration rule priority such that:
每当更改配置或运行前缀分配算法子例程时,对于每个链接/委派前缀对,查找具有最大配置规则优先级的配置规则,以便:
o The prefix specified in the configuration rule is included in the considered Delegated Prefix.
o 配置规则中指定的前缀包含在考虑的委派前缀中。
o The Link specified in the configuration rule is the considered Link.
o 配置规则中指定的链接是所考虑的链接。
o All the Assigned Prefixes that would need to be destroyed in case a new Assigned Prefix is created from that configuration rule (as specified in Section 4.2) have an associated rule priority that is strictly lower than the one of the considered configuration rule.
o 如果根据该配置规则(如第4.2节所述)创建新的分配前缀,则需要销毁的所有分配前缀的关联规则优先级严格低于所考虑的配置规则优先级。
o The assignment would be valid when published with an Advertised Prefix Priority equal to the one specified in the configuration rule.
o 当发布的播发前缀优先级等于配置规则中指定的优先级时,分配将有效。
If a rule is found, a new Assigned Prefix is created based on that rule as specified in Section 4.2. The new Assigned Prefix is associated with the Advertised Prefix Priority and the rule priority specified in the considered configuration rule.
如果找到一条规则,将根据第4.2节中规定的规则创建一个新的指定前缀。新分配的前缀与公布的前缀优先级和在考虑的配置规则中指定的规则优先级相关联。
Note that the use of rule priorities ensures the convergence of the algorithm.
请注意,规则优先级的使用确保了算法的收敛性。
Acknowledgments
致谢
The authors would like to thank those who participated in the development of draft versions of this document as well as the present document. In particular, the authors would like to thank Tim Chown, Fred Baker, Mark Townsley, Lorenzo Colitti, Ole Troan, Ray Bellis, Markus Stenberg, Wassim Haddad, Joel Halpern, Samita Chakrabarti, Michael Richardson, Anders Brandt, Erik Nordmark, Laurent Toutain, Ralph Droms, Acee Lindem, Steven Barth, and Juliusz Chroboczek for interesting discussions and document review.
提交人谨感谢参与编写本文件和本文件草案的人员。作者特别要感谢Tim Chown、Fred Baker、Mark Townsley、Lorenzo Coletti、Ole Troan、Ray Bellis、Markus Stenberg、Wassim Haddad、Joel Halpern、Samita Chakrabarti、Michael Richardson、Anders Brandt、Erik Nordmark、Laurent Toutain、Ralph Droms、Acee Lindem、Steven Barth、,和Juliusz Chroboczek进行有趣的讨论和文件审查。
Authors' Addresses
作者地址
Pierre Pfister Cisco Systems Paris France
法国巴黎思科系统公司
Email: pierre.pfister@darou.fr
Email: pierre.pfister@darou.fr
Benjamin Paterson Cisco Systems Paris France
法国巴黎思科系统公司
Email: paterson.b@gmail.com
Email: paterson.b@gmail.com
Jari Arkko Ericsson Jorvas 02420 Finland
雅丽爱立信芬兰公司02420
Email: jari.arkko@piuha.net
Email: jari.arkko@piuha.net