Bordered Border Gateway Protocol (BGP)

By isolating BGP speakers from PE routers and using IP tunnels and VRRP, the protocol ensures uninterrupted BGP sessions during failover, addressing traffic disruptions and maintaining service quality in core networks.

JP7832193B2Active Publication Date: 2026-03-17ARRCUS INC
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-10-18
Publication Date
2026-03-17

AI Technical Summary

Technical Problem

Conventional implementations of Border Gateway Protocol (BGP) in peripheral provider edge (PE) routers cause traffic disruptions during failover, failing to meet Service Level Agreements (SLA) and Quality of Service (QoS) requirements due to the need for re-establishing eBGP sessions.

Method used

Implementing a BGP speaker within the core network, isolated from PE routers, to manage BGP session state information and control traffic, using IP tunnels and Virtual Router Redundancy Protocol (VRRP) to maintain seamless failover without interrupting eBGP sessions.

Benefits of technology

Ensures uninterrupted BGP sessions during PE router failover, maintaining service quality and compliance with SLA and QoS by hiding the BGP speaker's presence from client devices and managing session state information independently of PE routers.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

The Split Border Gateway Protocol (BGP) allows eBGP sessions between interior and exterior nodes to continue during a failover of a neighboring router through which the eBGP session was established. The neighboring router traps eBGP control traffic and forwards it to the BGP speaker on the interior node through an IP tunnel. Failover is detected in response to a change in the source address of the IP tunnel through which the eBGP control traffic was received. The BGP speaker announces routes to exterior nodes that contain references to the interior addresses of the working neighboring routers. In response to a failover, the BGP speaker announces updated routes that reference the standby routers of the neighboring routers.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The Border Gateway Protocol (BGP) provides a standardized means for gateways facing external networks to exchange computer system and routing information over a network, particularly the Internet.

Background Art

[0002] Routing information can be shared in the form of path-vectors. Routing decisions are made based on paths specified by administrators, network policies, or sets of rules. The Border Gateway Protocol used for routing within a network is called Interior BGP (iBGP). The Border Gateway Protocol used to share routing information with external parties is called External BGP (eBGP).

Summary of the Invention

Problems to be Solved by the Invention

[0003] Improving the implementation of the Border Gateway Protocol within a network environment represents an advancement in technology.

Means for Solving the Problems

[0004] To solve the above problems, the present application provides a method described in the claims.

[0005] For an easier understanding of the advantages of the present invention, a more detailed description of the present invention briefly described above is set forth below with reference to specific embodiments illustrated in the accompanying drawings. It is understood that these drawings merely illustrate typical embodiments of the present invention and thus do not limit the scope of the present invention. The present invention is described in detail and additional specificities using the accompanying drawings.

Brief Description of the Drawings

[0006] [Figure 1] This is a schematic diagram of a network environment implementing a segmented border gateway protocol according to an embodiment of the present invention. [Figure 2] This is a schematic diagram showing the reflection of routes generated internally by a segmented border gateway protocol (BGP) speaker according to an embodiment of the present invention. [Figure 3] This is a schematic diagram showing the routing of BGP traffic from an external client to a segmented BGP speaker according to an embodiment of the present invention. [Figure 4] This is a schematic diagram showing the reflection of an internal route to an external client by a segmented BGP speaker according to an embodiment of the present invention. [Figure 5] This is a schematic diagram showing the translation of routes from external clients by a segmented BGP speaker according to an embodiment of the present invention. [Figure 6] This is a schematic diagram illustrating failover processing between peripheral routers using segmented BGP speakers according to an embodiment of the present invention. [Figure 7] This is a schematic diagram showing the distribution of routes received from external clients to surrounding routers by a segmented BGP speaker according to an embodiment of the present invention. [Figure 8] This is a schematic diagram of a computer system suitable for implementing the method according to an embodiment of the present invention. [Modes for carrying out the invention]

[0007] It will be readily apparent that the components of the present invention illustrated and described in the accompanying drawings can be designed and arranged in a wide variety of different configurations. Therefore, the following more detailed description of the illustrated embodiments of the present invention is not intended to limit the scope of the invention as defined in the claims, but merely to illustrate specific examples of the embodiments of the present invention discussed herein. The embodiments described herein are best understood by reference to the drawings, and similar parts are indicated by similar reference numerals throughout the specification and drawings.

