rfc2280.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,619 行 · 第 1/5 页

TXT
1,619
字号






Network Working Group                                     C. Alaettinoglu
Request for Comments: 2280             USC/Information Sciences Institute
Category: Standards Track                                        T. Bates
                                                            Cisco Systems
                                                                E. Gerich
                                                          At Home Network
                                                            D. Karrenberg
                                                                     RIPE
                                                                 D. Meyer
                                                     University of Oregon
                                                              M. Terpstra
                                                             Bay Networks
                                                            C. Villamizar
                                                                      ANS
                                                             January 1998

              Routing Policy Specification Language (RPSL)

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.

Copyright Notice

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

   Table of Contents

   1 Introduction                                                     2
   2 RPSL Names, Reserved Words, and Representation                   3
   3 Contact Information                                              6
     3.1 mntner Class  . . . . . . . . . . . . . . . . . . . . . . .  6
     3.2 person Class  . . . . . . . . . . . . . . . . . . . . . . .  8
     3.3 role Class  . . . . . . . . . . . . . . . . . . . . . . . .  9
   4 route Class                                                     10
   5 Set Classes                                                     12
     5.1 route-set Class . . . . . . . . . . . . . . . . . . . . . . 12
     5.2 as-set Class  . . . . . . . . . . . . . . . . . . . . . . . 14
     5.3 Predefined Set Objects  . . . . . . . . . . . . . . . . . . 15
     5.4 Hierarchical Set Names  . . . . . . . . . . . . . . . . . . 15
   6 aut-num Class                                                   16
     6.1 import Attribute:  Import Policy Specification  . . . . . . 16
       6.1.1 Peering Specification . . . . . . . . . . . . . . . . . 17
       6.1.2 Action Specification  . . . . . . . . . . . . . . . . . 19



Alaettinoglu, et. al.       Standards Track                     [Page 1]

RFC 2280                          RPSL                      January 1998


       6.1.3 Filter Specification  . . . . . . . . . . . . . . . . . 20
       6.1.4 Example Policy Expressions  . . . . . . . . . . . . . . 24
     6.2 export Attribute:  Export Policy Specification  . . . . . . 24
      6.3 Other Routing  Protocols, Multi-Protocol Routing
       Protocols, and Injecting Routes Between Protocols   . . . . . 25
     6.4 Ambiguity Resolution  . . . . . . . . . . . . . . . . . . . 26
     6.5 default Attribute:  Default Policy Specification  . . . . . 28
     6.6 Structured Policy Specification . . . . . . . . . . . . . . 29
   7 dictionary Class                                                33
     7.1 Initial RPSL Dictionary and Example Policy Actions
      and Filters  . . . . . . . . . . . . . . . . . . . . . . . . . 36
   8 Advanced route Class                                            41
     8.1 Specifying Aggregate Routes . . . . . . . . . . . . . . . . 41
       8.1.1 Interaction with policies in aut-num class  . . . . . . 45
       8.1.2 Ambiguity resolution with overlapping aggregates  . . . 46
     8.2 Specifying Static Routes  . . . . . . . . . . . . . . . . . 47
   9 inet-rtr Class                                                  48
   10 Security Considerations                                        49
   11 Acknowledgements                                               50
   A Routing Registry Sites                                          51
   B Authors' Addresses                                              52
   C Full Copyright Statement                                        53

1 Introduction

   This memo is the reference document for the Routing Policy
   Specification Language (RPSL). RPSL allows a network operator to be
   able to specify routing policies at various levels in the Internet
   hierarchy; for example at the Autonomous System (AS) level.  At the
   same time, policies can be specified with sufficient detail in RPSL
   so that low level router configurations can be generated from them.
   RPSL is extensible; new routing protocols and new protocol features
   can be introduced at any time.

   RPSL is a replacement for the current Internet policy specification
   language known as RIPE-181 [4] or RFC-1786 [5].  RIPE-81 [6] was the
   first language deployed in the Internet for specifying routing
   policies.  It was later replaced by RIPE-181 [4].  Through
   operational use of RIPE-181 it has become apparent that certain
   policies cannot be specified and a need for an enhanced and more
   generalized language is needed.  RPSL addresses RIPE-181's
   limitations.









