Internet DRAFT - draft-klockar-ibgp-oscillation

draft-klockar-ibgp-oscillation







Network Working Group                                         T. Klockar
Internet-Draft                                              July 8, 2005
Expires: January 9, 2006


                    Oscillation Prevention in I-BGP
                   draft-klockar-ibgp-oscillation-00

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on January 9, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   This memo presents a technique for preventing oscillations in I-BGP.
   The idea is to utilize already known data in routers to stop
   oscillation.  This builds on the fact that routers can send implicit
   and explicit withdrawals.  Implicit withdrawals are redefined to mean
   that the route still exist and explicit withdrawal to mean that the
   route has disappeared.  The router can detect and avoid oscillation
   by storing the implicit withdrawn routes and using them to rule out
   other routes.  The cost is more cheap memory for the RIB-In but no
   extra expensive memory is needed in the forwarding table.



Klockar                  Expires January 9, 2006                [Page 1]

Internet-Draft            Osc. Prevention I-BGP                July 2005


1.  Introduction

   The de-facto inter-domain routing protocol Border Gateway Protocol
   version 4(BGP4) as described by RFC1771 [1], had a scaling problem
   with Autonomous Systems(AS).  Two solutions were suggested to this
   problem, Route reflectors (RFC1966 [3], RFC2796 [4]) and AS-
   Confederations (RFC1965 [2], RFC3065 [5]), but these solutions
   introduced the possibility of route oscillations.  The I-BGP route
   oscillation problem has been described in RFC3345 [6], and it appears
   when there is an unlucky combination of Route Reflectors or AS-
   confederations, MED and multihoming.








































Klockar                  Expires January 9, 2006                [Page 2]

Internet-Draft            Osc. Prevention I-BGP                July 2005


2.  Algorithm

   The algorithm is based on the implicit and explicit withdrawals.  The
   implicit withdrawal is when a new route update is received, for a
   destination from a peer, which replaces a previous update for the
   same destination.  An explicit withdrawal is when a route removal is
   received.  Here, the meaning of implicit and explicit withdrawal are
   slightly redefined.  Implicit withdrawal means that the previous
   route still exists but there is a better route, while the explicit
   withdrawal means that the route does NOT exist any more.

   o  Every time BGP receive a new route from a peer for a destination
      it MUST mark the previous routes from that peer for that
      destination as inactive, and the new route as active.

   o  The decision process, i.e. the best route selection algorithm,
      MUST consider both active and passive routes in its selection.
      Passive routes are only used to avoid selecting certain active
      routes.

   E.g.

   Oscillating circuit as described in RFC3345.

      Ra - - - Rb
      /\       |
     /4 \3     |6
    Rc..Rd     Re
    \     \(2)/(1)
     \     \ /
      AS2  AS3
        \ /
        AS4

   Numbers in brackets are MED values and numbers by links are link
   costs.  Unnumbered links have a unit cost of one.

   The oscillation condition here is that Rb [Re,AS3,AS4] and Ra select
   [Rd,AS3,AS4], and announce the selected path.  Then Ra needs to
   select [Rc,AS2,AS4] and announce that path.  Rb then selects
   [Ra,Rc,AS2,AS3] and announce that path.  Now Ras condition, i.e.
   higher MED value, for selecting the longer Rc path has been removed
   so Ra select [Rd,AS3,AS4], and we are back in the first state.  This
   oscillation will continue until any of the involved routes changes.

   The suggested solution allows routers to remember more routes, so
   router Ra will have stored all three routes.




Klockar                  Expires January 9, 2006                [Page 3]

Internet-Draft            Osc. Prevention I-BGP                July 2005


   All RIB-Ins for Ra in one table

   Best |  State  | Peer | MED | AS-Path
   =============================================
     *  | Active  | Rc   |     | [Rc,AS2,AS4]
        | Active  | Rd   |   2 | [Rd,AS3,AS4]
        | Active  | Rb   |     | [Rb,Ra,Rc,AS2,AS4]
        | Passive | Rb   |   1 | [Rb,Re,AS3,AS4]

   All RIB-Ins for Rb in one table

   Best |  State  | Peer | MED | AS-Path
   =============================================
        | Active  | Re   |   a | [Rc,AS2,AS4]
     *  | Active  | Ra   |   2 | [Ra,Rc,AS2,AS4]
        | Passive | Ra   |     | [Ra,Rd,AS3,AS4]

   Router Rb does not have to implement the suggested algorithm.  It is
   enough that router Ra implements the algorithm to prevent
   oscillation.  Full proofs and examples can be found in [7], [8].