[0008] Embodiments of the present invention can be embodied as apparatus, methods, or computer program products. Therefore, the present invention can be embodied entirely in hardware form, entirely in software form (including firmware, resident software, microcode, etc.), or in combinations of hardware and software commonly referred to herein as “modules” or “systems.” Furthermore, the present invention can take the form of computer program products embodied in any tangible medium having computer-usable program code embodied within that medium.

[0009] Any combination of one or more computer-usable or computer-readable media can be used. For example, computer-readable media may include one or more portable computer diskettes, hard disks, random access memory (RAM) devices, read-only memory (ROM) devices, erasable programmable read-only memory (EPROM or flash memory) devices, portable compact disc read-only memory (CDROM), optical memory devices, and magnetic memory devices. In a selected embodiment, computer-readable media may include any non-temporary media that can contain, store, communicate, propagate, or transfer programs used by or connected to an instruction execution system, apparatus, or device.

[0010] The computer program code for performing the operations of the present invention can be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java, Smalltalk, and C++, and idiomatic procedural programming languages ​​such as the C programming language or similar programming languages, and can also be written using description languages ​​or markup languages ​​such as HTML, XML, and JSON. The program code can be executed as a standalone software package entirely on a computer system, on a standalone hardware unit, partially on a remote computer located at a certain distance from the computer, or entirely on a remote computer or server. In the later scenarios, 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 can be connected to an external computer (for example, via the Internet using an Internet service provider).

[0011] The present invention is described below with reference to flowcharts and / or diagrams of methods, apparatus (systems) and computer program products according to embodiments of the present invention. Each block of the flowchart and / or diagram, and combinations of blocks of the flowchart and / or diagram, can be implemented by computer program instructions or code. These computer program instructions are provided to the processor of a general-purpose computer, a dedicated computer, or other programmable data processing device, and the instructions executed by the processor of the computer or other programmable data processing device can generate means for implementing the functions / operations specified in one or more blocks of the flowchart and / or diagram.

[0012] These computer program instructions can also be stored in a non-temporary computer-readable medium that can guide a computer or other programmable data processing device to function in a particular way, so as to generate a product that includes instruction means that implements functions / operations specified in one or more blocks of a flowchart and / or diagram.

[0013] Just as instructions executed on a computer or other programmable data processing device provide a process for implementing a function / operation specified in one or more blocks of a flowchart and / or diagram, computer program instructions are also loaded onto a computer or other programmable data processing device, triggering a series of operational steps executed on the computer or other programmable data processing device, thereby generating a computer implementation process.

[0014] Figure 1 shows an example of a network environment 100 in which the system and method described herein are implemented. The network environment 100 may include a core network 102 and an access network 104. The core network 102 and the access network 104 may include any network and computing devices known to those skilled in the art, such as switches, routers, servers, user workstations, and user mobile devices. The core network 102 is an internal network of an entity, such as an entity that provides network access and entity services to users over the Internet. The access network 104 is an external network of the core network 102 and may be managed by a different entity or group of entities. In the exemplary implementation, the access network 104 is the Internet.

[0015] The client endpoint (CE) 106 is connected to the access network 104 and can communicate with one or more devices in 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 simply referred to as PE routers 108a, 108b). In particular, access to the core network 102 by devices such as the CE 106 in the access network 104 can only be performed through peripheral routers, including PE routers 108a, 108b.

[0016] In a conventional implementation, peripheral PE routers provide redundant access to the core network 102, and in the event of a failure of one peripheral PE router, traffic is routed to the other peripheral PE router. In a conventional implementation, peripheral PE routers implement Border Gateway Protocol (BGP) for client devices accessing the core network from the access network. Therefore, during failover, the eBGP session with the client device must be re-established between the client and the other peripheral PE router. While this is done quickly, it can cause traffic disruptions, which is a noticeable degradation of the services provided using the core network 102, and may fail to meet the Service Level Agreement (SLA) and Quality of Service (QoS) requirements agreed upon by the entity providing the core network 102.