Alaettinoglu, et. al.       Standards Track                     [Page 2]

RFC 2280                          RPSL                      January 1998


   RPSL was designed so that a view of the global routing policy can be
   contained in a single cooperatively maintained distributed database
   to improve the integrity of Internet's routing.  RPSL is not designed
   to be a router configuration language.  RPSL is designed so that
   router configurations can be generated from the description of the
   policy for one autonomous system (aut-num class) combined with the
   description of a router (inet-rtr class), mainly providing router ID,
   autonomous system number of the router, interfaces and peers of the
   router, and combined with a global database mappings from AS sets to
   ASes (as-set class), and from origin ASes and route sets to route
   prefixes (route and route-set classes).  The accurate population of
   the RPSL database can help contribute toward such goals as router
   configurations that protect against accidental (or malicious)
   distribution of inaccurate routing information, verification of
   Internet's routing, and aggregation boundaries beyond a single AS.

   RPSL is object oriented; that is, objects contain pieces of policy
   and administrative information.  These objects are registered in the
   Internet Routing Registry (IRR) by the authorized organizations.  The
   registration process is beyond the scope of this document.  Please
   refer to [1, 15, 2] for more details on the IRR.

   In the following sections, we present the classes that are used to
   define various policy and administrative objects.  The "mntner" class
   defines entities authorized to add, delete and modify a set of
   objects.  The "person" and "role" classes describes technical and
   administrative contact personnel.  Autonomous systems (ASes) are
   specified using the "aut-num" class.  Routes are specified using the
   "route" class.  Sets of ASes and routes can be defined using the
   "as-set" and "route-set" classes.  The "dictionary" class provides
   the extensibility to the language.  The "inet-rtr" class is used to
   specify routers.  Many of these classes were originally defined in
   earlier documents [4, 11, 14, 10, 3] and have all been enhanced.

   This document is self-contained.  However, the reader is encouraged
   to read RIPE-181 [5] and the associated documents [11, 14, 10, 3] as
   they provide significant background as to the motivation and
   underlying principles behind RIPE-181 and consequently, RPSL. For a
   tutorial on RPSL, the reader should read the RPSL applications
   document [2].

2 RPSL Names, Reserved Words, and Representation

   Each class has a set of attributes which store a piece of information
   about the objects of the class.  Attributes can be mandatory or
   optional: A mandatory attribute has to be defined for all objects of





Alaettinoglu, et. al.       Standards Track                     [Page 3]

RFC 2280                          RPSL                      January 1998


   the class; optional attributes can be skipped.  Attributes can also
   be single or multiple valued.  Each object is uniquely identified by
   a set of attributes, referred to as the class "key".

   The value of an attribute has a type.  The following types are most
   widely used.  Note that RPSL is case insensitive and only the
   characters from the ASCII character set can be used.

   <object-name>Many objects in RPSL have a name.  An <object-name>
       is made up of letters, digits, the character underscore "_", and
       the character hyphen "-"; the first character of a name must be a
       letter, and the last character of a name must be a letter or a
       digit.  The following words are reserved by RPSL, and they can
       not be used as names:

             any as-any rs-any peeras
             and or not
             atomic from to at action accept announce except refine
             networks into inbound outbound

       Names starting with certain prefixes are reserved for certain
       object types.  Names starting with "as-" are reserved for as set
       names.  Names starting with "rs-" are reserved for route set
       names.

   <as-number>An AS number x is represented as the string "ASx".  That
       is, the AS 226 is represented as AS226.

   <ipv4-address>An IPv4 address is represented as a sequence of four
       integers in the range from 0 to 255 separated by the character
       dot ".".  For example, 128.9.128.5 represents a valid IPv4
       address.  In the rest of this document, we may refer to IPv4
       addresses as IP addresses.

   <address-prefix>An address prefix is represented as an IPv4
       address followed by the character slash "/" followed by an
       integer in the range from 0 to 32.  The following are valid
       address prefixes: 128.9.128.5/32, 128.9.0.0/16, 0.0.0.0/0; and
       the following address prefixes are invalid: 0/0, 128.9/16 since 0
       or 128.9 are not strings containing four integers.

   <address-prefix-range>An address prefix range is an address
       prefix followed by one of the following range operators:








Alaettinoglu, et. al.       Standards Track                     [Page 4]

RFC 2280                          RPSL                      January 1998


       ^- is the exclusive more specifics operator; it stands
           for the more specifics of the address prefix excluding the
           address prefix itself.  For example, 128.9.0.0/16^- contains
           all the more specifics of 128.9.0.0/16 excluding
           128.9.0.0/16.

       ^+ is the inclusive more specifics operator; it stands
           for the more specifics of the address prefix including the
           address prefix itself.  For example, 5.0.0.0/8^+ contains all
           the more specifics of 5.0.0.0/8 including 5.0.0.0/8.

       ^n where n is an integer, stands for all the length n specifics
           of the address prefix.  For example, 30.0.0.0/8^16 contains
           all the more specifics of 30.0.0.0/8 which are of length 16
           such as 30.9.0.0/16.

       ^n-m where n and m are integers, stands for all the length n to
           length m specifics of the address prefix.  For example,
           30.0.0.0/8^24-32 contains all the more specifics of
           30.0.0.0/8 which are of length 24 to 32 such as 30.9.9.96/28.

       Range operators can also be applied to address prefix sets.  In
       this case, they distribute over the members of the set.  For
       example, for a route-set (defined later) rs-foo, rs-foo^+
       contains all the inclusive more specifics of all the prefixes in
       rs-foo.

   <date>A date is represented as an eight digit integer of the
       form YYYYMMDD where YYYY represents the year, MM represents the
       month of the year (01 through 12), and DD represents the day of
       the month (01 through 31).  For example, June 24, 1996 is
       represented as 19960624.

   <email-address>is as described in RFC-822[8].

   <dns-name>is as described in RFC-1034[16].

   <nic-handle>is a uniquely assigned identifier[13] used by routing,
       address allocation, and other registries to unambiguously refer
       to contact information.  person and role classes map NIC handles
       to actual person names, and contact information.

   <free-form>is a sequence of ASCII characters.

   <X-name>is a name of an object of type X. That is <mntner-name>
       is a name of a mntner object.





Alaettinoglu, et. al.       Standards Track                     [Page 5]

RFC 2280                          RPSL                      January 1998


   <registry-name>is a name of an IRR registry.  The routing
       registries are listed in Appendix A.

   A value of an attribute may also be a list of one of these types.  A
   list is represented by separating the list members by commas ",".
   For example, "AS1, AS2, AS3, AS4" is a list of AS numbers.  Note that
   being list valued and being multiple valued are orthogonal.  A
   multiple valued attribute has more than one value, each of which may
   or may not be a list.  On the other hand a single valued attribute
   may have a list value.

   An RPSL object is textually represented as a list of attribute-value
   pairs.  Each attribute-value pair is written on a separate line.  The
   attribute name starts at column 0, followed by character ":" and
   followed by the value of the attribute.  The object's representation
   ends when a blank line is encountered.  An attribute's value can be
   split over multiple lines, by starting the continuation lines with a
   white-space (" " or tab) character.  The order of attribute-value
   pairs is significant.

   An object's description may contain comments.  A comment can be
   anywhere in an object's definition, it starts at the first "#"
   character on a line and ends at the first end-of-line character.
   White space characters can be used to improve readability.

3 Contact Information

   The mntner, person and role classes, admin-c, tech-c, mnt-by,
   changed, and source attributes of all classes describe contact
   information.  The mntner class also specifies what entities can
   create, delete and update other objects.  These classes do not
   specify routing policies and each registry may have different or
   additional requirements on them.  Here we present the common
   denominator for completeness which is the RIPE database
   implementation[15].  Please consult your routing registry for the
   latest specification of these classes and attributes.

3.1 mntner Class

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?