Network Working Group                                           L. Blunk
Request for Comments: 4012                                 Merit Network
Updates: 2725, 2622                                             J. Damas
Category: Standards Track                    Internet Systems Consortium
                                                               F. Parent
                                                                  Hexago
                                                          A. Robachevsky
                                                                RIPE NCC
                                                              March 2005
        

Routing Policy Specification Language next generation (RPSLng)

下一代路由策略规范语言(RPSLng)

Status of this Memo

本备忘录的地位

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文件为互联网社区规定了一个互联网标准跟踪协议,并请求讨论和提出改进建议。有关本协议的标准化状况和状态,请参阅当前版本的 "互联网官方协议标准"(STD 1)。本备忘录的分发不受限制。

Copyright Notice

版权声明

Copyright (C) The Internet Society (2005).

版权所有 (C) 互联网协会 (2005)。

Abstract

摘要

This memo introduces a new set of simple extensions to the Routing Policy Specification Language (RPSL), enabling the language to document routing policies for the IPv6 and multicast address families currently used in the Internet.

本备忘录介绍了路由策略规范语言(RPSL)的一组新的简单扩展,使该语言能够记录目前在互联网中使用的 IPv6 和组播地址族的路由策略。

Table of Contents

目录

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
   2.  Specifying routing policy for different address families . . .  2
       2.1.  Ambiguity Resolution . . . . . . . . . . . . . . . . . .  3
       2.2.  The afi dictionary attribute . . . . . . . . . . . . . .  3
       2.3.  RPSL dictionary extensions . . . . . . . . . . . . . . .  4
       2.4.  IPv6 RPSL types  . . . . . . . . . . . . . . . . . . . .  4
       2.5.  mp-import, mp-export, and mp-default . . . . . . . . . .  4
             2.5.1.  <mp-peering> . . . . . . . . . . . . . . . . . .  6
             2.5.2.  <mp-filter>  . . . . . . . . . . . . . . . . . .  6
             2.5.3.  Policy examples  . . . . . . . . . . . . . . . .  7
   3.  route6 Class . . . . . . . . . . . . . . . . . . . . . . . . .  7
   4.  Updates to existing Classes to support the extensions  . . . .  8
       4.1.  as-set Class . . . . . . . . . . . . . . . . . . . . . .  8
       4.2.  route-set Class  . . . . . . . . . . . . . . . . . . . .  9
          4.3.  filter-set Class . . . . . . . . . . . . . . . . . . . .  9
       4.4.  peering-set Class  . . . . . . . . . . . . . . . . . . .  9
       4.5.  inet-rtr Class . . . . . . . . . . . . . . . . . . . . . 10
       4.6.  rtr-set Class  . . . . . . . . . . . . . . . . . . . . . 11
   5.  RFC 2725 Extensions  . . . . . . . . . . . . . . . . . . . . . 11
       5.1.  Authorization model for route6 Objects . . . . . . . . . 13
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 13
   7.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 14
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 14
       8.1.  Normative References . . . . . . . . . . . . . . . . . . 14
       8.2.  Informative References . . . . . . . . . . . . . . . . . 14
       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 15
       Full Copyright Statement . . . . . . . . . . . . . . . . . . . 16
        
1. Introduction
1. 导言

RFC 2622 [1] defines the RPSL language for the IPv4 unicast routing protocols and provides a series of guidelines for extending the RPSL language itself. Additionally, security extensions to the RPSL language are specified in RFC 2725 [2].

RFC 2622 [1] 为 IPv4 单播路由协议定义了 RPSL 语言,并为扩展 RPSL 语言本身提供了一系列指南。此外,RFC 2725 [2] 还规定了 RPSL 语言的安全扩展。

This document proposes to extend RPSL according to the following goals and requirements:

本文件建议根据以下目标和要求扩展 RPSL:

o Provide RPSL extensibility in the dimension of address families, specifically, to allow users to document routing policy for IPv6 and multicast. o Extensions should be backward compatible with minimal impact on existing tools and processes, following Section 10 of RFC 2622 [1] for guidelines on extending RPSL. o Maintain clarity and non-ambiguity: RPSL information is used by humans in addition to software tools. o Minimize duplication of information, particularly when routing policies for different address families are the same.

o 在地址族方面提供 RPSL 的可扩展性,特别是允许用户记录 IPv6 和组播的路由策略。 o 扩展应向下兼容,对现有工具和流程的影响最小,遵循 RFC 2622 [1] 第 10 节关于扩展 RPSL 的指导原则:o 尽量减少信息重复,特别是当不同地址族的路由策略相同时。

The addition of IPv6 and multicast support to RPSL leads to four distinct routing policies that need to be distinguished in this specification, namely, (IPv4 {unicast|multicast}, IPv6 {unicast|multicast}).

在 RPSL 中增加 IPv6 和组播支持后,本规范需要区分四种不同的路由策略,即(IPv4 {单播|组播}、IPv6 {单播|组播})。

2. Specifying Routing Policy for Different Address Families
2. 为不同地址系列指定路由策略

Routing policy is currently specified in the aut-num class using "import:", "export:", and "default:" attributes. Sometimes it is important to distinguish policy for different address families, as well as a unicast routing policy from a multicast one.

路由策略目前在 aut-num 类中使用 "import:"、"export: "和 "default: "属性指定。有时需要区分不同地址族的策略,以及单播路由策略和组播路由策略。

Although the syntax of the existing import, export, and default attributes could be extended, this would present backward compatibility issues and could undermine clarity in the expressions.

虽然现有的导入、导出和默认属性的语法可以扩展,但这将带来向后兼容的问题,并可能影响表达式的清晰度。