[0017] In the illustrated embodiment, the implementation of the border gateway protocol is isolated from the PE routers 108a and 108b. The BGP speaker 110 is hosted on a computer system within the core network 102 and does not run on the PE routers 108a and 108b. In other words, in a group of PE routers 108a and 108b that provide redundant access from the external access network 104 to the core network 102 (where one PE router takes over the routing functions of the other PE routers in the group), the maintenance of BGP session state information and BGP control of traffic routed through the group of PE routers 108a and 108b are not implemented on either of the group of PE routers 108a and 108b, nor are any executable files that manage BGP session state information and generate and respond to BGP control traffic running on either of the group of PE routers 108a and 108b.

[0018] The computer system running BGP Speaker 110 can be a general-purpose computer and does not need to be a switch, router, or other network-specific device, nor does it need to be configured as a network server, although some implementations may use one of these options. For example, the computer system running BGP Speaker can simply be a desktop computer such as a personal computer (PC) running the WINDOWS® or LINUX operating system, an APPLE MACINTOSH® computer running MAC OS®, or other type of computer system.

[0019] The core network 102 can include one or more internal routing components such as an internal PE router 112 and an internal BGP route reflector (RR) 114. The route reflector 114 can re-broadcast the routes received from one or more internal PE routers 112, BGP speakers 110, or other components without modification. The internal PE router 112 is also an RR client of the route reflector 114 and can receive the routes re-broadcast by the route reflector 114. The number of internal PE routers 112 and route reflectors 114 can be any number. Similarly, the number of internal computing devices such as an internal PE router 112 or other network components arranged between the BGP speaker 110 and the PE routers 108a, 108b can also be any number.

[0020] To facilitate the understanding of the systems and methods described herein, the components 106, 108a, 108b can implement some or all of the following network sessions. · The BGP speaker 110 and the CE 106 implement an eBGP session 116. · The BGP speaker 110 and the PE router 108a implement an iBGP session 118a, the BGP speaker 110 functions as a route reflector (RR) within the iBGP session 118a, and the PE router 108a is an RR client of the BGP speaker 110. · The BGP speaker 110 and the PE router 108b implement an iBGP session 118b, the BGP speaker 110 functions as a route reflector (RR) within the iBGP session 118b, and the PE router 108b is an RR client of the BGP speaker 110. · The BGP speaker 110 implements an RR client 124 of the route reflector 114. · When the BGP speaker 110 and the CE 106 are operating, they exchange eBGP control packets via the PE router 108a on an IP (Internet Protocol) tunnel 126a implemented by the PE router 108a. · When the PE router 108b is operating, the BGP speaker 110 and the CE 106 exchange eBGP control packets via the PE router 108b on an IP tunnel 126b implemented by the PE router 108b. · The CE 106 and the PE router 108a communicate on a virtual routing and forwarding (VRF) interface 128a. · The CE 106 and the PE router 108b communicate on a VRF interface 128b. · The PE router 108a and the PE router 108b implement a redundancy protocol such as a virtual router redundancy protocol (VRRP) session 130 with respect to each other.

[0021] The addresses of the components of the network environment 100 used in the following description are outlined in Table 1, and the addresses described are labels used to explain the systems and methods disclosed herein and are replaced with actually routable IP addresses in actual implementations. For example, the internal addresses exist within one domain (e.g., 10.0.0.x), and the external addresses exist within a different domain (10.1.1.x). Each address can additionally include a port number associated with the address used for communication of payload data packets and routing information according to the systems and methods described herein.

[0022] Table 1: Addresses of Components

Table 1

[0023] Figures 2 to 7 illustrate various scenarios that may occur when implementing BGP using segmented BGP speakers 110, and show how these scenarios are handled to ensure a proper BGP implementation.

[0024] Figure 2 illustrates a scenario in which an external address (e.g., C2) originating from an internal node, such as a PE router 112, is distributed to peripheral PE routers 108a and 108b using BGP speaker 110 as a route reflector. As illustrated in Figure 2, within the core network 102, BGP speaker 110 establishes iBGP sessions 118a and 118b with each of the PE routers 108a and 108b. BGP speaker 110 can also establish an iBGP session with route reflector 114 within the core network 102 in order to function as an RR client 124 of route reflector 114. As described above, one or more other PE routers 112 can also become RR clients of route reflector 114. As described above, each of the PE routers 108a and 108b can become an RR client of BGP speaker 110.

