Decomposed Border Gateway Protocol (BGP)
By hosting BGP speakers in the core network and utilizing the virtual routing redundancy protocol, the problem of traffic interruption caused by peripheral PE router failover was solved, achieving seamless BGP session continuity and network stability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-10-18
- Publication Date
- 2026-03-10
AI Technical Summary
In a network environment, when an external PE router fails and goes through a failover, the existing BGP sessions are re-established, causing traffic interruptions that cannot meet quality of service requirements and service level agreements, thus affecting network performance.
By hosting BGP speakers on the computer system of the core network, decomposing BGP session state information and control in PE routers, maintaining the continuity of eBGP sessions through virtual route redundancy protocol, and achieving seamless traffic switching by utilizing internal route reflectors and virtual route redundancy protocol.
It achieves uninterrupted traffic during PE router failover, meets service quality requirements and service level agreements, and improves network reliability and stability.
Smart Images

Figure CN116601893B_ABST
Abstract
Description
BACKGROUND
[0001] Border Gateway Protocol (BGP) provides a standardized method for gateways facing external networks to exchange routing information with computer systems on a network, particularly the Internet. Routing information can be shared in the form of path vectors. Routing decisions can be made based on a set of administrator-specified paths, network policies or rules. BGP used for routing within a network is referred to as internal BGP (iBGP). BGP used to share routing information with the outside world is referred to as external BGP (eBGP).
[0002] Advances in the art have improved the implementation of BGP in network environments. BRIEF DESCRIPTION OF DRAWINGS
[0003] In order that the advantages of the application will be readily understood, a more particular description of the application briefly described above will be rendered by reference to specific embodiments that are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the application and are not therefore to be considered to be limiting of its scope, the application will be described and explained with additional specificity and detail by reference to the accompanying drawings, in which:
[0004] Figure 1 is a schematic block diagram of a network environment for implementing a disaggregated BGP according to embodiments of the application;
[0005] Figure 2 is a schematic block diagram illustrating reflection of internally generated routes by a disaggregated BGP speaker according to embodiments of the application;
[0006] Figure 3 is a schematic block diagram illustrating routing of BGP traffic from an external client to a disaggregated BGP speaker according to embodiments of the application;
[0007] Figure 4 is a schematic block diagram illustrating reflection of internally generated routes by a disaggregated BGP speaker according to embodiments of the application;
[0008] Figure 5 is a schematic block diagram illustrating conversion of routes from an external client by a disaggregated BGP speaker according to embodiments of the application;
[0009] Figure 6 is a schematic block diagram illustrating handling of failover between peripheral routers by a disaggregated BGP speaker according to embodiments of the application;
[0010] Figure 7is a schematic block diagram illustrating distribution of routes received from external clients by a decomposed BGP speaker to a peripheral router according to embodiments of the application; and
[0011] Figure 8 is a schematic block diagram of a computer system suitable for implementing the method according to embodiments of the application. DETAILED DESCRIPTION
[0012] It will be readily understood that the components of the application, as generally described and illustrated in the Figures herein, can be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the application, as represented in the Figures, is not intended to limit the scope of the application, as claimed, but is merely representative of certain examples of presently envisioned embodiments in accordance with the application. The described embodiments of the application will be best understood by reference to the drawings, wherein like parts are designated with like numerals throughout.
[0013] Embodiments of the application, in accordance with the present disclosure, can be implemented as a device, a method, or a computer program product. Accordingly, the present application can take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that can all generally be referred to herein as a "module" or "system." Furthermore, the present application can take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium.
[0014] Any combination of one or more computer usable or computer readable medium(s) can be utilized. The computer readable medium can include, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples (a non- exhaustive list) of the computer readable medium include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, and a magnetic storage device.
[0015] Computer program code for performing the operations of this invention can be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, Smalltalk, and C++, as well as conventional procedural programming languages such as the "C" programming language or similar languages, and descriptive or markup languages such as HTML, XML, and JSON. The program code can run entirely on a computer system as a standalone software package, on a standalone hardware unit, partially on a remote computer located at a distance from the computer, or entirely on a remote computer or server. In the latter case, the remote computer can be connected to the computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (e.g., via the Internet provided by an Internet service provider).
[0016] The invention is described below with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions or code. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, establish means for implementing the functions / steps specified in the flowchart illustrations and / or block diagram blocks.
[0017] These computer program instructions may also be stored in a non-transitory computer-readable medium, which may instruct a computer or other programmable data processing apparatus to operate in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture comprising instruction means that implement the functions / steps specified in flowchart and / or block diagram blocks or blocks.
[0018] Computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to perform a series of operational steps on the computer or other programmable apparatus to produce a computer-implemented process, such that the instructions running on the computer or other programmable apparatus provide for implementing the functions / steps specified in flowchart and / or block diagram blocks or blocks.
[0019] Figure 1An example of a network environment 100 in which the systems and methods described herein can be implemented is shown. Network environment 100 may include a core network 102 and an access network 104. Core network 102 and access network 104 may include any networking and computing devices known in the art, such as switches, routers, servers, user workstations, user mobile devices, etc. Core network 102 may be a network within an entity, such as an entity providing network access or an entity providing services to users via the Internet. Access network 104 is external to core network 102 and may be controlled by different entities or groups of entities. In the example implementation, access network 104 is the Internet.
[0020] Client endpoint (CE) 106 can connect to the access network and communicate with one or more devices within the core network 102. The boundary between the core network 102 and the access network 104 can be defined by one or more peripheral provider edge (PE) routers 108a, 108b (hereinafter referred to as PE routers 108a, 108b). Specifically, access to the core network 102 by a device such as CE 106 in the access network 104 can be performed solely through peripheral routers including PE routers 108a, 108b.
[0021] In a conventional implementation, peripheral PE routers provide redundant access to core network 102, ensuring that traffic is routed to another peripheral PE router in the event of a failure of one. In this conventional implementation, peripheral PE routers implement Border Gateway Protocol (BGP) for client devices accessing the core network from the access network. Therefore, in the event of a failover, eBGP sessions between the client devices and other peripheral PE routers must be re-established. While this is relatively quick, it does cause traffic interruptions, representing a significant degradation of the services provided by core network 102 and potentially leading to failure to meet the Quality of Service (QoS) and Service Level Agreement (SLA) requirements agreed upon by the entity providing core network 102.
[0022] In the illustrated embodiment, the BGP implementation is decoupled from the PE routers 108a and 108b. BGP speaker 110 is hosted on a computer system within the core network 102 and does not execute on the PE routers 108a and 108b. In other words, for a group of PE routers 108a and 108b providing redundant access from external access network 104 to the core network 102 (one PE router performs the routing function of the other in the group), the BGP control and maintenance of BGP session state information for traffic routed through the group's PE routers 108a and 108b is not implemented on any of the PE routers 108a and 108b in the group, and the executable programs that manage BGP session state information and generate and respond to BGP control traffic do not run on any of the PE routers 108a and 108b in the group.
[0023] The computer system running BGP speaker 110 can be a general-purpose computer and does not need to be a switch, router, or other networking-specific device, or be configured as a network server; however, in some implementations, any of these options can be used. For example, the computer system running BGP speaker can be a simple desktop computer, such as a personal computer (PC) running Windows or Linux operating systems, an Apple Macintosh computer running macOS, or other types of computer systems.
[0024] The core network 100 may include one or more internal routing components, such as internal PE routers 112 and internal BGP route reflectors (RRs) 114. RR 114 may, for example, replay routes received from one or more internal PE routers 112, BGP speakers 110, or other components without modification. Internal routers 112 may also be RR clients of RR 114 and receive routes replayed by RR 114. Any number of internal PE routers 112 and route reflectors (RRs) may exist. Similarly, any number of internal computing devices, such as internal routers 112 or other network components, may be inserted between BGP speakers 110 and PE routers 108a, 108b.
[0025] To facilitate understanding of the systems and methods described herein, components 106, 108a, and 108b may implement some or all of the following network sessions:
[0026] • BGP speaker 110 and CE 106 implement eBGP session 116.
[0027] • BGP speaker 110 and PE router 108a implement iBGP session 118a using BGP speaker 110 as a route reflector (RR) within iBGP session 118a, and PE router 108a is an RR client of BGP speaker 110.
[0028] • BGP speaker 110 and PE router 108b implement iBGP session 118b using BGP speaker 110 as a route reflector (RR) within iBGP session 118b, and PE router 108b is an RR client of BGP speaker 110.
[0029] ●BGP speaker 110 implements RR 114 RR client 124.
[0030] ●When PE 108a is running, BGP speakers and CE 106 exchange eBGP control packets over the IP (Internet Protocol) tunnel 126a implemented by PE 108a via PE router 108a.
[0031] • When PE 108a is running, BGP speakers and CE 106 exchange eBGP control packets over IP channel 126b implemented by PE router 108b.
[0032] The CE 106 and PE router 108a communicate via the Virtual Router and Forwarder (VRF) interface 128a.
[0033] The CE 106 and PE router 108a communicate via VRF interface 128b.
[0034] PE router 108a and PE router 108b implement redundancy protocols relative to each other, such as Virtual Router Redundancy Protocol (VRRP) session 130.
[0035] The addresses of the components of network environment 100 used in the following description are summarized in Table 1. The listed addresses are labels used to explain the systems and methods disclosed herein, and will be replaced with actual routable IP addresses in actual implementations. For example, internal addresses may be in one domain (e.g., 10.0.0.x), while external addresses may be in a different domain (10.1.1.x). According to the systems and methods described herein, each address may additionally include a port number associated with that address for transmitting routing information and payload packets.
[0036] Table 1: Component Addresses
[0037] Assembly Internal address External address CE 106 A1 PE router 108a B1 C1 PE router 108b B2 C1 BGP speaker 110 B3 C1 PE router 112 B4 C2 RR 114 B5
[0038] Figures 2 to 7 This illustrates various situations encountered when implementing BGP using the decomposed BGP speaker 110, and how these situations can be handled to ensure proper BGP implementation.
[0039] Figure 2 This illustrates a scenario where BGP speaker 110 is used as a route reflector to distribute external addresses (e.g., C2) initiated by internal nodes (such as from PE router 112) to peripheral PE routers 108a and 108b. Figure 2 As shown, within the core network 102, BGP speaker 110 establishes iBGP sessions 118a and 118b with each PE router 108a and 108b. BGP speaker 110 can also establish an iBGP session with RR 114 in the core network 102 to act as an RR client 124 for RR 114. As mentioned above, one or more other PE routers 112 can also be route reflector clients for RR 114. And as mentioned above, each PE router 108a and 108b can be a route reflector client for BGP speaker 110.
[0040] Within the core network 102, PE router 112 can advertise route 200, which defines the route of packets destined for PE router 112, such as using PE router 112's external address (C2) as the next hop in the advertised route. BGP speaker 110 can receive this route directly or by receiving it when one or more route reflectors (e.g., RR 114) advertise route 202. BGP speaker 110, operating as a route reflector, can then distribute VPN routes initiated by PE router 112 (directly or via one or more RRs, such as RR 114) 204, 206 to PE routers 108a, 108b, which operate as RR clients of BGP speaker 110. Routes can be distributed from BGP speakers to PE routers 108a, 108b using iBGP sessions 118a, 118b. VPN routes originating from other PE nodes 112 (besides PE routers 108a and 108b) can be distributed to PE routers 108a and 108b via BGP speaker 110 through routes 204 and 206 without modification.
[0041] In this and about Figures 2 to 7In other scenarios discussed, the flow of advertised and distributed routing information is illustrated. Traffic transmitted based on advertised and distributed routing information will follow a path in the opposite direction. For example, traffic initiated by PE router 112 based on information distributed to PE router 108a will be routed from PE router 108a to the external address (C2) of PE router 112. Since RR 114 and BGP speaker 110 each operate only as reflectors (i.e., without modifying reflected routes), routes received by PE routers 108a and 108b can directly point to PE router 112. Therefore, traffic transmitted based on distributed routing can bypass BGP speaker 110 and be transmitted directly to PE router 112 within the core network 102.
[0042] Reference Figure 3 CE 106 can establish an eBGP session 116 with BGP speaker 110, and therefore can send 300 BGP control packets to BGP speaker 110 via PE router 108a. As shown in Table 1, BGP speaker 110, PE router 108a, and PE router 108b can have the same external IP address C1, so that packets sent from CE 106 to BGP speaker 110 will be received by PE routers 108a and 108b. PE routers 108a and 108b can capture these BGP control packets and forward them 302 to BGP speaker 110. For example, regardless of which of PE routers 108a or 108b is running, the BGP control packets will be forwarded 302 to BGP speaker 110.
[0043] PE routers 108a and 108b can implement Control Plane Policing (COPP) 304. COPP 304 can be programmed to intercept BGP control packets from access network 104 (e.g., CE 106). Implementing COPP 304 may include programming COPP 304 to capture packets addressed to TCP port numbers used by BGP (e.g., port 179 according to the Internet Number Assigned Authority (IANA)). Regardless of which of PE routers 108a and 108b is running, these BGP control packets will be forwarded 302 to the BGP speaker via IP channel 126a of the running PE router 108a, so that CE 106 is unaware of any intermediate hops, and an eBGP session between the CE and the BGP speaker can be established via either PE router 108a or PE router 108b. BGP speaker 110 is assigned the same external IP address (C1) as PE routers 108a and 108b, and therefore, from the perspective of CE 106, it can explicitly send and receive traffic addressed to that IP address.
[0044] The Virtual Router Redundancy Protocol (VRRP) 130 can be implemented by PE routers 108a and 108b, making them have the same external address (C1). Maintaining the connection to BGP speaker 110 via PE router 108a or PE router 108b ensures that CE 106 does not need to restart the eBGP session with the BGP speaker during failover. In the event of a failure, as described above regarding PE router 108a, PE router 108b will begin processing packets addressed to the shared external address (C1), including forwarding BGP control packets 302 to BGP speaker 110 via IP channel 126b.
[0045] Reference Figure 4 When an advertisement is made for a VPN route from an internal PE router (e.g., PE router 112) to CE 106, because the eBGP session between BGP speaker 110 and CE 106 is established between C1 and A1 (external addresses of CE 106), BGP speaker 110 can use its external address (C1, which is the same external address for PE A and PE B in the illustrated example) as the next hop. Furthermore, the shared address (C1) can be assigned to VRF interfaces 128a and 128b on PE routers 108a and 108b.
[0046] In the example shown, PE router 112 advertises route 400 (“original route”), such as a route including its external address (C2) as the next hop. The original route can be received by RR 114 and distributed as 402 to BGP speaker 110, which is an RR client of RR 114. As a BGP speaker different from the route reflector, BGP speaker 110 can add its own external address (C1) as the next hop to the original route to obtain an extended route. The extended route can be transmitted as 404 to CE 106, such as through IP channel 126a used for BGP control traffic as described above. BGP speaker 110 or other route reflector 114 can also distribute the original route to PE routers 108a, 108b without modification, i.e., the next hop will remain the external address (C2) of PE router 112.
[0047] In response to receiving an extended route, CE 106 can route traffic addressed to PE router 112 (e.g., an endpoint reachable via PE router 11) to PE routers 108a and 108b, because they have the same external address (C1) as the next hop in the extended route as BGP speaker 110. The operating PE router 108a can receive this traffic through its VRF interface 128, which is assigned the shared external address C1. (See above regarding...) Figure 3 Since this traffic is not BGP control traffic, it will not be intercepted and forwarded to BGP speaker 110 using COPP. Instead, the running PE router forwards this traffic 406 to the address of PE router 114 (e.g., the external address C2 assigned to PE router 114), which is referred to as the next hop in the original route. Because RR 114 operates as a reflector, RR 114 is not added to the routes received from PE router 112 and the routes distributed in step 402. Therefore, the traffic forwarded in step 406 can bypass RR 114.
[0048] Reference Figure 5 Routes such as VPN routes can be generated by CE 106, which defines the route between CE 106 and internal nodes (e.g., PE router 112). These routes can be transmitted from CE 106 to BGP speaker 110 via the running PE router 108a (e.g., captured by PE router 108a and transmitted to BGP speaker 110 via IP tunnel 126a).
[0049] In response to this route, BGP speaker 110 can obtain the source address of the running IP channel 126a through which it received the route. In this case, the source address can be the internal address (B1) of PE router 108a. BGP speaker 110 can replace the reference to the BGP speaker's internal address (B3) in the route with the source address of the running channel as the next hop (in the illustrated example, the internal address B1 of PE router 108a) to obtain a modified route and distribute the modified route 502 to one or more internal nodes (e.g., then RR 114 distributes route 504 to PE router 112). Alternatively, BGP speaker 110 can add the source address of the running channel as the next hop to the route to obtain a modified route instead of using its own internal address. In either case, the modified route may include the internal address of PE router 108a (B1) as the next hop.
[0050] BGP speaker 110 can advertise the modified route 502 to one or more internal nodes, such as advertising to RR 114 that RR 114 will distribute the modified route 504 to PE 112. Therefore, traffic carried by PE router 112 to CE 106 and addressed to CE 106 can be routed through the running PE router 108a, which is the next hop in the modified route.
[0051] Figure 6 The diagram illustrates the operations performed in response to a failover from the operating PE router 108a to the standby PE router 108b. As described above, such as by implementing COPP on PE routers 108a and 108b, BGP control packets transmitted from CE 106 600 can be intercepted and routed to BGP speaker 110 via IP channels 126a or 126b. BGP speaker 110 can then examine the source IP address of the IP channel 126a or 126b that received the BGP control packets. The BGP speaker can detect when it discovers that the source address of the BGP control packets differs from the source address of previously received BGP control packets. For example, a first packet might be received from source address B1 via IP channel 126a, followed by a second packet from source address B2 via IP channel 126b, indicating a VRRP failover from PE router 108a to PE router 108b.
[0052] In response to the detection of a failover, BGP speaker 110 can advertise a new route to CE 106 to replace the previously advertised route. Specifically, the modified route to CE 106 may have been previously advertised based on... Figure 5The updated route is advertised using the method of referencing PE router 108a as the next hop. Therefore, the updated route can be generated by BGP speaker 110 and advertised to one or more internal nodes (602). The updated route uses the internal address of PE router 108b (B2) instead of the internal address of the referenced PE router 108a (B1) as the next hop. These updated routes can be received by RR 114, which then distributes the updated routes (604) to one or more other internal nodes, such as PE router 112.
[0053] Therefore, traffic addressed to CE 106 processed by PE router 112 can be transmitted to PE router 108b, which forwards the traffic to CE 106 via VRF connection 128b between CE 106 and PE router 108b.
[0054] It is important to note that the eBGP session between BGP speaker 110 and CE 106 was not interrupted during the failover process. The routing of BGP control packets was explicitly transferred from PE routers 108a and 108b to CE 106, and CE 106 continued to send and receive BGP control packets to the same external address (C1) shared by the VRF interface 128 of both PE routers 108a and 108b. Because the BGP state information and the executable file performing BGP management resided on a different node than the failed PE router 108a, the eBGP session was not interrupted, and CE 106 was unaware of any interruption except for the potential loss of some packets, until PE router 108b took over the routing previously performed by PE router 108a.
[0055] When the standby PE router 108b is running after a failover, it can perform any and all of the functions attributed herein to the running PE router 108a. When PE router 108a is replaced, restarted, or otherwise becomes operational, PE router 108a can become operational again and PE router 108b can become standby again. As described above, BGP speaker 110 can detect this transition based on changes in the source address of the IP channel through which it receives BGP control traffic. This transition can be handled by announcing the updated routes referencing PE router 108a in the same manner as described above.
[0056] Figure 7 This illustrates the routing scenario from CE 106 advertisement 700 to BGP speaker 110, such as the BGP control packets forwarded to BGP speaker 110 via either of the operating PE routers 108a or 108b, as described above. Figure 7This demonstrates how BGP speaker 110 modifies and distributes routes to internal nodes such as PE 112 and RR 114, compared to peripheral nodes such as PE router 108a and PE router 108b.
[0057] The route received from CE 106 may include the external address of CE 106 (A1) as the next hop. In the conventional approach, BGP speaker 110 adds its own internal address (B3) as the next hop to obtain the updated route and transmits the updated route to one or more internal nodes.
[0058] In the illustrated method, BGP speaker 110 advertises a first update route (702) to PE routers 108a and 108b. This first update route is the route received in step 700, with the next hop stored as the external address (A1) of CE 106. The first update route may additionally or optionally include a VRF identifier (route distinguisher) indicating the reference to the VRF table of CE 106 to be used. This instructs PE router 108a to use its VRF interface 128a to transmit packets to CE 106.
[0059] Instead, BGP speaker 110 can advertise 704 to the node in core network 102, rather than the second update route to PE routers 108a and 108b. The second update route may include the route received from step 700 with a next hop added, which is the internal address of either of the running PE routers 108a or 108b (in the illustrated example, the internal address (B1) of PE router 108a). In the illustrated embodiment, the second update route is received via RR 114 and distributed by RR 114 to PE router 112 at 706.
[0060] According to the second updated route, traffic addressed to CE 106 by PE router 112 will be transmitted to the internal address (A1) of the running PE router 108a. Traffic addressed to CE 106 received by the running PE router 108a will be transmitted directly to the external address (A1) of CE 106 via VRF interface 128a according to the first updated route.
[0061] Figure 8 This is a block diagram illustrating an example computing device 800 that can be used to implement the systems and methods disclosed herein. Nodes implementing any of the above embodiments of the PE routers 108a, 108b, 112, BGP speaker 110, CE 106, and RR 114 may have some or all of the attributes of computing device 800. Similarly, a cloud computing platform may consist of devices having some or all of the attributes of computing device 809.
[0062] The computing device 800 can be used to perform various processes such as those discussed herein. The computing device 800 can be used as a server, client, or any other computing entity. The computing device can perform various monitoring functions as discussed herein and can run one or more applications such as the applications described herein. The computing device 800 can be a laptop computer, server computer, handheld computer, tablet computer, etc.
[0063] The computing device 800 includes one or more processors 802, one or more memory devices 804, one or more interfaces 806, one or more mass storage devices 808, one or more input / output (I / O) devices 810, and a display device 830, all of which are connected to a bus 812. The processor 802 includes one or more processors or controllers that execute instructions stored in the memory devices 804 and / or the mass storage devices 808. The processor 802 may also include various types of computer-readable media, such as cache memory.
[0064] Memory device 804 includes various computer-readable media, such as volatile memory (e.g., random access memory (RAM) 814) and / or non-volatile memory (e.g., read-only memory (ROM) 816). Memory device 804 may also include rewritable ROM, such as flash memory.
[0065] Mass storage devices 808 include various computer-readable media, such as magnetic tape, disks, optical discs, solid-state storage (e.g., flash memory), etc. Figure 8 As shown, a specific mass storage device is a hard disk drive 824. Various drives may also be included in the mass storage device 808 to enable reading and / or writing of various computer-readable media. The mass storage device 808 includes removable media 826 and / or non-removable media.
[0066] I / O device 810 includes various devices that allow data and / or other information to be input to or retrieved from computing device 800. Example I / O devices 810 include cursor control devices, keyboards, keypads, microphones, monitors or other display devices, speakers, printers, network interface cards, modems, lenses, CCDs or other image capturing devices, etc.
[0067] Display device 830 includes any type of device capable of displaying information to one or more users of computing device 800. Examples of display device 830 include monitors, display terminals, video projection devices, etc.
[0068] Interface 806 includes various interfaces that allow computing device 800 to interact with other systems, devices, or computing environments. Example interface 806 includes any number of different network interfaces 820, such as interfaces to local area networks (LANs), wide area networks (WANs), wireless networks, and the Internet. Other interfaces include user interfaces 818 and peripheral device interfaces 822. Interface 806 may also include one or more user interface elements 818. Interface 806 may also include one or more peripheral interfaces, such as interfaces for printers, pointing devices (mice, touchpads, etc.), keyboards, etc.
[0069] Bus 812 allows processor 802, storage device 804, interface 806, mass storage device 808, and I / O device 810 to communicate with each other and with other devices or components connected to bus 812. Bus 812 represents one or more of several types of bus architectures, such as system bus, PCI bus, IEEE 1394 bus, USB bus, etc.
[0070] For illustrative purposes, programs and other runnable program components are shown as discrete blocks herein, but it should be understood that such programs and components may reside in different storage components of computing device 800 at different times and be executed by processor 802. Optionally, the systems and programs described herein may be implemented in hardware or a combination of hardware, software, and / or firmware. For example, one or more application-specific integrated circuits (ASICs) may be programmed to perform one or more systems and processes described herein.
Claims
1. A method of operating a Border Gateway Protocol (BGP), comprising: providing a first perimeter router, the first perimeter router being located at a boundary between an internal network and an external network; providing an internal node, the internal node operating within the internal network and being connected to the first perimeter router through the internal network; operating, by the internal node, an executable protocol that implements a network protocol; establishing, by the internal node, a protocol session with an external node using the executable protocol, the external node being in the external network; routing, by the first perimeter router, control traffic for the protocol session addressed to a first address assigned to the internal node through a path to the internal node; and routing, by the first perimeter router, traffic addressed to the first address that is not control traffic for the protocol session that bypasses the internal node.
2. The method of claim 1, further comprising: performing a failover from the first perimeter router to a second perimeter router while continuing the protocol session between the internal node and the external node through the second perimeter router without establishing a new protocol session. the first perimeter router, the second perimeter router, and the internal node are all assigned the first address.
3. The method of claim 2, wherein, the first address is an external address defined in a domain of the external network.
4. The method of claim 3, wherein, the first perimeter router is operating and the second perimeter router is a backup router for the first perimeter router.
5. The method of claim 4, wherein, the first perimeter router and the second perimeter router implement a Virtual Redundant Router Protocol (VRRP).
6. The method of claim 5, wherein, the network protocol is a Border Gateway Protocol (BGP) and the internal node is not at a boundary between the internal network and the external network.
7. The method of claim 2, wherein, the protocol session is an external BGP (eBGP) session.
8. The method of claim 7, wherein, the internal node implements a first internal BGP (iBGP) session with the first perimeter router and a second iBGP session with the second perimeter router.
9. The method of claim 7, wherein, the internal node is a first internal node, the method further comprising:
10. The method of claim 3, wherein, receiving, by the first internal node, a first route advertised by a second internal node, the first route defining a route to the second internal node; distributing, by the first internal node, the first route without modification; receiving, by the first internal node, a second route advertised by the second internal node, the second route defining a route from the external node to the second internal node; and distributing, by the first internal node, a modified version of the second route, the modified version adding the first address as a next hop for the modified version of the second route.
11. The method of claim 10, further comprising: receiving, by the first internal node, a third route advertised by the external node, the third route defining a route from the second internal node to the external node; and distributing, by the first internal node, a first modified version of the third route, the first modified version of the third route adding a first internal address of the first peripheral router as a next hop for the first modified version of the third route, the first internal address of the first peripheral router being in a domain of the internal network and being different from the first address.
12. The method of claim 11, further comprising: receiving, by the first internal node, a BGP control packet from the second peripheral router; (a) determining, by the first internal node, that the second peripheral router has been running and the first peripheral router is no longer running; and in response to (a), distributing, by the first internal node, a second modified version of the third route, the second modified version of the third route adding a second internal address of the second peripheral router as a next hop for the second modified version of the third route, the second internal address of the second peripheral router being in a domain of the internal network and being different from the first address and the first internal address.
13. The method of claim 12, wherein, the channel is a first channel, the method further comprising: evaluating, by the internal node, a source address of a second channel on which the BGP control packet is received; wherein (a) comprises determining, by the internal node, that the source address of the second channel is different from a source address of the first channel.
14. The method of claim 10, further comprising: receiving, by the first internal node, a third route advertised by the external node, the third route defining a route from the second internal node to the external node; distributing, by the first internal node, a first modified version of the third route to the second internal node, the first modified version of the third route adding a first internal address of the first peripheral router as a next hop for the first modified version of the third route; and distributing, by the first internal node, a second modified version of the third route to the first peripheral router, the second modified version of the third route retaining an external address of the external node as a next hop for the second modified version of the third route.
15. A method of operating a Border Gateway Protocol (BGP), comprising: providing a first peripheral router, the first peripheral router being located at a boundary between an internal network and an external network; providing an internal node, the internal node operating within the internal network and being connected to the first peripheral router through the internal network; operating, by the internal node, a runnable BGP that implements the Border Gateway Protocol (BGP); establishing, by the internal node, an external BGP (eBGP) session with an external node using the runnable BGP, the external node being in the external network; routing, by the first peripheral router, control traffic for the eBGP session addressed to a first address assigned to the internal node through an Internet Protocol (IP) channel to the internal node, the first address also being assigned to the first peripheral router; by the first peripheral router, routing traffic addressed to the first address, the traffic not being control traffic for the eBGP session that bypasses the internal node; and performing failover from the first peripheral router to a second peripheral router while continuing the eBGP session between the internal node and the external node through the second peripheral router without establishing a new eBGP session.
16. The method of claim 15, wherein, the second peripheral router is also assigned the first address, and the first address is an external address defined in a domain of the external network.
17. The method of claim 16, wherein, the first peripheral router is running, and according to a Virtual Redundancy Router Protocol (VRRP), the second peripheral router is a backup router for the first peripheral router.
18. The method of claim 17, wherein, the internal node implements a first internal BGP (iBGP) session with the first peripheral router and a second iBGP session with the second peripheral router.
19. The method of claim 17, wherein, the internal node is a first internal node, the method further comprising: by the first internal node, receiving, over the IP tunnel, a first route advertised by the external node, the first route defining a route from a second internal node to the external node; by the first internal node, evaluating a source address of the IP tunnel; and by the first internal node, distributing a first modified version of the first route, the first modified version of the first route adding the source address of the IP tunnel as a next hop for the first modified version of the first route, the source address of the IP tunnel being in a domain of the internal network and different from the first address.
20. The method of claim 19, wherein, the IP tunnel is a first IP tunnel, the method further comprising: by the first internal node, receiving, from the second peripheral router, a BGP control packet over a second IP tunnel; by the internal node, evaluating a source address of the second IP tunnel; (a) by the internal node, determining that the source address of the second IP tunnel is different from the source address of the first IP tunnel; and in response to (a), by the first internal node, distributing a second modified version of the first route, the second modified version of the first route adding a second internal address of the second peripheral router as a next hop for the second modified version of the first route, the source address of the second IP tunnel being in a domain of the internal network and different from the first address and the source address of the first IP tunnel.
Citation Information
Patent Citations
L3VPN service with single IGP / BGP session from a multi-homed CE with fast convergence using EVPN
US10250552B1
System and method for achieving path symmetry in an internet protocol (IP) based network
US20060198298A1