BGP is an interdomain routing protocol designed to provide loop-free routing links between organizations. BGP is designed
to run over a reliable transport protocol; it uses TCP (port 179) as the transport protocol because TCP is a connection-oriented
protocol. The destination TCP port is assigned 179, and the local port is assigned a random port number. Cisco software supports
BGP version 4 and it is this version that has been used by Internet service providers (ISPs) to help build the Internet. RFC
1771 introduced and discussed a number of new BGP features to allow the protocol to scale for Internet use. RFC 2858 introduced
multiprotocol extensions to allow BGP to carry routing information for IP multicast routes and multiple Layer 3 protocol address
families, including IPv4, IPv6, and CLNS.
BGP is mainly used to connect a local network to an external network to gain access to the Internet or to connect to other
organizations. When connecting to an external organization, external BGP (eBGP) peering sessions are created. Although BGP
is referred to as an exterior gateway protocol (EGP), many networks within an organization are becoming so complex that BGP
can be used to simplify the internal network used within the organization. BGP peers within the same organization exchange
routing information through internal BGP (iBGP) peering sessions.
BGP uses a path-vector routing algorithm to exchange network reachability information with other BGP-speaking networking
devices. Network reachability information is exchanged between BGP peers in routing updates. Network reachability information
contains the network number, path-specific attributes, and the list of autonomous system numbers that a route must transit
to reach a destination network. This list is contained in the AS-path attribute. BGP prevents routing loops by rejecting any
routing update that contains the local autonomous system number because this indicates that the route has already traveled
through that autonomous system and a loop would therefore be created. The BGP path-vector routing algorithm is a combination
of the distance-vector routing algorithm and the AS-path loop detection.
BGP selects a single path, by default, as the best path to a destination host or network. The best path selection algorithm
analyzes path attributes to determine which route is installed as the best path in the BGP routing table. Each path carries
well-known mandatory, well-known discretionary, and optional transitive attributes that are used in BGP best path analysis.
Cisco software provides the ability to influence BGP path selection by altering some of these attributes using the command-line
interface (CLI.) BGP path selection can also be influenced through standard BGP policy configuration. For more details about
using BGP to influence path selection and configuring BGP policies to filter traffic, see the “BGP 4 Prefix Filter and Inbound
Route Maps” module and the “BGP Prefix-Based Outbound Route Filtering” module.
BGP uses the best-path selection algorithm to find a set of equally good routes. These routes are the potential multipaths.
In Cisco IOS Release 12.2(33)SRD and later releases, when there are more equally good multipaths available than the maximum
permitted number, the oldest paths are selected as multipaths.
BGP can be used to help manage complex internal networks by interfacing with Interior Gateway Protocols (IGPs). Internal
BGP can help with issues such as scaling the existing IGPs to match the traffic demands while maintaining network efficiency.
BGP requires more configuration than other routing protocols and the effects of any configuration changes must be fully understood.
Incorrect configuration can create routing loops and negatively impact normal network operation.