Border Gateway Protocol (BGP)
Internet is a network of interconnected networks. A network or a set of networks under a single authority is called an Autonomous System (AS). Border Gateway Protocol (BGP) version 4 (RFC 1771) is the de facto routing protocol that is used currently to maintain connectivity between ASs. BGP is a path vector protocol, a modified form of distance vector protocol. BGP relies on Transmission Control Protocol (TCP) for reliable transport. Inside an AS, Interior Gateway Protocols (IGPs) like RIP, OSPF and IS-IS are used to provide connectivity. Along with an IGP, BGP can also be used inside an AS, mainly to propagate the BGP information learned from other ASs. The term "Internal BGP " (IBGP) is used in this context. All IBGP speakers must be fully meshed. Route reflection and AS confederations solves the scalability issue because of the full mesh requirement. Some of the advanced BGP features include route flap dampening, route refresh and graceful restart. BGP multiprotocol extensions support carrying IPv6 prefixes, MPLS labels and IP multicast in addition to IPv4 prefixes.
2. Practical BGP by Russ White, Danny McPherson, Srihari Sangli
3. BGP Design and Implementation by Randy Zhang, Micah Bartell
4. Internet Routing Architectures by Bassam Halabi
Maintained by Anil Edathara
Last Modified: October 06, 2010
BGP - Commonly used terms
Autonomous System (AS) Set of routers under a single technical administration.
BGP speaker A router that implements BGP.
EBGP External BGP (BGP connection between external peers).
External peer Peer that is in a different AS than the local system.
IBGP Internal BGP (BGP connection between internal peers).
Internal peer Peer that is in the same AS as the local system.
IGP Interior Gateway Protocol - a routing protocol used to exchange routing information among routers within a single AS.
RIB Routing Information Base.
Aggregation Process of combining the characteristics of several different routes in such a way that a single route can be advertised. Aggregation reduces the amount of information that a BGP speaker must store and exchange with other BGP speakers.
Route Reflection BGP speakers within a single AS must be fully meshed. Route Reflection is an alternative in alleviating the need for a "full mesh" and allows a BGP speaker (known as "Route Reflector") to advertise IBGP learned routes to certain IBGP peers.
AS Confederations A collection of autonomous systems advertised as a single AS number to BGP speakers that are not members of the confederation. Another alternative to the "full mesh" requirement.
BGP - Attributes
ORIGIN A well-known mandatory attribute generated by the speaker that originates the associated routing information. Its value should not be changed by any other speaker. Can be IGP or EGP or INCOMPLETE
AS_PATH A well-known mandatory attribute which identifies the ASs through which routing information carried in this update message has passed. Can be AS_SETs or AS_SEQUENCEs.
NEXT_HOP A well-known mandatory attribute that defines the IP address of the router that should be used as the next hop to the destinations listed in the update message.
MULTI_EXIT_DISC An optional non-transitive attribute which is intended to be used on external (inter-AS) links to discriminate among multiple exit or entry points to the same neighboring AS. All other factors being equal, the exit point with LOWER value should be preferred. If received over EBGP, this attribute may be propagated to internal peers but not to external peers.
LOCAL_PREF A well-known attribute that shall be included in all update messages to the other internal peers. A BGP speaker shall calculate the degree of preference for each external route based on the locally configured policy, and include the degree of preference when advertising a route to its internal peers. The HIGHER degree of preference must be preferred.
ATOMIC_AGGREGATE A well-known discretionary attribute.
AGGREGATOR An optional transitive attribute which may be included in updates which are formed by aggregation. A BGP speaker which performs route aggregation may add this attribute which shall contain its own AS number and BGP Identifier.
COMMUNITIES An optional transitive attribute which specifies a community. All routes with this attribute belong to the communities listed in the attribute. Well known communities are NO_EXPORT, NO_ADVERTISE and NO_EXPORT_SUBCONFED.