Keeping this in mind, the "import:", "export:", and "default:" attributes implicitly specify IPv4 unicast policy and will remain as previously defined in RPSL, and new multi-protocol (prefixed with the string "mp-") attributes will be introduced. These new "mp-" attributes are described below.

考虑到这一点,"import:"、"export: "和 "default: "属性隐含地指定了 IPv4 单播策略,并将保持 RPSL 以前的定义,同时将引入新的多协议(前缀为字符串 "mp-")属性。下文将介绍这些新的 "mp-"属性。

2.1. Ambiguity Resolution
2.1. 模糊解决

The same peering can be covered by more than one multi-protocol policy attribute or by a combination of multi-protocol policy attributes (when specifying IPv4 unicast policy) and the previously defined IPv4 unicast policy attributes. In these cases, implementations should follow the specification-order rule as defined in Section 6.4 of RFC 2622 [1]. To break the ambiguity, the action corresponding to the first peering specification is used.

同一对等互联可由多个多协议策略属性覆盖,或由多协议策略属性(指定 IPv4 单播策略时)和先前定义的 IPv4 单播策略属性组合覆盖。在这些情况下,实施应遵循 RFC 2622 [1] 第 6.4 节中定义的规范顺序规则。为了消除歧义,应使用与第一个对等互联规范相对应的操作。

2.2. The afi Dictionary Attribute
2.2. afi 词典属性

This section introduces a new dictionary attribute:

本节介绍一个新的字典属性:

Address Family Identifier, <afi>, is an RPSL list of address families for which a given routing policy expression should be evaluated. <afi> is optional within the new multi-protocol attributes introduced in the aut-num class. A pseudo identifier named "any" is defined to allow for more compact policy expressions with converged routing policy.

地址族标识符<afi>是地址族的 RPSL 列表,指定路由策略表达式应针对该地址族进行评估。在 aut-num 类别中引入的新多协议属性中,<afi> 是可选的。定义了一个名为 "any "的伪标识符,以便在融合路由策略中使用更紧凑的策略表达式。

The possible values for <afi> are as follows:

<afi> 的可能值如下:

ipv4.unicast ipv4.multicast ipv4 (equivalent to ipv4.unicast, ipv4.multicast) ipv6.unicast ipv6.multicast ipv6 (equivalent to ipv6.unicast, ipv6.multicast) any (equivalent to ipv4, ipv6) any.unicast (equivalent to ipv4.unicast, ipv6.unicast) any.multicast (equivalent to ipv4.multicast, ipv6.multicast)