[0025] Within the core network 102, PE router 112 can announce a route that defines the routing of packets destined for PE router 112, and can use the external address (C2) of PE router 112 as the next hop in the announced route. BGP speaker 110 can receive this route directly, or it can receive this route when it is announced by one or more route reflectors, such as route reflector 114. BGP speaker 110 acting as a route reflector can then distribute VPN routes originating from PE router 112 (directly or via one or more route reflectors, such as route reflector 114) to PE routers 108a, 108b acting as RR clients of BGP speaker 110. Routes are distributed from BGP speaker 110 to PE routers 108a, 108b using iBGP sessions 118a, 118b. VPN routes originating from other PE nodes 112 (other than PE routers 108a and 108b) can be distributed to PE routers 108a and 108b through BGP speaker 110 without modification.

[0026] In this scenario and in other scenarios described in Figures 2-7, the flow of announced and distributed route information is illustrated. Traffic transmitted according to the announced and distributed route information follows a reverse path. For example, a traffic transmission route based on information distributed from PE router 112 to PE router 108a is routed from PE router 108a to the external address (C2) of PE router 112. Since route reflector 114 and BGP speaker 110 function only as reflectors (i.e., they do not modify the reflected route), routes received by PE routers 108a and 108b can be sent directly to PE router 112. Therefore, traffic transmitted according to the distributed route can be sent directly to PE router 112 in the core network 102 without passing through BGP speaker 110.

[0027] Referring to Figure 3, CE106 can have an eBGP session 116 with BGP speaker 110 and therefore can send 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, and packets sent by CE106 to BGP speaker 110 are received by PE routers 108a and 108b. PE routers 108a and 108b can intercept these BGP control packets and forward them to BGP speaker 110. For example, either active PE router 108a or 108b forwards the BGP control packets to BGP speaker 110.

[0028] PE routers 108a and 108b can implement Control Plane Policing (COPP) 304. COPP 304 can be programmed to intercept BGP control packets from the access network 104 (e.g., CE 106). Implementations of COPP 304 may include programming COPP 304 to trap packets destined for TCP port numbers used by BGP (e.g., port 179 by the Internet Assigned Numbers Authority (IANA)). Either the active PE router 108a or 108b then forwards these BGP control packets to the BGP speaker 110 over the IP tunnel of the active PE router 108a 302, thereby establishing an eBGP session between CE 106 and the BGP speaker 110 through PE router 108a or PE router 108b, without CE 106 being aware of the presence of the intermediate hop. Since the BGP speaker 110 is assigned the same external IP address (C1) as the PE routers 108a and 108b, it is invisible to the CE106 and can send and receive traffic destined for this IP address.

[0029] The Virtual Router Redundancy Protocol (VRRP) 130 can be implemented by PE routers 108a and 108b such that PE routers 108a and 108b have the same external IP address (C1). The connection to the BGP speaker 110 through PE router 108a or PE router 108b is maintained so that CE 106 does not need to restart the eBGP session with the BGP speaker 110 during failover. In the event of a failure, PE router 108b initiates processing of packets destined for the shared external address (C1), including forwarding BGP control packets to the BGP speaker 110 over IP tunnel 126b, as described above for PE router 108a.

