Topic: Border Gateway Protocol (BGP) Outline: # Introduction # History # Current version # Uses # Operation # BGP infrastructure # Problems # Success Introduction BGP: The Border Gateway Protocol (BGP) is the protocol used throughout the Internet to exchange routing information between networks. It is the language spoken by routers on the Internet to determine how packets can be sent from one router to another to reach their final destination. BGP has worked extremely well and continues to be protocol that makes the Internet work. History Date Text 1994-08-15 Concluded group 1992-05-30 Changed milestone "Post the specfication of BGP 4 as an Internet-Draft.", resolved as "Done" 1991-08-30 Changed milestone "Post an Internet-Draft specifying multicast extensions to BGP.", resolved as "Done" 1990-05-01 Changed milestone "Develop a MIB for BGP Version 3.", resolved as "Done" 1990-05-01 Changed milestone "Complete development of Version 2 of the Border Gateway Protocol (BGP).", resolved as "Done" 1989-01-01 Started group Current version The current version of BGP is version 4 (BGP4) codified in RFC 4271 since 2006. Early versions of the protocol are widely considered obsolete and are rarely supported. RFC 4271, which went through more than 20 drafts, is based on the earlier RFC 1771 version 4. The RFC 4271 version corrected a number of errors, clarified ambiguities and brought the RFC much closer to industry practices. Version 4 of BGP has been in use on the Internet since 1994. The major enhancement in version 4 was support for Classless Inter-Domain Routing and use of route aggregation to decrease the size of routing. Uses Most Internet service providers must use BGP to establish routing between one another (especially if they are multihomed). Compare this with Signaling System 7(SS7), which is the inter-provider core call setup protocol on the PSTN. Very large private IP networks use BGP internally. An example would be the joining of a number of large OSPE (Open Shortest Path First) networks where OSPF by itself would not scale to size. Another reason to use BGP is multihoming a network for better redundancy, either to multiple access points of a single ISP or to multiple ISPs. Operation When BGP runs between two peers in the same autonomous system (AS), it is referred to as Internal BGP (iBGP or Interior Border Gateway Protocol). When it runs between different autonomous systems, it is called External BGP (EBGP or Exterior Border Gateway Protocol). Finite-state machines BGP state machine In order to make decisions in its operations with peers, a BGP peer uses a simple finite state machine (FSM) that consists of six states: Idle; Connect; Active; OpenSent; OpenConfirm; and Established. For each peer-to-peer session, a BGP implementation maintains a state variable that tracks which of these six states the session is in. The BGP defines the messages that each peer should exc