ipv4.unicast ipv4.multicast ipv4(等同于 ipv4.unicast、 ipv4.multicast) ipv6.unicast ipv6.multicast ipv6(等同于 ipv6.unicast、 ipv6.multicast) any(等同于 ipv4、 ipv6任何(等同于 ipv4、ipv6) any.unicast (等同于 ipv4.unicast、ipv6.unicast) any.multicast (等同于 ipv4.multicast、ipv6.multicast)

Appearance of these values in an attribute must be preceded by the keyword afi.

在属性中出现这些值时,必须在前面加上关键字 afi。

An <afi-list> is defined as a comma-separated list of one or more afi values.

<afi-list> 被定义为一个或多个 afi 值的逗号分隔列表。

2.3. RPSL Dictionary Extensions
2.3. RPSL 词典扩展

In order to support IPv6 addresses specified with the next-hop rp-attribute, a new predefined dictionary type entitled "ipv6_address" is added to the RPSL dictionary. The definition of this type is taken from Section 2.2 of RFC 3513 [3].

为了支持使用下一跳属性(next-hop rp-attribute)指定的 IPv6 地址,RPSL 字典中新增了一个名为 "ipv6_address "的预定义字典类型。该类型的定义摘自 RFC 3513 第 2.2 节[3]。

The next-hop rp-attribute is expanded in the dictionary as follows:

下一跳 rp 属性在字典中的展开如下:

rp-attribute: # next hop router in a static route next-hop operator=(union ipv4_address, ipv6_address, enum[self])

rp-attribute:# 静态路由中的下一跳路由器 next-hop operator=(union ipv4_address, ipv6_address, enum[self])

A new value has been added for the <protocol> dictionary specification: MPBGP

为 <protocol> 字典规范添加了一个新值:MPBGP

MPBGP is understood to be BGP4 with multi-protocol extensions (often referred to as BGP4+). BGP4+ could not be used, as the '+' character is not allowed by the RPSL specification in protocol names.

MPBGP 被理解为具有多协议扩展的 BGP4(通常称为 BGP4+)。由于 RPSL 规范不允许在协议名称中使用 "+"字符,因此无法使用 BGP4+。

2.4. IPv6 RPSL Types
2.4. IPv6 RPSL 类型

This document will reference three new IPv6 RPSL types, namely, <ipv6-address>, <ipv6-address-prefix>, and <ipv6-address-prefix-range>. The <ipv6-address> and <ipv6-address-prefix> types are defined in Sections 2.2 and 2.3 of RFC 3513 [3]. The <ipv6-address-prefix-range> type adds a range operator to the <ipv6-address-prefix> type. The range operator is defined in Section 2 of RFC 2622 [1].

本文档将引用三种新的 IPv6 RPSL 类型,即 <ipv6-address>、<ipv6-address-prefix> 和 <ipv6-address-prefix-range>。RFC 3513 [3] 的第 2.2 和 2.3 节定义了 <ipv6-address> 和 <ipv6-address-prefix> 类型。<ipv6-address-prefix-range> 类型为 <ipv6-address-prefix> 类型添加了范围操作符。RFC 2622 [1] 第 2 节定义了范围操作符。

2.5. mp-import, mp-export, and mp-default
2.5. mp-import, mp-export, 和 mp-default

Three new policy attributes are introduced in the aut-num Class:

aut-num 类中引入了三个新的策略属性:

mp-import: mp-export: mp-default:

mp-import: mp-export: mp-default:

These attributes incorporate the afi (address-family) specification. Note that the afi specification is optional. If no afi specification is present, the policy expression is presumed to apply to all protocol families, namely, ipv4.unicast, ipv4.multicast, ipv6.unicast, and ipv6.multicast. This is the equivalent of the afi specification "afi any". The mp-import and mp-export attributes have both a basic policy specification and a more powerful structured policy specification.

这些属性包含 afi(地址家族)规范。请注意,afi 规范是可选的。如果没有 afi 规范,策略表达式将被假定为适用于所有协议族,即 ipv4.单播、ipv4.组播、ipv6.单播和 ipv6.组播。这相当于 afi 规范中的 "afi any"。mp-import 和 mp-export 属性既有基本策略规范,也有功能更强大的结构化策略规范。

The syntax for the mp-default attribute and the basic policy specification of the mp-import and mp-export attributes is as follows:

mp-default 属性的语法以及 mp-import 和 mp-export 属性的基本策略规范如下:

   Attribute  Value                                         Type
   mp-import  [protocol <protocol-1>] [into <protocol-2>]   optional,
              [afi <afi-list>]                              multi-valued
              from <mp-peering-1> [action <action-1>; ... <action-N>;]
              . . .
              from <mp-peering-M> [action <action-1>; ... <action-N>;]
              accept <mp-filter> [;]
        
   mp-export  [protocol <protocol-1>] [into <protocol-2>]   optional,
              [afi <afi-list>]                              multi-valued
              to <mp-peering-1> [action <action-1>; ... <action-N>;]
              . . .
              to <mp-peering-M> [action <action-1>; ... <action-N>;]
              announce <mp-filter> [;]
        
   mp-default [afi <afi-list>] to <mp-peering>              optional,
              [action <action-1>; ... <action-N>;]          multi-valued
              [networks <mp-filter>]
        

The mp-import and mp-export policies can be structured. As with RFC 2622 [1], structured policies are recommended only to advanced RPSL users. The mp-import structured policy syntax is defined below. Please note the semicolon at the end of an <import-factor> is mandatory for structured policy expressions, while being optional on non-structured policy expressions. The mp-export structured policy syntax is expressed symmetrically to the mp-import attribute. The structured syntax allows exceptions and refinements to policies by use of the "except" and "refine" keywords. Further, the exceptions and refinements may specify an optional "afi" list to restrict the policy expression to particular address families.

mp-import 和 mp-export 策略可以是结构化的。与 RFC 2622 [1]一样,结构化策略只推荐给高级 RPSL 用户。mp-import 结构化策略语法定义如下。请注意,<import-factor> 结尾的分号对于结构化策略表达式是强制性的,而对于非结构化策略表达式则是可选的。mp-export 结构化策略语法与 mp-import 属性对称表达。结构化语法允许使用 "except "和 "refine "关键字对策略进行例外处理和细化。此外,例外和细化还可指定一个可选的 "afi "列表,将策略表达式限制为特定的地址系列。

Note that the definition allows subsequent or "cascading" refinements and exceptions. RFC 2622 [1] incorrectly refers to these as "nested" expressions. The syntax does not allow true nested expressions.

请注意,该定义允许后续或 "级联 "细化和例外。RFC 2622 [1] 将其称为 "嵌套 "表达式是不正确的。该语法不允许真正的嵌套表达式。

   <import-factor> ::=
        from <mp-peering-1> [action <action-1>; ... <action-M>;]
        . . .
        from <mp-peering-N> [action <action-1>; ... <action-K>;]
        accept <mp-filter>;
        
   <import-term> :: = import-factor |
        {
        <import-factor-1>
        

. . . <import-factor-N> }

.. .<进口系数-N> }

   <import-expression> ::= <import-term> |
        <import-term> EXCEPT <afi-import-expression> |
        <import-term> REFINE <afi-import-expression>
        
   <afi-import-expression> ::= [afi <afi-list>] <import-expression>
        
   mp-import: [protocol <protocol-1>] [into <protocol-2>]
        <afi-import-expression>
        
2.5.1. <mp-peering>
2.5.1. <mp-peering>

<mp-peering> indicates the AS (and the router if present) and is defined as follows:

<mp-peering> 表示 AS(和路由器,如果存在),定义如下:

   <mp-peering> ::= <as-expression> [<mp-router-expression-1>]
                    [at <mp-router-expression-2>] | <peering-set-name>
        

where <as-expression> is an expression over AS numbers and AS sets using operators AND, OR, and EXCEPT, and <mp-router-expression> is an expression over router ipv4-addresses or ipv6-addresses, inet-rtr names, and rtr-set names using operators AND, OR, and EXCEPT. The binary "EXCEPT" operator is the set subtraction operator and has the same precedence as the operator AND (it is semantically equivalent to "AND NOT" combination). That is, "(AS65001 OR AS65002) EXCEPT AS65002" equals "AS65001".

其中,<as-expression> 是使用运算符 AND、OR 和 EXCEPT 对 AS 号和 AS 集的表达式;<mp-router-expression> 是使用运算符 AND、OR 和 EXCEPT 对路由器 ipv4 地址或 ipv6 地址、inet-rtr 名称和 rtr-set 名称的表达式。二进制 "EXCEPT "运算符是集合减法运算符,其优先级与运算符 AND 相同(在语义上等同于 "AND NOT "组合)。也就是说,"(AS65001 OR AS65002)EXCEPT AS65002 "等于 "AS65001"。

2.5.2. <mp-filter>
2.5.2. <mp 过滤器

