Key Takeaways
|
|
When you send an email or load a website, you probably never think about how the data gets from your computer to the server that needs to process it. But something does have to decide how the data will move across the vast expanse of the Internet – and, in particular, which of the virtually infinite number of potential routes your data will take as it moves from your device to a server and back again.
That something is the Border Gateway Protocol, or BGP, which plays an absolutely central role in ensuring that networks – and the Internet as a whole – work the way they need to.
Keep reading for a primer on what BGP is, how it works, and why managing BGP is so critical for ensuring effective network performance.
What is BGP?
The Border Gateway Protocol, or BGP, is the network protocol that manages traffic routing on the Internet. Its purpose is to ensure that data can move efficiently between the different networks that make up the Internet.
To dive a little deeper into what BGP is and how it works, let's think for a moment about how the Internet operates. The Internet is not a single network. It's a network of smaller networks. The smaller networks, which are known in networking-speak as autonomous systems, are networks that are owned by entities like Internet Service Providers, large businesses, and governments. Currently, there are about 64,000 autonomous systems in existence.
Within each autonomous system, network routes and flows are easy enough to manage, because a single entity owns the entire network and can therefore decide how to route traffic without having to consult anyone else. But when packets (the unit used to move data over computer networks) need to move from one autonomous system into another system, each system involved must agree on how the data will be routed.
That's where BGP comes in. Using BGP, the autonomous systems that comprise the Internet share information about potential routes that data could take, then make determinations about the most efficient route to use.
BGP problems and troubleshooting
Unsurprisingly, a number of things can go wrong when you're trying to move data efficiently across the tens of thousands of autonomous systems that exist within the Internet. For example, you might run into BGP problems due to issues like the following:
- The routing information advertised by an autonomous system is incorrect, leading either to total packet loss (in the event that the routes aren't viable at all) or (if the routes are longer than advertised) higher-than-necessary latency.
- Part of the route that BGP chooses for packets has failed or slowed down due to a DDoS attack. In this case, like the one above, packets might be lost entirely or experience high latency.
- Configuration problems with the devices or services that implement BGP, causing BGP to make decisions based on inaccurate information. For instance, it might not have up-to-date information about available routes.
The list of potential BGP problems could go on. But to put it simply, you can experience network performance or availability issues for two main reasons: either because the information supplied to BGP by autonomous systems is inaccurate, or because your BGP configuration is flawed. Sometimes, those issues result from a local problem, like a misconfiguration with the autonomous systems to which your business's assets are connected. In other cases, they could be a global issue that affects multiple autonomous systems.
How to monitor BGP
To get ahead of these problems, it's important to monitor BGP continuously and in real time. This is particularly true because network paths change constantly, so a route that worked well at one moment may fail the next. The only way to detect problems that result from BGP and identify their root cause is to monitor BGP comprehensively.
To perform BGP monitoring, you need a way of tracing packets as they flow across various autonomous zones. Simple tools like the Linux traceroute utility can help, but they mostly show you only which routes packets follow as they move across the Internet. They don't tell you why BGP made certain routing decisions or provide context about the state of alternative routes.
For that reason, the best way to monitor BGP is to deploy software that continuously tracks the status of the Internet as a whole and the autonomous systems within it. Using that information, you can determine whether certain autonomous systems are experiencing problems that might explain why you are seeing high rates of packet loss or latency. You can also track how BGP routes for your traffic change over time and correlate route modifications with network performance issues. That way, if you run into a problem like high latency or a spike in dropped packets, you'll know that a BGP route change was likely the cause of the issue.
You can also compare alternative routing options and evaluate whether BGP is making the best routing decisions based on your configuration.
Conclusion
Network management would be simpler if packets always took the same routes as they moved across the Internet. But they don't, and the protocol that allows them to take dynamic routes – BGP – doesn't always work the way it ideally would.
That's why monitoring and understanding BGP plays a central role in achieving high levels of network reliability and performance. You should never assume that your packets are being routed in the most efficient way – or, worse, wait for networking issues to arise before you begin investigating potential BGP problems. Instead, monitor BGP continuously so you can track issues proactively and mitigate them as quickly as possible.
Chris Tozzi
Chris Tozzi has worked as a journalist and Linux systems administrator. He has particular interests in open source, agile infrastructure, and networking. He is Senior Editor of content and a DevOps Analyst at Fixate IO. His latest book, For Fun and Profit: A History of the Free and Open Source Software Revolution, was...