Border Gateway Protocol By: Darrell Hageman
Outline Introduction BGP Overview BGP Finite State Machine Background BGP Overview BGP Finite State Machine States Other General Information Comparisons to Similar Machines Conclusion References
Introduction BGP was initially created in three different implementations. Kirk Lougheed of Cisco systems developed a proprietary version of BGP for Cisco router equipment. Jeff Honig, Cornell University and Dennis Ferguson, University of Toronto developed a BGP version called gated to run on Unix computers. Yakov Rekhter from the IBM Thomas J. Watson Research Center wrote a BGP version for the NSFNET backbone. Internet standard in 1989
BGP Overview What is BGP The routing protocol used to exchange routing information across the Internet BGP is an inter-Autonomous System routing protocol. BGP makes it possible for ISPs to connect to each other and for end-users to connect to more than one ISP The primary function of a BGP is to exchange network reachability information with other BGP systems The network reachability information includes information on the list of Autonomous Systems (ASs) that reachability information traverses
BGP Overview The information is important to construct a graph of AS connectivity from which routing loops may be shortened Only protocol that can deal well with having multiple connections to unrelated routing domains Only protocol designed to deal with a network of the Internet's size One of the other important functions performed by the BGP algorithm is to eliminate loops from routing information
BGP Overview
BGP Overview There are four types of BGP messages Open - messages are sent by the router initiating the BGP connection, in order to identify itself and to begin the exchange of routing information. Update - messages are sent by BGP peers in order to carry the network reachability information and path attributes between them. These messages are the “heart” of the protocol. Keepalive - messages are exchanged between peers to continually verify peer reachability when no updates are sent for a period of time. Notification - messages are BGP’s way of providing error messaging and control services
BGP Finite State Machine States Idle Connect Active Open Sent Open Confirm Established
BGP Finite State Machine Idle State Initial state BGP speaker is not yet ready to accept a BGP Connection. Tries to establish a TCP connection with configured BGP Peer Listens for a TCP connection from its Peer Changes to Connect State
BGP Finite State Machine Types of Errors TCP port 179 is not open. A random TCP port over 1023 is not open. Peer address configured incorrectly on either router. AS number configured incorrectly on either router.
BGP Finite State Machine Connect State Is waiting for the transport protocol connection to be completed If connection succeeds, the local system clears the ConnectRetry timer, completes initialization, sends an OPEN message to its peer, and changes its state to OpenSent If connection fails the local system restarts the ConnectRetry timer, continues to listen for a connection that may be initiated by the remote BGP peer, and changes its state to Active state. BGP does not spend much time in this state if the TCP session has been successfully established
BGP Finite State Machine Active State In active state, because it was unable to establish a successful TCP connection with its peers BGP speaker ignores the start event Resets the ConnectRetry timer Attempts to initiate a TCP sessions with its peer If successful it sends an OPEN message to its peer Sets the hold timer Transitions to OpenSent State If unsuccessful again the FSM is reset to the IDLE state Repeated failures could be a result of TCP port 179 is not open. BGP configuration error. Network congestion.
BGP Finite State Machine OpenSent State BGP peers are waiting for an OPEN message from its peer After an Open message has been received All fields in Open message are checked against local BGP configurations If any of the fields don’t match this will cause an OPEN message error to occur Return to Idle State BGP peer also checks to verify that a connection collision has not occurred If there are no errors in the OPEN message BGP sends a KEEPALIVE message and sets a KeepAlive timer State is changed to OpenConfirm
BGP Finite State Machine OpenConfirm State BGP waits for a KEEPALIVE or NOTIFICATION message If the local system receives a KEEPALIVE message, it changes its state to Established If a timer expires before a KEEPALIVE message is received, or if an error condition occurs, the router transitions back to the IDLE state
BGP Finite State Machine Established State Peers reach this state after they have succesfully exchanged OPEN and KEEPALIVE messages Begin to UPDATE messages contianing routing information and KEEPALIVE messages to verify the TCP Connection state If error local peer sends a NOTIFICATION message with reasons back to IDLE state
BGP Finite State Machine
Other General Information BGP is unique because of its ability to apply policies to the information contained in routing updates and therefore accepts or rejects update information based on attributes of the information itself BGP uses the TCP/IP protocol on port 179 to establish connections Routing messages are the highest precedence traffic on the Internet, and each BGP router gives them first priority over all other traffic
Conclusion BGP is the glue that holds the Internet together Little bandwidth/processing overhead Suitable for indicating liveliness in both directions Appropriate for complex applications where there are numerous paths active at one time Policy-based, providing policy control over what is sent and received
Conclusion Not simple to configure. Certain settings must be coordinated with the provider Policy controls can require significant manual configuration on each router. The more policy controls in use, the more configuration required
Reference "BGP Finite State Model." InetDaemon.Com. Web. 15 Apr. 2010. <http://www.inetdaemon.com/tutorials/internet/ip/routing/bgp/ope ration/finite_state_model.shtml>. "File:BGP FSM.svg - Wikimedia Commons." Main Page - Wikimedia Commons. Web. 15 Apr. 2010. <http://commons.wikimedia.org/wiki/File:BGP_FSM.svg>. Routing TCP IP. München: Markt Und Technik, Buch- Und Software-Verl., 2002. Print. Solie, Karl, and Leah Lynch. CCIE Practical Studies. Indianapolis, IN: Cisco, 2002. Print. Solie, Karl, and Leah Lynch. "InformIT: CCIE Practical Studies, Volume II BGP Finite-State Machine Operation." InformIT: The Trusted Technology Learning Source. Web. 15 Apr. 2010. <http://www.informit.com/library/content.aspx?b=CCIE_Practical _Studies_II&seqNum=79>.