Border Gateway Protocol
Border Gateway Protocol
BGP was created to replace the Exterior Gateway Protocol (EGP) to allow fully decentralized routing in order to transition from the core ARPAnet model to a decentralized system that included the NSFNET backbone and its associated regional networks. This allowed the Internet to become a truly decentralized system. Since 1994, version four of the BGP has been in use on the Internet. All previous versions are now obsolete. The major enhancement in version 4 was support of Classless Inter-Domain Routing and use of route aggregation to decrease the size of routing tables. Since January 2006, version 4 is codified in RFC 4271, which went through more than 20 drafts based on the earlier RFC 1771 version 4. RFC 4271 version corrected a number of errors, clarified ambiguities and brought the RFC much closer to industry practices.
Most Internet service providers must use BGP to establish routing between one another (especially if they are multihomed). Therefore, even though most Internet users do not use it directly, BGP is one of the most important protocols of the Internet. 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 OSPF (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 (RFC 1998), or to multiple ISPs.
BGP performs interdomain routing in Transmission-Control Protocol/Internet Protocol (TCP/IP) networks. BGP is an exterior gateway protocol (EGP), which means that it performs routing between multiple autonomous systems or domains and exchanges routing and reachability information with other BGP systems.
BGP was developed to replace its predecessor, the now obsolete Exterior Gateway Protocol (EGP), as the standard exterior gateway-routing protocol used in the global Internet. BGP solves serious problems with EGP and scales to Internet growth more efficiently.
Note EGP is a particular instance of an exterior gateway protocol (also EGP)---the two should not be confused.
Figure 35-1 illustrates core routers using BGP to route traffic between autonomous systems.
Figure 35-1: Core routers can use BGP to route traffic between autonomous systems.
BGP is specified in several Request For Comments (RFCs):
- RFC 1771 ---Describes BGP4, the current version of BGP
- RFC 1654---Describes the first BGP4 specification
- RFC 1105, RFC 1163, and RFC 1267---Describes versions of BGP prior to BGP4
BGP Operation
BGP performs three types of routing: interautonomous system routing, intra-autonomous system routing, and pass-through autonomous system routing.Interautonomous system routing occurs between two or more BGP routers in different autonomous systems. Peer routers in these systems use BGP to maintain a consistent view of the internetwork topology. BGP neighbors communicating between autonomous systems must reside on the same physical network. The Internet serves as an example of an entity that uses this type of routing because it is comprised of autonomous systems or administrative domains. Many of these domains represent the various institutions, corporations, and entities that make up the Internet. BGP is frequently used to provide path determination to provide optimal routing within the Internet.
Intra-autonomous system routing occurs between two or more BGP routers located within the same autonomous system. Peer routers within the same autonomous system use BGP to maintain a consistent view of the system topology. BGP also is used to determine which router will serve as the connection point for specific external autonomous systems. Once again, the Internet provides an example of interautonomous system routing. An organization, such as a university, could make use of BGP to provide optimal routing within its own administrative domain or autonomous system. The BGP protocol can provide both inter- and intra-autonomous system routing services.
Pass-through autonomous system routing occurs between two or more BGP peer routers that exchange traffic across an autonomous system that does not run BGP. In a pass-through autonomous system environment, the BGP traffic did not originate within the autonomous system in question and is not destined for a node in the autonomous system. BGP must interact with whatever intra-autonomous system routing protocol is being used to successfully transport BGP traffic through that autonomous system. Figure 35-2 illustrates a pass-through autonomous system environment:
Figure 35-2: In pass-through autonomous system routing, BGP pairs with another intra-autonomous system-routing protocol.
BGP Message Types
Four BGP message types are specified in RFC 1771, A Border Gateway Protocol 4 (BGP-4): open message, update message, notification message, and keep-alive message.The open message opens a BGP communications session between peers and is the first message sent by each side after a transport-protocol connection is established. Open messages are confirmed using a keep-alive message sent by the peer device and must be confirmed before updates, notifications, and keep-alives can be exchanged.
An update message is used to provide routing updates to other BGP systems, allowing routers to construct a consistent view of the network topology. Updates are sent using the Transmission-Control Protocol (TCP) to ensure reliable delivery. Update messages can withdraw one or more unfeasible routes from the routing table and simultaneously can advertise a route while withdrawing others.
The notification message is sent when an error condition is detected. Notifications are used to close an active session and to inform any connected routers of why the session is being closed.
The keep-alive message notifies BGP peers that a device is active. Keep-alives are sent often enough to keep the sessions from expiring.
BGP Packet Formats
The sections that follow summarize BGP open, updated, notification, and keep-alive message types, as well as the basic BGP header format. Each is illustrated with a format drawing, and the fields shown are defined.Header Format
All BGP message types use the basic packet header. Open, update, and notification messages have additional fields, but keep-alive messages use only the basic packet header. Figure 35-3 illustrates the fields used in the BGP header. The section that follows summarizes the function of each field.Figure 35-3: A BGP packet header consists of four fields.
BGP Packet-Header Fields
Each BGP packet contains a header whose primary purpose is to identify the function of the packet in question. The following descriptions summarize the function of each field in the BGP header illustrated in Figure 35-3.- Marker---Contains an authentication value that the message receiver can predict
- Length---Indicates the total length of the message in bytes.
- Type---Type --- Specifies the message type as one of the following:
- Open
- Update
- Notification
- Keep-alive
- Data---Contains upper-layer information in this optional field.
Open Message Format
BGP open messages are comprised of a BGP header and additional fields. Figure 35-4 illustrates the additional fields used in BGP open messages.Figure 35-4: A BGP open message consists of six fields.
BGP Open Message Fields
BGP packets in which type field in the header identifies the packet to be a BGP open message packet include the following fields. These fields provide the exchange criteria for two BGP routers to establish a peer relationship.- Version---Provides the BGP version number so that the recipient can determine whether it is running the same version as the sender.
- Autonomous System---Provides the autonomous system number of the sender
- Hold-Time---Indicates the maximum number of seconds that can elapse without receipt of a message before the transmitter is assumed to be nonfunctional.
- BGP Identifier---Provides the BGP identifier of the sender (an IP address), which is determined at startup and is identical for all local interfaces and all BGP peers.
- Optional Parameters Length---Indicates the length of the optional parameters field (if present).
- Optional Parameters---Contains a list of optional parameters (if any). Only one optional parameter type is currently defined: authentication information.
- Authentication information consists of the following two fields:
- Authentication code: Indicates the type of authentication being used.
- Authentication data: Contains data used by the authentication mechanism (if used).
- Authentication code: Indicates the type of authentication being used.
Update Message Format
BGP update messages are comprised of a BGP header and additional fields. Figure 35-5 illustrates the additional fields used in BGP update messages.Figure 35-5: A BGP update message contains five fields.
BGP Update Message Fields
BGP packets in which the type field in the header identifies the packet to be a BGP update message packet include the following fields. Upon receiving an update message packet, routers will be able to add or delete specific entries from their routing tables to ensure accuracy. Update messages consist of the following packets:- Unfeasible Routes Length---Indicates the total length of the withdrawn routes field or that the field is not present.
- Withdrawn Routes---Contains a list of IP address prefixes for routes being withdrawn from service.
- Total Path Attribute Length---Indicates the total length of the path attributes field or that the field is not present.
- Path Attributes---Describes the characteristics of the advertised path. The following are possible attributes for a path:
- Origin: Mandatory attribute that defines the origin of the path information
- AS Path: Mandatory attribute composed of a sequence of autonomous system path segments
- Next Hop: Mandatory attribute that defines the IP address of the border router that should be used as the next hop to destinations listed in the network layer reachability information field
- Mult Exit Disc: Optional attribute used to discriminate between multiple exit points to a neighboring autonomous system
- Local Pref: Discretionary attribute used to specify the degree of preference for an advertised route
- Atomic Aggregate: Discretionary attribute used to disclose information about route selections
- Aggregator: Optional attribute that contains information about aggregate routes Network Layer Reachability Information---Contains a list of IP address prefixes for the advertised routes
Comments