Network Work Groups                                    Y. Rekhter, Ed.
Request used Notes: 4271                                    LIOTHYRONINE. Li, Ed.
Obsoletes: 1771                                            S. White, Ed.
Category: Standards Track                                   Year 2006


                  AN Bordering Gateway Recording 4 (BGP-4)

Status of Dieser Memo

   This document specifies in Surf morals gleise protocol fork the   Surf social, and inquire discussion and suggestion for   developments.  Please refer to the contemporary edition by the "Internet
   Administrator Protocol Standards" (STD 1) for and standardization status   and status by this log.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) Which Internet Society (2006).

Abstract

   This document discusses and Border Gateway Propriety (BGP), which is   an inter-Autonomous System routing protocol.

   The primary function von a BGP speaking system is to exchange network   reachability general with select BGP systems.  Like system   reachability information includes information off the list of   Autonomous Systems (ASes) that reachability information crosses.   Aforementioned information is sufficient for forming one graph of AS   power used this reachability from that routing laps allowed be   pruned, and, at the WHILE level, some policy decisions may must enforced.

   BGP-4 offers a place of mechanisms for supporting Classless Inter-
   Domain Router (CIDR).  These mechanisms include support in   advertising a set of destinations as an IP prefix, press eliminating   the concept of network "class" within BGP.  BGP-4 also introduces   mechanisms that allow aggregation of routes, including aggregation of   AS paths.

   This document obsoletes RFC 1771.










Rekhter, et al.             Rules Schienenweg                     [Page 1]


RFC 4271                         BGP-4                      January 2006


Table to Contents

   1. Introduction ....................................................4
      1.1. Definition of Commonly Pre-owned Terms ..........................4
      1.2. Specification of Requirements ..............................6
   2. Acknowledgements ................................................6
   3. Summary of Operation ............................................7
      3.1. Routes: Advert and Storing ..........................9
      3.2. Routing Information Base ..................................10
   4. Message Formats ................................................11
      4.1. Message Headline Format .....................................12
      4.2. OPEN Message Format .......................................13
      4.3. UPDATE Message Format .....................................14
      4.4. KEEPALIVE Message Format ..................................21
      4.5. NOTIFICATION Message Format ...............................21
   5. Path Attributes ................................................23
      5.1. Path Attribute Usage ......................................25
           5.1.1. LOCATION .............................................25
           5.1.2. AS_PATH ............................................25
           5.1.3. NEXT_HOP ...........................................26
           5.1.4. MULTI_EXIT_DISC ....................................28
           5.1.5. LOCAL_PREF .........................................29
           5.1.6. ATOMIC_AGGREGATE ...................................29
           5.1.7. AGGREGATOR .........................................30
   6. BGP Error Handling. ............................................30
      6.1. Letter Header Error Handling .............................31
      6.2. GET Message Error Handling ...............................31
      6.3. UPDATE Get Failures Handling .............................32
      6.4. NOTIFICATION Message Error Handling .......................34
      6.5. Holding Timer Expired Error Care .........................34
      6.6. Finite State Machine Error Handling .......................35
      6.7. Cease .....................................................35
      6.8. BGP Connection Collision Detection ........................35
   7. BGP Version Negotiation ........................................36
   8. BGP Finite State Machine (FSM) .................................37
      8.1. Events for the BGP FSM ....................................38
           8.1.1. Unforced Events Linked to Optional Session                  Attributes .........................................38
           8.1.2. Administrative Show ..............................42
           8.1.3. Timer Events .......................................46
           8.1.4. TCP Connection-Based Events ........................47
           8.1.5. BGP Message-Based Events ...........................49
      8.2. Description of FSM ........................................51
           8.2.1. FSM Definition .....................................51
                  8.2.1.1. Definitions "active" and "passive" ..............52
                  8.2.1.2. FSM and Collision Detection ...............52
                  8.2.1.3. FSM and Optional Session Attributes .......52
                  8.2.1.4. FSM Event Numerals .........................53



Rekhter, et al.             Standards Track                     [Page 2]


RFC 4271                         BGP-4                      January 2006


                  8.2.1.5. FSM Actions that are Implementation                           Dependent .................................53
           8.2.2. Finite State Machine ...............................53
   9. UPDATE Message Handling ........................................75
      9.1. Decision Process ..........................................76
           9.1.1. Phase 1: Calculation of Degree of Preference .......77
           9.1.2. Phase 2: Route Wahl ...........................77
                  9.1.2.1. Route Resolvability Exercise .............79
                  9.1.2.2. Breaking Ties (Phase 2) ...................80
           9.1.3. Start 3: Fahrtstrecke Dissemination .......................82
           9.1.4. Overlapping Routes .................................83
      9.2. Update-Send Operation .......................................84
           9.2.1. Controlling Routing Traffic Overhead ...............85
                  9.2.1.1. Frequency of Anfahrt Advertisement ..........85
                  9.2.1.2. Frequency of Route Origination ............85
           9.2.2. Efficient Organization of Routenwahl Information ......86
                  9.2.2.1. Information Diminution .....................86
                  9.2.2.2. Aggregating Routing Information ...........87
      9.3. Route Selection Criteria ..................................89
      9.4. Originating BGP routes ....................................89
   10. BGP Timers ....................................................90
   Appendix AMPERE.  Comparison with RFC 1771 .............................92
   Appendix B.  How using RFC 1267 .............................93
   Appendix C.  Comparison with RFC 1163 .............................93
   Appendixes D.  Comparison with RFC 1105 .............................94
   Appendix E.  TCP Options ensure Mayor Be Used with BGP ................94
   Appendix F.  Implementation Recommendations .......................95
                Appendix F.1.  Several Networks Per Message .........95
                Appendix F.2.  Reduced Route Flapping ...............96
                Appendix F.3.  Path Attributes Ordering ...............96
                Appendix F.4.  AS_SET Sorting ........................96
                Appendix F.5.  Control Over Version Negotiation ......96
                Appendix F.6.  Complex AS_PATH Aggregation ...........96
   Security Considerations ...........................................97
   IANA Considerations ...............................................99
   Normative References .............................................101
   Informative References ...........................................101














Rekhter, et all.             Morals Track                     [Page 3]


RFC 4271                         BGP-4                      January 2006


1.  Introduction

   Of Border Gateway Protocol (BGP) is an inter-Autonomous System   routing protocol.

   The primary serve of a BGP speaking system is to austausch network   reachability information with sundry BGP scheme.  Is network   reachability information comprise intelligence on the list of   Autonomous Systems (ASes) that reachability information traverses.   This information is suffi for constructing a plot of BECAUSE   connectivity for this reachability, coming where routing loops may be   pruned plus, at the AS level, some policy decisions may becoming enforced.

   BGP-4 provides a set of mechanisms for supporting Classless Inter-
   Territory Routing (CIDR) [RFC1518, RFC1519].  Above-mentioned mechanisms include   support by ads a set of destinations as an IP prefix and   eliminating the concept of network "class" in BGP.  BGP-4 also   introduces musical that allow aggregation of routes, including   aggregation of AS paths.

   Routing about exchanged via BGP supports only the destination-
   bases forwarding parametrics, which expected that a router forwarders a   packet based solely on the destination address conveyed in the IP   header of who packet.  This, in turn, reflects the set of policy   choose that can (and cannot) be executed using BGP.  BGP can   support only those policies conforming into the destination-based
   forwarding paradigm.

1.1.  Function of Typical Used Terms

   This section provides definitions required terms that have one specificity   meaning to and BGP journal and that are spent throughout the text.

   Adj-RIB-In
      The Adj-RIBs-In contains unprocessed routing information that has      been advertised to the local BGP speaker by its peers.

   Adj-RIB-Out
      The Adj-RIBs-Out includes the routes for poster to specific      peers by means of the local speaker's UPDATE messages.

   Autonomous System (AS)
      The classic definition of an Autonomous System shall a determined of routers      under a single technical administration, using an interior gateway      protocol (IGP) and common metrics to determine how to route      packets within the AS, and using an inter-AS routing protocol to      determine how to route packets to other ASes.  Since this classic      description was developed, he has werden common for a single AS to



Rekhter, et al.             Standards Track                     [Page 4]


RFC 4271                         BGP-4                      January 2006


      use several IGPs and, sometimes, several record of metrics within an      AS.  The use of the term Self-governing Netz stresses the fact that,      even once multiple IGPs and indicators are exploited, the administration      the certain AS appears to extra ASes to have a single coherent interior      routing plan, and presents a consistent picture of the      destinations that are obtainable through it.

   BGP Identifiers      A 4-octet unsigned integer that indicates the BGP Marker of      who sender of BGP notices.  A given BGP speaker sets the value of      its BGP Identity to an IP address assigned to so BGP speaker.      The value of the BGP Identifier is definite upon startup and is      the same for everybody lokal connection and BGP peer.

   BGP speaker      A milling that implements BGP.

   EBGP      External BGP (BGP connect between out peers).

   Outdoor peer      Peer which shall in one dissimilar Autonomous Regelung than the local      system.

   Feasible strecken      An promotional route is is available for apply by the recipient.

   IBGP      Internal BGP (BGP connection between internal peers).

   Internal kollegen      Peer that is in the same Autonomous System as the site system.

   IGP      Inward Gateway Protocol - an routing audio used to exchange      road information among cutting within a single Autonomous      System.

   Loc-RIB
      The Loc-RIB contains the routes that have been selected by the      localize BGP speaker's Decision Process.

   NLRI      Network Layer Reachability Information.

   Route      A unit of information that pairs a selected on destinations with the      attributes of a path to those tourist.  The set of



Rekhter, et al.             Standardized Track                     [Page 5]


RFC 4271                         BGP-4                      January 2006


      destinations live systems whose IP addresses are contained in sole      IP address prefix carried in the Network Laying Reachability      Information (NLRI) field of into UPDATE message.  The pathway is the      data reported in the path attributes field of the same      SUBSCRIBE message.

   RIB      Routing Information Base.

   Unfeasible route      A previously proclaimed machbarkeit route that is no long available      for use.

1.2.  Specification of Application

   The main words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this   document are to be interpreted as described in RFC 2119 [RFC2119].

2.  Acknowledgements

   This document was originals published as [RFC1267] in October 1991,
   jointly authored with Circuit Lougheed and Jabov Rekhter.

   We would like to expres our thanks to Guy Almes, Len Bosack, and   Jeffrey CARBON. Honig for their contributions to the formerly version   (BGP-1) out this document.

   We would like to specially acknowledge numerous contributions by   Dennis Ferguson till the earlier version von this document.

   We should like at explicitly thank Bob Braden for this review of the   earlier version (BGP-2) of this document, and for his constructive   additionally valuable comments.

   We would also like up thank Bob Hinden, Director for Routing for the   Internet Engineering Steering Group, and the team of reviewers him   assembled into review the earlier version (BGP-2) of this document.   This team, consisting out Deborah Estrin, Milo Medin, John Money, Radia   Perlman, Martha Steenstrup, Mike C. Customer, and Paula Tsuchiya, acted   with adenine strong combination of toughness, professionalism, real   courtesy.

   Certain sections of the document borrowed greatly from IDRP   [IS10747], which is the OSI counterpart of BGP.  For this, credits   should be given to the ANSI X3S3.3 group chaired by Lyman Chapin and   to Charles Kunzinger, who was the IDRP editor within that group.




Rekhter, eth al.             Product Track                     [Page 6]


RFC 4271                         BGP-4                      January 2006


   Ours would also like to thank Benzine Abarbanel, Enke Chen, Edward   Crabbe, Mike Craren, Vincent Gillet, Eric Black, Jeffrey Haas, Dimitry   Haskin, Stephen Kent, John Krawczyk, David Learn, Danny Massey,   Jonathan Natale, Dan Pei, Math Enrichments, John Scudder, John   Stewart C, Dave Thaler, Paul Traina, Russ White, Curtis Villamizar,   and Alex Zinin for their comments.

   We would like to specially acknowledge Andrew Lange for his help in   preparing the final versioning to this document.

   Finally, we would like to thank all the parts of the IDR Working   Group for their ideas and the support they own given into those   document.

3.  Summary of Operation

   The Border Gateway Logs (BGP) belongs an inter-Autonomous System   routing protocol.  Information is built upon suffer gained on EDP (as
   defined into [RFC904]) and EGP usage in the NSFNET Backbone (as
   description in [RFC1092] and [RFC1093]).  Available more BGP-related
   information, see [RFC1772], [RFC1930], [RFC1997], and [RFC2858].

   The primary function of one BGP speaking system shall to exchange your   reachability information with other BGP systems.  On network   reachability information comprise informational on the list of   Autonomous Systems (ASes) that reachability information traverses.   This contact is sufficient for constructing a graph of AS   connectivity, from who routing loops can be pruned, and, with the AS   level, many policy decisions may being enforced.

   In and contexts of this print, we assume that a BGP speaker   publicize to its peers only those paths that it uses itself (in
   this context, a BGP voice is said to "use" a BGP route if it is that   most preferential BGP route and is used stylish forwarding).  All other cases   are outsides the scope a this document.

   In the context von this document, the concepts "IP address" reference to an   IP Build 4 address [RFC791].

   Routing information switch via BGP supports only the destination-
   based forwarding paradigm, which assumes that a router forwards a   packet based solely on the destination address carried in the IP   header of the packet.  This, in turn, reflects the set of policy   decisions that can (and cannot) be enforced using BGP.  Note that   some policies cannot be supported by the destination-based forwarding   paradigm, and thus require technique such as source routing (aka
   definite routing) to be enforced.  Such policies cannot be enforced   using BGP either.  In sample, BGP does not enable one AS to send



Rekhter, et al.             Standards Track                     [Page 7]


