RFC 9234 introduces a novel mechanism that leverages the BGP Role to prevent and detect...
Border Gateway Protocol
Border Gateway Protocol is a routing protocol used to exchange routing information between different autonomous systems on the Internet. It enables the Internet to function as a collection of interconnected networks. Border Gateway Protocol plays a critical role in ensuring the stability and reliability of the Internet, and it is an essential component of the global routing infrastructure.
What is the Border Gateway Protocol?
Border Gateway Protocol (BGP) is a standardized protocol used to exchange routing information between different autonomous systems (AS) on the internet. BGP is the protocol used by internet service providers (ISPs) to route traffic between different networks and ASes.
BGP works by exchanging information about available routes between routers in different ASes. Each router maintains a routing table that contains information about the available paths to different networks. When a new network becomes available, BGP routers advertise its existence to their neighboring routers. Each router uses this information to update its routing table and determine the best path to reach a particular network.
BGP is designed to be highly scalable, allowing it to handle the complex routing requirements of the modern internet. It is also highly configurable, allowing network administrators to control the flow of traffic between different networks and to implement policies for how traffic is routed.
Border Gateway Protocol versions and history
The development of BGP can be traced back to the early 1980s when the Internet was still in its infancy. At that time, the routing protocols used on the Internet were simple and designed for use within a single network. As the Internet grew, however, it became clear that a new routing protocol was needed that could handle the complex and diverse routing requirements of a global network.
In 1989, BGP-1 was introduced as a replacement for the outdated Exterior Gateway Protocol (EGP), which was no longer capable of handling the growing demands of the Internet. BGP-1 provided a scalable and flexible routing protocol that could be used to interconnect multiple autonomous systems (ASes) and exchange routing information across the Internet.
Over the years, as the Internet continued to evolve, new versions of BGP were introduced to address emerging routing challenges and support new technologies. BGP-2, for example, added support for CIDR, which allowed for more efficient use of IP address space by allowing networks to be divided into smaller, more manageable blocks. BGP-3 introduced support for route aggregation and improved error handling, making the protocol more reliable and robust.
The current version of BGP, BGP-4, was introduced in 1994 and has remained largely unchanged since then. BGP-4 introduced several major enhancements, including support for Multiprotocol BGP (MBGP), which allowed BGP to carry routing information for multiple network layer protocols (such as IPv4 and IPv6) within a single session. BGP-4 also introduced more sophisticated security features, such as the BGP MD5 authentication mechanism, which helps prevent unauthorized access to BGP sessions and protects against routing attacks.
Since the release of BGP-4, the protocol has undergone several revisions and updates, including the addition of new features such as BGP/MPLS IP VPNs, BGP FlowSpec, and BGPsec. However, the core principles of BGP-4 have remained largely unchanged, and it remains the primary inter-AS routing protocol used on the Internet today.
Border Gateway Protocol operating principles
Border Gateway Protocol (BGP) is a protocol used for exchanging routing information between different networks or Autonomous Systems (ASes) in the Internet. Its primary function is to enable routers to select the best path for forwarding traffic based on the information it receives about the available routes to a particular destination network.
BGP operates on the principle of path-vector routing, which means that it takes into account not only the shortest path to a destination but also other characteristics of the path, such as the number of ASes that the route traverses, the AS numbers themselves, and the policies associated with those ASes. The protocol uses a set of path attributes that describe the properties of each route, such as the AS path, next hop, origin, and local preference. These attributes help routers determine the best path to a destination and also allow network administrators to control how traffic flows through their network.
BGP’s decision-making process to determine the best path for each destination network involves comparing different attributes of the available routes and applying a set of rules to select the best path. The rules are configurable, and network administrators can set policies that influence the path selection process.
The Border Gateway Protocol uses neighbor relationships to exchange routing information between routers. Each router maintains a list of its neighboring routers and establishes a TCP connection with them over which it exchanges BGP updates. BGP updates contain information about the available routes to a particular destination network, and routers use this information to build their routing tables.
Border Gateway Protocol prerequisites
Setting up the Border Gateway Protocol requires certain prerequisites to ensure a smooth and efficient implementation. Here are some of the major ones:
- Internet connectivity: In order to set up BGP, you must have an internet connection from a service provider. BGP is typically used for connecting two or more separate networks, so it is important to have an internet connection that can connect to multiple networks.
- Autonomous System Number (ASN): An ASN is a unique identifier that is assigned to your network by an internet registry such as ARIN or RIPE NCC. Each network that participates in BGP must have its own unique ASN, which is used to identify the network and exchange routing information with other networks.
- Public IP address space: BGP requires that your network has a public IP address space that is routable on the internet. This means that the IP addresses you use for your network must be unique and registered with an internet registry.
- Routing policy: BGP allows you to control how traffic is routed between different networks. You will need to define routing policies that specify which routes you want to advertise to other networks and how you want incoming traffic to be handled.
- BGP router: You will need a router that is capable of running BGP. Most enterprise-grade routers support BGP, but you should check with your router vendor to make sure that your specific router model supports BGP.
- Redundancy and failover: BGP is often used for mission-critical applications, so it is important to have redundant connections and failover mechanisms in place to ensure that your network remains online even in the event of a failure.
Border Gateway Protocol and the Autonomous Systems
Autonomous Systems (ASes) is a key concept in the world of computer networking, particularly in the context of the Internet. An AS is a collection of interconnected routers that operate under a common administrative domain and use a common routing policy. An AS can be thought of as a single entity that is responsible for routing traffic within and outside of its network.
ASes are identified by a unique number called an AS number. This number is used to identify the AS in BGP (Border Gateway Protocol), which is the primary routing protocol used on the Internet for exchanging routing information between different ASes. Each AS maintains a routing table that contains information about the networks and subnets that it can reach and the best path to reach them.
ASes are designed to be independent and self-governing, meaning that they have control over their own routing policies and can make decisions about how traffic should be routed within their network. This allows them to optimize their network for their own needs and priorities without being subject to the routing decisions of other ASes.
ASes can be categorized into two main types:
- Single-homed AS: An AS that has only one connection to the Internet or another AS.
- Multi-homed AS: An AS that has more than one connection to the Internet or other ASes. Multi-homed ASes are typically larger organizations, such as service providers or large enterprises, that need to maintain multiple connections for redundancy, load balancing, and performance reasons.
ASes play a critical role in ensuring the stability and reliability of the Internet by allowing different networks to interconnect and exchange traffic in a seamless and efficient manner.
Border Gateway Protocol neighbor relationships
BGP neighbor relationships are a critical aspect of the protocol’s operation. BGP is a non-broadcast protocol, which means that routers running BGP do not automatically discover each other like some other routing protocols. Instead, BGP requires network administrators to manually configure the neighbor relationships between routers.
A BGP neighbor relationship is established between two routers when both routers have been configured to recognize each other as neighbors. To set up a neighbor relationship, network administrators need to specify the IP addresses of the neighboring routers, as well as the remote AS number and other relevant information for that specific neighbor relationship.
BGP uses TCP (Transmission Control Protocol) as the transport protocol for exchanging routing information between neighboring routers. To establish a neighbor relationship, the two routers need to be able to establish a TCP connection with each other over TCP port 179. Once the TCP session is established, the two routers exchange BGP messages to share routing information.
BGP neighbor relationships can be categorized as either internal or external. An internal neighbor relationship is established between two routers that are within the same AS (Autonomous System). In contrast, an external neighbor relationship is established between two routers that are in different ASes.
BGP neighbor relationships need to be configured carefully to ensure that routing information is exchanged only with authorized routers. If a router establishes a neighbor relationship with an unauthorized router, it could lead to routing loops or other network problems. Additionally, BGP neighbor relationships need to be maintained properly to ensure that routing information is shared accurately and efficiently between routers.
What are the Border Gateway Protocol path attributes?
Path attributes are an important aspect of the Border Gateway Protocol (BGP), which is used to exchange routing information between routers in different autonomous systems (ASes). Path attributes provide additional information about the route to a particular destination network, such as the origin of the route, the AS path that the route has traveled through, the next hop router, and various other attributes that can be used to manipulate the path selection process.
BGP path attributes can be divided into four categories: well-known mandatory, well-known discretionary, optional transitive, and optional non-transitive. Well-known mandatory attributes must be present in all BGP update messages, and all routers must be able to process them. Well-known discretionary attributes are optional, but all BGP implementations must be able to process them if they are present. Optional transitive attributes may or may not be present in BGP update messages, and routers that do not understand them are required to propagate them unchanged. Optional non-transitive attributes are also optional, but routers that do not understand them must remove them from the update message.
There are currently nearly 40 path attributes listed in the IANA BGP attributes registry. Some of the most commonly used path attributes include ORIGIN, AS_PATH, NEXT_HOP, MULTI_EXIT_DISC, LOCAL_PREF, and COMMUNITY. ORIGIN indicates whether a path was learned from an IGP, from the EGP protocol, or is “incomplete”, meaning it was learned through some other means. AS_PATH is a list of ASes that have “seen” this path and is used for loop suppression and filtering. NEXT_HOP is the address of the next hop router, and MULTI_EXIT_DISC is used to choose between paths learned from the same neighboring AS. LOCAL_PREF carries a path’s degree of preference, and COMMUNITY carries one or more 32-bit labels that can be used for various purposes.
In addition to these commonly used path attributes, there are several optional path attributes that were added later to BGP, such as ORIGINATOR_ID, MP_REACH_NLRI, EXTENDED_COMMUNITIES, AS4_PATH, LARGE_COMMUNITY, and BGPsec_Path. These attributes can be used for a variety of purposes, such as supporting larger communities, carrying multiprotocol extensions, or providing additional security mechanisms.
How redundant is the Border Gateway Protocol?
BGP (Border Gateway Protocol) is designed to provide redundancy and fault tolerance in the Internet’s routing infrastructure. Here are some of the ways the BGP redundancy is attained:
- Multiple paths: BGP allows multiple paths between networks, which can be used to provide redundancy in case one path fails.
- Multi-homing: BGP allows a network to be connected to multiple providers, which can be used to provide redundancy in case one provider fails.
- Route reflection: BGP allows for the use of route reflectors, which can be used to reduce the number of BGP sessions needed between routers in a network, while still maintaining redundancy.
- Anycast: BGP allows for the use of anycast, which is a technique that allows multiple servers to share the same IP address. This can be used to provide redundancy and load balancing.
Overall, BGP is a highly redundant protocol. However, the effectiveness of BGP’s redundancy depends on how it is configured and managed, as well as the underlying network infrastructure.
Noction Intelligent Routing Platform
BGP routing optimization platform for utmost network performance
Noction IRP Lite
Free feature-restricted Intelligent Routing Platform version
Noction Flow Analyzer
Powerful, Feature-rich, and Affordable network traffic analysis system for all
MULTIHOMING: STEP-BY-STEP GUIDE
This document is intended to provide step-by-step guidance to connecting your network to multiple transit providers, a practice called multihoming.
BGP IN LARGE NETWORKS
This eBook provides the basic principles and considerations for implementing BGP in networks with multiple locations.
BGP PREFIX FILTERING
This eBook provides best practices and troubleshooting tips for efficient BGP prefix propagation.
BGP MULTI EXIT DISCRMINATOR
This eBook is intended to guide you through every aspect of the BGP Multi Exit Discriminator and how to use it with Internet Exchanges and Route Servers.