The <mp-filter> policy filter expression is derived from the RPSL <filter> policy filter expression defined in section 5.4 of RFC 2622 [1]. <mp-filter> extends the <filter> expression to allow the specification of IPv6 prefixes and prefix ranges. In particular, an Address-Prefix Set expression in an <mp-filter> expression may include both IPv4 and IPv6 prefixes or prefix ranges. <mp-filter> is otherwise identical to the RPSL <filter> expression. Address-Prefix Sets are enclosed in braces, '{' and '}'. The policy filter matches the set of routes whose destination address-prefix is in the set. For example:

<mp-filter> 策略过滤器表达式源自 RFC 2622 [1] 第 5.4 节中定义的 RPSL <filter> 策略过滤器表达式。<mp-filter> 扩展了 <filter> 表达式,允许指定 IPv6 前缀和前缀范围。特别是,<mp-filter> 表达式中的地址-前缀集表达式可以同时包含 IPv4 和 IPv6 前缀或前缀范围。<mp-filter> 在其他方面与 RPSL <filter> 表达式相同。地址-前缀集用大括号"{"和"}"括起来。策略过滤器匹配目标地址前缀在该集合中的路由集。例如

      { 192.0.2.0/24, 2001:0DB8::/32 }
      { 2001:0DB8:0100::/48^+, 2001:0DB8:0200::/48^64 }
        
2.5.3. Policy Examples
2.5.3. 政策范例

The address family may be specified in subsequent refine or except policy expressions and is valid only within the policy expression that contains it.

地址族可在后续的细化或例外策略表达式中指定,并且仅在包含该地址族的策略表达式中有效。

Therefore, in the example

因此,在示例中

   aut-num:    AS65534
   mp-import: afi any.unicast from AS65001 accept as-foo;
                except afi any.unicast {
                  from AS65002 accept AS65226;
                } except afi ipv6.unicast {
                    from AS65003 accept {2001:0DB8::/32};
                  }
        

the last "except" is evaluated only for the IPv6 unicast address family, while other import-expressions are evaluated for both the IPv6 and IPv4 unicast address families.

最后一个 "except "只对 IPv6 单播地址系列进行评估,而其他导入表达式则同时对 IPv6 和 IPv4 单播地址系列进行评估。

The evaluation of a policy expression is done by evaluating each of its components. Evaluation of peering-sets and filter-sets is constrained by the address family. Such constraints may result in a "NOT ANY" <mp-filter> or invalid <mp-peering> depending on implicit or explicit definitions of the address family in the set. Conflicts with explicit or implicit declarations are resolved at runtime during the evaluation of a policy expression. An RPSL evaluation implementation may wish to issue a warning in the case of a "NOT ANY" <mp-filter>. The following mp-import policy contains an example of an <mp-filter> that should be evaluated as "NOT ANY":

策略表达式的评估是通过评估其每个组件来完成的。对等互联集和过滤集的评估受地址族限制。这种限制可能会导致 "NOT ANY"<mp-filter>或无效的<mp-peering>,具体取决于集合中地址族的隐式或显式定义。与显式或隐式声明的冲突将在运行时对策略表达式进行评估时解决。RPSL 评估实现可能希望在出现 "NOT ANY"<mp-filter>时发出警告。下面的 mp-import 策略包含一个应被评估为 "NOT ANY "的 <mp-filter> 的示例:

   aut-num: AS65002
   mp-import: afi ipv6.unicast from AS65001 accept {192.0.2.0/24}
        
3. route6 Class
3. 路由6 级

The route6 class is the IPv6 equivalent of the route class. As with the route class, the class key for the route6 class is specified by the route6 and origin attribute pair. Other than the route6 attribute, the route6 class shares the same attribute names with the route class. Although the attribute names remain identical, the inject, components, exports-comps, holes, and mnt-routes attributes must specify IPv6 prefixes and addresses rather than IPv4 prefixes and addresses. This requirement is reflected by the specification of <ipv6-router-expression>, <ipv6-filter>, and <ipv6-address-prefix> below. <ipv6-address-prefix> has been previously defined. <ipv6- filter> is related to <mp-filter> as defined above in Section 2.5.2, with the exception that only <ipv6-address-prefix> types are permitted. Similarly, <ipv6-router-expression> is related to <mp-router-expression> as defined above in Section 2.5.1 with the exception that only <ipv6-address> types are permitted.

route6 类别相当于 IPv6 的路由类别。与路由类一样,route6 类的类键由 route6 和 origin 属性对指定。除 route6 属性外,route6 类与路由类共享相同的属性名。虽然属性名称相同,但 inject、components、exports-comps、holes 和 mnt-routes 属性必须指定 IPv6 前缀和地址,而不是 IPv4 前缀和地址。这一要求反映在下面的 <ipv6-router-expression>、<ipv6-filter> 和 <ipv6-address-prefix> 的规范中。<ipv6-address-prefix> 此前已定义。<ipv6- filter> 与第 2.5.2 节中定义的 <mp-filter> 有关,但只允许使用 <ipv6-address-prefix> 类型。同样,<ipv6-router-expression> 与第 2.5.1 节中定义的 <mp-router-expression> 有关,但只允许使用 <ipv6-address> 类型。

Attribute     Value                             Type
route6        <ipv6-address-prefix>             mandatory, class key,
                                                single-valued
origin        <as-number>                       mandatory, class key,
                                                single-valued
member-of     list of <route-set-name>          optional, multi-valued
inject        [at <ipv6-router-expression>] ... optional, multi-valued
              [action <action>]
              [upon <condition>]
components    [ATOMIC] [[<ipv6-filter>]         optional, single-valued
              [protocol <protocol> <ipv6-filter> ...]]