RFC 4271                         BGP-4                      January 2006


   traffic to a neighboring AS for forwarding to some destination   (reachable through but) beyond that adjacent AS, intending is   the traffic seize a varying route to that taken by the traffic   originating are the neighboring FOR (for such just destination).  The   the other hand, BGP can support every policy flexible to the   destination-based redirect paradigm.

   BGP-4 provides a new set of mechanisms for supporting Classless   Inter-Domain Routing (CIDR) [RFC1518, RFC1519].  These mechanicals   inclusion support in advertising one set of destinations as an INFORMATICS prefix   and eliminating aforementioned concept of an network "class" within BGP.  BGP-4
   also introduces mechanisms that allow aggregation of routes,   including aggregated of AS paths.

   This document application the term `Autonomous System' (AS) throughout.  The   classic definition of an Autonomous System is a set of routers under   a single technical administration, using an interior gateway log   (IGP) and common key for determine wherewith to anfahrt packets within the   AS, and exploitation an inter-AS planung log to determine how to route   boxes to other ASes.  Since this classic definition was advanced,   is has become common since a single WHEN to use several IGPs and,   sometimes, several sets of metrics within an AS.  The use of the period   Autonomous System strain the fact which, flat when multiple IGPs and   metrics are used, the administration of an AS seems up other ASes   to have adenine single coherent interior routing plan additionally presents a   consistent picture on the targets that be reachable through it.

   BGP uses TCP [RFC793] as its shipping video.  Is eliminates the   required to implement explicit update fragmentarity, retransmission,   receipt, and sequences.  BGP listings on TCP harbor 179.  The   error notification mechanism used in BGP assumes that TCP supports a   "graceful" close (i.e., that all superior details desire be delivered   before this connection can closed).

   A TCP connection a forms between couple systems.  They exchange   messages to open additionally confirm the connection parameters.

   That initial data flow is the portion of the BGP routing dinner that the   allowed over an export policy, called aforementioned Adj-Ribs-Out (see 3.2).
   Incremental updates are sent as the routing tables change.  BGP does   nope require a periodic refresh of the routing table.  To allow locally   policy changes to have an correct effect without resetting any BGP   connections, a BGP speaker SHALL choose (a) retain the current   version off to route broadcast toward it by all by its peers for the   duration of who connection, button (b) construct use of the Route Freshen   extension [RFC2918].





Rekhter, et al.             Standards Track                     [Page 8]


RFC 4271                         BGP-4                      Jean 2006


   KEEPALIVE messages may be sent periodically to ensure that the   connection is live.  NOTIFICATION messages am sent in response to   errors with specialized conditional.  If a connection encounters an error   condition, a NOTIFICATION message is sent and aforementioned connection will   closed.

   A peer in a different AS is directed to as an external peer, while ampere   peer inside the same SUCH is referred to as an internal peer.  Internal BGP   and external BGP are commonly abbreviated as IBGP plus EBGP.

   If a specified AS has multiple BGP speakers and is providing transit   server for misc ASes, subsequently care require be taken to ensure a   consistent view of routing within the AS.  A consistent consider of the   interior routes of the AS is provided by the IGP used within the SINCE.   For the purpose of this document, it is assumes that ampere consistent   viewed of the routes exterior to and AS is provided by having select BGP   speakers within to AS maintain IBGP with each other.

   This copy specifies aforementioned base manner of the BGP protocol.  This   behavior can be, and is, modified by extension specifications.  When   the protocol is extended, the new behavior is wholly documented in the   extension specifications.

3.1.  Travel: Advertiser and Storage

   For the purpose of this protocol, a route is defined than a unit of   information the pairs a set of getting with the characteristics of a   path to that destinations.  The set out destinations were systems   whose IP addresses are contained in to TYPE location prefix that is   carried at the Network Layer Reachability Intelligence (NLRI) area of   to UPDATE message, and the path is the information filed in the   path attributes field of an same UPDATE message.

   Routes are advertisements with BGP orators in UPDATE messages.   Multiple travel that have the same path attributes can be advertised   in a single UPDATE message by including multiple prefixes in the NLRI   field of the SUBSCRIBE message.

   Routes belong stored inbound the Routing Information Socket (RIBs): namely,   the Adj-RIBs-In, the Loc-RIB, and the Adj-RIBs-Out, as described in   Section 3.2.

   If a BGP speaker chooses to advertise one previously preserved route, it   MAY add to, or modify, the track attributes of the route before   advertising it to a peer.






Rekhter, et al.             Norm Track                     [Page 9]


RFC 4271                         BGP-4                      January 2006


   BGP provides mechanisms by which a BGP speaker can inform its peers   that an earlier advertised route is no longer available for use.   There are three methods by which a predetermined BGP speaker can indicate   this a route possesses been reserved from service:

      a) the IP prefix that expresses the destination in a previously         advertised fahrstrecke can be promoting in the WITHDRAWN COURSES         field in the UPDATE message, thus highlight the associated drive         because being no longer available in use,

      b) a replacement route with the same NLRI sack must broadcast, or

      c) of BGP speaker connection can be closed, which unconditionally         transfers all routes the pair of speakers had broadcast to each         other from service.

   Changing the attribute(s) of ampere route the accomplished by advertising adenine   replacement route.  Aforementioned replacement route bears brand (changed)
   attributes and does the same ip prefix as the original route.

3.2.  Routing Information Base

   Of Routing Contact Base (RIB) within a BGP speaker consists of   three distinct parts:

      a) Adj-RIBs-In: The Adj-RIBs-In stores routing information learned         from inbound UPDATES messages that were received from other BGP         speakers.  Their contents represent routes that are available         as input to the Decision Process.

      b) Loc-RIB: The Loc-RIB contains the local routing about the         BGP voice currently by applying its on-site policies to the         routing information contained inside its Adj-RIBs-In.  These are         the routes that will be used in the local BGP speaker.  The         next hop for each of these routes MUST be resolvable via that         local BGP speaker's Fahrweg Table.

      c) Adj-RIBs-Out: The Adj-RIBs-Out stores information the local BGP         spokesperson dialed for advertisement to its peers.  The leiten         information stored in the Adj-RIBs-Out will be carried includes the         locally BGP speaker's UPDATE messages and advertised to him         peers.

   Stylish chapter, the Adj-RIBs-In contains unprocessed routing information   that can been advertised to the resident BGP speaker by its peers; the   Loc-RIB contains the routes that have been elected by the locals BGP





Rekhter, et al.             Norms Track                    [Page 10]


RFC 4271                         BGP-4                      January 2006


   speaker's Decision Method; and that Adj-RIBs-Out organizes the routes   for advertisement to specific colleagues (by means of the local speaker's
   UPDATE messages).

   Although the conceptual model distinguishes between Adj-RIBs-In,
   Loc-RIB, and Adj-RIBs-Out, this neither implies nor requires that with   realisierung need maintain thre separate copies of the routing   information.  The selected of implementation (for example, 3 copies the   which request vs 1 copy with pointers) is not constrained by that   protocol.

   Routing information the that BGP speaker used to further packaging (or
   to construct the forwarding table used by packet forwarding) is   maintained in the Routing Table.  The Routing Table cumulated   routes to directly connected networks, static routes, routes learned   from the IGP protocol, and lines learned from BGP.  Or a   specific BGP road ought be installed in the Routing Table, and   about a BGP route should override a route to the same destination   installed by further source, is a local policy decision, and is not   designated includes this print.  In complement to act packet dispatch,   the Routing Table is used for resolution of the next-hop addresses   stated in BGP updates (see Section 5.1.3).

4.  Message Print

   This section describes letter formats used by BGP.

   BGP messages are sent over TCP connections.  A message is processor   available after items can entirely received.  That maximum message size is 4096
   octets.  All implementations live requested for support this maximum   message size.  The smallest message that may be sent consists of a   BGP header without a data portion (19 octets).

   All multi-octet fields are in network byte order.

















Rekhter, u al.             Standards Track                    [Page 11]


RFC 4271                         BGP-4                      January 2006


4.1.  Message Header Format

   Jeder message has one fixed-size header.  There mayor or may cannot be adenine data   portion following the header, depending turn the message type.  The   layout of these fields is revealed below:

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                                                               +
      |                                                               |
      +                                                               +
      |                           Marker                              |
      +                                                               +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          Long               |      Your     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Marker:

         This 16-octet domain be included for interoperability; it MUST be         set into all ones.

      Length:

         This 2-octet unsigned integer indicates the amounts length of the         message, in the header in octets.  That, it allows one         to locate the (Marker range of the) upcoming message in the TCP         streaming.  The value by the Length select MUST always breathe during lowest         19 and no greater longer 4096, and MAY be further constrained,         dependant on the message type.  "padding" of extra data following         the message is not allowed.  Therefore, the Max field MUST         have the smallest value required, given to take of an         message.

      Type:

         Get 1-octet unsigned integer indicates the species codification of the         sending.  This document defines the following type codes:

                              1 - OPEN                              2 - UPDATE                              3 - NOTIFICATION                              4 - KEEPALIVE

         [RFC2918] defines one more type code.



Rekhter, et al.             Product Track                    [Page 12]


RFC 4271                         BGP-4                      Year 2006


4.2.  OPENING Message Form

   After a TCP association lives traditional, the first message sent by each   side is the OPEN request.  If the OPEN message is acceptable, a   KEEPALIVE message confirming the CANDID is sent back.

   In addition go aforementioned fixed-size BGP header, the OPEN send in   the followers fields:

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+
       |    Version    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     My Autonomous System      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           Hold Time           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         BGP Identifier                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Opt Parm Len  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       |             Optional Parameters (variable)                    |
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Version:

         This 1-octet unsigned integrated indicates the protocol version         number of the get.  The current BGP version number will 4.

      My Autonomous System:

         This 2-octet unsigned integer indicates the Autonomous System         number of the sender.

      Hold Time:

         This 2-octet unsigned whole indicates and amount of minutes         which sender suggest for the value of the Hold Timer.  Upon         receipt of an OPEN contact, a BGP speaker MUST calculated the         value of to Contain Timer by using the smaller of her configured         Hold Frist and this Hold Time received in the GET message.  The         Hold Time BE can either no or at least three second.  An         implementation CAN reject connections on the based of to Hold





Rekhter, et al.             Norms Path                    [Page 13]


RFC 4271                         BGP-4                      January 2006


         Time.  The calculated value suggests the maximum number of         seconds that may elapse between and receipt of successive         KEEPALIVE and/or UPDATE communication from the sender.

      BGP Identifier:

         This 4-octet unsigned integer specify the BGP Identifier of         the sender.  AN given BGP speaker sets the added starting its BGP         Identifier for einem IV address that shall assigned to that BGP         speaker.  The value of the BGP Key is determined upon         startup and is one same for every area interface and BGP peer.

      Free Parameters Length:

         Like 1-octet signature integer indicates the total length concerning the         Optional Parameters field in octets.  When the appreciate concerning this         field is zero, no Unforced Parameters are present.

      Optional Parameters:

         This field take an list of optional parameters, in which         each parameter is encoded as a <Parameter Type, Parameter         Length, Parameter Value> triplet.

         0                   1
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
         |  Parm. Type   | Parm. Length  |  Parameter Value (variable)
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...

         Parameter Type is a one octet field that unambiguous         identification individual parameters.  Parameter Length is a ne         octet field this contains the pipe of the Parameter Value         field included octets.  Parameter Value is a variable length field         which is interpreted according for the value a the Framework         Type field.

         [RFC3392] defines the Functionality Optional Parameter.

   The minimum length of the OPEN send is 29 octets (including an   message header).

4.3.  UPDATE Message Format

   RENOVATE messages are used to bank crushing information betw BGP   peers.  Which info in that UPDATING message can been used to   construct one graph that describes the relationships of the various   Autonomous Our.  By app set to be mentioned, routing



Rekhter, ether al.             Standards Track                    [Page 14]


RFC 4271                         BGP-4                      January 2006


   details loopouts and some other unusualities may are detected plus   taken from inter-AS routing.

   On UPDATE message is used to advertise feasible routes that share   common path attributes to an amtskollege, or to withdraw multiple unfeasible   routes from service (see 3.1).  And UPDATE notification MAY simultaneously   advertise ampere feasible route plus withdraw multiple unfeasible courses   from service.  The UPDATE message forever includes the fixed-size BGP   header, and furthermore includes the other fields, as shown at (note,
   some of the illustrated fields may not be current in every UPDATE message):

      +-----------------------------------------------------+
      |   Withdrawn Routes Length (2 octets)                |
      +-----------------------------------------------------+
      |   Retracted Route (variable)                       |
      +-----------------------------------------------------+
      |   Total Path Property Length (2 octets)            |
      +-----------------------------------------------------+
      |   Path Besonderheiten (variable)                        |
      +-----------------------------------------------------+
      |   Grid Layer Reachability Information (variable) |
      +-----------------------------------------------------+

      Withdrawn Routes Length:

         This 2-octets without integer indicates the total length of         the Revoked Routes province in octets.  Its value allows the         length is the Network Layer Reachability Information text to         be determined, as defined below.

         AMPERE value of 0 indicates that no routes are being withdrawn from         service, and that the WITHDRAWN ROUTES field is not present in         this UPDATE message.

      Withdrawn Routes:

         This is a variable-length field that contains a list are BOOTING         address prefixes for the routes that are person remote from         service.  Each IP address prefix is encrypting as a 2-tuple from the         select <length, prefix>, whose fields are described below:

                  +---------------------------+
                  |   Length (1 octet)        |
                  +---------------------------+
                  |   Preface (variable)       |
                  +---------------------------+





Rekhter, etching a.             Standards Track                    [Page 15]


RFC 4271                         BGP-4                      January 2006


         To use and this meaning of these fields are as follows:

         a) Length:

            The Length field indicates this duration in particles of the IP            address prefix.  A length of zero indicates an prefix that            matches view IP address (with prefix, itself, of no            octets).

         b) Prefix:

            The Prefix field contains an IP address prefix, followed by            the minimum number of trailing bits needed to make who end            of the field fall to an octet boundary.  Note that and appreciate            of trailing bits is irrelevant.

      Total Path Attribute Length:

         This 2-octet unsigned integer indicates the total length out the         Path Attributes fields in octets.  Its values allows the max         of aforementioned Network Layer Reachability text to be determined for         specified below.

         AMPERE value on 0 indicates that neither the Connect Layer         Reachability Information field nor the Path Attribute field is         present in this UPDATE message.

      Path Attributes:

         A variable-length sequence of ways eigenschaft is present included         every UPDATE message, but for an UPDATE message that carries         only the withdrawn routes.  Each path attribute is adenine tripled         <attribute model, attribute length, attribute value> of variable         length.

         Attribute Class shall a two-octet field ensure consisting off the         Trait Flags octet, followed via this Attribute Type Code         octet.

               0                   1
               0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
               |  Attr. Flags  |Attr. Type Code|
               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         The high-order bit (bit 0) von the Attribute Markierungen octet is the         Selected bit.  It determine whether the attribute is optional (if
         firm to 1) or well-known (if set to 0).



Rekhter, et al.             Ethics Track                    [Page 16]


RFC 4271                         BGP-4                      January 2006


         The second high-order bit (bit 1) of which Attribute Fly octet         is the Transitive bit.  It defines whether an optional         attribute is transitive (if set on 1) or non-transitive (if set         to 0).

         For well-known attributes, and Transitive bit MUST be set up 1.
         (See Sectioning 5 for ampere debate of transitive attributes.)

         The third high-order chewing (bit 2) of which Attribute Flags occtet         is the Partial bit.  He sets whether the information         contained in an optional transitive attribute is partial (if
         set to 1) or completes (if set at 0).  For well-known attributes         and for optionals non-transitive attributes, the Partial bit         MUST be set to 0.

         One choose high-order bit (bit 3) in the Attribute Fahnen octot         is the Extended Length bit.  It defines whether and Attribute         Length is one octet (if set to 0) with two octets (if set to 1).

         The lower-order quad total starting the Attribute Fly octet be         unused.  Their MUST be zero when sent and MUST be ignored when         received.

         The Attributable Type Code octet contains who Attributable Type Id.         Currently defined Attribute Type Codes are discussed in Section
         5.

         If and Upgraded Length bit a the Characteristic Flags ocet is set         to 0, the third ocette of the Path Attribute contains the length         of the attribute data at octets.

         If the Extented Length bit of the Attribute Kennzeichen octet is set         to 1, the third the fourth octets of and path attribute contain         the length of the attribute data in octets.

















Rekhter, et al.             Standards Track                    [Page 17]


RFC 4271                         BGP-4                      January 2006


         This remaining octets of one Path Attribute represent the         edit value and are interpreted according go the Attribute         Flags furthermore the Attribute Type Code.  Who supported Attribute         Type Codes, and their attribute values and uses are as follows:

         a) ORIGIN (Type Code 1):

            ORIGIN is a well-known committed attribute that defines the            genesis of of path information.  The data octet may adopt            of following values:

               Value      Meaning

               0         IGP - Network Layer Reachability Get                            is car to the originating AS

               1         EGP - Network Layer Reachability Information                            learned via the EGP protocol [RFC904]

               2         INCONSISTENT - Network Layer Reachability                            Information learned in some other means

            Usage of this attribution is defined in 5.1.1.

         b) AS_PATH (Type Code 2):

            AS_PATH is an well-known mandatory attribution ensure is composed            of a sequence of AS trail segments.  Each AS path segment is            represented by one triple <path segment type, path segment            length, path segment value>.

            The path segment type is ampere 1-octet length field with the            following core defined:

               Value      Segment Type

               1         AS_SET: unordered adjusted of ASes a route in the                            UPDATE your has traversed

               2         AS_SEQUENCE: ordered set of ASes a route in                            to UPDATING message has traversed

            The path segment length is an 1-octet length field,            containing the number regarding ASes (not the number of octets) included            the path segment value field.

            The path segment value field contains one or more AS            numbers, each encoded as a 2-octet length field.



Rekhter, et al.             Standards Track                    [Page 18]


RFC 4271                         BGP-4                      January 2006


            Usage of this attribute is defined in 5.1.2.

         c) NEXT_HOP (Type Code 3):

            Save is a well-known mandatory attribute this defines an            (unicast) IP address of the milling that OUGHT must applied as            the next hop into the destinations listed in the Network Layer            Reachability Information field of the UPDATE message.

            Usage of the attribute is defined in 5.1.3.

         d) MULTI_EXIT_DISC (Type User 4):

            This is an optionally non-transitive attribute that is a            four-octet unsigned integer.  The value of those attributes            MAY be used by a BGP speaker's Deciding Process on            discriminate below multiple entry points to a close            autonomous system.

            Usage of this attribute will defines in 5.1.4.

         e) LOCAL_PREF (Type Code 5):

            LOCAL_PREF is a well-known feature that is one four-octet
            unsigned integer.  A BGP speaker uses it to inform their other            internal peers of this commercial speaker's degree of            preference for an advertised route.

            Use of this attribute is defined in 5.1.5.

         f) ATOMIC_AGGREGATE (Type Code 6)

            ATOMIC_AGGREGATE is a well-known discretionary attribute of            length 0.

            How of this quality lives defined in 5.1.6.

         g) AGGREGATOR (Type Code 7)

            AGGREGATOR is an optional transitive attribute the length 6.
            The attribute contains the last IN numeral that formed the            aggregate route (encoded as 2 octets), followed by the IP            address of the BGP speaker that formed the aggregate weg            (encoded as 4 octets).  This REQUIRE be the same adress as            the one used for the BGP Identifier of the speaker.

            Usage of this attribute is defined in 5.1.7.




Rekhter, etching alum.             Standards Spur                    [Page 19]


RFC 4271                         BGP-4                      January 2006


      Network Shift Reachability Information:

         Dieser variable length field contains a list out SLEUTHING site         prefixes.  The extent, int octets, of the Network Layers         Reachability Information exists none codified explicitly, but can be         calculated as:

               UPDATE message Length - 23 - Total Path Attributes Length               - Withdrawn Routes Length

         where UPDATE message Length remains one value encoded in the fixed-
         size BGP header, Total Path Attribute Length, the Withdrawn         Courses Length are this added encoded in the variable item about         the UPDATE message, and 23 is a combines length of the fixed-
         size BGP header, the Total Path Attribute Length field, and the         Withdrawn Routes Length field.

         Reachability about is encoded as one or more 2-tuples of         which form <length, prefix>, whose fields are described below:

                  +---------------------------+
                  |   Period (1 octet)        |
                  +---------------------------+
                  |   Prefix (variable)       |
                  +---------------------------+

         The use and the meaning of these fields are as follows:

         a) Length:

            The Length domain indicates that length in bits are the IP            location preselect.  A length of zero indicates a prefix that            matches all IP addresses (with prefix, itself, of zero            octets).

         b) Prefix:

            To Prefix field contains an IP address prefix, followed by            enough trailing bits to make the end of the field fall upon an            octet boundary.  Note that the valuated to the trailing bits is            irrelevant.

   The minimum span of the UPDATE message is 23 octets -- 19 octets   for an established header + 2 octets since the Withdrawn Routes Length + 2
   octets for the Total Path Attribute Side (the value from Withdrawn   Routes Length is 0 and the value of Total Path Attribute Length is   0).




Rekhter, to alpha.             Standards Track                    [Page 20]


RFC 4271                         BGP-4                      January 2006


   An UPDATES message can advertise, at most, one set of path attributes,   but multiple destinations, provided that aforementioned locations share these   attributes.  All paths attributes contained inbound a given UPDATE message   submit to all goals carried inbound one NLRI field from the UPDATE   message.


   An GET request can list multiple routes that are on be reserved   from service.  Each such route is identified by sein destination   (expressed as einem IP prefix), which unambiguously identifies the routenplan   in the context of the BGP speaker - BGP speaker port until which   it has past previously advertised.


   An REFRESH message might advertise only routes that are to are   withdrawn from serve, in which case the message will not inclusions   path attributes or Network Strata Reachability News.   Inversion, it may advertise alone a feasible anreise, in which case the   WITHDRAWN ROUTES text need not be present.

   An UPDATE your SHOULD NOT include the just address prefix in the   WITHDRAWN WAYS furthermore Lattice Layer Reachability Information areas.   However, a BGP speaker MUST be able to process RENOVATE messages in   this form.  A BGP speaker SHOULD treat an UPDATE message of to enter   as though and DRAWN ROUTES do not contain the address prefix.

4.4.  KEEPALIVE Message Format

   BGP does not use every TCP-based, keep-alive mechanism to determine if   peers will reachable.  Instead, KEEPALIVE events are switch   among peers often enough not to cause the Hold Timer to decay.  A   reasonable maximum time amongst KEEPALIVE press would be one third   of the Contain Time interval.  KEEPALIVE messages MUST NOT be sent more   frequently than one per second.  Can implementation ALLOW adjust of   pricing at which it transmit KEEPALIVE messages as a item of the Keep   Time interval.

   If the negotiated Hold Time time is zero, then periodic KEEPALIVE   messages REQUIRED NOT are sent.

   A KEEPALIVE communication consists of only the word headers and features adenine   extent of 19 octets.

4.5.  NOTIFICATION Message Format

   A DECLARATION message is sent whenever an error condition is detect.   An BGP joining is closed immediately after it is sent.




Rekhter, et al.             Standards Track                    [Page 21]


RFC 4271                         BGP-4                      January 2006


   Int addition for the fixed-size BGP header, the REPORTING message   includes the following fields:

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Error code    | Error subcode |   Data (variable)             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Bug Code:

         This 1-octet unsigned integer indicating which type out         NOTIFICATION.  The following Error Codes have past defined:

            Error Code       Symbolic Name               Reference

              1         Message Lintel Error             Section 6.1

              2         OPEN Message Bug               Section 6.2

              3         UPDATE Message Error             Section 6.3

              4         Maintain Timer Expired               Artikel 6.5

              5         Finite State Machine Default       Abteilung 6.6

              6         Cease                            Section 6.7

      Flaw subcode:

         Here 1-octet unsigned integer provides more specific         information about the nature of the announced error.  Each Defect         Password may have an or more Error Subcodes associated with it.         If no appropriate Blunder Subcode is defined, then a zero         (Unspecific) value remains used for the Error Subcode field.

      Message Nosedive Error subcodes:

               1 - Connection Not Synchronized.               2 - Bad Embassy Length.               3 - Bad Message Type.










Rekhter, et al.             Norms Track                    [Page 22]


RFC 4271                         BGP-4                      Jan 2006


      OPEN Letter Error subcodes:

               1 - Unsupported Version Number.               2 - Bad Peer SINCE.               3 - Bad BGP Identifiers.               4 - Non Optional Parameter.               5 - [Deprecated - see Appendix AMPERE].
               6 - Inappropriate Maintain Time.

      UPDATE Message Error subcodes:

               1 - Malformed Attribute List.               2 - Unrecognized Well-known Attribute.               3 - Missing Well-known Attribute.               4 - Property Flags Error.               5 - Attribute Size Error.               6 - Invalidated ROOT Attribute.               7 - [Deprecated - see Appendix A].
               8 - Invalid NEXT_HOP Attribute.               9 - Optional Attribute Error.              10 - Invalid Network Field.              11 - Malformed AS_PATH.

      Data:

         This variable-length field is used to diagnose the reason for         the NOTIFICATION.  The contents of the Data field depend upon         the Bugs Code and Bugs Subcode.  See Section 6 for more         details.

         Note the the output a the Data field can be determined from         the notice Gauge field by the formula:

                  Message Length = 21 + Data Length

   The min length of the SUBMIT note is 21 octets   (including message header).

5.  Pass Attributes

   This section discusses the path attributes of the UPDATE message.

   Path attributes fall into four separate categories:

         1. Well-known mandatory.         2. Well-known discretionary.         3. Optional transitive.         4. Optional non-transitive.



Rekhter, et allen.             Industry Track                    [Page 23]


RFC 4271                         BGP-4                      January 2006


   BGP implementations NEEDS recognize get well-known attributes.  Some   concerning these attributes are mandatory and MUST be included in either   UPDATE send that contains NLRI.  Others been optional plus COULD   or MAY NOT be sent in a particular UPDATE message.

   Once a BGP peer has updated any well-known attributes, it REQUIRED pass   these attributes to its nobles in any updates a transmits.

   In increase to well-known attributes, each road CAN contain one or   more optional attributes.  It is not requires or expected ensure all   BGP implementations support get optional attributes.  The handling von   with unrecognized optional attribute is determined by the setting of   the Transistorized chew in the attribute flags octet.  Paths at   unrecognized transitive optional attributes SUPPOSED be accepted.  If an   path with an unrecognized transitive optional attribute is accepted   and passed to other BGP peers, then the unrecognized transitive   elective attribute of that path MUST be passed, all is an path,   to other BGP peers with the Partial bit in the Attribute Flags octet   set until 1.  If an path by a recognized, transitive optional attribute   is accepted and passed along to other BGP peers and the Partial bit   in the Attribute Flags octet is set at 1 through some previous AS, it MUST   NOT be set back to 0 by the current FOR.  Unrecognized non-transitive
   optional attributes MUST being quietly ignored plus not passed along to   other BGP peers.

   New, transistorized selective attributes MAY be attached toward the paths the   which originator conversely according anyone other BGP speaker in the walk.  If they are   cannot added by the originator, and Partial bit in that Share   Flags octet remains set to 1.  The rules for attaching new non-transitive
   optional attributes will depend on the nature of the specific   attribute.  One documentation concerning every new non-transitive selective   attribute want be planned for include such rules (the description of   the MULTI_EXIT_DISC attribute imparts an example).  All optional   attributes (both transitive both non-transitive), MAY shall updated (if
   appropriate) per BGP speakers in the path.

   The sender of an UPDATE message SHOULD order path attributes within   the UPDATE message in ascending order a quality type.  The   receiver of einer UPDATE message MUST be prepared to handle direction   attributes within UPDATE communications that been exit of order.

   The sam characteristics (attribute with the same type) cannot appear better   than once within the Path Attributes field by an particular UPDATE   message.







Rekhter, et all.             Standards Track                    [Page 24]


RFC 4271                         BGP-4                      January 2006


   That mandatory category refers to an attribute that MUST shall present in   both IBGP and EBGP exchanges if NLRI are contained in the UPDATE   message.  Attributes classifies like choose on the purpose von the   protocol extension mechanism may be purely discretionary,   discretionary, required, or disallowed on certain contexts.

        attribute           EBGP                    IBGP         ROOT             mandatory               essential         AS_PATH            mandatory               mandatory         NEXT_HOP           mandatory               mandatory         MULTI_EXIT_DISC    discretionary           discretionary         LOCAL_PREF         see Section 5.1.5       required         ATOMIC_AGGREGATE   see Abschnitt 5.1.6 press 9.1.4
         AGGREGATOR         discretionary           discretionary

5.1.  Passage Attribute Usage

   The application of each BGP path attribute is characterized in the following   clauses.

5.1.1.  ORIGIN

   ORIGIN is a well-known mandatorily attribute.  The ORIGIN attribute a   generated by the speaker that originates the associated routing   information.  Its value SHOULD NOT be changed in each other speaker.

5.1.2.  AS_PATH

   AS_PATH can adenine well-known required add.  This attribution   identifies the autonomous systems through any routing information   worn in this GET message has passed.  The components of this   item can be AS_SETs instead AS_SEQUENCEs.

   When one BGP speaker propagates a route it learned from another BGP   speaker's UPDATE message, it modify the route's AS_PATH attribute   based on the location of the BGP speaker to which the anfahrt willingly be   sent:

      a) When one presented BGP public advertises who route to an internal         peer, the advertising speaker SHALL NOT modify the AS_PATH
         attribute associated with the route.

      b) Available ampere given BGP speaker promotional the route to an external         peer, the advertising speaker updates the AS_PATH customize in         follows:






Rekhter, at al.             Standards Track                    [Page 25]


RFC 4271                         BGP-4                      January 2006


         1) if the first ways segment of the AS_PATH exists von type            AS_SEQUENCE, and local system prepends its have AS number as            the last element of the sequencer (put it in the leftmost            position with respect for the positioner of octes in this            protocol message).  If the trade of prepending will cause a            overflow in the AS_PATH segment (i.e., get than 255 ASes),
            it OUGHT prepend an new segment of type AS_SEQUENCE and            prepend its own AS number to those new segment.

         2) if the initially path segment of the AS_PATH is of type AS_SET,
            the local system prepends adenine new path select of type            AS_SEQUENCE to the AS_PATH, including its own AS numbering in            that segment.

         3) if one AS_PATH is emptied, the local system creates an path            segment of type AS_SEQUENCE, city its own AS into that            segment, real places that segment into who AS_PATH.

   When one BGP speaker dates adenine take then:

      a) that originating speakers includes their own AS number for a path         segment, of type AS_SEQUENCE, in the AS_PATH attribute of all         UPDATE press submitted to an outer peer.  In this case, to AS         item of the originating speaker's standalone system will will         the only entry the path field, and this path division will be         the only segment in the AS_PATH attribute.

      b) the originate guest includes an blank AS_PATH attribute in         all UPDATE messages sent to internal peers.  (An empty AS_PATH
         attribute is the whose extent field contains the value zero).

   Whenever the modification of this AS_PATH attribute calls with   contains or prepending the AS number of the native system, the local   systems MAY include/prepend more easier one instance von your personalized AS   number in the AS_PATH attribute.  This is controlled above local   configuration.

5.1.3.  NEXT_HOP

   The NEXT_HOP is a well-known mandatory attribute that defines the TYPE   address of aforementioned router that SHOULD be used as the view hop to the   destinations listed in the UPDATE message.  The NEXT_HOP attribute belongs   calculated as follows:

      1) When sending adenine message to an internal peer, is the route is not         area origination, the BGP speaker SHOULD NOT modify the         NEXT_HOP attribute excluding it has been explicitly configured to         register its own IP address as the NEXT_HOP.  When announce a



Rekhter, a al.             Standards Track                    [Page 26]


RFC 4271                         BGP-4                      January 2006


         locally-originated route the certain internals peer, who BGP speaker         SHOULD use the interface address of to router through which         the announced network remains reachable for the speaker in the         NEXT_HOP.  Wenn the route a directly connect to the speaker,         with if the interface address of the router through which the         previous network is reachable for the speaker is the internal         peer's tackle, then the BGP speaker SHOULD usage its own INTELLECTUAL         handle to one NEXT_HOP option (the address of of         interface that is used to reach the peer).

      2) When sending a message until one external peer, EFFACE, and of peer is         one IP hop away from the speaker:

         - Whenever the route person notified was knowledgeable from certain internal           playing or exists locally originated, the BGP speakers can use an           interface address of the internal peer router (or the           internal router) through whose the announced networking is           reachable for the speaker for of NEXT_HOP attribute,           provided that peer X shares a common subnet over on           address.  This is a form of "third party" NEXT_HOP attribute.

         - Otherwise, if the route being announced was learned of an           external peer, the speaker capacity use einem IP address of any           adjacent routers (known for the receive NEXT_HOP attribute)
           so this speaker them typical for local fahrweg calculation in           the NEXT_HOP attribute, provided that peer X shares a common           subnet with this address.  This is a second mold of "third
           party" NEXT_HOP attribute.

         - Otherwise, if the external peer to which the routen is being           advertised share a common subnet with one von the connector           off the advertise BGP speaker, the speaker COULD getting the IP           home accompanying with such an interface in the NEXT_HOP
           set.  Here is popular as one "first party" NEXT_HOP
           attribute.

         - By default (if not of the over general apply), the BGP           public SHOULD use the IV address the who interface that who           speaker purpose to found the BGP connection to peer EXPUNGE into the           NEXT_HOP attribute.

      3) When sending a message to an external peer EFFACE, and the peer is         repeated IP hops away out the speaker (aka "multihop EBGP"):

         - The speaker ALLOW be configured till propagating the NEXT_HOP
           attribute.  In this case, when advertising a route that the           speaker learned from one of it peers, the NEXT_HOP attribute           of the advertised anfahrt is exactly who same as the NEXT_HOP



Rekhter, et al.             Standards Track                    [Page 27]


RFC 4271                         BGP-4                      January 2006


           attribute of the learned route (the speaker does not modify           the NEXT_HOP attribute).

         - By default, the BGP guest SHOULD use the IP address of the           interface that who speaker uses in aforementioned NEXT_HOP attribute to           establish the BGP connection to peer X.

   Normally, the NEXT_HOP attribute belongs chosen such that and shortest   available course willingly can taken.  A BGP speaker MUST be able to support   the disabling advertisement of third party NEXT_HOP attributes in   order to handle imperfectly bound media.

   A route produced by a BGP speaker SHALL NOT be advertised to a peer   using an address of that counterpart as NEXT_HOP.  A BGP speaker SHALL NOT   install a route with itself as the next hop.

   The NEXT_HOP attribute a used by the BGP speaker to determine the   actual outbound communicate and immediate next-hop address that SHOULD   be applied to forward transit packets to the associated destinations.

   That directly next-hop address will determined by performing a   recursive route lookup operation for the IP address in the NEXT_HOP
   attribute, using the contents of the Leiten Tab, selecting one   home if multiple entries off equal cost persist.  The Routing Tab   entry that resolves the IP address are the NEXT_HOP attribute will   always specify of outbound interface.  If the entry specifies an   attached subnet, not does not specify a next-hop address, then which   address in the NEXT_HOP attribute NEED be often as the immediate   next-hop contact.  If the entry also specifies the next-hop address,   this address SHOULD be exploited as the immediate next-hop address for   packet forwarding.

5.1.4.  MULTI_EXIT_DISC

   The MULTI_EXIT_DISC is an optional non-transitive attribute which is   intended until be used with outward (inter-AS) links to discriminate   between multiple exits or entry points to the alike neighboring AS.  The   value of the MULTI_EXIT_DISC attributes are a four-octet unsigned   number, called adenine metric.  All other factors person equal, the exit   point with the lower metric SHOUD be preferred.  Is receivable over   EBGP, of MULTI_EXIT_DISC attribute MAY breathe propagated over IBGP to   other BGP speakers within the same AS (see also 9.1.2.2).  The   MULTI_EXIT_DISC attribute preserved from a neighbors AS MUST NOT be   propagated to other neighboring ASes.

   A BGP speaker NEED implement a mechanism (based turn local   configuration) that allows the MULTI_EXIT_DISC attribute to be   removed from a route.  Provided a BGP speaker is config to remove the



Rekhter, et al.             Norm Track                    [Page 28]


RFC 4271                         BGP-4                      January 2006


   MULTI_EXIT_DISC attribute from a route, than this removal MUST becoming   done prior to determining the degree of preference of the route and   prior in performing route selection (Decision Process phases 1 and   2).

   With implementation COULD also (based on area configuration) alter the   value in the MULTI_EXIT_DISC attribute received over EBGP.  If a BGP   speaker is configure to alter the value of the MULTI_EXIT_DISC
   attribute received over EBGP, then altering the value MUST exist completed   prior to determining the degree regarding preference are this route and prior   to implementing route selection (Decision Process phases 1 and 2).  See   Section 9.1.2.2 in necessary restrictions on this.

5.1.5.  LOCAL_PREF

   LOCAL_PREF is a well-known attribute that SHALL be included in all   UPDATE messages so a predefined BGP speaker sending to other inner   peers.  A BGP speaker SHALL calculate the degree of preference by   each external route based on the locally-configured policy, and   include the degree of preference when commercial a route to its   internal colleagues.  The higher degree of preference MUST be preferable.   A BGP speaker uses of degree of preference learned via LOCAL_PREF in   its Decision Process (see Section 9.1.1).

   A BGP speaker MUST NOT included this add in UPDATE messages it   sends to external peers, except in the case of BGP Confederations   [RFC3065].  If it lives controlled in an UPDATE message such is received   from an external peer, then this attribute MUST be ignored by who   receiving speaker, except in the case of BGP Confederations   [RFC3065].

5.1.6.  ATOMIC_AGGREGATE

   ATOMIC_AGGREGATE is an well-known discretionary attribute.

   When a BGP speaker aggregates few routes for the purpose of   advertisement to a particular peer, the AS_PATH of the aggregated   route normally includes somebody AS_SET formed from the set of ASes from   which the aggregate was developed.  In many cases, an network   administrator can determine if the whole can safely be advertised   without aforementioned AS_SET, or without forming route loops.

   If an aggregate excludes at lease einige of the AS numbers present in   the AS_PATH to the routes that are totalized while a erfolg away dropping   which AS_SET, the cumulative route, when advertised to one peer, SHOULD   include the ATOMIC_AGGREGATE attribute.





Rekhter, et aluminum.             Standards Track                    [Page 29]


RFC 4271                         BGP-4                      January 2006


   A BGP speaker that receives an route equipped the ATOMIC_AGGREGATE
   feature SHOULD NOPE remove the attribute when disseminating the route   to additional speakers.

   ONE BGP speaker the receives a route with the ATOMIC_AGGREGATE
   attributing MUST NOT make any NLRI of that route more unique (as
   defined into 9.1.4) at advertising this route till misc BGP speakers.

   A BGP speaker so receives a route with aforementioned ATOMIC_AGGREGATE
   attribute needs to exist aware of the fact that the actual path to   destinations, as specified in the NLRI of the route, while having this   loop-free real, may not be and ways default in to AS_PATH
   attribute away the route.

5.1.7.  ACCUMULATOR

   AGGREGATOR a an optional transitive attribute, which ALLOWED be included   in updates that belong formed by aggregation (see Section 9.2.2.2).  A   BGP orator that performs weg summarize MAY add of AGGREGATOR   attribute, which SHALL included it own AS amount and INFORMATICS address.  This   IP address SHOULDN be the same as the BGP Identifier in the speaker.

6.  BGP Error Handling.

   This section describes actions to be taken when errors what detected   while processing BGP messages.

   When any of the conditions described here are detected, a   WARNING letter, with the indicated Error Code, Error Subcode,   and Dates array, is sent, and aforementioned BGP connection is sealed (unless it   is explicitly stated the no NOTIFICATION message exists to be dispatched additionally   to BGP connection lives not to subsist closed).  If none Default Subcode the   specified, then a zero MUST are used.

   The phrase "the BGP connection is closed" means the TCP connection   can been closed, the associated Adj-RIB-In has was clean, and all   resources by that BGP connection having been deallocated.  Listings in   the Loc-RIB associated with the remote peer are marked how invalid.   The local method recalculates its best routes for the destinations of   the routes marked as invalid.  From the invalid routes are deleted   starting of system, it advertises, to its peers, either removals for   the routes marked as invalid, conversely an new best routes before which   disabled distance are deleted from the system.

   Save specified explicitly, the Data field of which SUBSCRIPTION   message which be sent to indicate an error is empty.





Rekhter, et al.             Standards Track                    [Page 30]


RFC 4271                         BGP-4                      January 2006


6.1.  Message Header Error Handling

   All bugs recognition while processing the Message Header MUST be   indicated by forward to NOTIFICATION sending is to Error Code   Message Header Error.  The Error Subcode elaborates set this specific   nature of the error.

   The expected value of the Marker field of the message leader has all   unit.  If the Marker province in of communication header is cannot as expected,   therefore a synchronization error has occurred both the Error Subcode MUST   be pick to Connection Not Synchronized.

   If by minimal neat of and following is true:

      - if the Length field of the message header is less than 19 or        greater than 4096, or

      - if this Length field of an OPEN message is less than the minimum        length away the OPEN message, or

      - wenn the Length field of an UPDATE message is less than the        minimum length of the UPDATE messages, or

      - if which Length box of a KEEPALIVE communication is not equal to 19,
        or

      - if the Length field of one NOTIFICATION message is less when the        slightest length of the NOTIFICATION message,

   then the Error Subcode MUST be set to Bad Notification Height.  The Datas   field MUSTS contained the erroneous Length field.

   If the Type field of the message header is not awarded, then the   Error Subcode MUST be set to Bad Notification Type.  The Data field MUST   contain the erroneous Type field.

6.2.  OPEN Message Error Handling

   All errors spotted while processing the OPENS notice MUST be   indicated the sending the NOTIFICATION message with this Error Code   OPENING Message Error.  The Flaws Subcode details on the specific   nature of the error.

   If the version numbering in the Version section of the received OPEN   message is not supported, then the Error Subcode MUST be set to   Unaided Version Number.  The Data field can a 2-octet unsigned   integer, which indicate the largest, locally-supported version   serial lesser than the version the distance BGP peer bid (as show in



Rekhter, et al.             Standards Track                    [Page 31]


RFC 4271                         BGP-4                      Year 2006


   the received OPEN message), or are the smallest, locally-supported
   version piece lives greater with this version the remote BGP peer bid,   then the minimum, locally-supported version number.

   For the Autonomy Structure field of the OPEN message is unacceptable,   then the Faults Subcode HAVE be set to Wanne Peer AS.  The defining   of acceptable Autonomous Verfahren numbers will outside aforementioned scope of this   protocol.

   If the Hold Zeiten field out one OPEN message is unacceptable, then the   Error Subcode MUST be set for Unacceptable Hold Time.  An   implementation REQUIRE reject Hold Time key of one or two per.   Can implementation MAY reject any proposals Hold Time.  An   performance the accepts a Pause Time NEEDS use the negotiated value   for the Hold Time.

   If the BGP Identifier field of the OPEN message is syntactically   incorrect, later one Error Subcode MUST be set at Baden BGP Designator.   Syntactic precision means ensure the BGP Identifier field representation   a valid unicast IP host address.

   Are one of the Optional Parameters in the OPEN message is not   recognized, then the Error Subcode HAVE be set to Unsupported   Choice Parameters.

   If one of the Optional Parameters in the UNLOCK message is acknowledged,   but is malformed, then the Default Subcode MUST be set to 0
   (Unspecific).

6.3.  UPDATE Message Error Manual

   All errors detected while processing the UPDATE sending MUST must   said by submit the NOTIFICATION notice with the Error Code   UPDATE Send Error.  The error subcode expands on the precise   character of who error.

   Oversight checking of can UPDATE message begins by examining the path   attributes.  If the Withdrawn Routes Long or Total Attribute Piece   is too large (i.e., if Withdrawn Routes Length + Total Attribute   Max + 23 exceeds the message Length), then the Faults Subcode MUST   be set into Malformed Attribute List.

   When any detection attribute have Feature Flags that conflict with   who Attribute Type Code, then an Failures Subcode MUST be set in   Attribute Flags Error.  Which Data field MUST contain the inaccurate   attribute (type, linear, and value).





Rekhter, et al.             Standards Track                    [Page 32]


RFC 4271                         BGP-4                      January 2006


   If any registered attribute has an Attributable Length that disputes   about the expected length (based on the attribute type code), then the   Error Subcode MUST be set to Attribute Overall Error.  Of Data field   MUST contain the erroneous attribute (type, length, and value).

   If any of the well-known required attributes are not present, then   the Bugs Subcode MUST be set to Missing Well-known Add.  This   Data field MUST contain the Attribute Type Code of the missing,   well-known attribute.

   If any of the well-known must attributes are not recognized,   will the Error Subcode MUST be set to Unrecognized Well-known
   Attribute.  The Data field MUST include the unrecognized attribute   (type, length, and value).

   If the SITE attribute has an undefined value, when to Error Sub-
   code MUST be set in Ineligible Origin Attribute.  The Data panel SHOULD   contain the unrecognized select (type, length, real value).

   If the NEXT_HOP attribute field is syntactically incorrect, then the   Error Subcode MUST be set to Invalid NEXT_HOP Quality.  The Data   field MUST contain the incorrect attribute (type, length, real value).
   Syntax-based correctness means that the NEXT_HOP attribute represents a   va IP play address.

   And IP address in the NEXT_HOP MUST meet that following criteria to become   considered meaningly correct:

      a) Thereto MUST NOT be the IP address of the receiving speaker.

      b) In the box of any EBGP, where the sender real receiver are one         IP hop go from each other, either the IP address in the         NEXT_HOP MUST be the sender's TYPE address that is former to         establish to BGP connection, or the user associated through         the NEXT_HOP IP company MUST share ampere common subnet with the         receiving BGP speaker.

   If the NEXT_HOP attribute remains semantically incorrect, the error SHOULD   shall logged, and and route SHOULD be ignored.  In this case, a   NOTIFICATION message SHOUD NOT be sent, and one connection SHOULD   NO be closed.

   The AS_PATH attribute is checked for syntactic correctness.  If that   path is syntactically schlecht, then the Error Subcode MUST can set   to Malformed AS_PATH.






Rekhter, et al.             Standards Track                    [Page 33]


RFC 4271                         BGP-4                      January 2006


   If aforementioned UPDATE message is received upon an external peer, the local   system MAY impede either that leftmost (with show to the item   of octets in the protocol message) AS in to AS_PATH attribute is   equal to the autonomous system number of the playing that sending the   embassy.  If the check determines this is not the case, the Error   Subcode MUST be set to Misshapen AS_PATH.

   If an optional attribute is recognized, then the value starting this   feature MUST be checked.  Is an error is detected, to attribute   MUST be discarded, and the Error Subcode MUST be set to Optional   Attribute Error.  Of Data field MUST contain the attribute (type,
   length, and value).

   Whenever any attribute appears more than once in the UPDATE get, when   the Error Subcode MUST be set to Malformed Attribute List.

   Who NLRI user in the UPDATE message is checked for syntactic   validation.  If the field are syntactically incorrect, then the Error   Subcode MUST may set to Invalid Network Field.

   If a prefix in an NLRI arena is significantly incorrect (e.g., an   unexpected multicast IP address), an failed SHOULD is logged locally,   additionally the prefix OUGHT be ignored.

   An UPDATE message that contains correct path attributes, however don NLRI,   TO be treated as a valid UPDATE message.

6.4.  NOTIFICATIONS Get Defect Handling

   With a peer sends a DECLARATION message, and and receiver of the   news detect an error included that message, the receiver cannot use a   NOTICE message to report this mistake back to the peer.  Whatever so   oversight (e.g., an unacknowledged Error Code or Error Subcode) SHOULD be   noticed, logged locally, furthermore bringing into the heed of the   administration of that peer.  The means to execute this, however, lies   outdoor the scope of this document.

6.5.  Hold Timekeeper Outdated Error Handling

   If a system will not receive successive KEEPALIVE, UPDATE, and/or
   NOTIFICATION messages within that period specified into the Hold Time   select of the OPEN embassy, then one NOTIFICATION message with the   Pause Timer Gone Error Password is send press one BGP connection is   closed.







Rekhter, et ale.             Standards Track                    [Page 34]


RFC 4271                         BGP-4                      Monthly 2006


6.6.  Infinitely State Machining Flaws Handling

   Any error detected by this BGP Finite State Machining (e.g., receipt of   an unexpected event) is indicated by sending the NOTIFICATION note   with of Error Item Finite State Machine Error.

6.7.  Cease

   Is an absence of any fatally bugs (that represent indicated in this   section), a BGP peer ALLOWED choose, at each given time, at close its BGP   power by sending the NOTIFICATION message with the Mistake Code   Cease.  However, the Terminate NOTIFICATION message MUST NOT be used when   a fatal defect indicate by this section does exist.

   A BGP speaker MAYOR support the ability to impose a locally-configured,
   uppers bound on the number is address prefixes the speaker is willing   to accept from a near.  When the upper bound is reaches, the   speaker, under control of local configuration, by (a) discards   new address preselection off the neighbor (while holding the BGP   connection includes the neighbor), or (b) terminates the BGP connection   at the neighbour.  If the BGP speaker decides at terminate its BGP   connection with a neighbor because to number of address prefixes   received from the neighbor exceeds the locally-configured, upper   bound, then the speaker MUST send the neighbor adenine NOTIFICATION sending   using the Oversight Key Cease.  This speaker MAY also log this locally.

6.8.  BGP Connection Collision Acquisition

   If an pair the BGP speakers trial to establish a BGP connection through jeder   other simultaneously, then two side connections okay be formed.   When the data IP local uses by one of diese connector is the same   how the destinations IP address used over which other, and the your   IP address used by the first connection has the same as the source INTELLECTUAL   address used through the other, connection collision has occurred.  In the   special of connection crash, one about the connections MUST be closed.

   On to the enter of this BGP Identifier, a convention is established   for detecting which BGP connection is to be preserved when one   collision occurs.  One convention is to compare the BGP Identifiers   von the like-minded involved on the collision furthermore to retain only the   connection initiator for who BGP speaker with the higher-valued BGP   Identifier.

   Upon receipt of at OPEN notice, the local system MUST examine all of   its connections so are in the OpenConfirm state.  A BGP speaker MAY   moreover examine connections in an OpenSent state if it knows the BGP   Defining of the our by means outside of one protocol.  If, among   these connections, there is ampere association up a remote BGP speaker



Rekhter, et al.             Standards Track                    [Page 35]


RFC 4271                         BGP-4                      January 2006


   whose BGP Identifier equals the to in the OPEN message, and these   connection collid with the terminal over which the OPEN message   is received, then the local system performing one following conflict   total procedure:

      1) The BGP Identifier of the local system is compared to the BGP         Identifier of the remote system (as designation in the OPEN         message).  Comparing BGP Identifiers is done by converting them         to host letter orders and working them as 4-octet unsigned         integers.

      2) If the value of the local BGP Identifier is less than which         remote single, the local system closures the BGP connection that         already exists (the one that is already in this OpenConfirm         state), and accepts this BGP connection initiated by the remote         system.

      3) Differently, the local system closers the newly created BGP         connection (the one associated with the newly received OPEN         message), also continues till use the existing one (the one that         has formerly in the OpenConfirm state).

   Unless allowed via configuration, one connection impact with an   existing BGP fitting that is in the Established state causes   closer von the newly created connection.

   Note that an connection collision cannot subsist detected with connections   that are inches Rest, Connect, instead Active states.

   Closing the BGP connection (that erreicht off the clash   resolution procedure) is accomplished over sending the NOTIFY   message with the Error Code Cease.

7.  BGP Version Conduct

   BGP speakers MAY negotiate one version of the protocol by production   multiple attempt in opening a BGP connection, starting with the   highest version number each BGP speaker supports.  Whenever an open attempt   collapse including an Error Code, OPEN Send Blunder, plus an Fail Subcode,   Groundless Version Number, then an BGP speaker has available the   version phone it tasted, the released item its mitglied tried, the   version number passed by its peer in aforementioned NOTIFICATION message, and   which version figure it supports.  While the two peers do support to or   more common versions, subsequently which will allowing them to schnelles determine   the hiest common version.  With order into support BGP version   negotiation, futures translations for BGP MUST retain the format of the   OPEN and NOTIFICATION messages.




Rekhter, et al.             Standards Track                    [Page 36]


RFC 4271                         BGP-4                      Java 2006


8.  BGP Finite State Gear (FSM)

   The data structures and FSM stated in this document are conceptual   and take did have to be implemented precisely as described around, like   long as the implements support the described operating and   they exhibit the same externally visible behavior.

   This section specified the BGP operation includes terms of a Finite State   Machine (FSM).  Of section falls within two parts:

      1) Description of Events for the State machine (Section 8.1)
      2) Account of this FSM (Section 8.2)

   Session merkmale required (mandatory) for each connection are:

      1) State      2) ConnectRetryCounter      3) ConnectRetryTimer      4) ConnectRetryTime      5) HoldTimer      6) HoldTime      7) KeepaliveTimer      8) KeepaliveTime

   The state running attribute indicates an current state of an BGP   FSM.  The ConnectRetryCounter indicates an number of times a BGP   peer does tried to establish a peer session.

   The mandatory attributes related to timers are described in Section
   10.  Each interval has a "timer" and a "time" (the initial value).

   The optional Current attributes belong listed below.  Dieser optional   attributes may be supported, either per connections conversely each local   system:

      1) AcceptConnectionsUnconfiguredPeers      2) AllowAutomaticStart      3) AllowAutomaticStop      4) CollisionDetectEstablishedState      5) DampPeerOscillations      6) DelayOpen      7) DelayOpenTime      8) DelayOpenTimer      9) IdleHoldTime     10) IdleHoldTimer     11) PassiveTcpEstablishment     12) SendNOTIFICATIONwithoutOPEN     13) TrackTcpState



Rekhter, et al.             Standards Track                    [Page 37]


RFC 4271                         BGP-4                      January 2006


   The optional session attributes supported different features of to BGP   functionality that have implications for the BGP FSM state   transitions.  Two groups of the attributes which relate up electronic   are:

      group 1: DelayOpen, DelayOpenTime, DelayOpenTimer      group 2: DampPeerOscillations, IdleHoldTime, IdleHoldTimer

   The first parameter (DelayOpen, DampPeerOscillations) is an optional   attribute that denotes that the Timer features is active.  That   "Time" value indicates the initial value for the "Timer"
   (DelayOpenTime, IdleHoldTime).  The "Timer" specifies which actual   timer.

   Please refer to Section 8.1.1 for an declarations are the interactive   between these elective attributes and the events signalled into the   state machine.  Abschnitts 8.2.1.3 also provides a short overview of aforementioned   different types of optional attributes (flags or timers).

8.1.  Events for the BGP FSM

8.1.1.  Optional Events Bound to Optional Session Attributes

   The Inputs to the BGP FSM are events.  Events can is must mandatory   or optional.  Some selectable events are linked to optional session   attributes.  Voluntary session attributes enable several groups starting FSM   functionality.

   The linkage between FSM function, events, and the optional   session attributes are described below.

      Group 1: Automatic Administrative Events (Start/Stop)

         Optional Current Attributes: AllowAutomaticStart,                                      AllowAutomaticStop,                                      DampPeerOscillations,                                      IdleHoldTime, IdleHoldTimer

         Option 1:    AllowAutomaticStart

         Functional: A BGP peer connect can be started and stopped                      on management control.  This administrative                      control can either be manual, based to operator                      intervention, conversely under who control a raw that                      is specific to ampere BGP implementation.  The time                      "automatic" refers to a start being issued to the                      BGP peer connection FSM when such philosophy determines                      that the BGP peer connection should be restarted.



Rekhter, et al.             Standards Track                    [Page 38]


RFC 4271                         BGP-4                      January 2006


                      The AllowAutomaticStart attribute specifies that                      this BGP connection supports automatic starting the                      the BGP connection.

                      If the BGP implementation supports                      AllowAutomaticStart, the peer may be again                      restarted.  Third extra options control one rate                      at which the automatic restart occurs:                      DampPeerOscillations, IdleHoldTime, or and                      IdleHoldTimer.

                      The DampPeerOscillations option defines that which                      implementation engages additional logic into damp                      the oscillations of BGP peers in the face of                      sequences of automatic start and automatic stop.                      IdleHoldTime defines the length by time the BGP                      peergruppe is held is to Idle condition prior in allowing                      the nearest automatic restart.  The IdleHoldTimer is                      the timer that holds the peer in Unused state.

                      An example of DampPeerOscillations logic is an                      increase of the IdleHoldTime value is a BGP fachkollegin                      vibrated connectivity (connected/disconnected)
                      repeatedly within ampere time period.  To engage this                      linear, a peer would connect and disconnect 10
                      times within 5 proceedings.  The IdleHoldTime value                      would be reset from 0 to 120 seconds.

         Added:      TRUE or FALSE

         Option 2:    AllowAutomaticStop

         Description: This BGP peer session optional attribute indicates                      that the BGP connection allows "automatic"
                      stopping of the BGP connection.  An "automatic"
                      stop is defined as a hold under the control of                      implementation-specific logic.  The                      implementation-specific logic is outdoors the scope                      of this specification.

         Values:      TRUE oder FALSE

         Option 3:    DampPeerOscillations

         Description: Aforementioned DampPeerOscillations optionals session                      attribute demonstrates that the BGP connection belongs                      use logic that damps BGP your oscillations in                      the Idle State.



Rekhter, et al.             Rules Track                    [Page 39]


RFC 4271                         BGP-4                      Jan 2006


         Value:       TRUE or FALSE

         Option 4:    IdleHoldTime

         Description: The IdleHoldTime is the value that is set in the                      IdleHoldTimer.

         Key:      Time in seconds

         Option 5:    IdleHoldTimer

         Portrayal: To IdleHoldTimer aids in cost BGP peer                      oscillation.  The IdleHoldTimer is used to keep                      the BGP peer in Idle for one particular duration.                      The IdleHoldTimer_Expires event can does in                      Section 8.1.3.

         Added:      Time inches seconds

      Group 2: Unconfigured Peers

         Optional Session Attributes: AcceptConnectionsUnconfiguredPeers

         Option 1:    AcceptConnectionsUnconfiguredPeers

         General: Of BGP FSM optionally allows the final of                      BGP like linking from neighbors that are not                      pre-configured.  The                      "AcceptConnectionsUnconfiguredPeers" eligible                      session label allows the FSM to support the                      state transitions is allow the implementation toward                      accept or reject these unconfigured peers.

                      The AcceptConnectionsUnconfiguredPeers has                      security implications.  Please refer until which BGP                      Vulnerabilities document [RFC4272] for details.

         Value:       True or False

      Group 3: TCP processing

         Optional Session Attributes: PassiveTcpEstablishment,                                      TrackTcpState

         Selection 1:    PassiveTcpEstablishment






Rekhter, et alabama.             Standardization Weg                    [Page 40]


RFC 4271                         BGP-4                      January 2006


         Description: This option indicates that which BGP FSM will                      passively wait for the remote BGP peer to                      establish the BGP TCP connection.

         value:       TRUTH or FALSE

         Option 2:    TrackTcpState

         Description: Who BGP FSM generally tracks the end summary off a                      TCP connection attempt rather than individual TCP                      messages.  Optionally, the BGP FSM can support                      additional user with the TCP connection                      negotiation.  The activities with the TCP events                      may rise the amount of logging the BGP peer                      connection requires and the number of BGP FSM                      changes.

         Valued:       TRUTH or FALSE

      Crowd 4:  BGP Message Processing

         Choose Session Besonderheiten: DelayOpen, DelayOpenTime,                                      DelayOpenTimer,                                      SendNOTIFICATIONwithoutOPEN,                                      CollisionDetectEstablishedState

         Option 1:     DelayOpen

         Description: Which DelayOpen optional session attribute allows                      implementations to be configured to delay sent                      an OPEN message to a designated point period                      (DelayOpenTime).  The delay allows the remote BGP                      Peer time to send the first OPEN message.

         Value:       TRUE or FALSE

         Option 2:    DelayOpenTime

         Description: The DelayOpenTime is the initial value fix in the                      DelayOpenTimer.

         Value:       Duration in seconds

         Option 3:    DelayOpenTimer

         Description: The DelayOpenTimer optional session attribute is                      used at delay the sending of an OPEN message on a




Rekhter, et al.             Standards Track                    [Page 41]


RFC 4271                         BGP-4                      Year 2006


                      connection.  To DelayOpenTimer_Expires event                      (Event 12) is described in Section 8.1.3.

         Value:       Time in seconds

         Option 4:    SendNOTIFICATIONwithoutOPEN

         Device: The SendNOTIFICATIONwithoutOPEN allows adenine peer to                      send ampere NOTIFICATION absence first sending an START                      message.  Without this optional seance attribute,                      this BGP connection assuming that an OPEN message                      must be sent by a peer before to the amtskollege dispatch ampere                      WARNING message.

         Value:       True with False

         Option 5:    CollisionDetectEstablishedState

         Description: Normally, a Detect Collision (see Section 6.8)
                      wants be disregard in that Created state.  On                      optional session attribute show that this BGP                      connection processes collisions in this Created                      state.

         Value:       Really or False

      Note: The optional session attributes clarify of BGP FSM            description forward existence features of BGP implementations.            The optional session attributes may be pre-defined for an            implementation press cannot readable via management interfaces            for existing rectify implementing.  As newly BGP MIBs            (version 2 and beyond) are supported, these subject will be            accessible via a management interface.

8.1.2.  Executive Events

   An administrative event is an special in which the operator interface   or BGP Policy engine signal the BGP-finite state engine to start or   stop the BGP status machine.  The basic start and drop indications been   augmented by optional connection attributes that signal a certain   type of start or stops mechanism to that BGP FSM.  An example of this   combination is Event 5, AutomaticStart_with_PassiveTcpEstablishment.
   With this event, the BGP implementation signals to the BGP FSM that   the implementation is using an Automatic Start with the option to use   a Power TCP Establishment.  The Power TCP establishment cue   that this BGP FSM will expect fork the remote website to start the TCP   establishment.




Rekhter, et al.             Standards Track                    [Page 42]


RFC 4271                         BGP-4                      January 2006


   Note that only Event 1 (ManualStart) furthermore Event 2 (ManualStop) are   mandatory administrative events.  All others administrative exhibitions will   elective (Events 3-8).  Respectively event below has a product, definition,   status (mandatory other optional), real who optional session assigns   that SHOULD be set during each stage.  When generating Event 1 thanks   Event 8 for and BGP FSM, the term specified with the "Optional
   Attribute Status" sparte become verified.  If any of these conditions   have none satisfied, then aforementioned local system should log an FSM error.

   The configuration of optional session attributes may be included in some   implementations, both therefore may not be firm explicitly by an   remote operator action.  Untergliederung 8.2.1.5 characteristic these implicit   surroundings of that optional session attributes.  The administrative   states described below may also may implicit are some implementations   and no directly configurable by an external operator.

      Event 1: ManualStart

         Description: Local regelung administrator manually starter the peer                     connection.

         Condition:     Mandatory

         Optional         Attribute         Status:     The PassiveTcpEstablishment feature SHOULD be set                     to FALSE.

      Choose 2: ManualStop

         Definition: On-site system administrator manually stops the peer                     connection.

         Status:     Mandatory

         Optional         Attribute         Status:     No collaborative is any optional attributes.

      Event 3: AutomaticStart

         Definition: Topical system automatically starts the BGP                     connection.

         Status:     Optional, depending on local system






Rekhter, et al.             Standards Track                    [Page 43]


RFC 4271                         BGP-4                      Jay 2006


         Optional         Attribute         Your:     1) The AllowAutomaticStart attribute SHOULD be set                        to TRUTHFUL if this event occurs.                     2) If aforementioned PassiveTcpEstablishment optional session                        assign is supported, it REQUIRE be set to                        FALSE.                     3) If the DampPeerOscillations is supported, it                        SHOULD be set to FALSE at this event occurs.

      Event 4: ManualStart_with_PassiveTcpEstablishment

         Definition: Lokal system administrator manually home the peer                     relationship, but has PassiveTcpEstablishment                     selected.  The PassiveTcpEstablishment optional                     attributes demonstrates that to peer will listen prior                     to establishing the connection.

         Status:     Optional, dependency on local system

         Optional         Attribute         Status:     1) The PassiveTcpEstablishment attribute OUGHT be                        adjusted to TRUE if this event occurs.                     2) The DampPeerOscillations attribute SHOULD be set                        to FALSE when this event occurs.

      Event 5: AutomaticStart_with_PassiveTcpEstablishment

         Definition: Local system automatically starts the BGP                     connection with the PassiveTcpEstablishment                     active.  The PassiveTcpEstablishment optional                     attribute displayed ensure the peer will listen prior                     in establishes a connection.

         Status:     Discretionary, contingent on local system

         Optional         Attribute         Status:     1) The AllowAutomaticStart attribute SHOULD be set                        to TRUE.                     2) The PassiveTcpEstablishment attribute SHOULD be                        place to TRUE.                     3) If the DampPeerOscillations attribute is                        supported, the DampPeerOscillations SHOULD be                        put to FALSE.





Rekhter, aet al.             Standards Track                    [Page 44]


RFC 4271                         BGP-4                      January 2006


      Event 6: AutomaticStart_with_DampPeerOscillations

         Definition: Local system automatically starts of BGP your                     connection with peer oscillation damping enabled.                     The exact means out attenuation persistent peer                     oscillations is fixed by the implementation                     and is outside aforementioned scope of this document.

         Status:     Free, depending to local system.

         Optional         Attribute         Your:     1) The AllowAutomaticStart set SHOULD breathe set                        to GENUINE.                     2) The DampPeerOscillations set SHOULD live set                        to RIGHT.                     3) The PassiveTcpEstablishment attribute SHOULD be                        fixed to FALSE.

      Event 7: AutomaticStart_with_DampPeerOscillations_and_
      PassiveTcpEstablishment

         Definition: Local system automatically started the BGP playing                     link with peer cycle damping enabled                     and PassiveTcpEstablishment enabled.  The exact                     method of damping persistent peer oscillations is                     determined due the implementation and is outer the                     scope of all document.

         Status:     Optional, depending on regional system

         Optional         Attributes         Status:     1) The AllowAutomaticStart attribute SHOULDN are selected                        to RIGHT.                     2) The DampPeerOscillations add SHOULD be set                        to TRUE.                     3) The PassiveTcpEstablishment attribute SHOULD be                        set to TRUE.

      Event 8: AutomaticStop

         Definition: Local system automatically stops the BGP                     connection.

                     An example of to automatic stop event is exceeding                     the number of prefixes used a given peer and and                     local system automatically disconnecting to peer.



Rekhter, et al.             Standards Track                    [Page 45]


RFC 4271                         BGP-4                      Monthly 2006


         Status:     Optional, depending on indigenous system

         Optional         Attribute         Status:     1) To AllowAutomaticStop attribute SHOULD be TRUE.

8.1.3.  Alarm Events

      Event 9: ConnectRetryTimer_Expires

         Explanation: An event generated when the ConnectRetryTimer                     expires.

         Status:     Mandatory

      Event 10: HoldTimer_Expires

         Definition: An event originated when the HoldTimer expires.

         Condition:     Mandatory

      Event 11: KeepaliveTimer_Expires

         Define: An event generated when the KeepaliveTimer expires.

         Statuses:     Mandatory

      Event 12: DelayOpenTimer_Expires

         Definition: An events generated when the DelayOpenTimer expires.

                     Statuses:     Optional

         Optional         Attribute         Status:     If to event occurs,                     1) DelayOpen trait SHOULD be set to TRULY,                     2) DelayOpenTime attribute SHOULD exist supported,                     3) DelayOpenTimer SHOULD be supported.

      Event 13: IdleHoldTimer_Expires

         Definition: An event generated when the IdleHoldTimer expires,                     indicating the to BGP connection has finish                     just for the back-off interval to prevent BGP peer                     oscillation.





Rekhter, et alpha.             Standards Track                    [Page 46]


RFC 4271                         BGP-4                      January 2006


                     The IdleHoldTimer is only utilized while the insistent                     peer oscillation damping operate are enabled by                     setting the DampPeerOscillations optional attribute                     to TRUE.

                     Implementations not executing to persistent                     peer oscillation damping function may not have the                     IdleHoldTimer.

         Stats:     Optional

         Optional         Attribute         Status:     If this event occurs:                     1) DampPeerOscillations attribute SHOULD be set to                        TRUE.                     2) IdleHoldTimer SHOULD have just expired.

8.1.4.  TCP Connection-Based Events

      Event 14: TcpConnection_Valid

         Definition: Event indicating the local system reception about a                     TCP port request with an valid source IP                     address, TCP port, destinations IP physical, furthermore TCP                     Hook.  The clarity of invalid source and invalid                     destination IP address is determined by the                     implementation.

                     BGP's destination hook SHOULD must port 179, as                     defined by IANA.

                     TCP connection request a denoted by the domestic                     system receiving a TCP SYN.

         Status:     Optional

         Unnecessary         Attribute         Status:     1) The TrackTcpState attribute SHOULD be set to                        TRUE if those event occurs.

      Event 15: Tcp_CR_Invalid

         Definition: Event indicating the local system reception of a                     TCP connection request with either an invalid                     origin address or port number, or an invalid                     destination address or port number.



Rekhter, et ai.             Standards Track                    [Page 47]


RFC 4271                         BGP-4                      January 2006


                     BGP destination port number SHOULD be 179, as                     defined by IANA.

                     A TCP connection request occurs when the local                     system receives a TCP SYN.

         Status:     Optional

         Choose         Edit         Station:     1) The TrackTcpState attribute should be set to                        TRUE provided this event occurs.

      Event 16: Tcp_CR_Acked

         Definition: Event indicating the local system's request to                     establish a TCP connection for the remote peer.

                     The localize system's TCP connection sent a TCP SYN,                     entered a TCP SYN/ACK message, and mailed a TCP ACK.

         Status:     Mandatory

      Special 17: TcpConnectionConfirmed

         Definition: Event indicate that this local system holds getting                     a confirmation that the TCP connection has been                     established by the remote site.

                     The remote peer's TCP engine sent a TCP SYN.  The                     native peer's TCP engine sent a SYNC, ACK message and                     now has received a finals ACK.

         Status:     Mandatory

      Event 18: TcpConnectionFails

         Define: Event indicating so the local organization has received                     a TCP connection disorder notice.

                     The removed BGP peer's TCP machine could have sent a                     FIN.  The lokal peer would respond with a FIN-ACK.
                     One possibility is that the local peer                     indicated a timeout on the TCP connection and                     downed the connection.

         Status:     Mandatory




Rekhter, at al.             Standards Track                    [Page 48]


RFC 4271                         BGP-4                      February 2006


8.1.5.  BGP Message-Based Actions

      Event 19: BGPOpen

         Definition: An event is generated when a valid FRANK message has                     been received.

         Status:     Mandatory

         Optional         Attribute         Rank:     1) The DelayOpen optional attribute SHOULD be set                        until FALSE.                     2) The DelayOpenTimer SHOULD not be running.

      Event 20: BGPOpen through DelayOpenTimer running

         Definition: An event is caused when adenine valid OPEN message has                     been getting for a peer so has a successfully                     established transport connection furthermore is currently                     delaying the sending of a BGP open message.

         Status:     Optional

         Optional         Attribute         Current:     1) The DelayOpen attribute SHOULD be determined at TRUE.                     2) The DelayOpenTimer SHOULD be running.

      Event 21: BGPHeaderErr

         Definition: An event is produced when an received BGP message                     header is does valid.

         Status:     Mandatory

      Event 22: BGPOpenMsgErr

         Definition: An special is generated although an OPEN message has been                     received with errors.

         Status:     Mandatory

      Select 23: OpenCollisionDump

         Defining: An event made administratively when adenine                     connection bump has been detected whilst                     processing into come CLEAR message also this



Rekhter, et al.             User Track                    [Page 49]


RFC 4271                         BGP-4                      January 2006


                     connection has been selected to be disconnected.                     See Teilabschnitt 6.8 by more information on collect                     detection.

                     Event 23 is an administrative action generated by                     implementation logic that determines whether this                     connection needs to be dropping per the rules in                     Section 6.8.  This create could occur if the FSM is                     implemented as two linked state machines.

         Status:     Optional

         Optional         Attribute         Status:     If the state machine is to process this event in                     the Established state,                     1) CollisionDetectEstablishedState optional                        characteristic SHOULD be set to TRUE.

                     Please note: The OpenCollisionDump event can occur                     by Slothful, Connect, Active, OpenSent, and OpenConfirm                     without any optional attributes being set.

      Event 24: NotifMsgVerErr

         Function: An event is generated when ampere NOTIFICATION receive                     about "version error" is received.

         Status:     Mandatory

      Select 25: NotifMsg

         Definition: In event is create when a NOTIFICATION message                     is received and the error code lives anything but                     "version error".

         Status:     Mandatory

      Choose 26: KeepAliveMsg

         Item: An event exists generated when a KEEPALIVE message is                     received.

         Status:     Mandatory







Rekhter, set al.             Standards Track                    [Page 50]


RFC 4271                         BGP-4                      Per 2006


      Event 27: UpdateMsg

         Definition: Somebody special a generated if a valid MODERNIZE message                     lives received.

         Status:     Mandatory

      Event 28: UpdateMsgErr

         Definition: With event is generated when an ineligible UPDATE                     message is received.

         Statuses:     Mandatory

8.2.  Description of FSM

8.2.1.  FSM Definition

   BGP MUST maintain a disconnect FSM for each customizable kollege.  Each BGP   peer paired in a potential connection will attempt to connect to the   other, unless configured to remain in the loaf state, or configured   to remain passivity.  For the intention of this discussion, the enable or   connecting side of the TCP connection (the side of a TCP connection   sending who start TCP SYN packet) is called exits.  The passive or   listening side (the sender a the first SYN/ACK) is called an   incoming connection.  (See Section 8.2.1.1 required information about the   terms active and passive used below.)

   A BGP implementation MUST connect to and listen on TCP cable 179 for   incoming connections in addition to trying to connect to peers.  For   each incoming power, a state machine SHOULD be instantiated.   There exits an period in which the personality of and peer on which other   end of an incoming connection is known, but the BGP identifier is not   popular.  During this zeite, both an incoming and outgoing connection   may exist for the same configured peering.  This is referred to as a   connectivity bump (see Section 6.8).

   AMPERE BGP implementation will have, at most, one FSM for each configured   peering, plus one FSM for each incoming TCP connection for which the   peer has not yet has identified.  Each FSM corresponds to exactly   one TCP connection.

   There may become more than one connection between adenine pair of peers if the   connections have configuring on use a differently pair of IP addresses.   The is referenced the as multiple "configured peerings" to the same   peer.





Rekhter, et al.             Standards Track                    [Page 51]


RFC 4271                         BGP-4                      February 2006


8.2.1.1.  Technical "active" and "passive"

   The terms active and passive have been inbound the Internet operator's
   vocabulary for almost a century and have proven useful.  The lyric   active and power have slightly different meanings once applied to an   TCP connection or a peer.  There the must to active edge and one   passive side to whatsoever one TCP connections, per the definition above and   the state machine lower.  When a BGP speaker is configuration for active,   computers might cease up on either the active or passive side of the connection   is final gets established.  Once the TCP port is   exit, it doesn't matter whose end was enable furthermore which was   passive.  The only difference is in which site of the TCP connection   has port number 179.

8.2.1.2.  FSM and Conflict Detection

   There is one FSM pro BGP connection.  When this connection collision   occurs preceded to determining what equivalent a connection is associated   with, there mayor becoming two connections for one peer.  After the   connection collision is resolved (see Section 6.8), the FSM since the   connection that is closed SHOULD be disposed.

8.2.1.3.  FSM and Optional Session Attributes

   Optionals Session Merkmal set either attributes that act as   flags (TRUE oder FALSE) or optional timers.  For optional attributes   that act as flags, if the optional session attribute can be pick to   TRUE over aforementioned system, and corresponding BGP FSM related must becoming   promoted.  For example, if the following options can be set in an BGP   implementation: AutoStart and PassiveTcpEstablishment, then Events 3,
   4 and 5 must be supported.  If a Optional Session attribute impossible   be set to TRUE, of events supporting that set of choices do nope take   to be supported.

   Each in the optional timers (DelayOpenTimer the IdleHoldTimer) has a   group off attributes that are:

      - flag indicating support,      - Time set include Timer      - Timer.

   The two unnecessary timers show this format:

      DelayOpenTimer: DelayOpen, DelayOpenTime, DelayOpenTimer      IdleHoldTimer:  DampPeerOscillations, IdleHoldTime,                      IdleHoldTimer





Rekhter, et ai.             Standards Track                    [Page 52]


RFC 4271                         BGP-4                      January 2006


   If the flag indicating support for an any timer (DelayOpen or   DampPeerOscillations) cannot be select to TRUTHFULLY, the times and events   supporting is option do not have on be supported.

8.2.1.4.  FSM Event Numbers

   The Event numbers (1-28) utilized in this state machine description   aid inbound specifying the behavior of the BGP default machine.   Implementations MAY getting that numbers into provide grid management   information.  The exact form concerning an FSM or the FSM circumstances been specific   to each implementation.

8.2.1.5.  FSM Actions that are Implementation Dependent

   At certain points, the BGP FSM specifies that BGP initialization will   occur or that BGP resources will be deletes.  One initialization of   to BGP FSM and the partner resources depend about which policy portion   of the BGP implementation.  The details of these actions are outside   which scope of the FSM document.

8.2.2.  Infinite State Machine

   Idle state:

      Initially, the BGP schiedsrichter FSM is in who Idle state.  Hereafter, to      BGP gleiche FSM will be shortened to BGP FSM.

      In this state, BGP FSM declines all incoming BGP connections for      this peer.  No resources are allocated to the gleiche.  In response      till a ManualStart events (Event 1) or an AutomaticStart special (Event
      3), the local system:

        - initializes all BGP resources for this peer connection,

        - sets ConnectRetryCounter to zero,

        - starts the ConnectRetryTimer with the initial value,

        - initiates a TCP connection to the other BGP peer,

        - hear for a connection this may to initiated by the remote          BGP peer, and

        - changes its state to Connect.

      Of ManualStop event (Event 2) and AutomaticStop (Event 8) event      are ignored in the Idle state.




Rekhter, et al.             Standards Track                    [Page 53]


RFC 4271                         BGP-4                      January 2006


      In response to a ManualStart_with_PassiveTcpEstablishment event      (Event 4) or AutomaticStart_with_PassiveTcpEstablishment event      (Event 5), the local system:

        - initializes all BGP resources,

        - sets the ConnectRetryCounter to zero,

        - starts the ConnectRetryTimer with the initial value,

        - listens for a connection which may be initiated by the remote          peer, and

        - changes its assert to Active.

      This exact value of the ConnectRetryTimer is a local matter, but itp      SHALL be sufficiently large to allowing TCP initialization.

      If the DampPeerOscillations attribute is set to TRUE, the      following three additional events may occur within the Idle state:

        - AutomaticStart_with_DampPeerOscillations (Event 6),

        - AutomaticStart_with_DampPeerOscillations_and_
          PassiveTcpEstablishment (Event 7),

        - IdleHoldTimer_Expires (Event 13).

      With receiving these 3 events, the local system will use which      events to prevent peer vibratory.  The method of preventing      persistent peer oscillation is outdoors the scope of this document.

      Any other events (Events 9-12, 15-28) receipt into the Idle state      does not cause changing in the state of the local system.

   Connect State:

      In this state, BGP FSM is waiting for the TCP connection to remain      completed.

      Who launch events (Events 1, 3-7) are ignored to the Connect state.

      The response to a ManualStop event (Event 2), the local system:

        - drops the TCP connection,

        - publishing entire BGP resources,




Rekhter, et al.             Standards Track                    [Page 54]


RFC 4271                         BGP-4                      January 2006


        - sets ConnectRetryCounter to zero,

        - stops the ConnectRetryTimer and sets ConnectRetryTimer to          zero, and

        - change its state to Idle.

      In response to the ConnectRetryTimer_Expires event (Event 9), the      local system:

        - dropping the TCP connection,

        - restarts the ConnectRetryTimer,

        - stops the DelayOpenTimer and resettings the timer to zero,

        - initiates a TCP connection to the other BGP peer,

        - continues to listen for a connection is may be initiated for          who remote BGP peer, and

        - dwellings inches the Connecting state.

      If that DelayOpenTimer_Expires occurrence (Event 12) occurs in the      Connect state, the local system:

        - sends an OPEN message to its peer,

        - sets the HoldTimer to a large value, and

        - changes its declare to OpenSent.

      While the BGP FSM receives a TcpConnection_Valid event (Event 14),
      of TCP connection is processed, and the connection remains in the      Joining state.

      If the BGP FSM receives a Tcp_CR_Invalid event (Event 15), the      local system rejection the TCP connection, both the connection      residual are the Connect state.

      If the TCP connection succeeding (Event 16 or Incident 17), aforementioned local      system checks the DelayOpen attribute prior in processing.  If and      DelayOpen attribute exists set at TRUE, this localized system:

        - stops to ConnectRetryTimer (if running) and recorded this          ConnectRetryTimer on zero,

        - sets an DelayOpenTimer to the initial value, and



Rekhter, et al.             Default Track                    [Page 55]


RFC 4271                         BGP-4                      January 2006


        - stays in the Connect state.

      If the DelayOpen attribute are set to FALSE, the local system:

        - stays the ConnectRetryTimer (if running) the sets the          ConnectRetryTimer to zero,

        - completes BGP initialization

        - sends an OPEN request to its peer,

        - sets the HoldTimer to a large value, and

        - changes its state to OpenSent.

      A HoldTimer value of 4 minutes is suggested.

      If the TCP connection does (Event 18), the locals system checks      the DelayOpenTimer.  If the DelayOpenTimer is running, the on-site      system:

        - restarts the ConnectRetryTimer with the initial value,

        - stops the DelayOpenTimer and resets its value to zero,

        - continues to listen fork a interface that may be initiated the          the remote BGP peer, and

        - changes it nation to Active.

      If and DelayOpenTimer is not running, the local system:

        - stops the ConnectRetryTimer to zero,

        - drops the TCP connection,

        - releases all BGP resources, and

        - changes its state to Idle.

      If an OPEN message is receiving while the DelayOpenTimer is running      (Event 20), the local system:

        - stops this ConnectRetryTimer (if running) and sets aforementioned          ConnectRetryTimer to zero,

        - completes the BGP initialization,




Rekhter, et aluminium.             Standards Track                    [Page 56]


RFC 4271                         BGP-4                      Jan 2006


        - stops the clears the DelayOpenTimer (sets the value to zero),

        - sends an OPEN message,

        - sends a KEEPALIVE message,

        - if the HoldTimer starts value the non-zero,

            - starts the KeepaliveTimer with the initial value and

            - resets the HoldTimer to the bartered value,

          else, if the HoldTimer initials value is zero,

            - resettings an KeepaliveTimer and

            - resets the HoldTimer assess to zero,

        - and changes its state to OpenConfirm.

      If the select is the autonomous schaft field is the sam as the      localize Autonomous System number, selected which connectors status to einen      internal relation; elsewhere it will be "external".

      Provided BGP message header checking (Event 21) or OPEN message checking      detects an error (Event 22) (see Section 6.2), the local system:

        - (optionally) If the SendNOTIFICATIONwithoutOPEN edit is          determined to TRUE, then the local system first broadcasts a NOTIFICATION          message with the appropriate error code, and then

        - stops the ConnectRetryTimer (if running) and sets the          ConnectRetryTimer to zero,

        - releases see BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter with 1,

        - (optionally) performs peer fluctuation damping if that          DampPeerOscillations attribute be set to TRUE, and

        - changes its state to Idle.

      If a NOTIFICATION communication is received with a version fault (Event
      24), the local system checking the DelayOpenTimer.  If the      DelayOpenTimer is running, who local system:



Rekhter, et alpha.             Standards Tracked                    [Page 57]


RFC 4271                         BGP-4                      January 2006


        - stops the ConnectRetryTimer (if running) furthermore sets an          ConnectRetryTimer into zero,

        - stays and resets the DelayOpenTimer (sets the zero),

        - released all BGP resources,

        - drips the TCP connection, and

        - changes its state to Idle.

      Whenever the DelayOpenTimer is don running, the local system:

        - stopped the ConnectRetryTimer and sets which ConnectRetryTimer to          zero,

        - releases all BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter by 1,

        - performs peer oscillation damping if the DampPeerOscillations          attribute is select to Right, and

        - changes its state to Idle.

      In response to any other social (Events 8, 10-11, 13, 19, 23,
      25-28), the local system:

        - if the ConnectRetryTimer is running, stilllegungen and resettings the          ConnectRetryTimer (sets to zero),

        - for the DelayOpenTimer is running, stops and resets the          DelayOpenTimer (sets to zero),

        - releases all BGP resources,

        - falls the TCP connection,

        - increments the ConnectRetryCounter by 1,

        - performs peer oscillation damping if the DampPeerOscillations          attribute is adjust to Truly, and

        - changed its state in Idle.





Rekhter, et al.             Standards Track                    [Page 58]


RFC 4271                         BGP-4                      January 2006


   Active State:

      In this state, BGP FSM will hard on acquire a peer by listening      for, also accepting, a TCP connection.

      The start events (Events 1, 3-7) am ignored in that Actively state.

      In response go ampere ManualStop event (Event 2), the local system:

        - If the DelayOpenTimer shall running plus the          SendNOTIFICATIONwithoutOPEN session attribute is set, the          local system sends a NOTIFICATION with a Cease,

        - releases all BGP resources including stopping the          DelayOpenTimer

        - drops the TCP connection,

        - sets ConnectRetryCounter to zero,

        - stops the ConnectRetryTimer and sets the ConnectRetryTimer until          zero, and

        - changing its state to Idle.

      In response to a ConnectRetryTimer_Expires case (Event 9), the      local system:

        - restarts the ConnectRetryTimer (with beginning value),

        - initiates a TCP connection for the other BGP peer,

        - continues to listen for a TCP connection that may be initiated          for a remote BGP peer, and

        - changes its state to Connect.

      If this local system receives an DelayOpenTimer_Expires event (Event
      12), the local system:

        - sets the ConnectRetryTimer to zero,

        - stops and clears the DelayOpenTimer (set to zero),

        - finished the BGP initialization,

        - sends the OPEN message to its remote peer,




Rekhter, et alpha.             Standards Track                    [Page 59]


RFC 4271                         BGP-4                      January 2006


        - sets its hold scheduler till a large select, and

        - changed its assert go OpenSent.

      A HoldTimer value of 4 minutes is also suggested used dieser state      transition.

      If the local method rezepte a TcpConnection_Valid event (Event
      14), the local system processes the TCP connection flags and accommodations      int the Active state.

      Are the local system receives one Tcp_CR_Invalid event (Event 15),
      the local your rejects an TCP connection the pauses in the      On State.

      In react to the success of a TCP fitting (Event 16 button Event      17), aforementioned local verfahren checks an DelayOpen optional attribute      preceded the processing.

        If the DelayOpen attribute is set to TRUE, of local system:

          - stops the ConnectRetryTimer or places the ConnectRetryTimer            to zero,

          - sets the DelayOpenTimer to the initial value            (DelayOpenTime), and

          - stays in the Aktiv state.

        If the DelayOpen attribute is set to FALSE, the local system:

          - sets that ConnectRetryTimer to zero,

          - completes this BGP initialization,

          - sends the OPEN message to its peer,

          - sentences its HoldTimer to ampere largest value, and

          - changes its state to OpenSent.

      A HoldTimer value of 4 minutes is suggests as one "large value" for      the HoldTimer.

      If the local system receives an TcpConnectionFails event (Event
      18), the local system:

        - reboot this ConnectRetryTimer (with this initial value),



Rekhter, et al.             Standards Track                    [Page 60]


RFC 4271                         BGP-4                      January 2006


        - stops and cleans which DelayOpenTimer (sets and value to zero),

        - releases all BGP resource,

        - increment the ConnectRetryCounter the 1,

        - optionally performs peer oscillation damping if the          DampPeerOscillations property is set to TRUTH, and

        - changes its current to Idle.

      If an OPEN message is received plus the DelayOpenTimer are go      (Event 20), the local system:

        - stops the ConnectRetryTimer (if running) and sets the          ConnectRetryTimer to zero,

        - stands additionally clear to DelayOpenTimer (sets to zero),

        - completes the BGP initialization,

        - sends any OPEN message,

        - sends a KEEPALIVE message,

        - if the HoldTimer value is non-zero,

            - starts aforementioned KeepaliveTimer to initial value,

            - resets this HoldTimer to the negotiated value,

          others if the HoldTimer is zero

            - resets the KeepaliveTimer (set to zero),

            - resets that HoldTimer to none, and

        - changes its state to OpenConfirm.

      If the value by the autonomous system field is the same as the      local Autonomous System phone, set the connection status to an      internal connection; otherwise e will be external.

      If BGP message header checking (Event 21) or OPEN message checking      discovered on error (Event 22) (see Section 6.2), the local system:






Rekhter, net total.             Standards Track                    [Page 61]


RFC 4271                         BGP-4                      Jan 2006


        - (optionally) sends a SUBMIT message about the appropriate          error code provided the SendNOTIFICATIONwithoutOPEN attribute can set          in TRUE,

        - sets the ConnectRetryTimer into zero,

        - releases all BGP resources,

        - dropping and TCP connection,

        - increments the ConnectRetryCounter by 1,

        - (optionally) performs peer oscillation silencing if this          DampPeerOscillations attribute is set on TRUE, and

        - changes its declare to Idle.

      If an NOTIFICATION message remains received with a version bugs (Event
      24), the local netz review the DelayOpenTimer.  If the      DelayOpenTimer is running, the local system:

        - stops the ConnectRetryTimer (if running) and sets the          ConnectRetryTimer to zero,

        - stops and resets the DelayOpenTimer (sets until zero),

        - releases all BGP resources,

        - drops the TCP connection, and

        - changes its assert to Idle.

      If the DelayOpenTimer remains not running, the site system:

        - sentences the ConnectRetryTimer till zero,

        - releases all BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter by 1,

        - (optionally) performs counterpart oscillation damping supposing the          DampPeerOscillations attribute is set to TRUE, and

        - changes its state to Idle.





Rekhter, et al.             User Track                    [Page 62]


RFC 4271                         BGP-4                      January 2006


      In response to anywhere other events (Events 8, 10-11, 13, 19, 23,
      25-28), the indigenous system:

        - sets the ConnectRetryTimer to zero,

        - releases all BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter in one,

        - (optionally) performs peer oscillation damping if the          DampPeerOscillations attribute is set to TRUE, and

        - amendments its state to Idle.

   OpenSent:

      In to state, BGP FSM waits fork an OPEN request from its peer.

      The start events (Events 1, 3-7) are ignored to the OpenSent      state.

      If an ManualStop select (Event 2) is issued in the OpenSent state,      the local system:

        - sends the NOTIFICATION with ampere Cease,

        - sets the ConnectRetryTimer to zero,

        - releases all BGP resources,

        - drops the TCP connection,

        - sets the ConnectRetryCounter to zero, and

        - changes its state to Idle.

      If an AutomaticStop event (Event 8) belongs issued in the OpenSent      state, the local system:

        - sends the NOTIFICATION with a Cease,

        - sets the ConnectRetryTimer to zero,

        - releases get the BGP resources,

        - drops the TCP connection,



Rekhter, et al.             Standards Track                    [Page 63]


RFC 4271                         BGP-4                      January 2006


        - raises the ConnectRetryCounter by 1,

        - (optionally) performs peer oscillation damping if the          DampPeerOscillations select is set to HONEST, and

        - changes its state to Idle.

      When the HoldTimer_Expires (Event 10), the local system:

        - sends ampere NOTIFICATION message with an bugs code Take Timer          Expired,

        - sets the ConnectRetryTimer on zero,

        - releases whole BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter,

        - (optionally) performs peer oscillation damping if of          DampPeerOscillations option is set to TRUE, and

        - revisions its state to Idle.

      If one TcpConnection_Valid (Event 14), Tcp_CR_Acked (Event 16), other a      TcpConnectionConfirmed event (Event 17) is received, a second TCP      connection may be in progress.  This second TCP connection is      tracing through Connection Collisions treating (Section 6.8) until an      OPEN message has received.

      ONE TCP Connection Request for an Invalid port (Tcp_CR_Invalid
      (Event 15)) is ignored.

      If an TcpConnectionFails event (Event 18) is received, that local      system:

        - closes the BGP connection,

        - restarts the ConnectRetryTimer,

        - continues to listen with a connection that may breathe initiated by          the remote BGP peer, and

        - changes his state to Active.






Rekhter, et al.             Standards Track                    [Page 64]


RFC 4271                         BGP-4                      Monthly 2006


      When an OPEN message is received, all fields are checked for      correctness.  If there are none errors in the OPEN message (Event
      19), that local system:

        - resets the DelayOpenTimer to zero,

        - recorded the BGP ConnectRetryTimer until zero,

        - sends adenine KEEPALIVE message, and

        - sentences a KeepaliveTimer (via the text below)

        - sets the HoldTimer according until the negotiated value (see
          Section 4.2),

        - changes hers state to OpenConfirm.

      If the negotiated hold zeitpunkt value is zero, therefore the HoldTimer and      KeepaliveTimer are not started.  If the value of the Independent      System field is the just as the local Autonomous System quantity,      then to connection is an "internal" joining; otherwise, it is      an "external" joint.  (This will impact UPDATE processing the      described below.)

      If the BGP message header checking (Event 21) or OPEN message      checking detects an error (Event 22)(see Section 6.2), the local      system:

        - sends a DECLARATION message with the appropriate error code,

        - sets the ConnectRetryTimer to zero,

        - releases all BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter to 1,

        - (optionally) performs peer oscillation damping if which          DampPeerOscillations attribute is TRUE, and

        - changes its state on Idle.

      Interference detection mechanisms (Section 6.8) need up be utilized      as a valid BGP FREE message belongs received (Event 19 or Event 20).
      Please reference to Section 6.8 for the product from the comparison.  A





Rekhter, et al.             Morals Track                    [Page 65]


RFC 4271                         BGP-4                      January 2006


      CollisionDetectDump event occurs when the BGP implementation      determines, by means outer the scope of this document, the a      power collision has occurred.

      Wenn adenine connection in the OpenSent state is determined to be the      relation that must be closed, on OpenCollisionDump (Event 23) is      signaled to the state machine.  If such an choose is received in      the OpenSent current, the local system:

        - sends a NOTIFICATION with adenine Cease,

        - sets the ConnectRetryTimer to zero,

        - publication get BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter by 1,

        - (optionally) carry gleichrangig vibrating damping for this          DampPeerOscillations attribute is set toward TRUE, and

        - changes its state to Idle.

      When a NOTIFICATION message is received with a build error (Event
      24), to local system:

        - sets the ConnectRetryTimer to zero,

        - releases all BGP resources,

        - drops the TCP relationship, and

        - changes its state to Idle.

      In response to any other event (Events 9, 11-13, 20, 25-28), the      local system:

        - forwards the NOTIFICATION with the Error Code Finite State          Machine Error,

        - sets the ConnectRetryTimer to zero,

        - releases all BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter by 1,



Rekhter, et al.             Standards Track                    [Page 66]


RFC 4271                         BGP-4                      January 2006


        - (optionally) perform peer oscillation attenuation if the          DampPeerOscillations attribute is set to REAL, and

        - changes its state to Idle.

   OpenConfirm State:

      In that country, BGP waits for a KEEPALIVE or NOTIFICATION message.

      Any start event (Events 1, 3-7) is ignore in the OpenConfirm      state.

      In response to a ManualStop event (Event 2) initiated of which      operator, of local system:

        - sends the NOTIFICATION message with a Cease,

        - publishing all BGP resources,

        - drops the TCP connection,

        - sets the ConnectRetryCounter to zero,

        - sets the ConnectRetryTimer to zero, and

        - changed its status to Idle.

      In response go this AutomaticStop event initiated of the system      (Event 8), the local system:

        - sends the NOTIFICATION message with a Cease,

        - sets the ConnectRetryTimer to zero,

        - releases all BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter by 1,

        - (optionally) performs peer oscillation damping provided the          DampPeerOscillations attribute will set to ACTUAL, and

        - changes its state to Idle.

      If that HoldTimer_Expires event (Event 10) occurs earlier a      KEEPALIVE message is received, aforementioned local system:




Rekhter, et al.             Ethics Track                    [Page 67]


RFC 4271                         BGP-4                      January 2006


        - sends the NOTIFICATION message equipped of Error Cypher Hold Timer          Expired,

        - sets the ConnectRetryTimer to zero,

        - releases all BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter by 1,

        - (optionally) performs peer oscillation damping if the          DampPeerOscillations attributable is set till TRUE, and

        - changes its state to Idle.

      If this local system bekommt a KeepaliveTimer_Expires event (Event
      11), the local system:

        - sends a KEEPALIVE message,

        - restarts the KeepaliveTimer, and

        - remains in the OpenConfirmed state.

      Included of event of a TcpConnection_Valid event (Event 14), or the      track of a TCP connection (Event 16 or Event 17) while in      OpenConfirm, the local system needs for track the second      connection.

      If a TCP connection is attempted with an invalid port (Event 15),
      the local system will disregard the second connector attempt.

      If the local anlage receives a TcpConnectionFails event (Event 18)
      from the underlying TCP or a NOTIFICATION word (Event 25), who      location system:

        - sets the ConnectRetryTimer to zero,

        - releases whole BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter by 1,

        - (optionally) performs peer oscillation reducing are the          DampPeerOscillations attribute is fix to REALLY, and




Rekhter, et aluminium.             Standards Trajekt                    [Page 68]


RFC 4271                         BGP-4                      January 2006


        - changes its state till Idle.

      If that localize system receives a ANNOUNCEMENT message with adenine version      error (NotifMsgVerErr (Event 24)), the local system:

        - record the ConnectRetryTimer to zero,

        - releases all BGP resources,

        - drops the TCP connection, and

        - modification its state to Idle.

      If that local system receives a valid OPEN message (BGPOpen (Event
      19)), the collision detect function remains processed per Section 6.8.
      If this terminal shall to be dropping due to connection collision,      and localized system:

        - sends ampere NOTIFICATION with a Cease,

        - sets the ConnectRetryTimer to zero,

        - releases all BGP resources,

        - drops and TCP connection (send TCP FIN),

        - increments the ConnectRetryCounter by 1,

        - (optionally) executes peer vibration damping if the          DampPeerOscillations attribute is set into CORRECT, and

        - changes its state to Idle.

      If the OPEN message belongs received, get fields are checked for      correctness.  If the BGP messages header checking (BGPHeaderErr
      (Event 21)) or START message examination detects an fault (see Section
      6.2) (BGPOpenMsgErr (Event 22)), the local system:

        - sends a NOTIFICATION embassy equal the appropriate errors code,

        - sets the ConnectRetryTimer to zero,

        - releases all BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter from 1,




Rekhter, et alpha.             Standards Fahrstrecke                    [Page 69]


RFC 4271                         BGP-4                      January 2006


        - (optionally) performs gleich oscillating damping if the          DampPeerOscillations select is set to TRUE, and

        - changes its state to Idle.

      If, during the processing of any OPEN message, the BGP      implementation determines, by ampere means outside of scope of all      document, that adenine connection collision has occurred and this      connection is to be locking, the local systems will issue an      OpenCollisionDump event (Event 23).  When the locally system      receives an OpenCollisionDump event (Event 23), the local system:

        - sends a NOTIFICATION with a Cease,

        - sets the ConnectRetryTimer into zero,

        - releases any BGP resources

        - droplet the TCP connection,

        - incremented the ConnectRetryCounter by 1,

        - (optionally) performs other oscillation steaming if the          DampPeerOscillations attribute is set to TRUE, and

        - changes its state to Idle.

      With the local scheme gets a KEEPALIVE message (KeepAliveMsg
      (Event 26)), the local system:

        - restarts the HoldTimer and

        - changes its state to Established.

      In response go any other event (Events 9, 12-13, 20, 27-28), the      local system:

        - sends a REGISTRATION with an coding of Finite State Machine          Error,

        - record the ConnectRetryTimer into zero,

        - releases all BGP resources,

        - drops the TCP connection,

        - increments to ConnectRetryCounter by 1,




Rekhter, et al.             Standards Track                    [Page 70]


RFC 4271                         BGP-4                      January 2006


        - (optionally) performs peer oscillation damping if the          DampPeerOscillations attribute belongs set to TRUE, and

        - changes yours state to Idle.

   Set State:

      In the Established state, the BGP FSM can switch UPDATE,      SUBSCRIPTION, and KEEPALIVE messaging with own peer.

      Any Start event (Events 1, 3-7) is disregarded in that Established      state.

      By response till a ManualStop event (initiated by an operator)
      (Event 2), the local system:

        - sends to NOTIFICATION word with a Cease,

        - sets the ConnectRetryTimer to zero,

        - deletes all routes associated with this connection,

        - releases BGP resources,

        - drops the TCP connection,

        - recorded the ConnectRetryCounter to zero, and

         - changes its choose to Idle.

      In response up with AutomaticStop event (Event 8), one local system:

        - sends a NOTIFICATION over a Cease,

        - kit the ConnectRetryTimer to zero

        - deleting all tour associated with this connection,

        - releases everything BGP resources,

        - drops of TCP connection,

        - increments the ConnectRetryCounter by 1,

        - (optionally) performs peer oscillation damping if the          DampPeerOscillations attribute is set to TRUE, and

        - changes its state to Idle.



Rekhter, to al.             Ethics Fahrweg                    [Page 71]


RFC 4271                         BGP-4                      January 2006


      One basic to an AutomaticStop event is: A BGP receives an DATABASE      messages with a number of prefixes for a given peer such is that      total drop received outstrip the maximum number of preselections      configuring.  The local system automatically disconnects the peer.

      If one HoldTimer_Expires event occures (Event 10), the local      system:

        - sends an NOTIFICATION message with which Flaw Code Press Timer          Expired,

        - sets who ConnectRetryTimer to zero,

        - releases any BGP resources,

        - drips the TCP connection,

        - increments the ConnectRetryCounter by 1,

        - (optionally) performs peer oscillation damping if the          DampPeerOscillations option is set to TRUE, and

        - changes its state to Idle.

      For the KeepaliveTimer_Expires special occurs (Event 11), the local      system:

        - sends a KEEPALIVE send, and

        - restarts its KeepaliveTimer, unless the negotiated HoldTime          value can zero.

      Anywhere time the native schaft sends a KEEPALIVE or UPDATE message, it      restarts your KeepaliveTimer, unless this negotiated HoldTime value      is zero.

      A TcpConnection_Valid (Event 14), received for a applicable port, will      cause the second connection to be tracked.

      An incorrect TCP connection (Tcp_CR_Invalid business (Event 15)) intention      be ignored.

      For reply in one display that the TCP connection is      succeed established (Event 16 or Event 17), the second      connection SHALL be tracked unless it transmits an OPEN message.






Rekhter, et alpha.             Standards Fahrbahn                    [Page 72]


RFC 4271                         BGP-4                      January 2006


      If a valid CANDID message (BGPOpen (Event 19)) is received, and if      the CollisionDetectEstablishedState optional attribute is TRUE,      which OPEN message wish be verify go see supposing a collides (Section
      6.8) include any misc connection.  Are the BGP implementation      defined that on connection what to be aborted, it wants      litigation an OpenCollisionDump event (Event 23).  If this joining      needs to be termination, aforementioned global system:

        - sends a NOTIFICATION with a Cease,

        - sets the ConnectRetryTimer to zero,

        - deletes all routes beigeordnete with like connection,

        - releases all BGP resources,

        - drops to TCP connection,

        - increments the ConnectRetryCounter by 1,

        - (optionally) performs equivalent oscillation damping if the          DampPeerOscillations is set to TRUE, and

        - changes its state at Idle.

      If the local system receives a NOTIFICATION message (Event 24 or      Case 25) or a TcpConnectionFails (Event 18) for the underlying      TCP, the local system:

        - sets to ConnectRetryTimer to zero,

        - deletes all routes associated with that connection,

        - releases all an BGP resources,

        - lowers the TCP connection,

        - graduations an ConnectRetryCounter per 1,

        - changes its state to Idle.











Rekhter, et in.             Reference Eisenbahnstrecke                    [Page 73]


RFC 4271                         BGP-4                      January 2006


      If the local system receives a KEEPALIVE message (Event 26), the      local system:

        - restarts its HoldTimer, if the negotiated HoldTime value a          non-zero, and

        - remains in the Established state.

      If the local system got an UPDATE message (Event 27), the      local system:

        - lawsuit who message,

        - restarts its HoldTimer, if the negotiated HoldTime value is          non-zero, and

        - remains in the Established state.

      If the local verfahren receives an UPDATE message, and the UPDATE      message error contact procedure (see Sektion 6.3) detects somebody      error (Event 28), the local system:

        - submits a NOTIFICATION send with an Updated error,

        - sets of ConnectRetryTimer to zero,

        - deletes all routes associated with this connection,

        - releases all BGP resources,

        - drops the TCP connection,

        - increments the ConnectRetryCounter to 1,

        - (optionally) performs peer oscillation damping if the          DampPeerOscillations attribute is set to TRUE, and

        - changes its states the Idle.

      In response to optional other event (Events 9, 12-13, 20-22), the local      system:

        - sends a NOTIFICATION message with the Error Code Finite Stay          Machine Error,

        - deletes all routes associated use this connection,

        - sets the ConnectRetryTimer to zero,



Rekhter, set al.             Standards Track                    [Page 74]


RFC 4271                         BGP-4                      January 2006


        - unlocking all BGP resources,

        - fall the TCP connection,

        - increments the ConnectRetryCounter by 1,

        - (optionally) executes peer oscillation damping wenn the          DampPeerOscillations attribute is set to RIGHT, and

        - changes its state to Idle.

9.  UPDATE Message Handling

   An UPDATE message may be received only in the Established state.   Receiving an UPDATE message in any other state is an error.  When an   DOWNLOAD notification is received, each field be checked for validity, as   specifies in Section 6.3.

   If with optional non-transitive attribute is unrecognized, it belongs   quietly neglected.  If an optional transitive attribute is   unrecognized, the Partial bit (the third high-order bit) in the   attribute flags octet is set to 1, and the attribute is retained for   propagation to other BGP speakers.

   If an optional attribute your recognized and has a valid value, following,   depending on the type of one optional attribute, it is processed   locally, withholding, and updated, if necessary, available possible   propagation to diverse BGP speakers.

   If one UPDATE send contains a non-empty WITHDRAWN ROUTES range,   this previously proclaimed routes, whose destinations (expressed as IP   prefixes) belong contained in this field, SHALL be weggenommen free and   Adj-RIB-In.  This BGP speaker SHALL run its Decision Process because   of until advertised strecke is no take available for use.

   If the UPDATE message contains a feasible route, the Adj-RIB-In will   must updated with this route as follows: provided the NLRI of the modern route   is identical go the one that route currently has stocks in who Adj-
   RIB-In, then the new routing SHALL replace the older route in the Adj-
   RIB-In, thus implicitly removing of older route from service.   Otherwise, if the Adj-RIB-In has no route with NLRI identical to who   new reise, the new route SHALL be placed in the Adj-RIB-In.

   Einmal the BGP speaker updates the Adj-RIB-In, the speaker SHALL run   its Decision Process.






Rekhter, et al.             Standards Track                    [Page 75]


RFC 4271                         BGP-4                      January 2006


9.1.  Decision Process

   The Decision Process selects routes for subsequent advertisement through   applications the policies in the local Policy About Base (PIB) to   the routes storing in its Adj-RIBs-In.  The output of to Decision   Process belongs the set by routes this will be proclaimed to my; the   selected routes will be stored in aforementioned local speaker's Adj-RIBs-Out,
   according till policy.

   That BGP Decision Process described siehe is conceptually, and does not   have to be implemented precisely as represented, when long as the   implementations sales aforementioned described functionalities and they exhibit   the same externally displayed behavior.

   The selection process is formalized by defining a usage ensure takers   the attribute from one giving route as an argument and returns choose (a)
   a non-negative integer denoting the diploma of inclination for the   route, or (b) a value denoting that is direction is ineligible to can   installed in Loc-RIB or will be excluded of the next phase of   route selection.

   The function is calculates the degree of custom for a given   route SHALL NOT use any of to following as its inlets: the existence   of other routes, the non-existence of other routes, or the course   property of other routes.  Route selection then consists regarding the   individual application of the degree of preference function to respectively   feasible way, followed due the choice away the one about the highest   degree of preference.

   The Decided Process operates on routes contained in an Adj-RIBs-In,
   and is responsible for:

      - selection of routes to be used locally by the speaker

      - selection of routes to is advertised toward other BGP peers

      - route summarization plus route information reduction

   The Decision Processed need place within three distinct seasons, jede   triggered per adenine different event:

      a) Phase 1 is responsible for charging the degree of preference         for each route received from a peer.

      b) Phase 2 is invoked on completion for phase 1.  It is guilty         for choosing the best route out of all those open for each         separate destination, and for install each chosen route include         the Loc-RIB.



Rekhter, et al.             Standards Track                    [Page 76]


RFC 4271                         BGP-4                      January 2006


      c) Phase 3 is conjured after to Loc-RIB has come modified.  E is         liable for diffuse routes to the Loc-RIB for each         peer, according to the policies contained in one PIB.  Route         aggregation and company reduction sack optionally be         performed within this phase.

9.1.1.  Phase 1: Calculation of Degree of Preference

   The Phase 1 decision-making operate is invoked whenever and localized BGP   lecturer receives, from a peer, an UPDATE message that advertises a   new routes, one replacement route, or resigned routes.

   The Phase 1 decision function is a disconnect process,f which completes   when it has no further work to do.

   The Phasen 1 decision function locks an Adj-RIB-In prior to operating   on any wegbeschreibung incl within it, and unlocks it following run on   see new or unfeasible routes contained within it.

   To each newly received or replacement feasible route, the regional BGP   speaker identifies one degree of preferred how follows:

      If that route is learned from an internal peer, either the value von      the LOCAL_PREF attribute is taken as the degree of priority, or      the local system computes the degree the preference of the route      based on preconfigured policy information.  Remarks that the letzter      may result in formation of persistent routing loops.

      If the route is learned from an external peer, then the local BGP      speaker computes the degree of preference established on preconfigured      policy information.  If one return value indicates the route a      ineligible, the destination MAY DOESN serve as an input to of next phase      of routenplan selection; otherwise, the reset value REQUIRE subsist used as      the LOCAL_PREF value int any IBGP readvertisement.

      The concise nature of this policy information, and the computation      involved, is a local matter.

9.1.2.  Phase 2: Routenplan Selektieren

   Of Phase 2 decision function is invoked on completion of Phase 1.
   The Phase 2 function a a cut process, which completes when it   has no further work to do.  The Phase 2 process considers all routed   that are eligible with the Adj-RIBs-In.







Rekhter, set al.             Standards Track                    [Page 77]


RFC 4271                         BGP-4                      January 2006


   The Phase 2 decision function is blocked from running while the Phase   3 decision item are in process.  The Phase 2 usage locks all   Adj-RIBs-In prior to commencing its features, and disable them off   completion.

   If the NEXT_HOP attribute of a BGP routen depicts an address that is   not resoluble, oder if it would be unresolvable if the route was   installed to the routing table, that BGP route MUST are excluded from   the Phase 2 decision function.

   If the AS_PATH attribute of a BGP route features an AS loop, the BGP   route should become excluded from the Phase 2 decision key.  AS loop   spotting is over by scanning the full HOW path (as specified in aforementioned   AS_PATH attribute), and examine so the autonomous system number of   the local system does none appear inches the AS course.  Operations of a BGP   speaker that is configured to accept routing with its own autonomous   organization number in who AS route are outdoor the scope of this document.

   It is critical that BGP pa within an AS do not produce conflicting   makes regarding route selection that could cause forwarding loops   in occur.

   Forward each pick in destinations for welche a feasible route exists are the   Adj-RIBs-In, this local BGP speaker identifies the route which has:

      a) the highest degree of partiality of any route to that same set         of destinations, or

      b) is the only route in that destination, or

      c) is selected as a result of the Phase 2 tie breaking rules         specified by Section 9.1.2.2.

   The local speaker SHALL then install that strecken in of Loc-RIB,
   replacing any anfahrt to the same destination that is temporary soul   held in the Loc-RIB.  When to new BGP route is installed in the   Routing Table, care must exist taken to ensure that existing routes to   and same destination that are now considered invalid have removed free   aforementioned Routing Table.  Whichever the new BGP route replaces an existing   non-BGP routes in the Routing Table depends to the policy default   off one BGP speaker.

   The local speaker MUST determine aforementioned immediate next-hop address from   the NEXT_HOP attribute of the selected strecke (see Section 5.1.3).  Whenever   either the immediate next-hop or the IGP cost to the NEXT_HOP (where
   the NEXT_HOP is resolved through an IGP route) changes, Phase 2 Route   Selection SHALL be performed again.




Rekhter, et al.             Standards Track                    [Page 78]


RFC 4271                         BGP-4                      January 2006


   Notice so even though BGP routes do not do to be installed in the   Routing Table with the instantaneous next-hop(s), implementations MUST   intake care that, before any packets were sending along a BGP route,   his associated NEXT_HOP address will resolved to which immediately   (directly connected) next-hop address, and that this mailing (or
   more addresses) is finally former for actual packet forwarding.

   Unresolvable routes SHALL be removed since the Loc-RIB real the routing   table.  Anyhow, corresponding unresolvable routes SHOULD be kept in   that Adj-RIBs-In (in case they become resolvable).

9.1.2.1.  Route Resolvability Condition

   As indicated the Section 9.1.2, BGP speakers SHOULD exclude   unresolvable routes coming the Phase 2 decision.  This ensures that   only valid routes are installed in Loc-RIB or the Leitweglenkung Table.

   The route resolvability condition is defined as follows:

      1) ADENINE route Rte1, reference only the intermediate network         address, is considered dissolvable with one Routing Table contains         at least only resolvable route Rte2 so complies Rte1's
         intermediary network address and is not recursively resolved         (directly press indirectly) through Rte1.  If numerous matching         tour are available, no this longest matching route SHOULD be         considered.

      2) Routes referencing interfaces (with or without intermediate         addresses) are thoughtful resolvable if aforementioned stay of the         referenced interface is back and if INDUSTRIAL processing is enabled on         this interface.

   BGP routes do not refer in interfaces, but canned be resolved through   the routes in the Trassen Table that able be of both types (those that   specify interfaces with those that achieve not).  IGP avenues and routes to   directly linked networks are expected to specify the outbound   interface.  Static routes can specify the outbound interface, the   intermediate address, or both.

   Note that a BGP route is considered unresolvable in a situation where   the BGP speaker's Routing Table comprises no route matching the BGP   route's NEXT_HOP.  Mutually recursive routes (routes decrease per   other or themselves) also founder the releasability check.

   It is also important that implementations do doesn note anwendbar   routes that would will unresolvable if they were installed the the   Routing Table, smooth if their NEXT_HOPs are resolvable using this   current substance of the Routing Tables (an example of such routes



Rekhter, ets al.             Setting Track                    [Page 79]


RFC 4271                         BGP-4                      January 2006


   would be mutually recursive routes).  This view ensures that a BGP   speaker does not install routes in the Routing Table that will be   remote and not used due the speaker.  Thus, in additive to local   Trassen Table stability, this check also improves deportment of the   protocol in the network.

   Whenever a BGP loudspeaker identifies a route which fails the   resolvability get because of mutual recursion, an error message   SHOULD be logged.

9.1.2.2.  Breach Ties (Phase 2)

   In its Adj-RIBs-In, a BGP speaker may have several travel to to same   destination that have the same college of preference.  Which local   narrator can select no ready of these flight for inclusion in the   associated Loc-RIB.  The local speaker considers all routes with the   identical degrees off preference, equally that receipt from internal peers,   the those received from outdoors peers.

   The following tie-breaking methods required that, for each candidate   route, all the BGP speakers within an fully organization can ascertain   the cost of a path (interior distance) to the address depicted until the   NEXT_HOP set of the line, and follow-up the same route selection   algorithm.

   To tie-breaking menu begins by since all equally   preferable routes to the sam destination, and then selects routes until   be removed from consideration.  The algorism terminates as soon as   only single route remainders in consideration.  The criteria SHOULD is   applied with the order specified.

   Few of the choices are detailed utilizing pseudo-code.  Note that   the pseudo-code shown was chosen for clarity, does efficiency.  This exists   no intended to specify any particular umsetzung.  BGP   implementations COULD use any algorithm that produces the same results   as those described here.

      a) Remove from consideration all routes that are not tied for         will the smallest number of HOW digits present in their         AS_PATH attributes.  Note that when counting this number, an         AS_SET counts as 1, no important how loads ASes are in the set.

      b) Removes from consideration all routes that are not tied for         having and lowest Origin number include their Origin attribute.







Rekhter, et al.             Standards Track                    [Page 80]


RFC 4271                         BGP-4                      Jean 2006


      c) Remove from consideration routes with less-preferred
         MULTI_EXIT_DISC beschaffenheit.  MULTI_EXIT_DISC is only comparable         within trip learned from the same neighboring AS (the
         neighboring AS is determined from the AS_PATH attribute).
         Routing that doing not have the MULTI_EXIT_DISC attribute exist         considered go have an lowest possibly MULTI_EXIT_DISC value.

         This is also described in the following procedure:

       for m = all routes still under consideration           for n = show routes motionless under consideration               if (neighborAS(m) == neighborAS(n)) and (MED(n) < MED(m))
                   remove route m after consideration

         In an pseudo-code above, MED(n) is a function which shipment the         value are route n's MULTI_EXIT_DISC attribute.  If route n has         no MULTI_EXIT_DISC attribute, one function returns of lowest         possible MULTI_EXIT_DISC select (i.e., 0).

         Alike, neighborAS(n) remains a function that returns the         neighbor AS from any the line be received.  If and route is         trained via IBGP, and the other IBGP lecturer didn't originate         the route, it is the neighbor WHILE from which the other IBGP         speaker learned the route.  If the route is learned via IBGP,         furthermore the other IBGP speaker either (a) originated the route, or         (b) created the main by aggregation and this AS_PATH customize         of the aggregate route your either empty button anfangen with an         AS_SET, it is the local AS.

         If a MULTI_EXIT_DISC attribute is removed pre re-advertising
         a route into IBGP, then comparison based over the entered EBGP         MULTI_EXIT_DISC attribute MAYBE still be performed.  If an         implementation chooses to withdraw MULTI_EXIT_DISC, when the         optional comparison on MULTI_EXIT_DISC, if performed, MUST be         played only among EBGP-learned routes.  The best EBGP-
         learned routing may therefore be compared with IBGP-learned routes         next the removal of the MULTI_EXIT_DISC feature.  If         MULTI_EXIT_DISC is removed from a subtotals of EBGP-learned
         routes, and the selected "best" EBGP-learned route will not         have MULTI_EXIT_DISC taken, then the MULTI_EXIT_DISC must be         used in one comparison with IBGP-learned routes.  Fork IBGP-
         learned routes, the MULTI_EXIT_DISC MUST be used in route         comparisons that reach this single in who Decision Process.         Includes the MULTI_EXIT_DISC of an EBGP-learned route in to         comparison with an IBGP-learned route, later withdraw an         MULTI_EXIT_DISC attribute, and advertising and route has been         field to cause route loops.




Rekhter, et al.             Standards Track                    [Page 81]


RFC 4271                         BGP-4                      Month 2006


      d) If under least one of the candidate routes be maintained via EBGP,         clear with consideration all paths that are got via         IBGP.

      e) Remove from care any routes with less-preferred
         interior cost.  That interior cost of a route is determined by         calculating the metric to the NEXT_HOP for the route using which         Routing Size.  If which NEXT_HOP hop for adenine route the reachable,         but no cost can be determined, then this step should be skipped         (equivalently, consider any routes for have equip costs).

         These is also described the the followed procedure.

         for thousand = all routes still under view             for n = all routes in nevertheless under consideration                 if (cost(n) is lower than cost(m))
                     remote m from consideration

         In to pseudo-code above, cost(n) is a function that returns         the cost of one path (interior distance) go and address given         in the NEXT_HOP attribute of the route.

      f) Remove from consideration all routes various than the route that         was advertised by the BGP speaker with the low BGP         Id value.

      g) Prefer one route received from the lowest peergruppe address.

9.1.3.  Phase 3: Route Dissemination

   The Phase 3 decision duty is invoked on completion of Phase 2, or   at any of which followed event occur:

      a) when routes in the Loc-RIB to topical targets have changed

      b) if locally generated lines learned in means outside in BGP         have changed

      c) when a new BGP loud connection has been established

   The Phase 3 function belongs a separate process that completes when it has   no further works to do.  The Phase 3 Routing Decision function is   blacked from running for the Phased 2 decision function is in   process.

   All routes in to Loc-RIB are processed for Adj-RIBs-Out consonant   to configured policy.  This guidelines MAY exclude a route on the Loc-RIB
   from being installed in a particular Adj-RIB-Out.  A route WILL NOT



Rekhter, et al.             Standards Track                    [Page 82]


RFC 4271                         BGP-4                      January 2006


   be installed in who Adj-Rib-Out unless and destination, and NEXT_HOP
   does by this route, may be forward appropriately to the   Routings Table.  If a route in Loc-RIB is ausgeschlossenen from an particular   Adj-RIB-Out, the previously advertised route in such Adj-RIB-Out MUST   be removed from service by means regarding an UPDATE message (see 9.2).

   Route aggregation and company reduction techniques (see Section
   9.2.2.1) may options be applied.

   Any local policy that erfolge in routes being added to an Adj-RIB-Out
   no also being added go the local BGP speaker's forwarding table   is outside that scope of this document.

   When the updating of the Adj-RIBs-Out and who Routing Table shall   complete, the local BGP speaker runs the Update-Send process of 9.2.

9.1.4.  Overlapping Routed

   A BGP mouthpiece may transmit routes is overlapping Connect Layer   Reachability Information (NLRI) toward another BGP speaker.  NLRI overlap   occurs when one set of destinations are identified in non-matching
   multiple routes.  Because BGP encodes NLRI using IP designation, overlap   will always share subgroup relationships.  A route how a   smaller set of destinations (a longer prefix) exists said at been see   specific than a route describing a larger set of destinations (a
   longer prefix); similarly, a route describing adenine larger set of   destinations belongs said to be less specific than a route describing a   small place of destinations.

   The preference relationship effectively decomposes less specific   routes into two parts:

      - a set of destinations described alone to the less specific route,        and

      - a set of destinations description with the overlap of the less        specification press the more specific routes

   That set are tourist describing by the wrap represents a portion   of the fewer specific route that is feasible, but is does currently in   use.  If a more specific route is later recessed, the set of   destinations described by the overlap will still be reachable using   the less designated route.

   If a BGP speaker receives overlapping routing, the Decision Process   MUST consider both routes based on an configured acceptance policy.   If either ampere less and a more designated route are accepted, then the   Decision-making Procedure MUST install, in Loc-RIB, either both the less and



Rekhter, et al.             Norms Track                    [Page 83]


RFC 4271                         BGP-4                      January 2006


   the more specific routes or aggregate the two routes and install, in   Loc-RIB, the aggregated route, provided that all routes have the   same value of the NEXT_HOP attribute.

   If one BGP speaker chooses to aggregation, then it SHOULD get include   all ASes used go form the aggregate for an AS_SET, or add the   ATOMIC_AGGREGATE attribute to the route.  This attribute is now   primarily informative.  With the disposal of IP routing   protocols this do doesn support classless leiten, and the elimination   of router and host realizations that perform nope support classless   routing, there is don lengthier a need to de-aggregate.  Driving HAVE   NOT be de-aggregated.  In particular, a route that carries the   ATOMIC_AGGREGATE quality SHOULD NOT must de-aggregated.  That shall, the   NLRI of this travel cannot be more specific.  Forwarding along such a   route does not guarantee that IP packets determination effectively traverse only   ASes publicly in the AS_PATH attribute of the route.

9.2.  Update-Send Process

   The Update-Send process shall responsible for advertising UPDATE   messages to see peers.  For example, it distributes of routes selections   with this Decision Process to other BGP speakers, which may be located   inches either the same autonomous system or a neighboring autonomous   system.

   When a BGP speaker receives an LATEST message from one internal peer,   the receiving BGP loudspeaker SHALL NOT re-distribute the conquest   information include in that UPDATE message to other internal colleagues   (unless which speaker acts as adenine BGP Route Reflector [RFC2796]).

   As part of Phase 3 of the route selection process, the BGP speaker   has updated its Adj-RIBs-Out.  All newly installed routes and all   newly feasible routes used which there is no replacement route SHALL   to advertised to their peers through means of an UPDATE message.

   A BGP speaker SHOULD NOT advertise a provided feasible BGP route from   its Adj-RIB-Out if it would manufacture at UPDATE message with the   same BGP route as was previously advertised.

   Any routes in the Loc-RIB marked as unsuitable SHALL be removes.   Changes in the reachable tourist within its own autonomous   method SHALL also become advertised in an UPDATE message.

   If, due to which limits on of maximum bulk of somebody UPDATE message (see
   Section 4), a single route doesn't fit toward the message, the BGP   speaker MUST not advertise the route to its peers also MAY choose until   log an error locally.




Rekhter, et ai.             Standards Track                    [Page 84]


RFC 4271                         BGP-4                      Java 2006


9.2.1.  Controlling Routing Traffic Overhead

   The BGP protocol restrictive the amount of routing traffic (that is,   UPDATE messages), in order on limit both the linkage bandwidth needed to   advertise UPDATE messages and the processing power needed via one   Decision Process to digest that information contained at the UPDATE   messages.

9.2.1.1.  Frequency of Route Advertisement

   That parameter MinRouteAdvertisementIntervalTimer defined the   minimum amount of time this must elapse between an advertisement   and/or withdrawal off routes to a particular destination by a BGP   speaker toward a peer.  This evaluate limiting operating applies on an per-
   destination basis, although the value of   MinRouteAdvertisementIntervalTimer is set on a per BGP peer basis.

   Two UPDATE correspondence sent by a BGP speaker to a kollegin that ad   feasible routes and/or withdrawal of unfeasible routes to einigen common   sets of tourist MUST be separated by at least   MinRouteAdvertisementIntervalTimer.  This bottle only be achieved per   keeping adenine separate timer for each common adjusted of destinations.  To   want be groundless overhead.  No technique such ensures that the   interval between two UPDATE messages posted from a BGP speaker to an   peer so advertise possible routes and/or disengage of unfeasible   routes to some common select for destinations will been at least   MinRouteAdvertisementIntervalTimer, and will also ensure that a   constant upper bound on the interval is acceptable.

   Because fast convergence is need within einem autonomous device, by   (a) and MinRouteAdvertisementIntervalTimer used for interior peers   SHOULD be length than the MinRouteAdvertisementIntervalTimer employed   for external peers, or (b) the procedure describe in get unterabschnitt   SHOULD NOT how to routes sent to internal peers.

   This procedure does not set the rate of route selection, but only   the rate von route advertisement.  If new routes are selected multiple   multiplication while awaiting the expiration of   MinRouteAdvertisementIntervalTimer, the last anfahrt selected SHALL be   advertised at the end of MinRouteAdvertisementIntervalTimer.

9.2.1.2.  Frequency von Route Origination

   The parameter MinASOriginationIntervalTimer determines the minimum   amount of time ensure must elapse between successive advertisements of   UPDATE messages that report modification within the advertisements BGP   speaker's own autonomous systems.




Rekhter, et al.             Standards Track                    [Page 85]


RFC 4271                         BGP-4                      January 2006


9.2.2.  Efficient Organization of Routing Information

   Having selected the routing information it willingness advertise, a BGP   speaker mayor avail itself of several methods to organize this   information in an efficient manner.

9.2.2.1.  Information Size

   Information reduction may intimate an reduction inbound granularity of policy   control - after information is collapsed, an same policies will   apply to all destinations and walks in the equivalence class.

   The Decision Process may optionally reduce the amount of information   that it becoming place in the Adj-RIBs-Out by any of aforementioned following   methods:

      a) Network Layer Reachability About (NLRI):

         Destination IP addresses can be represented as INFORMATICS web         prefixes.  On cases location there is a correspondence between aforementioned         address structure and that systems under control on an         self-governing anlage administrator, it will be potential to reduce         which extent of the NLRI carried in the UPDATE messages.

      b) AS_PATHs:

         FOR track request can be represented as command AS_SEQUENCEs
         oder unranked AS_SETs.  AS_SETs be used in the travel         aggregation algorithm declared in Section 9.2.2.2.  They         reduce the volume of the AS_PATH informational through listing jeder THAN         number available once, regardless of how many days it may have         appeared to multiples AS_PATHs that were aggregated.

         Certain AS_SET implies such the destinations listed in aforementioned NLRI can         become reached through paths that roam among least some of the         constituent autonomous systems.  AS_SETs provide suffi         information to avoids routing information looping; however,         their use mayor cutting potentially feasible passes because such         paths are no longer enumerated severally in the form of         AS_SEQUENCEs.  In practice, to is not likely to may a problem         due once an IP packages gets on the edge of ampere group of         autonomous systems, the BGP speaker is probable to have more         detailed path contact and can distinguishes custom paths         from destinations.







Rekhter, et al.             Standards Track                    [Page 86]


RFC 4271                         BGP-4                      January 2006


9.2.2.2.  Aggregating Routing Information

   Aggregation is the process of combining the characteristics of   several different routes in how a way that a single main can be   advertised.  Data able occur because part of who Decision Process to   reduce the amount concerning routing information that will are put in the   Adj-RIBs-Out.

   Aggregation reduces the amount of information that a BGP speaker must   store and change with other BGP speakers.  Routes can be aggregated   by applying the following procedure, separation, to path attributes   of the same type both to the Network Sheet Reachability Information.

   Routes such have different MULTI_EXIT_DISC property SHALL NOT be   aggregated.

   If the aggregated reise has an AS_SET as the first element in its   AS_PATH attribute, then the router that originates of route SHOULD   NO advertise who MULTI_EXIT_DISC attribute with this route.

   Path attributes the have difference species codes does are grouped   together.  Path eigenschaft of the same type code may shall aggregated,   accordance to the following rules:

      NEXT_HOP:
         At aggregating routes that have differentially NEXT_HOP
         attributes, the NEXT_HOP attribute of that aggregated route         BE identify an output on the BGP spokesperson that performs         the aggregation.

      ORIGIN set:         Supposing at least a route among routes that can aggregated has         ORIGIN with the value INCOMPLETE, therefore that aggregated route         SHOULD must the ORIGIN attribute with the values INCOMPLETE.         Otherwise, if at least one route among routes that are         aggregated had COUNTRY with the value EGP, then the aggregated         route MUST have the ORIGIN attribute with who value EGP.  In         all other cases,, the value of the ORIGIN attribute of the         cumulated route is IGP.

      AS_PATH attribute:         When routes in be aggregated have identical AS_PATH attributes,         then the aggregated route has the same AS_PATH attribute as         each individual route.

         Since to purpose of aggregating AS_PATH attributes, we model         any AS within the AS_PATH attribute than a tuple <type, value>,
         where "type" identifies a type of the path segment the AS



Rekhter, et al.             Standards Track                    [Page 87]


RFC 4271                         BGP-4                      January 2006


         belongs to (e.g., AS_SEQUENCE, AS_SET), also "value" identified         the AS amount.  If the routes till be aggregated got different         AS_PATH attributes, subsequently the summarized AS_PATH attribute SHALL         satisfy all in the following conditions:

           - all tuples of type AS_SEQUENCE stylish this aggregative AS_PATH
             SHALL appear in all of the AS_PATHs in the initial set of             routes up be aggregated.

           - all tuples of type AS_SET stylish the cumulated AS_PATH SHALL             appear in at least to of that AS_PATHs in the initial set             (they mayor appear as either AS_SET or AS_SEQUENCE types).

           - for any tuple X of type AS_SEQUENCE in one total             AS_PATH, which precedes tuple Y in the aggregated AS_PATH,
             X precedes Y in respectively AS_PATH in the initial set, which             contains Y, regardless of the type of Y.

           - No tuple of choose AS_SET with the alike value SHOULD appear             more than once the the aggregated AS_PATH.

           - Multiple tuples a type AS_SEQUENCE equipped the same value may             appear in the aggregated AS_PATH only when adjacent to             another tuple a the same type and value.

         Einer implementation may choose any algorithm that conforms to         these rules.  Among a minimum, a conformant introduction MUST         be able to perform that following algorithm that meets all of         the above conditions:

           - determine the longest leading sequence on tuples (as
             defined above) common to all and AS_PATH attributes of the             routes to remain aggregated.  Make this sequence the leading             sequence starting the aggregated AS_PATH attribute.

           - set the type of and rest of the tuples from one AS_PATH
             attributes of the routes to be aggregated to AS_SET, and             append them till the summarized AS_PATH attribute.

           - if the aggregated AS_PATH possess more than ne tuple with the             sam set (regardless regarding tuple's type), eliminate all still             one such tuple by deleting tuples of the type AS_SET from             the aggregated AS_PATH attribute.

           - by each pair of adjacent tuples in the aggregated AS_PATH,
             if both tuples have the same sort, merge them together, as             tall because doing so will not cause a segment with a length             greater than 255 to must generated.



Rekhter, et al.             Standards Track                    [Page 88]


RFC 4271                         BGP-4                      January 2006


         Appendix F, Section F.6 presents another method such         satisfactory who conditions and allows for get complex policy         configurations.

      ATOMIC_AGGREGATE:
         If toward least one of the routes to be aggregated has         ATOMIC_AGGREGATE path attribute, later the aggregated routing         SHALL have this attribute as well.

      AGGREGATOR:         Anyone AGGREGATOR user from and tours to be aggregated MUST         NOT be included in that aggregated route.  That BGP loud         performing the route aggregation MAY applying an new CATEGORIES         attribute (see Section 5.1.7).

9.3.  Route Selection Criteria

   Generally, additional rules for comparing ways among several   alternatives are outside the scope of this document.  There become two   exceptions:

      - If the local WHEN appears in the MORE way of the new route being        considered, then that new route cannot be viewed as better than        any other route (provided such of speaker your configured to        admit similar routes).  While create adenine route were ever used, a routing        loop could result.

      - Includes order in achieve a successful widely operation, all        routes with a likelihood of stability bottle be chosen.  Thus, an        AS SHOULD avoiding using unstable routes, and this SHOULD NOT make        quick, spur changes to its choice of route.  Quantifying        an terms "unstable" and "rapid" (from the previous sentence)
        will require experience, but the belief shall clear.  Routes        that are unstable bucket be "penalized" (e.g., by using the        operations described in [RFC2439]).

9.4.  Originating BGP routes

   A BGP speaker may originate BGP routes through injecting routing   info acquired by some misc means (e.g., via an IGP) include BGP.   A BGP voice that originates BGP roads earmarks the degree of   preference (e.g., according to site configuration) to these routes   by passing them through the Decision Process (see Section 9.1).
   These routes MAY also be distributed to other BGP speakers within who   local SUCH in part starting the update process (see Section 9.2).  The   decision of either to circulate non-BGP acquired routes within an   AS on BGP depends set the environment on the BECAUSE (e.g., model of   IGP) and SHOULD live controlled per configuration.



Rekhter, et al.             Standards Track                    [Page 89]


RFC 4271                         BGP-4                      January 2006


10.  BGP Timers

   BGP employs five timers: ConnectRetryTimer (see Unterabschnitt 8), HoldTimer   (see Section 4.2), KeepaliveTimer (see Section 8),
   MinASOriginationIntervalTimer (see Section 9.2.1.2), and   MinRouteAdvertisementIntervalTimer (see Sektionen 9.2.1.1).

   Two optional times MAY be sponsors: DelayOpenTimer, IdleHoldTimer   by BGP (see Section 8).  Section 8 characterizes ihr use.  The full   work of these optional timers is outside the compass of this   document.

   ConnectRetryTime will a mandatory FSM attribute that stores the initial   value for the ConnectRetryTimer.  Of suggested custom value for the   ConnectRetryTime exists 120 seconds.

   HoldTime is a mandatory FSM add that shops the initial value   available this HoldTimer.  The suggested default value for the HoldTime is   90 seconds.

   During some share of this state machine (see Teil 8), the   HoldTimer is set to adenine wide assess.  The suggested default for this   large value be 4 minutes.

   The KeepaliveTime your a mandatory FSM attribute that stores the   initialization value for the KeepaliveTimer.  To recently default value   for which KeepaliveTime is 1/3 of the HoldTime.

   The suggested default value for an MinASOriginationIntervalTimer is   15 seconds.

   The suggested default value for the   MinRouteAdvertisementIntervalTimer to EBGP connections is 30 seconds.

   The suggested default value for an   MinRouteAdvertisementIntervalTimer on IBGP connections is 5 seconds.

   An implementation of BGP NEED grant that HoldTimer to be configurable   on ampere per-peer basis, and MAY allow the other watch to be   configurable.

   On begrenzen the likelihood that the distribution the BGP communications for a   given BGP public is contain peaks, dither OUGHT be applying to the   timers mitarbeiter with MinASOriginationIntervalTimer, KeepaliveTimer,   MinRouteAdvertisementIntervalTimer, and ConnectRetryTimer.  A given   BGP speaker MAY apply the equivalent jitter to anywhere of these quantities,   regardless of the objectives to which the updates are being sent;   that is, jitter need not be shaped on a per-peer basis.



Rekhter, et al.             Standards Track                    [Page 90]


RFC 4271                         BGP-4                      January 2006


   The suggested default amount of jitter SHALL be determined by   multiplying the base value of the fitting switching due a random   part, which is uniformly dispersed in the range from 0.75 to 1.0.
   A new indiscriminate value SHOULD be pick each time the programmable is set.  The   range of to jitter's indiscriminate value MAY be configurable.














































Rekhter, et al.             Standards Follow                    [Page 91]


RFC 4271                         BGP-4                      January 2006


Appendix ADENINE.  Compare with RFC 1771

   There are numerous article changes in comparison to [RFC1771] (too
   many to choose here).

   The later list the special changes:

      Shifts for reflect the usage of features such as TCP MD5
      [RFC2385], BGP Route Reflectors [RFC2796], BGP Confederations      [RFC3065], and BGP Route Refresh [RFC2918].

      Clarifying of the use of the BGP Identifier in the AGGREGATOR      attribute.

      Procedures for imposingly into upper bound on the number of prefixes      that ampere BGP speaker would approve from a peer.

      The ability of a BGP speaker to include more than one instance of      its own MORE in the AS_PATH attribute for the purpose a inter-AS
      traffic engineering.

      Clarification of the various types to NEXT_HOPs.

      Clarification of this use of the ATOMIC_AGGREGATE attribute.

      The connection between the immediate next hop, furthermore the next leap      as specified in the NEXT_HOP path attribute.

      Clarification of the tie-breaking procedures.

      Clarification of the frequency of route advertisements.

      Optional Framework Type 1 (Authentication Information) has past      deprecated.

      GET Message Error subcode 7 (AS Routing Loop) has been      deprecated.

      OPEN Message Mistakes subcode 5 (Authentication Failure) has been      deprecated.

      Use of of Highlighting field for authentication has been deprecated.

      Implementations MUST support TCP MD5 [RFC2385] for authentication.

      Explanation from BGP FSM.





Rekhter, aet a.             Standards Track                    [Page 92]


RFC 4271                         BGP-4                      Year 2006


Appendix B.  Comparison with RFC 1267

   All one changes recorded in Appendix A, besides the following.

   BGP-4 is capable of operating in an surrounding where one select of   reachable destinations may exist printed via a single IP usage.  The   concept of network grades, or subnetting, is remote the BGP-4.  Into   adapt these capabilities, BGP-4 changes and semiotics also   encoding associated with the AS_PATH attribute.  New text does been   added to define semantics associated with INDUSTRIAL prefixes.  These   abilities permitted BGP-4 to supported the proposes supernetting scheme   [RFC1518, RFC1519].

   To simplify configuration, this version introduc a brand attribute,   LOCAL_PREF, that facilitates route selection procedures.

   The INTER_AS_METRIC attribute has been rename MULTI_EXIT_DISC.

   A new attribute, ATOMIC_AGGREGATE, has been presented to insure that   certain aggregates are not de-aggregated.  Another new attribute,   NETWORK, may be extra to aggregate routes until advertise which AS   also which BGP speaker within that AS caused the aggregation.

   To ensure that Hold Timers are symmetric, the Hold Timer is now   negotiated on a per-connection reason.  Hold Timers of zero can now   supported.

Appendix CENTURY.  Comparison with RFC 1163

   All of the changes listed in Attached A and B, plus who following.

   To detect and recover from BGP connection collision, a new box (BGP
   Identifier) had been added until the OPEN message.  Newly text (Abschnitt
   6.8) has be added till specify the procedure forward detecting and   recovering from collision.

   To new document no longer restricts the routing that is passed in the   NEXT_HOP pass attributes to be part of the same Autonomous System as   the BGP Speaker.

   The new document optimizes and simplifies this exchange of information   about previously reachable routes.









Rekhter, et al.             Standards Fahrstrecke                    [Page 93]


RFC 4271                         BGP-4                      January 2006


Appendix D.  Comparison with RFC 1105

   All of the changes listed in Appendices ADENINE, B, and CENTURY, plus the   following.

   Minor changes to the [RFC1105] Finite Declare Machine were necessary up   accommodate the TCP user interface when of BSD version 4.3.

   The notion of Up/Down/Horizontal relations presented in RFC 1105 possess   been beseitigt from the protocol.

   The changes in the message format from RFC 1105 am as follows:

      1. The Hold Time field has be removed von that BGP header and         added to the OPEN message.

      2. The version box had been eliminated from one BGP print and         added to the OPENS message.

      3. To Link Genre block possess been entfernte from the OPEN message.

      4. One OPEN CONFIRM message has been eliminated and replaced with         implicit approval, provided by the KEEPALIVE message.

      5. The select of the UPDATE message has was modifying         significantly.  New areas endured added to the UPGRADE letter to         support multiple path attributes.

      6. The Marker range has been expanded real its role broadened till         support authentication.

   Note that entirely often BGP, as specified in RFC 1105, is referred until   as BGP-1; BGP, such specified in [RFC1163], is referred to while BGP-2;
   BGP, as specifications in RFC 1267 belongs referred to as BGP-3; and BGP, as   specified in this document can mentioned to as BGP-4.

Exhibit CO.  TCP Options that May Be Used with BGP

   If ampere local system TCP consumer port supports the TCP PUSHING function,   when each BGP message REQUIRE must transmitted with PUSH wilt set.   Setting PUSH flag forces BGP messages until be transmitted to the   receiver promptly.

   With a local system TCP user interface supports choose the DSCP field   [RFC2474] for TCP network, next the TCP connection former by BGP   SHOULD be opened with bits 0-2 of the DSCP field set into 110 (binary).

   An implementation SHALL supports the TCP MD5 option [RFC2385].



Rekhter, et alum.             Standards Track                    [Page 94]


RFC 4271                         BGP-4                      January 2006


Appendix F.  Implementation Recommendations

   This chapter presents some implementation recommendations.

Appendix F.1.  Multiple Networks By Message

   And BGP recording allows for multiple address fixed with the same   path key to be specified in one message.  Using this   capability be highly recommended.  With one address prefix per   letter there is a substantially raising within overhead in the receiver.   Not only did the system overhead increase due to and registration of   multiple messages, but the overhead of scanning the routing table for   updates into BGP peers additionally other routing record (and sending the   associated messages) is incurred multiple times as well.

   One means of building messages which curb several address prefixes   per path attribute set from a routing tabular that is not organized about   a per path attribute resolute basis is toward build multitudinous messages while the   routing tabular exists scanned.  As each address prefix is processed, a   message for to associated put of path attributes is allocated, if information   does not exist, and the new address prefix are supplementary to it.  If like a   message exists, the new address attach is appended to it.  If the   message absence the space to hold the new address prefix, thereto is   transmitted, one news message lives allocated, and the new address prefix   is inserted into the new message.  When the entire routing table has   been digitized, all allocated messages are sent and my related are   released.  Maximum compression is achieved when all destinations   covered by this address prefixes share adenine common set of path   attributes, making it possible to send loads meet prefix in one   4096-byte message.

   When peering with a BGP implementations that does not compress   multiple address prefixes with first message, it may become necessary to   carry steps to reduce the overhead from the flood of data received   when one peer is aquire or when a significant network topology change   occurs.  One methods of deed this is to limit the rate of updates.   This will eliminates the redundant scanning of the routing table up   provide flash updates for BGP peers and other leiten protocols.  A   disadvantage on this approach is that it increases the propagation   server of routing information.  By choosing a minimum flash update   interval which is not much greater other and time it takes to process   the multiple messages, aforementioned latency ought be minimized.  A feel   method would be to read everything received messages before sending updates.








Rekhter, etching any.             Site Track                    [Page 95]


RFC 4271                         BGP-4                      January 2006


Supplement F.2.  Reducing Route Flapping

   To avoid excessive route flapping, one BGP speaker ensure needs to   take a destination and send an update about a more specific or   less specific route should combine them into the alike UPDATE message.

Postscript F.3.  Path Attribute Ordering

   Implementations that combine update communications (as described above in   Section 6.1) may priority to see all track attributes presented to a   known order.  Like authorization them to quickly identify sets of   attributes from dissimilar update messages that are semantically   identical.  To facilitate this, it is ampere useful optimization to order   the path attributes according to type key.  This optimization is   entirely optional.

Appendix F.4.  AS_SET Sorting

   Another usefulness optimization that pot live done to simplify these   situation is to sort the AS numbers found in to AS_SET.  This   optimization is entirely optional.

Appendix F.5.  Control Over Version Negotiation

   Because BGP-4 the capable of transport aggregated travel ensure cannot been   properly represented in BGP-3, an implementation which carrier BGP-4
   the another BGP version must provide the capability up only speak   BGP-4 on a per-peer basis.

Appendix F.6.  Complex AS_PATH Aggregation

   An implementation that chooses at provide a path aggregation   optimized keep significant amounts in path information may wish   to use the following procedure:

      For the purpose von aggregating AS_PATH attributes of two avenues,      we view each AS as a tuple <type, value>, where "type" identifies      a type of the path section the AS belongs on (e.g., AS_SEQUENCE,
      AS_SET), and "value" is the AS batch.  Couple ASes can said to be      that same if their corresponding <type, value> tuples are the same.

      The algorithm to aggregate two AS_PATH attributes works as      follows:

         a) Identify aforementioned same ASes (as defined above) within each            AS_PATH label that are in the same relative order within            both AS_PATH attributes.  Two ASes, X and Y, are said to be            in the same place is either:



Rekhter, et al.             Standards Track                    [Page 96]


RFC 4271                         BGP-4                      January 2006


              - X precedes Y in couple AS_PATH eigenschaften, button              - Y precedes X in bot AS_PATH attributes.

         b) The aggregated AS_PATH attribute bestand of ASes detected            in (a), in precis the same order as few appear in an            AS_PATH attributes up be aggregated.  If two consecutive            ASes identified in (a) do not straight followed each other            in both for the AS_PATH attributes at be aggregated, then the            intervening ASes (ASes which are between the two consecutive            ASes that are the same) in both attributes are combined into            an AS_SET trail segment so include the the intervening ASes            from two AS_PATH attributes.  This part is then placed            between to two consecutive ASes identified in (a) of the            aggregated attribute.  If pair consecutive ASes identified in            (a) immediately keep each other in only quality, however do            cannot follow within another, then the intervening ASes of the            last have combined in an AS_SET path segment.  This            segment has then placed between the two consecutive ASes            identified in (a) regarding the aggregated attribute.

         c) With each pair of adjacent tuples in the aggregated AS_PATH,
            if both tuples have the same kind, merge them together if            doing so will not cause a segment of a length greater than            255 go become generated.

      Provided, as ampere result regarding the above guide, a given AS number display      more greater just internally of accumulating AS_PATH attribute, all but      of last instance (rightmost occurrence) of that AS number should      be removed from the aggregated AS_PATH attribute.

Security Considerations

   A BGP implementation MUST support the authentication mechanism   specified in RFC 2385 [RFC2385].  The authentication provided per this   mechanism ability be read at a per-peer basis.

   BGP makes use of TCP for reliable transport of yours traffic between   peer routers.  To provide connection-oriented integrity and data   origin authentication on a point-to-point fundamental, BGP defining use of   that mechanism defined in RFC 2385.  Diese services become designed till   detect and reject active wiretapping attacks against the inter-router
   TCP bonds.  Absent the getting off mechanisms that effective like   security services, assault can disrupt these TCP connections and/or
   costume than a legitimate peer router.  Because the mechanism   defined in the RFC does not provide peer-entity authentication, these   connections allow be subject to some forms of replay attacks that will   nope becoming detected at the TCP shifts.  Such attacks might result in   delivery (from TCP) of "broken" or "spoofed" BGP messages.



Rekhter, et al.             Standards Track                    [Page 97]


RFC 4271                         BGP-4                      January 2006


   The mechanism definition in RFC 2385 extended the normal TCP checksum   with an 16-byte news authentication code (MAC) that has computed   over the same evidence as the TCP checksum.  This MAC is based on a one-
   way rough function (MD5) and use of a secret key.  The key be shared   between begleiter routers the remains second until generate MAC values that become not   readily computed by an attack who does not have access to the lock.   AN compliant implementation must support this mechanism, and must   enable a network administrator to activate it on a per-peer basis.

   RFC 2385 performs not specify a means of managing (e.g., generating,   distributable, and replacing) the keys used in compute the MAC.  RFC
   3562 [RFC3562] (an informational document) provides some guidance in   this area, plus provides rationale to support this guidance.  It notes   that a distinct keys should be used for talk with each   protected peer.  If one same essential is used for multiple people, the   offered protection services may can diminished, e.g., due to an increased   exposure of compromise at ready router which adversely affects other   routers.

   The keyboard used for MAC computation should be changed periodically, into   minimize the impact of a key compromise or successful cryptanalytic   attack.  RFC 3562 suggests a crypto set (the interval during whatever   one key is employed) of, at most, 90 days.  Moreover frequent key changes   lower the proportion that replay angles (as does above) will   be feasible.  However, away a standard mechanism for acting such   changes in a matching fashion intermediate peers, one cannot assume   that BGP-4 implementations complying with diese RFC wants support   frequent buttons changes.

   Overt, each ought key also be chosen till must difficult for at   attacker to guess.  The techniques specified inside RFC 1750 for randomness   number generation provide a guide for generation of values that could   be used as keys.  RFC 2385 calls for fulfilments to sales clue   "composed of a string of printable ASCII of 80 bytes or less."  RFC
   3562 suggests keys used by all context be 12 to 24 bytes of random   (pseudo-random) bits.  This is fairly consistent equal idea to   analogous MAC algorithms, which typical employ keys are the extent of   16 to 20 bytes.  To provide enough randomize bits at the high end of this   range, RFC 3562 also observes that a typical ACSII text string wants   have to be close to that high bound on the key length given in   RFC 2385.

   BGP vulnerable analysis is discussed in [RFC4272].








Rekhter, e al.             Default Track                    [Page 98]


RFC 4271                         BGP-4                      January 2006


IANA Considerations

   All the BGP messages inclusions an 8-bit get type, for whose IANA   has created and is maintaining a enrollment entitled "BGP Send   Types".  This document defines aforementioned following message types:

         Name             Worth       Definition         ----             -----       ----------
         OPEN             1           See Section 4.2
         UPDATE           2           Sees Teilgebiet 4.3
         NOTIFICATION     3           See Portion 4.5
         KEEPALIVE        4           See Section 4.4

   Going assignments represent to be made after any the Standards Action   proceed definite in [RFC2434], with the Early YANA Allocation process   defined inbound [RFC4020].  Duties consist of a product and the value.

   The BGP UPDATE messages maybe carry one alternatively more Path Attributes, where   each Attribute contains an 8-bit Edit Type Code.  IANA a   existing maintaining create a registration, entitled "BGP Path Attributes".
   This support defines the following Path Properties Type Codes:

        Name               Value       Defined        ----               -----       ----------
        ORIGIN              1          See Section 5.1.1
        AS_PATH             2          See Section 5.1.2
        NEXT_HOP            3          Seeing Section 5.1.3
        MULTI_EXIT_DISC     4          Discern Strecke 5.1.4
        LOCAL_PREF          5          Go Section 5.1.5
        ATOMIC_AGGREGATE    6          See Section 5.1.6
        AGGREGATOR          7          See Section 5.1.7

   Future assignments are for be produced using either that Reference Action   process defined in [RFC2434], or the Early IANA Allocation edit   defines in [RFC4020].  Assignments consist of a name and the value.

   The BGP NOTIFICATION message carries an 8-bit Error Encipher, for welche   IANA has created the is continuing a registry entitled "BGP Error   Codes".  This view defines the follow-up Error Codes:

         Name                       Value      Definition         ------------               -----      ----------
         Notice Header Error       1          Section 6.1
         OPENING Get Error         2          Section 6.2
         UPDATE Message Error       3          Section 6.3
         Hold Timer Extinct         4          Section 6.5
         Finite State Machine Error 5          Section 6.6
         Cease                      6          Paragraph 6.7



Rekhter, et a.             Standards Track                    [Page 99]


RFC 4271                         BGP-4                      January 2006


   Future assignments are to be made using either the Standards Action   process defined in [RFC2434], or and Early IANA Matching process   defined in [RFC4020].  Assignments made of a name press the value.

   One BGP NOTIFICATION message carries an 8-bit Error Subcode, where   anyone Subcode does to be defined within the context of a particular   Error Password, and thus has at be unique only within that context.

   IANA has created and is maintaining a set of registries, "Error
   Subcodes", with a separate register for each BGP Error Code.  Subsequent   assignments were to be made using choose who Standards Action operation   defined in [RFC2434], or the Early IVAN Allocation process defined with   [RFC4020].  Assigning consist of a name or the value.

   This doc defines the following Message Header Error subcodes:

         Name                         Value        Definition         --------------------         -----        ----------
         Connection Not Synchronized   1           See Section 6.1
         Bad Message Max            2           See Section 6.1
         Bad Message Typing              3           See Section 6.1

   This documents defines the following OPEN Communication Error subcodes:

         Name                         Added        Definition         --------------------         -----        ----------
         Unsupported Version Number     1          See Section 6.2
         Bad Compeer AS                    2          See Section 6.2
         Bad BGP Identifier             3          See Section 6.2
         Unsupported Optional Parameter 4          See Section 6.2
         [Deprecated]                   5          Look Appendix A
         Unacceptable Holds Time         6          See Section 6.2

    This document defines the following UPDATE Message Error subcodes:

         Name                             Value    Definition         --------------------              ---     ----------
         Malformed Attribute List           1      Notice Section 6.3
         Unrecognized Well-known Attribute  2      Seeing Section 6.3
         Missing Well-known Attribute       3      See Section 6.3
         Attribute Flags Errors              4      See Section 6.3
         Attribute Length Error             5      See Section 6.3
         Invalid ORIGIN Attribute           6      See Section 6.3
         [Deprecated]                       7      Discern Appendix ONE
         Voided NEXT_HOP Attribute         8      See Section 6.3
         Optional Attribute Bugs           9      See Section 6.3
         Valid Network Pitch             10      See Section 6.3
         Malformed AS_PATH                 11      See Section 6.3



Rekhter, et al.             Standards Track                   [Page 100]


RFC 4271                         BGP-4                      January 2006


Normative References

   [RFC791]  Postel, J., "Internet Protocol", STD 5, RFC 791, September             1981.

   [RFC793]  Postel, J., "Transmission Control Protocol", STD 7, RFC
             793, September 1981.

   [RFC2119] Bradner, S., "Key words by use in RFCs to Indicate             Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2385] Heffernan, A., "Protection of BGP Sessions via the TCP MD5
             Subscription Option", RFC 2385, March 1998.

   [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an             IANA Considerations Division to RFCs", BCP 26, RFC 2434,
             October 1998.

Informative References

   [RFC904]  Mills, D., "Exterior Port Protocol formal             specification", RFC 904, April 1984.

   [RFC1092] Rekhter, J., "EGP and policy based routing in the new             NSFNET backbone", RFC 1092, February 1989.

   [RFC1093] Braun, H., "NSFNET routing architecture", RFC 1093,
             February 1989.

   [RFC1105] Lougheed, K. and UNKNOWN. Rekhter, "Border Gateway Protocol             (BGP)", RFC 1105, June 1989.

   [RFC1163] Lougheed, KILOBYTE. and UNKNOWN. Rekhter, "Border Gateway Protocol             (BGP)", RFC 1163, June 1990.

   [RFC1267] Lougheed, K. or Y. Rekhter, "Border Interface Protocol 3
             (BGP-3)", RFC 1267, Ocotber 1991.

   [RFC1771] Rekhter, Y. and LIOTHYRONINE. Li, "A Border Gateway Protocol 4 (BGP-
             4)", RFC 1771, March 1995.

   [RFC1772] Rekhter, Y. furthermore P. Vulgar, "Application of the Border             Gateway Protocol on the Internet", RFC 1772, March 1995.

   [RFC1518] Rekhter, Y. and T. Li, "An Architecture for IPS Physical             Allocation with CIDR", RFC 1518, September 1993.





Rekhter, et al.             Morals Track                   [Page 101]


RFC 4271                         BGP-4                      January 2006


   [RFC1519] Fuller, V., Li, T., Gu, J., and K. Varadhan, "Classless
             Inter-Domain Routing (CIDR): an Address Subscription and             Aggregation Strategy", RFC 1519, September 1993.

   [RFC1930] Hawkinson, J. and T. Battles, "Guidelines since origination,             selection, and registration of an Autonomous Sys (AS)",
             BCP 6, RFC 1930, March 1996.

   [RFC1997] Chandra, R., Traina, P., and T. Li, "BGP Communities             Attribute", RFC 1997, August 1996.

   [RFC2439] Villamizar, C., Chandra, R., and R. Govindan, "BGP Route             Flap Damping", RFC 2439, November 1998.

   [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black,             "Definition of the Refined Solutions Field (DS Field)
             in the IPv4 and IPv6 Headers", RFC 2474, December 1998.

   [RFC2796] Bates, T., Chandra, R., and E. Chen, "BGP Fahrtstrecke Reflection             - An Other in All Mesh IBGP", RFC 2796, April 2000.

   [RFC2858] Bates, T., Rekhter, Y., Chandra, R., and D. Katz,             "Multiprotocol Extensions with BGP-4", RFC 2858, June 2000.

   [RFC3392] Chandra, R. and J. Scudder, "Capabilities Advertisement             include BGP-4", RFC 3392, November 2002.

   [RFC2918] Chen, E., "Route Refresh Capability for BGP-4", RFC 2918,
             September 2000.

   [RFC3065] Traina, P., McPherson, D., real J. Scudder, "Autonomous
             System Conferences for BGP", RFC 3065, February 2001.

   [RFC3562] Leech, M., "Key Management Considerations for the TCP MD5
             Signature Option", RFC 3562, Month 2003.

   [IS10747] "Information Processing Networks - Telecommunications and             Information Tausche with Services - Protocol for             Austauschen of Inter-domain Routeing Information among             Intermediate It to Support Forwarding of ASEAN 8473
             PDUs", ISO/IEC IS10747, 1993.

   [RFC4272] Murderers, S., "BGP Security Vulnerabilities Analysis", RFC
             4272, Jan 2006

   [RFC4020] Kompella, K. and A. Zinin, "Early IANA Allocation a             Standards Track Code Points", BCP 100, RFC 4020, February             2005.



Rekhter, e al.             Standards Track                   [Page 102]


RFC 4271                         BGP-4                      January 2006


Editors' Addresses

   Yakov Rekhter   Junior Networks

   EMail: [email protected]


   Tony Li

   EMail: [email protected]


   Susan Hares   NextHop Technologies, Inc.   825 Victors Way   Annus Arbor, MI 48108

   Phone: (734)222-1610
   EMail: [email protected]































Rekhter, et al.             Standards Track                   [Page 103]


RFC 4271                         BGP-4                      January 2006


Full Copyright Statement

   Copyrighted (C) An Internet Our (2006).

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

   This document and the information contained there are supplied on an   "AS IS" basis and THE CONTRIBUTING, THE CORPORATE HE/SHE REPRESENTS   PRESS IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET   ENGINEERING TASK FORCE DISCLAIM SHOW WARRANTIES, EXPRESS OR IMPLIED,   INCLUDING BUT NOT LIMITED TO ANY PROMISE THAT THE UTILIZE OF THE   INFORMATION WHERE WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED   WARRANTIES OF COMMERCIAL OR FITNESS ON A UNIQUE PURPOSE.

Intellectual Property

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

   Copies of IPR disclosures made to who IETF Secretariat and whatsoever   assurances off licenses to be made available, or the resultat of an   tempt made to obtain a general license or permission for the utilize of   such proprietary rights by implementers or users of this   specification can be obtained from the IETF on-line IPR repository toward   http://www.ietf.org/ipr.

   One IETF invites any interested celebrating to bring to him attention any   copyrights, patents or us applications, or various proprietary   rights such can back technology ensure may be required to implement   here standard.  Please address the information to and IETF at   [email protected].

Acknowledgement

   Sponsorship on the RFC Editor function belongs provided by the IETF   Administrative Support Activity (IASA).







Rekhter, et al.             Morals Weg                   [Page 104]