Deep in the bowels of the Internet lies a beast, understood by few and feared by many. His name is Border Gateway Protocol, his acronym ‘BGP’ and his presence vital to the stability and redundancy of the Internet. Often referred to as the ‘black magic’ of networking, understanding and utilizing BGP has generally been left to Cisco CCIE’s and other such edu-can’s.
In this article, I’ll give you a crash course on BGP, links to further reading and some nifty tools you can use to understand how various networks are put together.
Border Gateway Protocol (BGP) is the routing protocol used to exchange routing information across the Internet. BGP is an exterior routing protocol and as such is concerned with routing between networks rather than within them (this is the domain of the interior routing protocols such as RIP, OSPF, IS-IS). BGP/4 is defined in RFC 1771. Also see RFC’s 1772, 1773, and 1774.
Each and every network on the Internet is assigned an Autonomous System Number or ASN which identifies the network and provides consolidation of hosts within a single ‘virtual’ infrastructure. For the sake of simplicity, we’ll use Google as our example in the following scenarios:
Google has multiple data centers in multiple locations with some 100,000 production server-end points. In order for Google to operate an accessible and redundancy network, its necessary that they peer (connect) with tier 1 Internet providers. This permits redundancy, in the event of one provider experiencing issues as well as optimization allowing customers to connect to Google services via the shortest routing path and least number of hops. The technology driving the redundancy and route optimization if BGP4.
Google currently connects to over 350 providers globally including ATDN, Cogent, KPN, AT&T, Tascali, Global Transit, Reach, GBLX, UUNET, Sprint, MFNX and SIG. These provides are based in the US, Australia, United Kingdom, Singapore, Italy, Germany, China, Japan, Korea and several other countries.
Google’s infrastructure lives under autonomous system (AS) number 15169 which is registered to Google Inc. Other providers, which operate their own autonomous networks, must peer (connect/inter-connect) with AS15169 (or a parent/child AS) in order to have connectivity to Google’s infrastructure. The route that traffic takes into Google infrastructure is based on BGP’s understanding of available routes, link availability, policies and administrator configured prepends which select and preference routes via one provider to one network over another provider to the same network.