Klockar                  Expires January 9, 2006                [Page 4]

Internet-Draft            Osc. Prevention I-BGP                July 2005


3.  Impact BGP and routers

   This algorithm affects the finite state machine in BGP and changes
   its behavior slightly.  In this way, other routers without the
   modification will still be able to communicate with it.  Compared to
   the normal BGP4, the modification needs more storage for routes in
   the RIB-In, but not in the forwarding table.  This is very important
   because forwarding table memory is very expensive while normal slow
   processing memory used for the RIBs is cheap.  Measurements at Lulea
   University of Technology have shown that the total amount of route
   data received at startup there takes up 2.5 MB.  The data contains
   160000 prefixes according to zebra bgpd.  Transferring those updates
   over the network takes more time than storing the date in memory.
   During a normal day between 30000 and 200000 updates are received,
   that is less than 2.4 updates per second.  This means that storing
   the RIB database in expensive forwarding memory would be a waste of
   resources.  As proven [7] and shown [8] in tests the algorithm only
   needs to be implemented in certain routers.

































Klockar                  Expires January 9, 2006                [Page 5]

Internet-Draft            Osc. Prevention I-BGP                July 2005


4.  Conclusions

   The algorithm presented here solves the problem with MED induced
   I-BGP oscillations for Route Reflectors and AS-confederations, by
   giving the router an overview of which routes that exist within the
   AS.  Compared to other algorithms for solving the same problem this
   algorithm does not change the BGP messaging or types of messages.
   This means that the algorithm is ready to be deployed in any router,
   and can work in cooperation with unmodified routers.  However to be
   sure that oscillation is prevented all routers within the AS that
   have more than two peers should implement it.

5.  References

   [1]  Rehkter, Y. and T. Li, "A Border Gateway Protocol (BGP version
        4)", RFC 1771, STD 1, June 1995.

   [2]  Traina, P., "Autonomous System Confederations for BGP",
        RFC 1965, STD 1, June 1996.

   [3]  Bates, T. and R. Chandra, "BGP Route Reflection An alternative
        to full mesh IBGP", RFC 1966, STD 1, June 1996.

   [4]  Bates, T., Chandra, R., and E. Chen, "BGP Route Reflection - An
        alternative to full mesh IBGP", RFC 2796, STD 1, April 2000.

   [5]  Traina, P., McPherson, D., and P. Traina, "Autonomous System
        Confederations for BGP", RFC 3065, STD 1, February 2001.

   [6]  McPherson, D., Gill, V., Walton, D., and A. Retina, "Border
        Gateway Protocol (BGP) Persistent Route Oscillation Condition",
        RFC 3345, STD 1, August 2002.

   [7]  Klockar, T. and L. Carr-Motyckova, "Preventing Oscillation in
        Route Reflector-Based I-BGP", ICCCN 2004, October 2004.

   [8]  Klockar, T., "Preventing Oscillation in I-BGP", SNCNW 2004,
        November 2004.













Klockar                  Expires January 9, 2006                [Page 6]

Internet-Draft            Osc. Prevention I-BGP                July 2005


Author's Address

   Tomas Klockar
   Sandviksgatan 76b
   Lulea  97 234
   Sweden

   Phone: +46 (0)920-231335
   Email: tomas@klockar.se
   URI:   http://www.klockar.se/









































Klockar                  Expires January 9, 2006                [Page 7]

Internet-Draft            Osc. Prevention I-BGP                July 2005


Intellectual Property Statement

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

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

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity

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


Copyright Statement

   Copyright (C) The Internet Society (2005).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


Acknowledgment

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




Klockar                  Expires January 9, 2006                [Page 8]