aggr-bndry    <as-expression>                   optional, single-valued
aggr-mtd      inbound or outbound               optional, single-valued
              [<as-expression>]
export-comps  <ipv6-filter>                     optional, single-valued
holes         list of <ipv6-address-prefix>     optional, multi-valued
mnt-lower     list of <mntner-name>             optional, multi-valued
mnt-routes    list of <mntner-name>             optional, multi-valued
              [{list of <ipv6-address-prefix-range>} or ANY]
        

Example:

例如

   route6:   2001:0DB8::/32
   origin:   AS65001
        
4. Updates to Existing Classes to Support the Extensions
4. 更新现有类以支持扩展功能
4.1. as-set Class
4.1. as-set 类

The as-set class defines a set of Autonomous Systems (AS), specified either directly by listing them in the members attribute or indirectly by referring to another as-set or using the mbrs-by-ref facility. More importantly, "In a context that expects a route set (e.g., members attribute of the route-set class), [...] an as-set AS-X defines the set of routes that are originated by the ASes in AS-X", (section 5.3 of RFC 2622 [1]).

as-set 类定义了一组自治系统(AS),可以通过在 members 属性中列出它们来直接指定,也可以通过引用另一个 as-set 或使用 mbrs-by-ref 工具来间接指定。更重要的是,"在期望路由集(如路由集类的成员属性)的上下文中,[...]as-set AS-X 定义了由 AS-X 中的 AS 发起的路由集"(RFC 2622 [1] 第 5.3 节)。

The as-set class is therefore used to collect a set of route prefixes, which may be restricted to a specific address family.

因此,as-set 类用于收集一组路由前缀,这些路由前缀可能仅限于特定的地址族。

The existing as-set class does not need any modifications. The evaluation of the class must be filtered to obtain prefixes belonging to a particular address family using the traditional filtering mechanism in use in Internet Routing Registry (IRR) systems today.

现有的 as-set 类别不需要做任何修改。必须对该类的评估进行过滤,以便使用目前互联网路由注册(IRR)系统中使用的传统过滤机制,获取属于特定地址族的前缀。

4.2. route-set Class
4.2. 路由设置类

This class is used to specify a set of route prefixes.

该类用于指定一组路由前缀。

A new attribute "mp-members:" is defined for this class. This attribute allows the specification of IPv4 or IPv6 address-prefix-ranges.

为该类定义了一个新属性 "mp-members:"。该属性允许指定 IPv4 或 IPv6 地址前缀范围。

Attribute   Value                                 Type
mp-members  list of (<ipv4-address-prefix-range>  optional, multi-valued
            or <ipv6-address-prefix-range>
            or <route-set-name>
            or <route-set-name><range-operator>)
        

Example:

例如

route-set:  rs-foo
mp-members: rs-bar
mp-members: 2001:0DB8::/32  # v6 member
mp-members: 192.0.2.0/24   # v4 member
        
4.3. filter-set Class
4.3. 过滤器设置类

The new "mp-filter:" attribute defines the set's policy filter. A policy filter is a logical expression that when applied to a set of routes returns a subset of these routes. The relevant parts of the updated filter-set class are shown below:

新的 "mp-filter: "属性定义了路由集的策略过滤器。策略过滤器是一个逻辑表达式,当应用于一组路由时,会返回这些路由的一个子集。更新后的过滤器集类的相关部分如下所示:

   Attribute   Value                Type
   filter-set  <object-name>        mandatory, single-valued, class key
   filter      <filter>             optional, single-valued
   mp-filter   <mp-filter>          optional, single-valued
        

Where <mp-filter> is defined above in Section 2.5.2. While the "filter:" and "mp-filter:" attributes are of type "optional", a filter-set must contain one of these two attributes. Implementations should reject instances where both attributes are defined in an object, as the interpretation of such a filter-set is undefined.

其中,<mp-filter> 的定义见第 2.5.2 节。虽然 "filter: "和 "mp-filter: "属性的类型是 "可选",但一个过滤器组必须包含这两个属性中的一个。如果在一个对象中同时定义了这两个属性,那么实现时应拒绝接受这种情况,因为这种过滤集的解释是未定义的。

4.4. peering-set Class
4.4. 对等集类别

The peering set class is updated with a "mp-peering:" attribute.

使用 "mp-peering: "属性更新对等互联集类别。

Attribute Value Type peering-set <object-name> mandatory, single-valued, class key peering <peering> optional, multi-valued mp-peering <mp-peering> optional, multi-valued Example:

属性值类型 peering-set <对象名> 必选,单值,类键 peering <对等互联> 可选,多值 mp-peering <对等互联> 可选,多值 例

   peering-set:   prng-ebgp-peers
   mp-peering:    AS65002 2001:0DB8::1 at 2001:0DB8::2
        

With <mp-peering> defined as above in Section 2.5.1. While the "peering:" and "mp-peering:" attributes are of type "optional", a peering-set must contain at least one of these two attributes.

与第 2.5.1 节中定义的 <mp-peering> 相同。虽然 "peering: "和 "mp-peering: "属性的类型为 "可选",但对等互联集合必须至少包含这两个属性中的一个。

4.5. inet-rtr Class
4.5. inet-rtr 级

Two new attributes are introduced to the inet-rtr class -- "interface:", which allows the definition of generic interfaces, including the information previously contained in the "ifaddr:" attribute, as well as support for tunnel definitions; and "mp-peer:", which includes and extends the functionality of the existing "peer:" attribute. The syntax definition for the "interface:" attribute follows:

inet-rtr 类引入了两个新属性--"interface:",它允许定义通用接口,包括以前包含在 "ifaddr: "属性中的信息,并支持隧道定义;以及 "mp-peer:",它包括并扩展了现有 "peer: "属性的功能。接口: "属性的语法定义如下:

   Attribute  Value                               Type
   interface  <ipv4-address> or <ipv6-address>    optional, multi-valued
              masklen <mask>
              [action <action>]
              [tunnel <remote-endpoint-address>,<encapsulation>]
        

The syntax allows native IPv4 and IPv6 interface definitions, as well as the definition of tunnels as virtual interfaces. Without the optional tunnel definition, this attribute allows the same functionality as the "ifaddr:" attribute but extends it to allow IPv6 addresses.

该语法允许本地 IPv4 和 IPv6 接口定义,也允许将隧道定义为虚拟接口。在没有可选隧道定义的情况下,该属性的功能与 "ifaddr: "属性相同,但允许扩展到 IPv6 地址。

If the interface is a tunnel, the syntax is as follows:

如果接口是隧道,语法如下:

<remote-endpoint-address> indicates the IPv4 or IPv6 address of the remote endpoint of the tunnel. The address family must match that of the local endpoint. <encapsulation> denotes the encapsulation used in the tunnel and is one of {GRE,IPinIP} (note that the outer and inner IP protocol versions can be deduced from the interface context -- for example, IPv6-in-IPv4 encapsulation is just IPinIP). Routing policies for these routers should be described in the appropriate classes (e.g., aut-num).

<remote-endpoint-address> 表示隧道远程端点的 IPv4 或 IPv6 地址。地址族必须与本地端点的地址族一致。<封装>表示隧道中使用的封装,是{GRE,IPinIP}中的一种(注意,外部和内部 IP 协议版本可从接口上下文中推断,例如,IPv6-in-IPv4 封装就是 IPinIP)。这些路由器的路由策略应在适当的类别(如 aut-num)中描述。

The "mp-peer:" attribute is defined below. The difference between this attribute and the "peer:" attribute is the inclusion of support for IPv6 addresses.

mp-peer:" 属性定义如下。该属性与 "peer: "属性的区别在于加入了对 IPv6 地址的支持。

   Attribute  Value                                     Type
   mp-peer    <protocol> <ipv4-address> <options>  or   optional,
              <protocol> <ipv6-address> <options>  or   multi-valued
              <protocol> <inet-rtr-name> <options> or
              <protocol> <rtr-set-name> <options>  or
              <protocol> <peering-set-name> <options>
        

where <protocol> is a protocol name, and <options> is a comma-separated list of peering options for <protocol>, as provided in the RPSL dictionary.

其中 <protocol> 是协议名称,<options> 是 RPSL 字典中提供的以逗号分隔的 <protocol> 对等互联选项列表。

4.6. rtr-set Class
4.6. rtr-set 类

The rtr-set class is extended with a new attribute, "mp-members:". This attribute extends the original "members:" attribute by allowing the specification of IPv6 addresses. It is defined as follows:

rtr-set 类扩展了一个新属性 "mp-members:"。该属性扩展了原有的 "members: "属性,允许指定 IPv6 地址。其定义如下

   Attribute   Value                             Type
   mp-members  list of (<inet-rtr-name> or       optional, multi-valued
               <rtr-set-name> or
               <ipv4-address> or
               <ipv6-address>)
        
5. RFC 2725 Extensions
5. RFC 2725 扩展

RFC 2725 [2] introduces an authorization model to address the integrity of policy expressed in routing registries. Two new attributes were defined to support this authorization model: the "mnt-routes" and "mnt-lower" attributes.

RFC 2725 [2] 引入了一个授权模型,以解决路由注册表中表达的策略的完整性问题。为支持这一授权模型,定义了两个新属性:"mnt-routes "和 "mnt-lower "属性。

In RPSLng, these attributes are extended to the route6 and inet6num (described below) classes. Further, the syntax of the existing mnt-routes attribute is modified to allow the optional specification of IPv6 prefix range lists when present in inet6num, route6, and aut-num class objects. This optional list of prefix ranges is a comma-separated list enclosed in curly braces. In the aut-num class, the IPv6 prefix ranges may be mixed with IPv4 prefix ranges. The keyword "ANY" may also be used instead of prefix ranges. In the case of inet6num and route6 objects, "ANY" refers to all more specifics of the prefix in the class key field. For the aut-num class, "ANY" literally means any prefix. The default when no additional set items are specified is "ANY". An abbreviated definition of the aut-num class with the updated syntax for the mnt-routes attribute is presented below.

在 RPSLng 中,这些属性被扩展到 route6 和 inet6num(如下所述)类。此外,还修改了现有 mnt-routes 属性的语法,以允许在 inet6num、route6 和 aut-num 类对象中指定 IPv6 前缀范围列表。可选的前缀范围列表是一个用逗号分隔的列表,并用大括号括起来。在 aut-num 类中,IPv6 前缀范围可与 IPv4 前缀范围混合使用。也可以使用关键字 "ANY "代替前缀范围。对于 inet6num 和 route6 对象,"ANY "指的是类关键字段中前缀的所有详细信息。对于 aut-num 类,"ANY "字面意思是任何前缀。未指定其他设置项时,默认值为 "ANY"。下面是 aut-num 类的简短定义和 mnt-routes 属性的更新语法。

Attribute     Value                             Type
aut-num       <as-number>                       mandatory, class key,
                                                single-valued
mnt-routes    list of <mntner-name>             optional, multi-valued
              [{list of (<ipv6-address-prefix-range> or
                         <ipv4-address-prefix-range>)} or ANY]
        

The following is an example of mnt-routes usage. This example authorizes MAINT-65001 to create route6 objects with an origin AS of 65002 for IPv6 address prefixes within the 2001:0DB8::/32^+ range, and route objects with origin AS 65002 for IPv4 prefixes within the 192.0.2.0/24^+ range.

