|Publication number||US8121136 B2|
|Application number||US 12/491,034|
|Publication date||Feb 21, 2012|
|Filing date||Jun 24, 2009|
|Priority date||Jun 24, 2009|
|Also published as||US8897311, US20100329270, US20120134368|
|Publication number||12491034, 491034, US 8121136 B2, US 8121136B2, US-B2-8121136, US8121136 B2, US8121136B2|
|Inventors||Rajiv Asati, David Delano Ward, Russell I. White, Keyur P. Patel|
|Original Assignee||Cisco Technology, Inc.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (18), Referenced by (4), Classifications (19), Legal Events (3)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The present disclosure relates generally to computer networks. In an example embodiment, the disclosure relates to dynamic discovery mechanisms via inter-domain routing protocol.
Many networks require that all routers within a Border Gateway Protocol (BGP) domain to be fully meshed. For large networks, this full mesh requirement represents a severe scaling problem as it is rather difficult to manually configure a large number of routers. Furthermore, a full mesh also presents a continuing problem as it requires the configuration of every router to be changed when a new router is added to the network.
The present disclosure is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of embodiments of the present disclosure. It will be evident, however, to one skilled in the art that the present disclosure may be practiced without these specific details.
A method is provided, which is used in a device. In this method, a logical identifier assigned to the device is identified and additionally, a mesh group identifier identifying a mesh group is identified. The logical identifier and the mesh group identifier are encoded in a routing message, which is used in an inter-domain routing protocol, and this routing message is transmitted to a reflector device in communication with the device. The reflector device is configured to transmit the routing message to a remote device included in the computer network.
In the network system 100, data is communicated by way of Internet Protocol (IP) packets or datagrams using a variety of suitable upper-layer transport communication protocols. For example, packets may be encapsulated and communicated using Transmission Control Protocol (TCP)/Hypertext Transport Protocol (HTTP), User Datagram Protocol (UDP) protocol, and/or Stream Control Transmission Protocol (SCTP). Although the network system 100 is shown to include routers 12-20, it should be noted that the embodiments described herein are equally applicable to other devices that receive digital data for processing and communication to other devices, such as servers 30 and routing devices.
The distinct networks within domains D1-D5 can be coupled together by inter-domain routers 150-157 subject to a common authority that are configured to communicate by way of routing protocols. In general, a routing protocol is a protocol that specifies how routers or other devices communicate with each other to disseminate routes and other logical identifiers, and thereby allows the routers or other devices to determine optimal routes for flows of network packets. An example of a routing protocol is Border Gateway Protocol (BGP), which is an inter-domain routing protocol used within the Internet to exchange IP address prefix and network layer reachability information between domains D1-D5 and to distribute external IP address prefix information within a domain D1, D2, D3, D4, or D5. Other examples of inter-domain protocols include Interior Border Gateway Protocol (a type of BGP), Exterior Border Gateway Protocol (a type of BGP), and other inter-domain protocols.
As depicted in
The inter-domain routing protocol procedures module 210 performs various standard procedures or functions provided by an inter-domain routing protocol. An example of such a procedure is session establishment. Another procedure receives and forwards routes. It should be appreciated that a single session involves at least two network nodes and involves an exchange of routing information by way of, for example, a point-to-point TCP connection. For example, one network node can notify the other network node, for example, that a particular route is available to a particular network or that a previously advertised route is no longer available. As explained in more detail below, such notifications may be in the form of routing messages. Network nodes receiving the route updates use the information to update their own forwarding tables and to propagate the route updates further. Generally, a network node receiving multiple routes to the same destination network picks one or more for its forwarding table and distributes to other network nodes via inter-domain routing protocol. In this manner, information about how to route packets across domain boundaries is propagated across the Internet.
The dynamic discovery module 208 is configured to dynamically discover other peer devices (e.g., routers, computers, servers, and other devices) by way of inter-domain routing protocol. As explained in more detail below, the dynamic discovery module 208 transmits one or more requests in the form of routing messages to establish sessions with other devices in the computer network. These requests are transmitted to a reflecting device, which relays or reflects these requests to the other devices. Upon receipt of the requests, these other devices can identify the apparatus 200 requesting the sessions from the requests and may directly establish sessions with the apparatus 200.
It should be appreciated that in other embodiments, the apparatus 200 may include fewer or more modules apart from those shown in
Additionally, the mesh group identifier is identified at 304. A “mesh group identifier,” as used herein, refers to a value that uniquely identifies a mesh group. As used herein, a “mesh group” refers to a group of devices that have fully meshed connectivity among themselves. The mesh group may include a partial mesh or even a full mesh. An example of a mesh group identifier is a four-byte identifier that identifies a group for which BGP speakers request to form BGP sessions.
The device then encodes the logical identifier and the mesh group identifier in a routing message at 306. A “routing message,” as used herein, refers to a message that, for example, communicates routing information. Devices in a computer network may exchange routing information using routing messages after they have established a session. An example of a routing message is a BGP update message, which is used to provide routing updates between BGP systems. In an embodiment, the device uses the routing message to communicate a request to establish sessions within a particular mesh group with other devices in the computer network. As explained in more detail below, the other devices may use the logical identifier and the mesh group identifier encoded in the routing message to establish a session. In an alternate embodiment, if sessions are already established, then the device can use the routing message to communicate a request to withdraw from the sessions. As explained in more detail below, the requests to establish or to withdraw from sessions may be defined in particular attributes of the routing messages.
The routing message is then transmitted to a reflector device at 308. A “reflector device,” as used herein, refers to a device that is configured to pass, transmit, or reflect at least the mesh group identifiers included in messages. An example of such a device is a route reflector that serves as a focal point for BGP sessions and is configured to transmit or reflect routes to internal neighboring network nodes or devices. A computer configured to reflect the request for dynamic neighbor discovery is another example of a reflector device. At this point, it should be noted that the devices in communication with the reflector device cannot directly transmit routing messages to each other because they have not yet detected each other. However, the reflector device is configured to be in communication with many or all the devices in the computer network and, as illustrated in more detail below, may be used to reflect the routing messages to these other devices.
In this example, the router 451 is configured to discover and establish BGP sessions with other routers, such as routers 452-453, in the computer network. To discover the other routers 452-453, the router 451 initially transmits a BGP update message 404 to the reflector device 402. In general, this BGP update message 404 communicates an identification of the router 451 and a request to establish a BGP session within a particular mesh group. This BGP update message 404 includes the IP address of the router 451 and also a mesh group identifier. In an embodiment, the BGP update message 404 includes a network layer reachability information (NRLI) field, which can be used to encode the various identifiers used for dynamic discovery, such as the IP address and/or the mesh group identifier.
It should be appreciated that the BGP update message 404 comprises a Multiprotocol Reachable NRLI (MP_REACH_NRLI) attribute that includes the NRLI field as well as the Address-Family/Sub-Address-Family (AFI/SAFI) fields that dictate the format of the NRLI field. Unlike the conventional usage of the MP_REACH_NLRI attribute to carry a set of reachable destinations together with next hop information used for forwarding to these destinations, embodiments of the invention defines a new AFI/SAFI and a new NLRI attribute format to convey the dynamic discovery information. Particularly, in an embodiment, to request the establishment a BGP session within a particular mesh group, the logical identifier in the form of an IP address and the mesh group identifier may be encoded in the MP_REACH_NLRI attribute. On the other hand, to request a withdrawal from a BGP session within a particular mesh group, the logical identifier in the form of an IP address and the mesh group identifier are encoded in the Multiprotocol Unreachable NRLI (MP_UNREACH_NLRI) attribute, which is used to carry a set of unreachable destinations. In one embodiment, the NRLI field included in the MP_REACH_NLRI and MP_UNREACH_NLRI attributes comprises one or more fields. For example, the IP address as the logical identifier is encoded in one field while the mesh group identifier is encoded in another field.
Still referring to
Once the remote device and the mesh group are identified based on the logical identifier and the mesh group identifier, respectively, a session is established with the remote device at 506. Such an establishment procedure may, for example, involve identifying whether the received mesh group identifier matches a locally configured mesh group identifier. If the received mesh group identifier does not match the locally configured mesh group identifier, then the device is configured for a different mesh group and a session is not established with the remote device. On the other hand, if the received mesh group identifier matches the locally configured mesh group identifier, then a session is established with the remote device. It should be appreciated that the establishment of the session is based on standard inter-domain routing protocol procedures. In BGP, for example, an OPEN message, which is used to initiate or open a BGP session, is transmitted to the remote device. In response to this OPEN message, another OPEN message from the remote device is received. To maintain the BGP session, KEEPALIVE messages may be periodically transmitted to the remote device or exchanged until the BGP session has ended.
As illustrated previously in
On the other hand, the router 452 identifies a match of the received mesh group identifier with its locally configured mesh group identifier. The router 452 therefore is configured to join the particular mesh group identified by the mesh group identifier. As a result, the router 452 attempts to establish a BGP session with the router 451 based on the received logical identifier and the mesh group identifier. As discussed above, the router 452 may establish a BGP session with the router 451 by sending an OPEN message to the router 451 identified by the IP address. Upon receipt of the OPEN message from the router 452, the router 451 transmits a second open message to the router 452. The exchange of the OPEN messages initiates the BGP session and this BGP session is kept open by periodic exchanges of KEEPALIVE messages between the routers 451 and 452. With the BGP session established, the routers 451 and 452 can then exchange routing information such that each router 451 or 452 receives information on all the routes from each other, and not just the best route. Therefore, if the best route becomes unavailable, then each router 451 or 452 can quickly reroute the network traffic along an alternate route.
After the BGP session has been established between the routers 451 and 452, the router 452 can terminate or end the BGP session by transmitting a request to withdraw from the BGP session in the form of a BGP update message. In an embodiment, the router 452 may request a withdrawal from the BGP session by encoding its IP address as a logical identifier and the mesh group identifier in the MP_UNREACH_NLRI attribute of the BGP update message. The router 452 then transmits this encoded BGP update message to the reflector device 402, which reflects it to routers 451 and 453 that are in communication with the reflector device 402. Upon receipt of this BGP update message with the IP address (as a logical identifier) and mesh group identifier encoded in the MP_UNREACH_NLRI attribute, the router 451, which is in a BGP session with the router 452, thereafter withdraws from the BGP session.
It should be noted that before the establishment of the BGP session, the routers 451-453 initially negotiate with the reflector device 402 a capability to handle dynamic discovery of devices within in the computer network. In an embodiment, the negotiation may be made by exchanging BGP open messages with the reflector device 402. A BGP open message includes a common capability field (or capability code field) that identifies the capability of the device that transmitted the BGP open message. A router 451, 452, or 453 may signal that it can handle dynamic discovery of remote devices by specifying a particular value in this common capability field. For example, a value of “1” in the common capability field can indicate that the device can handle dynamic discovery while a value of “0” can indicate that the device cannot handle dynamic discovery.
Still referring to
When the router 452 receives a request from a remote device to establish a session, the router 452 first compares the logical identifier encoded in the request with the logical identifiers stored in the data structure. If a match is identified, then the router 452 establishes a session with that remote device that transmitted the request because the match identifies that the remote device was dynamically discovered by the above-referenced mechanisms and therefore can be trusted to establish a session. On the other hand, if there is a mismatch with the logical identifiers stored in the data structure, then it identifies that the remote device was not dynamically discovered using the above-referenced mechanisms and therefore this request is not authorized. Accordingly, the router 452 can simply ignore this request to establish the session based on the mismatch.
The example apparatus 200 includes a processor 702 (e.g., a central processing unit (CPU)), a main memory 704, and a static memory 706, which communicate with each other via bus 708. The apparatus 200 may also include a disk drive unit 716 and a network interface device 720.
The disk drive unit 716 includes machine-readable medium 722 on which is stored one or more sets of instructions and data structures 724 (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions may also reside, completely or at least partially, within the main memory 704 and/or within the processor 702 during execution thereof by the apparatus 200, with the main memory 704 and the processor 702 also constituting machine-readable, tangible media. The instructions 724 may further be transmitted or received over network 726 via network interface device 720 utilizing any one of a number of well-known transfer protocols.
While machine-readable medium 722 is shown in an embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present application, or that is capable of storing, encoding or carrying data structures utilized by or associated with such a set of instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals.
While the invention(s) is (are) described with reference to various implementations and exploitations, it will be understood that these embodiments are illustrative and that the scope of the invention(s) is not limited to them. In general, techniques for route convergence may be implemented with facilities consistent with any hardware system or hardware systems defined herein. Many variations, modifications, additions, and improvements are possible.
Plural instances may be provided for components, operations or structures described herein as a single instance. Finally, boundaries between various components, operations, and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the invention(s). In general, structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the invention(s).
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US7318108 *||Dec 22, 2004||Jan 8, 2008||Cisco Technology, Inc.||Method and apparatus providing prioritized convergence in border gateway protocol|
|US7532631 *||Apr 13, 2005||May 12, 2009||Cisco Technology, Inc.||Method and apparatus for accelerating border gateway protocol convergence|
|US7633859 *||Jan 26, 2005||Dec 15, 2009||Cisco Technology, Inc.||Loop prevention technique for MPLS using two labels|
|US7675912 *||Jul 5, 2005||Mar 9, 2010||Cisco Technology, Inc.||Method and apparatus for border gateway protocol (BGP) auto discovery|
|US20040059831 *||Sep 24, 2002||Mar 25, 2004||Chu Thomas P.||Methods and systems for efficiently configuring IP-based, virtual private networks|
|US20050076114 *||Sep 18, 2003||Apr 7, 2005||Cook David Anthony||TTL exploration technique for determining capabilities and configuration of a peer router|
|US20060164975 *||Jan 26, 2005||Jul 27, 2006||Clarence Filsfils||Loop prevention technique for MPLS using two labels|
|US20060209851 *||Mar 4, 2005||Sep 21, 2006||John Scudder||Method and apparatus for border gateway protocol route management and routing policy modeling|
|US20060233181 *||Apr 13, 2005||Oct 19, 2006||Robert Raszuk||Method and apparatus for accelerating border gateway protocol convergence|
|US20060268715 *||May 4, 2006||Nov 30, 2006||Interdigital Technology Corporation||Method and apparatus for transmitting management information in a wireless communication system|
|US20070097974 *||Oct 28, 2005||May 3, 2007||Ward David D||Distributed border gateway protocol (BGP) route reflector system|
|US20070097991 *||Oct 31, 2005||May 3, 2007||Tatman Lance A||Method and system for discovering and providing near real-time updates of VPN topologies|
|US20070115990 *||Nov 22, 2005||May 24, 2007||Rajiv Asati||Method of providing an encrypted multipoint VPN service|
|US20070162614 *||Jan 12, 2006||Jul 12, 2007||Keyur Patel||Method and apparatus for achieving border gateway protocol convergence using alternate route information|
|US20090135843 *||Nov 21, 2008||May 28, 2009||Michel Veillette||System and method for operating mesh devices in multi-tree overlapping mesh networks|
|US20090144443 *||Nov 30, 2007||Jun 4, 2009||Jean-Philippe Vasseur||Differentiated routing using tunnels in a computer network|
|US20090232003 *||Mar 14, 2008||Sep 17, 2009||Jean-Philippe Vasseur||Oam tools for meshed tunnels in a computer network|
|US20100074268 *||Nov 24, 2009||Mar 25, 2010||Cisco Technology, Inc.||Multi-homing using controlled route leakage at a backup service provider|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US8934496 *||Jul 30, 2012||Jan 13, 2015||Cisco Technology, Inc.||Reactive and proactive routing protocol interoperation in low power and lossy networks|
|US8989046||Nov 12, 2012||Mar 24, 2015||The Aerospace Corporation||Inter-domain routing message distribution through wide area broadcast channel|
|US20120102173 *||May 11, 2011||Apr 26, 2012||Research In Motion Limited||Method and system for identifying an entity in a mobile device ecosystem|
|US20140029624 *||Jul 30, 2012||Jan 30, 2014||Cisco Technology, Inc.||Reactive and proactive routing protocol interoperation in low power and lossy networks|
|U.S. Classification||370/401, 370/392, 370/395.53, 370/236, 370/406, 709/242, 709/224, 370/225|
|International Classification||H04L12/56, H04L1/00, G06F15/173, H04L12/28, H04L12/26|
|Cooperative Classification||H04L45/02, H04L45/00, H04L45/04|
|European Classification||H04L45/04, H04L45/00, H04L45/02|
|Mar 10, 2010||AS||Assignment|
Owner name: CISCO TECHNOLOGY, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ASATI, RAJIV;WARD, DAVID DELANO;WHITE, RUSSELL I.;AND OTHERS;SIGNING DATES FROM 20090604 TO 20090623;REEL/FRAME:024062/0758
|Jun 19, 2012||CC||Certificate of correction|
|Aug 21, 2015||FPAY||Fee payment|
Year of fee payment: 4