20 years of BGP
▼ 20 years ago today, I got my first autonomous system (AS) number, marking my entry in the BGP business. (5399, if you're wondering.)
To quote Ferris Bueller: "Life moves pretty fast. If you don't stop and look around once in a while, you could miss it." So let's look back and see what has happened over those 20 years.
Back in 1995, BGP had been around for about six years: BGP versions 1 - 3 were published as RFCs in 1989, 1990 and 1991, respectively. And then in 1994, the BGP-4 spec was published and that's still the version we use today. Crazy, right? I remember when I was writing my BGP book (published by O'Reilly in 2002), my editor asked whether there'd be a new version of BGP soon. I told him not to worry about it.
bART
However, pretty much all other aspects of the internet have changed in those two decades. The first version of the IPv6 specifications wouldn't be published until several months later. I hadn't heard of Network Address Translation (NAT) yet—RFC 1918 hadn't even been published! So we had to use RFC 1597 to get our private addresses. But IPv4 addresses were plentiful those days, so why would we? DHCP had been out for a couple of years, but I'm pretty sure I hadn't used it by then: stuff either was configured manually, or through PPP.
Yes, those were the days of screeching modems. AS5399 was the AS number for bART Internet Services, a small ISP in The Hague. When I first got in touch with bART they had a 28 kbps link to one ISP and a 128 kbps link to another. But all the traffic flowed over the slow line. I rerouted most of it over the faster line, which landed me a job. But obviously being able to use both lines together would be even better, but to do that right, you need BGP to do proper "multihoming".
One of the perks of working at an ISP was that I was able to get my own leased line. Back in those days, you could lease a regular copper phone wire between two locations, and this was relatively cheap (55 guilders (25 euros) a month, IIRC) if both locations were served by the same telephone exchange. As one third of The Hague is connected to the really, really huge exchange in the Marnixstraat, that applied to me. However, my leased line was only 28k, so around that same time I got my ISDN line (which I would keep until 2007), which was much faster at 64 kbps, or even 128 kbps if you bundled both channels. But remember, those channels were metered so that could get expensive, even for local calls. Today, I have a 120 Mbps cable connection at home, which is a thousand times faster. That makes for a bandwidth increase of about 41% per year. I remember signing a contract for 2 Mbps internet service for 30,000 guilders (13,000 euros) per month a year later. So the wholesale price of bandwidth has also gone down by about a factor 1000 in 20 years.
Size of the BGP table
We initially ran BGP on a Cisco 2501 router , maxed out with16 MB RAM. Back then, the BGP table was around 30,000 prefixes, which just about fit in that 16 MB. I don't remember what kind of router we switched to as the table size outgrew that 16 MB. Today, there are about 560,000 IPv4 prefixes in the BGP table, so roughly a factor 20 increase in 20 years, or about 16% per year.
Back in 2006, the Internet Architecture Board held a "routing and addressing" workshop in Amsterdam, where the issue of the growth of the BGP table was discussed. For a long time, this was considered a serious problem. We even came up with Shim6 in the IETF to allow for multihoming without using BGP with IPv6, but that never went anywhere as people just used BGP to multihome with IPv6. So, 16% annual growth of the BGP table is inconvenient, but apparently not as inconvenient as the alternatives. (Of course, if you run BGP to multihome, that solves your problem immediately while increasing the BGP table for everyone. Waiting for the whole world to adopt Shim6 so you can multihome without BGP doesn't provide that instant gratification even though it keeps the routing table small and thus the routers cheap(er).)
BGP's evolution
I still have a Cisco 2503 (that's the model with an ISDN port) lying around. I think we used IOS 10.3 or so back in 1995. If I load that IOS version on the 2503, I'm pretty sure that 2503 with the 20-year-old software could still talk BGP with a current router. (Well, until that 16 MB RAM is full.) However, that is not to say that nothing has changed in intermediate decades. A whole bunch of capabilities were added over the years, including:
- communities, for tagging routes with additional information
- flap damping, to keep unstable prefixes from being propagated
- the TCP MD5 option to protect BGP sessions against spoofed packets
- multiprotocol extensions, to support IPv6, multicast, VPNs and more
- route refresh, to allow sessions to be reset non-destructively
- the 32-bit AS number capability
- and in the not-too-distant future: BGPsec, which will make BGP more secure
The creators of BGP-4 did a great job with the extension mechanism, allowing the protocol to be extended as needed with very few backward compatibility issues. So future network protocol creators, take heed. And as a result, we'll probably be running BGP-4 forever, although it's hard to say what will be bolted onto it in the future.
BGP and me
Over the past 20 years, I have configured BGP for dozens of clients on about a dozen different types of routers, I wrote a book about BGP, started bgpexpert.com, wrote a master's thesis on a crazy way to do multipath in BGP and proposed an improvement to the protocol. Since my book came out, I've been doing BGP training courses, having trained at least 200, but probably more than 300 people. And I'm sure BGP and me haven't seen the last of each other. But right now, I have a movie to watch, candles to blow out and pie to eat!
Permalink - posted 2015-08-15