To fully understand BGP, we must first answer the following seemingly simple questions: why BGP is needed, that is, how BGP is generated, and what problems does it solve. With the above questions, let us briefly review the development trajectory of a routing protocol.
First of all, the essence of routing is to describe the expression of a network structure. The routing table is actually a collection of results. In the early ARPANet network era, the network scale was limited and the number of routes was not large. Therefore, all routers can maintain the entire network topology. The routing protocol used at that time was called GGP (Gateway-to-Gateway Protocol). GGP naturally became the first internal gateway protocol (IGP).
At that time, network managers encountered a similar problem to today: the number of routes caused by the expansion of the network scale continues to increase. In order to solve this problem of network size growth, an autonomous system concept (AS) is proposed, which can also be called a routing management domain. Use one routing protocol inside the AS, and then use another routing protocol between the AS. The benefits of this are obvious. Different networks can choose the IGP protocol and then interconnect through a unified inter-AS protocol.
In the development field of IGP, first RIP became the mainstream of IP routing, and then more advanced IGP protocols including OSP and ISIS appeared. These protocols are more automated, smarter and more reliable. There is a mutual trust relationship between routers in the same AS, and these routers are often maintained by the same management personnel. Therefore, IGP’s automatic discovery and routing calculation information flooding are completely open, and there is relatively little manual intervention.
The need for interconnection of different ASs has promoted the generation of external gateway protocol (EGP). The main purpose of EGP is to transfer routing protocols between different ASs. And different ASs are often directly connected, most AS interconnection behavior only involves a small number of border routers (ASBR), so the design of EGP is also very simple. EGP’s RFC827 was released in 1982, and it seems to be earlier than RIP’s first standard FRC1058, but in fact RIP has been widely used before RFC1058. At the time, RIP + EGP became a standard routing combination.
EGP was designed so simple that it quickly failed to meet the requirements of network management. EGP simply publishes network reachability information without making any optimization or considering loop avoidance. Some people even think that EGP is not a routing protocol. Many of EGP’s shortcomings are eventually replaced by BGP. BGP’s first FRC1105 was released in 1989. Compared with EGP, BGP is more like a routing protocol, with many routing protocol features, such as solving loop problems, convergence problems, triggering updates, and so on.
It’s like different companies have their own corporate culture and standards, but the interaction between companies must follow a unified code of conduct and standards. There must also be a unified standard for routing interaction between ASs. The many advantages of BGP over EGP make BGP the only external gateway protocol and widely used on the Internet.
In summary, BGP is an external gateway protocol that appears to replace EGP. It must be able to perform route selection, avoid routing loops, be able to deliver routes more efficiently, and maintain a large number of routes. Because BGP is deployed between ASs that do not have a complete trust relationship, BGP needs to have rich routing control capabilities, and BGP can be extended through some simple and uniform methods.
BGPv1 (RFC1105) defines some of the most basic protocol features of BGP. BGP passes routes between ASs, so it is very important. In order to ensure the reliable transmission of BGP, TCP is used as the transport layer protocol. The advantages of using TCP are obvious. BGP can use TCP’s existing reliable transmission mechanism, retransmission, sequencing and other mechanisms to ensure the reliability of protocol message interaction. The benefits of TCP extension can also be inherited, for example, MD5 authentication of TCP can be used by BGP.
BGP is established between two different AS and there is a trust problem. Therefore, BGP cannot be discovered automatically. Instead, it needs to manually configure neighbors and establish TCP relationships using specified addresses. The BGP relationship established with AS external nodes is called EBGP relationship, and the BGP relationship established with AS internal nodes is IBGP relationship.
One of the most important concepts of BGP is to use the AS number to solve the loop problem between AS. If a certain routing information is received with its own AS number, it means that this route is a known route and it will not be processed anymore. If the AS number is duplicated, it means that there is a routing loop. There is no concept of AS-path in BGPv1, and this concept is made clear in BGPv2. BGP is constantly improving from v1, v2, v3, and now v4. BGP4 + is mainly an extension of multi-protocol BGP, also known as MP-BGP. The concept of MP-BGP will not be discussed in this article.
Within the AS, because there is no change in the AS number, other methods are needed to prevent loops. BGP stipulates that the routes learned from IBGP neighbors will not be passed to another IBGP neighbor. Simply put, the route between IBGPs will only be transmitted by one hop, and the route will only be transmitted once. Of course, there is no problem of looping. At the same time, all routers within the AS are required to establish IBGP relationships in pairs. This is the BGP full connection in BGP technology. Full connectivity is unthinkable in a large network, so two technologies (RFC1966 and RFC1965) were later derived from route reflector and BGP alliance.
The route reflector designates a node as a reflector in the AS, all other nodes establish an IBGP relationship with the reflector, and the reflector acts as an intermediate node to pass routes between any other two IBGPs. Therefore, in theory, the reflector should not change the path attribute information when routing, otherwise it will destroy the principle of BGP avoiding loops inside the AS. However, from the perspective of practical application, different vendors have made many features on the function of the reflector, which requires careful use by BGP deployers. The BGP alliance is re-planned within the AS, and a flat AS is divided into multiple private ASs. The benefits of doing this can be a layered management of a large AS on the one hand, and on the other hand through the layer , Naturally reducing the need for full connectivity.
BGP messages use the TLV structure, which is very conducive to expansion and backward compatibility. Therefore, with the development of the network, a large number of RFCs on BGP extensions have been generated, which makes BGP an external gateway protocol that keeps youth forever.