下面是一个 mnt-routes 使用示例。该示例授权 MAINT-65001 为 2001:0DB8::/32^+ 范围内的 IPv6 地址前缀创建 origin AS 为 65002 的 route6 对象,为 192.0.2.0/24^+ 范围内的 IPv4 前缀创建 origin AS 为 65002 的 route 对象。

   aut-num: AS65002
   mnt-routes: MAINT-AS65001 {2001:0DB8::/32^+, 192.0.2.0/24^+}
        

Note, that the inclusion of IPv6 prefix ranges within a mnt-routes attribute in an aut-num object may conflict with existing implementations of RPSL that support only IPv4 prefix ranges. However, given the perceived lack of implementation of this optional prefix range list, it was considered more acceptable to extend the existing definition of the mnt-routes attribute in the aut-num class rather than to create a new attribute type.

请注意,在 aut-num 对象的 mnt-routes 属性中包含 IPv6 前缀范围,可能会与仅支持 IPv4 前缀范围的现有 RPSL 实现发生冲突。不过,考虑到这种可选前缀范围列表缺乏实施,我们认为扩展 aut-num 类中 mnt-routes 属性的现有定义比创建新的属性类型更容易接受。

   Attribute     Value                    Type
   inet6num      <ipv6-address-prefix>    mandatory, single-valued,
                                          class key
   netname       <netname>                mandatory, single-valued
   descr         <free-form>              mandatory, multi-valued
   country       <country-code>           mandatory, multi-valued
   admin-c       <nic-handle>             mandatory, multi-valued
   tech-c        <nic-handle>             mandatory, multi-valued
   remarks       <free-form>              optional, multi-valued
   notify        <email-address>          optional, multi-valued
   mnt-lower     list of <mntner-name>    optional, multi-valued
   mnt-routes    list of <mntner-name>    optional, multi-valued
                 [{list of <ipv6-address-prefix-range>} or ANY]
   mnt-by        list of <mntner-name>    mandatory, multi-valued
   changed       <email-address> <date>   mandatory, multi-valued
   source        <registry-name>          mandatory, single-valued
        

The <country-code> must be a valid two-letter ISO 3166 country code identifier. <netname> is a symbolic name for the specified IPv6 address space. It does not have a restriction on RPSL reserved prefixes. These definitions are taken from the RIPE Database Reference Manual [4].

<country-code> 必须是有效的双字母 ISO 3166 国家代码标识符。<netname> 是指定 IPv6 地址空间的符号名称。它对 RPSL 保留前缀没有限制。这些定义摘自《RIPE 数据库参考手册》[4]。

5.1. Authorization Model for route6 Objects
5.1. 路由 6 对象的授权模式

Deletion and update of a route6 object is not different from other objects, as defined in RFC 2725 [2]. Creation rules of a route6 object is replicated here from the corresponding rules for route object in RFC 2725 [2] section 9.9.

根据 RFC 2725 [2] 的定义,route6 对象的删除和更新与其他对象并无不同。路由 6 对象的创建规则与 RFC 2725 [2] 第 9.9 节中路由对象的相应规则相同。

When a route6 object is added, the submission must satisfy two authentication criteria. It must match the authentication specified in the aut-num object and that specified in either a route6 object or, if no applicable route6 object is found, an inet6num object.

添加路由 6 对象时,提交必须满足两个身份验证条件。它必须与 aut-num 对象中指定的认证和 route6 对象中指定的认证相匹配,如果找不到适用的 route6 对象,则必须与 inet6num 对象中指定的认证相匹配。

An addition is submitted with an AS number and IPv6 prefix as its key. If the aut-num object does not exist on a route6 to add, then the addition is rejected. If the aut-num exists, then the submission is checked against the applicable maintainers. A search is then done for the prefix, looking first for an exact match and then, failing that, for the longest prefix match less specific than the prefix specified. If this search succeeds, it will return one or more route6 objects. The submission must match an applicable maintainer in at least one of these route6 objects for the addition to succeed. If the search for a route6 object fails, then a search is performed for an inet6num object that exactly matches the prefix, or for the most specific inet6num less specific than the route6 object submission.

提交的添加内容以 AS 号和 IPv6 前缀为关键字。如果要添加的路由 6 上不存在 aut-num 对象,则添加将被拒绝。如果 aut-num 存在,则会根据适用的维护者对提交内容进行检查。然后对前缀进行搜索,首先查找完全匹配的前缀,如果不匹配,则查找比指定前缀更不特定的最长前缀匹配。如果搜索成功,将返回一个或多个 route6 对象。提交的内容必须至少与其中一个 route6 对象中的适用维护者匹配,添加才能成功。如果路由 6 对象搜索失败,则会搜索与前缀完全匹配的 inet6num 对象,或与提交的路由 6 对象相比不那么具体的最具体的 inet6num。

Once the aut-num and either a list of route6 objects or an inet6num is found, the authorization is taken from these objects. The applicable maintainer object is any referenced by the mnt-routes attributes. If one or more mnt-routes attributes are present in an object, the mnt-by or mnt-lower attributes are not considered. In the absence of a mnt-routes attribute in a given object, the first mnt-lower attributes are used (only if the given object is an inet6num object and it is less specific than the route6 object to be added). If no applicable mnt-lower attribute is found, then the mnt-by attributes are used for that object. The authentication must match one of the authorizations in each of the two objects.

一旦找到 aut-num 和路由 6 对象列表或 inet6num,就会从这些对象中获取授权。适用的维护者对象是由 mnt-routes 属性引用的对象。如果对象中有一个或多个 mnt-routes 属性,则不考虑 mnt-by 或 mnt-lower 属性。如果给定对象中没有 mnt-routes 属性,则会使用第一个 mnt-lower 属性(仅当给定对象是 inet6num 对象,且比要添加的 route6 对象更具体时)。如果找不到适用的 mnt-lower 属性,则使用该对象的 mnt-by 属性。身份验证必须与两个对象中的一个授权相匹配。

