Border Gateway Protocol (BGP) is a protocol that allows data routing (the assignment of a path by which a message or data reaches its destination) to be made possible by the Internet.
For example, BGP allows a US user to load a website with origin servers from the UAE.
How BGP Works
Border Gateway Protocol (BGP) is essentially the Internet's postal service. This protocol facilitates communication that is fast and efficient over the internet.
The Postal Service receives mail dropped into a mailbox and determines the fastest route to send it to its intended recipient. Similarly, BGP routing reviews all available routes that data can take and chooses the best route. This method often means switching between autonomous systems (AS), which are a collection of devices or networks that share a common routing policy.
BGP is unlike the old Routing Information Protocol (RIP). This distance-vector routing protocol uses the hop count (which refers to the number of devices, usually routers, that a piece of data travels through) to determine routing metrics.
To exchange routing information between two BGP systems (peers), a peering on both BGP speakers must be configured first. A peer will give you its complete data table at the beginning. Everything else is dependent on the updates received.
A routing table, or routing information base (RIB) in computer networking is a data table stored in a router or a network host that lists the routes to particular network destinations, and in some cases, metrics associated with those routes.
Routing information bases (RIB) are used to store route updates. Although a routing table can only store one route per destination, RIB usually has multiple possible routes to a destination. The router decides which routes to include in the routing table and which paths to use. If a route gets withdrawn, it gets rerouted from the RIB.
The RIB can only track routes that might get used. If a route withdrawal is received but does not exist in the RIB, it gets silently removed from the RIB. Peers are not notified of any updates. RIB entries never time out. They exist until it becomes apparent that the route got discontinued.
BGP Path Attributes
Many times, multiple routes will lead to the same destination. BGP routing uses path attributes to determine which route traffic should be directed to specific networks. The simplest of these is Shortest AS Path. The Shortest AS Path is the path that traverses the most AS "wins."
Multi_Exit_Disc, also known as Multi-exit discriminator or MED, is another critical attribute. The Multi_Exit_Disc allows remote AS to determine if there are multiple exit points to the network. If so, one exit point is preferred.
The Origin attribute provides information about the origin of a routing upgrade. BGP may have multiple routes. In that case, the origin will determine which route is preferred.
Problems Facing BGP
You need to discuss the Internet's problems to understand how BGP works. First, routing table growth is a significant problem. A person could start advertising hundreds more routes by disaggregating a network that was once a single /16 network.
When this happens, every router on the Internet will receive every new route. People continually pressure themselves to combine or aggregate multiple routes into one advertisement. It is not always possible to aggregate routes, especially if you need to split a /19 into two separate, geographically distinct /20s. Routing tables now have over 200,000 routes, and they appeared to be growing exponentially for a while.
The second concern is that "advertising the Internet" can be a problem. Suppose a large ISP customer decides to advertise, and the ISP allows the routes. In that case, all the traffic to the Internet's servers will be sent directly to the AS.
There is an easy solution. Route filtering is the solution. It's easy to set up filters that prevent routers from accepting routes from customers who you aren't expecting. However, large ISPs may still accept "default," equivalent to transit from peers.
Who Operates BGP Autonomous Systems?
Autonomous systems numbers (ASNs) are usually associated with Internet service providers (ISPs) or large organizations such as tech companies and universities, government agencies, scientific institutions, and universities. Every AS that wishes to exchange routing information must have an ASN (registered autonomous system number).
Internet Assigned Numbers Authority (IANA) assigns ASNs (ASNs) to Regional Internet Registries. These registries then assign them to ISPs or networks.
ASNs can be 16-bit numbers between one and 65534 or 32-bit numbers between 131072 and 42949672944. There are 64,000 ASNs worldwide as of 2018. These ASNs can only be used for external BGP.
Difference Between Internal and External BGP
External BGP (eBGP) allows traffic to be sent over the Internet, exchanging routes. Autonomous systems can use an internal version of BGP to route through their networks. This internal version is called internal BGP (iBGP).
Not using internal BGP to route through your internal networks is not a prerequisite for external BGP. An autonomous system can choose from many internal protocols to connect routers in its internal network.
Continuing with the Postal Services analogy, external BGP works in the same way as international shipping. International shipping of mail requires that you follow certain guidelines and standards. After the mail has reached its destination country, it must be sent through the local mail service of that country to reach its final destination.
Each country's internal mail service is different and may not follow the same guidelines. Like the above, each autonomous system may have a routing protocol for routing data within its network.
BGP is an integral part of the Internet foundations. Because it must be manually configured, it is susceptible to human error as much as security attacks. Instabilities and service disruptions are becoming more common as networks evolve.
In the context of global digital services, monitoring BGP behavior in terms of performance monitoring, path discovery, and path changes is critical.