[0030] Referring to Figure 4, when an internal PE router (e.g., PE router 112) announces a VPN route to CE106, the BGP speaker 110 can use its external address (C1, the same external address as PE routers 108a and 108b in the illustrated embodiment) as the next hop. This is because the eBGP session between the BGP speaker 110 and CE106 is established between C1 and A1 (CE106's external address). The shared address (C1) can also be assigned to VRF interfaces 128a and 128b on PE routers 108a and 108b.

[0031] In the illustrated embodiment, PE router 112 announces a route (original route) that includes its external address (C2) as the next hop.400 The original route is received by route reflector 114 and distributed to BGP speaker 110, which is the RR client of route reflector 114.402 BGP speaker 110 acts as a BGP speaker opposite to the route reflector and can add its external address (C1) as the next hop to the original route to obtain an extended route.404 This extended route can be transmitted to CE 106 over the IP tunnel 126a used for the BGP control traffic described above.404 BGP speaker 110 or another route reflector 114 can also distribute the original route to PE routers 108a, 108b without modification, i.e., the next hop remains the external address (C2) of PE router 112.

[0032] In response to receiving the extended route, CE106 can send traffic destined for PE router 112 (e.g., an endpoint reachable through PE router 112) to PE routers 108a and 108b, since PE routers 108a and 108b have the same external address (C1) as BGP speaker 110, which is recorded as the next hop in the extended route. An active PE router 108a can receive this traffic on the VRF interface 128, which is assigned the shared external address C1. Since this traffic is not BGP controlled traffic, As mentioned above regarding Figure 3, It was not trapped using COPP and was forwarded to BGP speaker 110. do not have Alternatively, the active PE router forwards the traffic to the address of PE router 112 (e.g., external address C2 assigned to PE router 112) which is referenced as the next hop in the original route 406. Since route reflector 114 is acting as a reflector, route reflector 114 is not added to the route received from PE router 112 and distributed in step 402. Therefore, route reflector 114 can be bypassed by the traffic forwarded in step 406.

[0033] Referring to Figure 5, routes such as VPN routes are generated by CE106 and define routes between CE106 and internal nodes (e.g., PE router 112). These routes can be sent to the BGP speaker 110 via the active PE router 108a (for example, they are trapped by PE router 108a and sent to the BGP speaker 110 over IP tunnel 126a).

[0034] In response to such a route, BGP speaker 110 can obtain the source address of the active IP tunnel 126a that received the route. In this case, the source address may be the internal address (B1) of PE router 108a. BGP speaker 110 can obtain a corrected route by replacing the reference to BGP speaker 110's internal address (B3) in such a route with the source address of the active tunnel as the next hop (the internal address B1 of PE router 108a in the illustrated embodiment), and distribute the corrected route to one or more internal nodes (e.g., route reflector 114) 502 (the route reflector 114 then distributes the route to PE router 112 504). Alternatively, BGP speaker 110 can obtain a corrected route by adding the source address of the active tunnel as the next hop to the route, instead of using BGP speaker 110's internal address. In either case, the corrected route may include the internal address (B1) of PE router 108a as the next hop.

[0035] The BGP speaker 110 can announce the corrected route to one or more internal nodes such as the route reflector 114, and the route reflector 114 can distribute the corrected route to the PE router 112. Thus, traffic destined for CE 106 sent by the PE router 112 can be routed via the active PE router 108a, which is the next hop in the corrected route.

[0036] Figure 6 illustrates the actions performed in response to a failover from the active PE router 108a to the standby PE router 108b. As described above, the 600BGP control packet sent from CE106 can be trapped on IP tunnel 126a or 126b and routed to BGP speaker 110 by implementing COPP or the like on PE routers 108a and 108b. Therefore, BGP speaker 110 can check the source IP address of IP tunnel 126a or 126b that received the BGP control packet. BGP speaker 110 can detect when it finds that the source address of the BGP control packet is different from the source address of a previously received BGP control packet. For example, if the first packet is received on IP tunnel 126a from source address B1, and then the second packet is received on IP tunnel 126b from source address B2, this indicates that a VRRP failover from PE router 108a to PE router 108b has occurred.

[0037] In response to failover detection, the BGP speaker 110 can announce a new route to CE106 that replaces a previously announced route. In particular, a modified route to CE106 that references PE router 108a as the next hop can be pre-announced using the approach shown in Figure 5. Thus, the BGP speaker 110 can generate an updated route which is announced to one or more internal nodes, and the updated route replaces a reference to the internal address (B1) of PE router 108a as the next hop with a reference to the internal address (B2) of PE router 108b. These updated routes are received by the route reflector 114, which then distributes the updated routes to one or more other internal nodes, such as PE router 112.

[0038] Therefore, traffic destined for CE106 processed by PE router 112 is sent to PE router 108b, and PE router 108b forwards the traffic to CE106 over the VRF connection 128b between CE106 and PE router 108b.

[0039] It should be noted that the eBGP session between BGP speaker 110 and CE106 is not interrupted throughout the failover process. The routing of BGP control packets migrated from PE routers 108a and 108b is invisible to CE106, and CE106 continues 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. Since the executable files and BGP state information that perform BGP management reside on a different node than the failed PE router 108a, the eBGP session is not interrupted, and there is no noticeable interruption to CE106 other than some packets that may be lost before PE router 108b takes over the routing that was previously performed by PE router 108a.

[0040] While the standby PE router 108b is operational after a failover, it can perform all or any of the functions that are attributed to the operational PE router 108a. When PE router 108a is replaced, restarted, or becomes operational again, PE router 108a becomes operational again, and PE router 108b becomes the standby router again. This transition can be detected by the BGP speaker 110 based on a change in the source address of the IP tunnel from which the BGP control traffic is received, as described above. This transition is handled by announcing updated routes that refer to PE router 108a, in the same manner as described above.

[0041] Figure 7 illustrates the 700 scenario in which, as described above, CE106 announces a route to BGP speaker 110 through a BGP control packet forwarded to BGP speaker 110 by either of the active PE routers 108a or 108b. Figure 7 illustrates how BGP speaker 110 modifies the route and distributes it to internal nodes such as PE router 112 and route reflector 114, without relying on peripheral nodes such as PE router 108a and PE router 108b.

[0042] A route received from CE106 may include CE106's external address (A1) as the next hop. In a conventional approach, BGP speaker 110 obtains an updated route by adding its own internal address (B3) as the next hop and sends the updated route to one or more internal nodes.

[0043] In the illustrated approach, BGP speaker 110 announces a first updated route to PE routers 108a and 108b, 702, the first updated route being the route received in step 700, with the next hop being the external address (A1) of CE106. The first updated route may additionally or alternatively include a VRF identifier (route distinguisher) indicating the VRF table in which CE106 to be used is referenced. Thus, PE router 108a is instructed to use the VRF interface 128a of PE router 108a that is active in sending packets to CE106.

[0044] In contrast, the BGP speaker 110 can announce a second updated route to nodes in the core network 102 other than the PE routers 108a and 108b. The second updated route may include the route received in step 700, with the internal address of either of the active PE routers 108a or 108b (the internal address of PE router 108a in the illustrated embodiment (B1)) added as the next hop. In the illustrated embodiment, the second updated route is received by the route reflector 114 and distributed by the route reflector 114 to the PE router 112.

[0045] Traffic destined for CE106 from PE router 112 is sent to the internal address (B1) of the active PE router 108a according to the second update route. Traffic destined for CE106 received by the active PE router 108a is sent directly to the external address (A1) of CE106 on the VRF interface 128a according to the first update route.

[0046] Figure 8 is a configuration diagram illustrating an exemplary computing device 800 that can be used to implement the methods and systems disclosed herein. In particular, nodes implementing the PE routers 108a, 108b, 112, BGP speaker 110, CE 106, and route reflector 114 according to any of the embodiments described above may have all or some of the attributes of computing device 800. Similarly, a cloud computing platform may consist of devices having all or some of the attributes of computing device 800.

[0047] The computing device 800 can be used to perform various processes as described herein. The computing device 800 can function as a server, client, or other computing entity. The computing device can perform various monitoring functions as described herein and can run one or more application programs, such as the application programs described herein. The computing device 800 can be any type of computing device, such as a desktop computer, laptop computer, server computer, portable computer, or tablet.

[0048] 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 the bus 812. The processor 802 includes one or more processors or control devices and executes instructions stored in the memory devices 804 and / or mass storage devices 808. The processor 802 may also include various types of computer-readable media such as cache memory.

[0049] The memory device 804 includes various computer-readable media such as volatile memory (e.g., random access memory (RAM) 814) and / or non-volatile memory (read-only memory (ROM) 816). The memory device 804 may also include rewritable ROM such as flash memory.

[0050] The mass storage device 808 includes various computer-readable media such as magnetic tape, magnetic disks, optical disks, and solid-state memory (e.g., flash memory). As illustrated in Figure 8, a specific mass storage device is a hard disk drive 824. Various drives may also be included within the mass storage device 808 to enable reading from and / or writing to various computer-readable media. The mass storage device 808 includes removable media 826 and / or non-removable media.

[0051] The input / output device 810 includes various devices that enable inputting data and / or other information to or from the computing device 800. Exemplary input / output devices 810 include cursor control devices, keyboards, keypads, microphones, monitors or other display devices, speakers, printers, network interface cards, modems, lenses, CCDs or other imaging devices, etc.

[0052] The display device 830 includes any type of device capable of displaying information to one or more users of the computing device 800. Examples of the display device 830 include monitors, display terminals, video projection devices, and the like.

[0053] Interface 806 includes various interfaces that enable the computing device 800 to exchange information with other systems, devices, or computing environments. An exemplary interface 806 includes any number of different network interfaces 820, such as interfaces to a local area network (LAN), a wide area network (WAN), a wireless network, and the Internet. Other interfaces include a user interface 818 and a peripheral device interface 822. Interface 806 may also include one or more user interface elements 818. Interface 806 may also include one or more peripheral device interfaces, such as interfaces to a printer, pointing device (mouse, trackpad, etc.), keyboard, etc.

[0054] Bus 812 enables the processor 802, memory device 804, interface 806, mass storage device 808, and input / output device 810 to communicate with each other, as well as with other devices or components connected to bus 812. Bus 812 represents one or more types of bus structures, such as a system bus, PCI bus, IEEE1394 bus, and USB bus.

[0055] For illustrative purposes, programs and other executable program components are shown here as separate blocks, but it is understood that such programs and components reside at different times within different storage components of computing device 800 and are executed by processor 802. Alternatively, the systems and processes described herein can be implemented in hardware or in a combination of hardware, software, and / or firmware. For example, one or more application-specific integrated circuits (ASICs) can be programmed to perform one or more systems and processes disclosed herein. [Explanation of symbols]

[0056] 100 Network Environment 130 VRRP sessions Announce 200 routes Announce Route 202 Distribute 204 VPN routes Distribute 206 VPN routes Sending a 300 BGP control packet 302 Forward BGP control packets Announce 400 routes Distribute 402 routes Send 404 Extended Route 406 Forward traffic Send 500 routes 502 Distribute corrected routes 504 Distribute corrective routes Sending 506 traffic Sending a 600 BGP control packet 602 Announce updated routes 604 Distribute update routes 606 Send traffic Announce 700 routes 702 Announce the first update route. 704 Announce the second update route. 706 Distribute the second update route. 800 Computing Devices 812 Bus

Claims

1. A first peripheral router is provided at the boundary between the internal network and the external network. The internal network provides an internal node that is connected to the first peripheral router and operates within the internal network. The aforementioned internal node executes a protocol executable file that implements the Border Gateway Protocol (BGP). The internal node establishes a protocol session with the external node using the protocol executable file, and the external node is located within the external network. The first peripheral router routes the control traffic of the protocol session destined for the first address assigned to the internal node to the internal node over the tunnel. The first peripheral router routes traffic destined for the first address that is not control traffic for the protocol session, without passing through the internal node, and Failover from the first peripheral router to the second peripheral router is performed while continuing the protocol session between the internal node and the external node through the second peripheral router without establishing a new protocol session. This includes, A method characterized in that the first peripheral router, the second peripheral router, and the internal node are all assigned the first address.

2. The method according to claim 1, characterized in that the first address is an external address defined within the domain of the external node.

3. The method according to claim 2, characterized in that the first peripheral router is operational and the second peripheral router is a standby router for the first peripheral router.

4. The method according to claim 3, characterized in that the first peripheral router and the second peripheral router implement the Virtual Router Redundancy Protocol (VRRP).

5. The method according to claim 1, characterized in that the internal node is not located at the boundary between the internal network and the external network.

6. The method according to claim 5, characterized in that the protocol session is an external BGP (eBGP) session.

7. The method according to 5, characterized in that the internal node implements a first internal BGP (iBGP) session with the first peripheral router and implements a second iBGP session with the second peripheral router.

8. The aforementioned internal node is a first internal node, and the method further, The first internal node receives the first route announced by the second internal node, and the first route defines a route to the second internal node. The first internal node distributes the first route without modification, The first internal node receives the second route announced by the second internal node, the second route defines a route from the external node to the second internal node, and, The first internal node distributes a modified version of the second route, and the modified version of the second route adds the first address as the next hop to the modified version of the second route. The method according to claim 1, characterized by including the following:

9. The above method further, The first internal node receives the third route announced by the external node, and the third route defines the route from the second internal node to the external node. The first internal node distributes the first modified version of the third route, and the first modified version of the third route adds the first internal address of the first peripheral router as the next hop to the first modified version of the third route, and the first internal address of the first peripheral router resides within the domain of the internal network and is different from the first address. The method according to 8, characterized in that it includes the following.

10. The above method further, The first internal node receives BGP control packets from the second peripheral router. (a) The first internal node determines that the second peripheral router has become operational and the first peripheral router has become inoperable, and, In response to step (a), the first internal node distributes a second modified version of the third route, the second modified version of the third route adding the second internal address of the second peripheral router as the next hop to the third route second modified version, the second internal address of the second peripheral router is located within the domain of the internal network and is different from the first address and the first internal address. The method according to 9, characterized in that it includes the following.

11. The tunnel is the first tunnel, and the method further The internal node evaluates the source address of the second tunnel that received the BGP control packet. This includes, The method according to 10, characterized in that step (a) includes determining by the internal node that the source address of the second tunnel is different from the source address of the first tunnel.

12. The above method further, The first internal node receives the third route announced by the external node, and the third route defines the route from the second internal node to the external node. The first internal node distributes the first modified version of the third route to the second internal node, and the first modified version of the third route adds the first internal address of the first peripheral router as the next hop to the first modified version of the third route. The first internal node distributes the second modified version of the third route to the first peripheral router, and the second modified version of the third route maintains the external address of the external node as the next hop of the second modified version of the third route. The method according to 8, characterized in that it includes the following.

13. A first peripheral router is provided at the boundary between the internal network and the external network. The internal network provides an internal node that is connected to the first peripheral router and operates within the internal network. The aforementioned internal node executes a BGP executable file that implements the Border Gateway Protocol (BGP). The aforementioned internal node establishes an external BGP (eBGP) session with an external node in the external network using the aforementioned BGP executable file. The first peripheral router routes the control traffic of the eBGP session destined for the first address assigned to the internal node to the internal node over the Internet Protocol (IP) tunnel, and the first address is also assigned to the first peripheral router. The first peripheral router routes traffic destined for the first address that is not control traffic for the eBGP session, without passing through the internal node. Failover from the first peripheral router to the second peripheral router is performed while continuing the eBGP session between the internal node and the external node through the second peripheral router without establishing a new eBGP session. This includes, A method characterized in that the second peripheral router is also assigned the first address, and the first address is an external address defined within the domain of the external network.

14. The method according to 13, characterized in that the first peripheral router is operational and the second peripheral router is a standby router for the first peripheral router using the Virtual Router Redundancy Protocol (VRRP).

15. The method according to 14, characterized in that the internal node implements a first internal BGP (iBGP) session with the first peripheral router and implements a second iBGP session with the second peripheral router.

16. The aforementioned internal node is a first internal node, and the method further, The first internal node receives the first route announced by the external node on the IP tunnel, and the first route defines the route from the second internal node to the external node. The first internal node evaluates the source address of the IP tunnel, and then, The first internal node distributes a first modified version of the first route, and the first modified version of the first route adds the source address of the IP tunnel as the next hop to the first modified version of the first route, and the source address of the IP tunnel resides within the domain of the internal network and is different from the first address. The method according to 14, characterized by including the following:

17. The IP tunnel is a first IP tunnel, and the method further The first internal node receives BGP control packets from the second peripheral router on the second IP tunnel. The internal node evaluates the source address of the second IP tunnel, (a) The internal node determines that the source address of the second IP tunnel is different from the source address of the first IP tunnel, and, In response to step (a), the first internal node distributes a second modified version of the first route, the second modified version of the first route adding the second internal address of the second peripheral router as the next hop of the first route and the source address of the second IP tunnel is located within the domain of the internal network and is different from the first address and the source address of the first IP tunnel. The method according to 16, characterized by including the following:

Citation Information

Patent Citations

  • SoftRouter DYNAMIC BINDING PROTOCOL

    JP2006135970A

  • 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