6. Security Considerations
6. 安全考虑因素

This document describes extensions to RFC 2622 [1] and RFC 2725 [2]. The extensions address the limitations of the aforementioned documents with respect to IPv6 and multicast. The extensions do not introduce any new security functionality or threats.

本文件描述了 RFC 2622 [1] 和 RFC 2725 [2] 的扩展。这些扩展解决了上述文件在 IPv6 和组播方面的局限性。这些扩展并不引入任何新的安全功能或威胁。

Although the extensions introduce no additional security threats, it should be noted that the original RFC 2622 [1] RPSL standard included several weak and/or vulnerable authentication mechanisms: first, the "MAIL-FROM" scheme, which can be easily defeated via source email address spoofing; second, the "CRYPT-PW" scheme, which is subject to dictionary attacks and password sniffing if RPSL objects are submitted via unencrypted channels such as email; and, finally, the "NONE" mechanism, which offers no protection for objects.

尽管扩展功能没有带来额外的安全威胁,但应注意的是,最初的 RFC 2622 [1] RPSL 标准包括几种薄弱和/或脆弱的验证机制:首先是 "MAIL-FROM "方案,它可以通过欺骗源电子邮件地址轻易破解;其次是 "CRYPT-PW "方案,如果通过电子邮件等未加密渠道提交 RPSL 对象,该方案会受到字典攻击和密码嗅探;最后是 "NONE "机制,它不为对象提供任何保护。

7. Acknowledgements
7. 致谢

The authors wish to thank all the people who have contributed to this document through numerous discussions, particularly Ekaterina Petrusha, for highly valuable discussions and suggestions: Shane Kerr, Engin Gunduz, Marc Blanchet, and David Kessens who participated constructively in many discussions and Cengiz Alaettinoglu, who is still the reference in all things RPSL.

作者衷心感谢通过多次讨论为本文档做出贡献的所有人,特别是叶卡捷琳娜-彼得鲁莎(Ekaterina Petrusha),感谢她提出的宝贵意见和建议:Shane Kerr、Engin Gunduz、Marc Blanchet 和 David Kessens 也建设性地参与了多次讨论。

8. References
8. 参考文献
8.1. Normative References
8.1. 规范性文献

[1] Alaettinoglu, C., Villamizar, C., Gerich, E., Kessens, D., Meyer, D., Bates, T., Karrenberg, D., and M. Terpstra, "Routing Policy Specification Language (RPSL)", RFC 2622, June 1999.

[1] Alaettinoglu, C., Villamizar, C., Gerich, E., Kessens, D., Meyer, D., Bates, T., Karrenberg, D., and M. Terpstra, "Routing Policy Specification Language (RPSL)", RFC 2622, June 1999.

[2] Villamizar, C., Alaettinoglu, C., Meyer, D., and S. Murphy, "Routing Policy System Security", RFC 2725, December 1999.

[2] Villamizar, C., Alaettinoglu, C., Meyer, D., and S. Murphy, "Routing Policy System Security", RFC 2725, December 1999.

[3] Hinden, R. and S. Deering, "Internet Protocol Version 6 (IPv6) Addressing Architecture", RFC 3513, April 2003.

[3] Hinden, R. 和 S. Deering,"互联网协议版本 6 (IPv6) 地址体系结构",RFC 3513,2003 年 4 月。

8.2. Informative References
8.2. 参考性文献

[4] Damas, J. and A. Robachevsky, "RIPE Database Reference Manual", August 2002.

[4] Damas, J. 和 A. Robachevsky,《RIPE 数据库参考手册》,2002 年 8 月。

Authors' Addresses

作者地址

Larry Blunk Merit Network

拉里-布伦克功绩网络

Joao Damas Internet Systems Consortium

若昂-达马斯互联网系统联盟

Florent Parent Hexago

Florent 家长 Hexago

Andrei Robachevsky RIPE NCC

安德烈-罗巴切夫斯基 RIPE NCC

Full Copyright Statement

版权声明全文

Copyright (C) The Internet Society (2005).

版权所有 (C) 互联网协会 (2005)。

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

本文件受 BCP 78 中所载权利、许可和限制的约束,除其中规定外,作者保留其所有权利。

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

本文档和其中包含的信息按 "原样 "提供,撰稿人、其所代表或赞助的组织(如有)、互联网协会和互联网工程工作组不作任何保证、明示或默示保证,包括但不限于使用本网站信息不侵犯任何权利的保证或适销性或特定用途适用性的默示保证。

Intellectual Property

知识产权

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

IETF 不对任何知识产权或其他权利的有效性或范围,或可能声称与本文档所述技术的实施或使用有关的权利,或在多大程度上可以或不可以获得此类权利下的任何许可采取任何立场;IETF 也不表示它已作出任何独立努力来确定任何此类权利。有关 RFC 文件中权利的程序信息,请参见 BCP 78 和 BCP 79。

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

向 IETF 秘书处披露的知识产权副本、将提供的任何许可保证,或为本规范的实施者或用户使用此类专有权而试图获得一般许可或授权的结果,均可从 http://www.ietf.org/ipr 的 IETF 在线知识产权库中获取。

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at [email protected].

IETF 邀请任何有关方面提请其注意可能涉及实施本标准所需技术的任何版权、专利或专利申请,或其他专有权利。请将信息发送至 IETF:[email protected]

Acknowledgement

致谢

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC 编辑职能的经费目前由互联网协会提供。