BGP stands for Border Gateway Protocol, which enables us to use the internet as we’re used to. How? Imagine you’re trying to find the best way from A to B. This is easy if you can draw a straight line between the points on a piece of paper. However, when point A is your phone and point B is a random website on the internet, things are a bit more complicated. In order for your phone to find its way to the website, Border Gateway Protocol (BGP) was created.
The Definition of BGP
If you ever type in “What is BGP” in Wikipedia, you’ll get the following answer:
“Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routing and reachability information among autonomous systems (AS) on the Internet. BGP is classified as a path-vector routing protocol, and it makes routing decisions based on paths, network policies, or rule-sets configured by a network administrator.”
Unless you know a lot about networks, this definition probably doesn’t help much. So you’re probably still wondering: what is BGP?
Well, BGP is a routing protocol that enables the Internet to function. Without BGP, you won’t be able to browse the internet, send an email, or search online.
Now, what is a Routing protocol?
Before we dive deeper into BGP, we should explain the term routing protocol. John F. Shoch, an American computer scientist, defined it as follows:
“The name of a resource indicates what we seek, an address indicates where it is, and a route tells us how to get there”. (source: https://en.wikiquote.org/wiki/John_Shoch)
A brief history of the Internet
Back in the day, the Internet consisted of a few networks that were connected to each other. The routing between these networks was not very complicated; Internet scientists “simply” had to define network nodes and make connections between them.
However, we all know that the Internet didn’t stay small for long. Soon, different kinds of networks emerged and these networks needed to be connected as well. In order to create a dynamic “network of networks”, EGP (External Gateway Protocol) was invented.
EGP was sufficient for tree topologies/hierarchical structures. That is until these were replaced by mesh topologies.
Autonomous System Numbers
With the Internet growing bigger and bigger, it became harder to keep track of all the routes. Internet Scientists then decided to switch to an Autonomous System (AS) architecture. In this architecture, the internet is broken into thousands of smaller AS networks. Each of these networks can be seen as a pool of routers that are run by a single organization.
An autonomous system can, for example, be a corporate network, a university, or an Internet Service Provider. Each AS is represented by a unique number, which is called an ASN (Autonomous System Numbers). Each AS controls a group of routing prefixes, which represent different IP addresses.
Soon the number of autonomous systems grew to a point that EGP was not sufficient. The hierarchical structure of EGP made it difficult to connect networks efficiently.
Therefore, in 1989, Border Gateway Protocol was developed. Since then, it’s the primary protocol for long distance traffic on the internet.
Border Gateway Protocol explained
Lets compare Border Gateway Protocol with an example of our everyday lives: a GPS navigation system.
- Imagine that an autonomous system is a random city in the world.
- A network prefix is one street in that city with different houses.
- An IP address is an address for a specific house.
- A data packet is a car going from one house to another by taking the most efficient route.
In a city, there are multiple different roads to read a destination; A GPS navigation system from a car will calculate what is the best route by looking at traffic, roadblocks, etc. After this, the quickest and most efficient route is chosen; This is exactly what BGP does.
BGP determines which route information takes through different networks. BGP is incredibly important for data center operators and hosting providers as it can affect latencies – the time it takes for data to travel between one point to another on the Internet.
Now that you know this, the Wikipedia definition of BGP is probably not so complicated anymore: BGP is a protocol that is designed to exchange routing information among autonomous systems (AS) on the Internet.
Why BGP is important
To understand why BGP is so important, we’re going to have a look at a time it went wrong.
In 2018, a small ISP in Nigeria misconfigured their BGP filters. Due to this misconfiguration, hundreds of IP addresses owned by Google were included in their BGP routing table. This data was then accepted by Russian and Chinese telecom companies, which caused other network providers to accept it as well. For 74 minutes, data intended for Google ended up in Nigeria. This caused downtime & a big headache for google.
This all happened because ISPs did not apply the minimum best practices to routing sessions.