Border Gateway Protocol
|
The border gateway protocol (BGP) is one of the core routing protocols in the Internet. It works by maintaining a table of IP networks or 'prefixes' which designate network reachability between autonomous systems (AS). It is described as a path vector protocol. BGP does not use technical metrics, but makes routing decisions based on network policies or rules. The current version of BGP, BGP version 4, is specified in request for comment RFC 1771.
BGP supports classless interdomain routing and uses route aggregation to decrease the size of routing tables. Since 1994, version four of the protocol has been in use on the Internet; all previous versions are considered obsolete.
BGP was created to replace the EGP routing protocol to allow fully decentralized routing in order to allow the removal of the NSFNET Internet backbone network. This allowed the Internet to become a truly decentralized system.
Very large private IP networks can also make use of BGP; an example would be the joining of a number of large OSPF networks where OSPF by itself would not scale to size. Another reason to use BGP would be multihoming a network for better redundancy.
Most Internet users do not use BGP directly. However, since most Internet service providers must use BGP to establish routing between one another, it is one of the most important protocols of the Internet. Compare and contrast this with Signalling System 7, which is the inter-provider core call setup protocol on the PSTN.
Contents |
BGP operation
BGP neighbours, or peers, are established by manual configuration between routers to create a TCP session on port 179, BGP speaker will periodically, every 60 seconds by default, send 19-byte keepalive messages to maintain the connection. Among routing protocols, BGP is unique in using TCP as its transport protocol.
When BGP is running inside an AS, it is referred to as Internal BGP (IBGP Interior Border Gateway Protocol). When BGP runs between autonomous systems, it is called External BGP (EBGP Exterior Border Gateway Protocol). If the role of a BGP router is to route IBGP traffic, it is called a transit router. Routers that sit on the boundary of an AS and that use EBGP to exchange information with the ISP are called border or edge routers.
All routers within a single AS and participating in BGP routing must be configured in a full mesh: each router must be configured as peer to every other router. This causes obvious scaling problems, since the number of required connections grows quadratically with the number of routers involved. To get around this, two solutions are built into BGP: route reflectors (RFC 2796) and confederations (RFC 3065).
Route reflectors reduce the number of connections required in an AS. A single router (or two for redundancy) can be made a route reflector: other routers in the AS need only be configured as peer to them.
Confederations are used in very large networks where a large AS can be configured to encompass smaller more manageable internal ASs. Confederations can be used in conjunction with route reflectors.
BGP problems and mitigation
Route flapping
A feature known as "dampening" is built into BGP to mitigate the effects of route flapping. Flapping of routes can be caused by WAN links or physical interfaces mending and breaking or by misconfigured or mismanaged routers. Without dampening, routes can be injected and withdrawn rapidly from routing tables, possibly causing a heavy processing load on routers thus affecting overall routing stability.
With dampening, a route's flapping is exponentially decayed. At first instance when a route becomes unavailable but quickly reappears for whatever reason, then the dampening does not take effect, so as to maintain the normal fail-over times of BGP. At the second occurrence, BGP shuns that prefix for a certain length of time; subsequent occurrences are timed out exponentially. After the abnormalities have ceased and a suitable length of time has passed for the offending route, prefixes can be reinstated and its slate wiped clean. Dampening can also mitigate malicious denial of service attacks; dampening timings are highly customisable.
As backbone links and router processors have become faster, some network architects have suggested that flap dampening may not be as important as it used to be, since changes to the routing table can be absorbed much faster by routers. Some have even suggested that dampening may make things worse, not better, in such an environment. This topic is controversial, and the subject of much research.
Routing table growth
One of the largest problems faced by BGP, and indeed the Internet infrastructure as a whole, comes from the growth of the Internet routing table. If the global routing table grows to the point where some older, less capable, routers cannot cope with the memory requirements or the CPU load of maintaining the table, these routers will cease to be effective gateways between the parts of the Internet they connect. In addition, and perhaps even more importantly, larger routing tables take longer to stabilize (see above) after a major connectivity change, leaving network service unreliable, or even unavailable, in the interim.
Until 2001, the global routing table was growing exponentially, threatening an eventual widespread breakdown of connectivity. In an attempt to prevent this from happening, there is now a cooperative effort by ISPs to keep the global routing table as small as possible, by using CIDR and route aggregation. This has slowed the growth of the routing table to a linear process, greatly extending the time available before older routers need to be replaced.
External links
- BGP Routing Resources (http://www.bgp4.as/) (includes a dedicated section on BGP & ISP Core Security (http://www.bgp4.as/security))
- BGP table statistics (http://bgp.potaroo.net/)
- Linux Magazine: Demystifying BGP (http://www.linux-mag.com/2003-05/bgp_01.html) (Good, Detailed BGP explanation)
- RFCs
- RFC 3392, Capabilities Advertisement with BGP-4
- RFC 3065, Autonomous System Confederations for BGP
- RFC 2918, Route Refresh Capability for BGP-4
- RFC 2796, BGP Route Reflection - An Alternative to Full Mesh IBGP
- RFC 1965, Obsolete - Autonomous System Confederations for BGP
- RFC 1772, Application of the Border Gateway Protocol in the Internet
- RFC 1771, A Border Gateway Protocol 4 (BGP-4)
- RFC 1657, Definitions of Managed Objects for the Fourth Version of the Border Gateway Protocol (BGP-4) using SMIv2
- RFC 1655, Obsolete - Application of the Border Gateway Protocol in the Internet
- RFC 1654, Obsolete - A Border Gateway Protocol 4 (BGP-4)
- RFC 1105, Obsolete - Border Gateway Protocol (BGP)
- Implementations
- OpenBGPD (http://www.openbgpd.org/) A New Implementation by the OpenBSD team
- Quagga (http://www.quagga.net/) a fork of free routing software Zebra
- Xorp (http://www.xorp.org/) eXtensible Open Router Platform
- Zebra (http://www.zebra.org/) free BGP4 routing software
- BIRD (http://bird.network.cz/) BIRD Internet Routing Daemon: Free IP routing software packagede:Border Gateway Protocol
fr:Border Gateway Protocol pl:BGP pt:Border Gateway Protocol ru:BGP