IP Library Granted Patent US 10,015,073
Granted Patent B2
US 10,015,073 · App. 14/809,017 · Granted Jul 3, 2018

Automatic optimal route reflector root address assignment to route reflector clients and fast failover in a network environment

Inventors: Keyur Patel (San Jose, CA); Serpil Bayraktar (Los Gatos, CA); Manish Bhardwaj (San Francisco, CA); David Delano Ward (Los Gatos, CA); Burjiz Pithawala (Cupertino, CA)
Assignee: Cisco Technology, Inc.
H04L45/02H04L45/127H04L45/42H04L45/48H04L45/74
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,015,073
App. No.
14/809,017
Granted
Jul 3, 2018
Kind
B2
Abstract

Embodiments are provided for providing optimal route reflector (ORR) root address assignment to route reflector clients and fast failover capabilities in an autonomous system, including identifying a first node in an autonomous system as a candidate root node of a first routing group, identifying a client node based on a neighbor address used in a first routing protocol, mapping the neighbor address to routing information received from the client node via a second routing protocol, and associating the neighbor address with the first routing group if the routing information includes an identifier of the first routing group. In more specific embodiments, identifying the first node as a candidate root node includes determining the first node and the first routing group are advertised in a first protocol packet, and determining the first node and the second routing group are advertised in a second protocol packet.

Claims (65)

1. A method, comprising:

at a cloud-based route reflector:

receiving, from a first node in an autonomous system, a routing protocol packet that originated from a client node in the autonomous system;

based on the routing protocol packet, identifying the first node as a candidate root node of a first routing group in the autonomous system;

identifying the client node based on a locally stored neighbor address of the client node used in a first routing protocol;

mapping the locally stored neighbor address of the client node to routing information in the routing protocol packet received via a second routing protocol, wherein the routing information includes an identifier of the first routing group; and

associating the locally stored neighbor address of the client node with the candidate root node and with the first routing group.

2. The method of claim 1 , further comprising:

determining the first node and a second routing group are advertised in a second routing protocol packet.

3. The method of claim 2 , wherein determining the first node is advertised in the second routing protocol packet includes determining the first node is advertised based on a router identifier of the first node.

4. The method of claim 1 , wherein the routing protocol packet includes information indicating the first node is to be a root node.

5. The method of claim 1 , wherein the first node is one of a plurality of nodes identified as candidate root nodes of the first routing group, the method further comprising:

selecting a primary root node from the plurality of nodes.

6. The method of claim 5 , further comprising:

computing respective distances between the client node and each one of the candidate root nodes; and

determining a shortest one of the respective distances, wherein the primary root node is selected based on the shortest one of the respective distances.

7. The method of claim 5 , further comprising:

selecting a backup root node from the plurality of nodes.

8. The method of claim 7 , wherein selecting the backup root node includes:

computing respective spanning trees rooted at one or more of the plurality of nodes; and

selecting the backup root node based, at least in part, on whether the primary root node is a leaf node in any one of the respective spanning trees.

9. The method of claim 5 , wherein each of the plurality of nodes is an area border router.

10. The method of claim 1 , further comprising:

configuring a second routing protocol packet according to the second routing protocol, the second routing protocol packet indicating that reachability information for the cloud-based route reflector is to be used only for control plane traffic, wherein the second routing protocol packet is communicated to one or more nodes in the autonomous system.

11. The method of claim 1 , wherein:

the routing protocol packet indicates the first node is associated with a subnet and is to be a root node.

12. The method of claim 1 , further comprising:

determining a router identifier (ID) of the first node by examining a Type-Length Value (TLV) element in the routing protocol packet, wherein the first node is an edge router of the first routing group.

13. The method of claim 1 , wherein:

the locally stored neighbor address is a border gateway protocol (BGP) neighbor address of the client node that corresponds to an interface address advertised by the client node.

14. The method of claim 1 , wherein the first routing protocol is a Border Gateway Protocol (BGP) and the second routing protocol is an Interior Gateway Protocol (IGP).

15. At least one non-transitory computer readable storage media comprising instructions stored thereon and when executed cause one or more processors to:

receive, from a first node in an autonomous system, a routing protocol packet that originated from a client node in the autonomous system;

based on the routing protocol packet, identify the first node as a candidate root node of a first routing group in the autonomous system;

identify the client node based on a locally stored neighbor address of the client node used in a first routing protocol;

map the locally stored neighbor address of the client node to routing information received via a second routing protocol, wherein the routing information includes an identifier of the first routing group; and

associate the locally stored neighbor address of the client node with the candidate root node and with the first routing group.

16. The at least one non-transitory computer readable storage media of claim 15 , further comprising instructions that cause the one or more processors to:

determine the first node and a second routing group are advertised in a second routing protocol packet.

17. The at least one non-transitory computer readable storage media of claim 15 , wherein the routing protocol packet includes information indicating the first node is to be a root node.

18. The at least one non-transitory computer readable storage media of claim 15 , wherein the first node is one of a plurality of nodes identified as candidate root nodes of the first routing group, and further comprising instructions that cause the one or more processors to:

select a primary root node from the plurality of nodes.

19. The at least one non-transitory computer readable storage media of claim 18 , further comprising instructions that cause the one or more processors to:

compute respective distances between the client node and each one of the candidate root nodes; and

determine a shortest one of the respective distances, wherein the primary root node is selected based on the shortest one of the respective distances.

20. An apparatus, comprising:

a cloud-based node including:

one or more processors; and

logic that, when executed by the one or more processors:

receives, from a first node in an autonomous system, a routing protocol packet that originated from a client node in the autonomous system;

based on the routing protocol packet, identifies the first node as a candidate root node of a first routing group in the autonomous system;

identifies the client node based on a locally stored neighbor address of the client node used in a first routing protocol;

maps the locally stored neighbor address of the client node to routing information in the routing protocol packet received via a second routing protocol, wherein the routing information includes an identifier of the first routing group; and

associates the locally stored neighbor address of the client node with the candidate root node and with the first routing group.

21. The apparatus of claim 20 , further comprising logic that, when executed by the one or more processors:

determines the first node and a second routing group are advertised in a second routing protocol packet.

22. The apparatus of claim 20 , wherein the first node is one of a plurality of nodes identified as candidate root nodes of the first routing group, the apparatus further comprising logic that, when executed by the one or more processors:

selects a primary root node from the plurality of nodes; and

selects a backup root node from the plurality of nodes.

23. The apparatus of claim 20 , wherein the routing protocol packet includes information indicating the first node is to be a root node.

24. The apparatus of claim 20 , wherein the first node is one of a plurality of nodes identified as candidate root nodes of the first routing group, the apparatus further comprising logic that, when executed by the one or more processors:

selects a primary root node from the plurality of nodes.

25. The apparatus of claim 24 , further comprising logic that, when executed by the one or more processors:

computes respective distances between the client node and each one of the candidate root nodes; and

determines a shortest one of the respective distances, wherein the primary root node is selected based on the shortest one of the respective distances.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2015
From: PITHAWALA, BURJIZ
To: CISCO TECHNOLOGY, INC.
Reel/Frame 036311/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2015
From: WARD, DAVID DELANO
To: CISCO TECHNOLOGY, INC.
Reel/Frame 036199/0662 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2015
From: PATEL, KEYUR; BAYRAKTAR, SERPIL; BHARDWAJ, MANISH
To: CISCO TECHNOLOGY, INC.
Reel/Frame 036175/0054 →
Continuity (6)
Provisional Application 62119044 · Feb 20, 2015
Provisional Application 62119048 · Feb 20, 2015
Provisional Application 62119113 · Feb 21, 2015
Provisional Application 62119114 · Feb 21, 2015
Provisional Application 62119115 · Feb 21, 2015
Related Publication 20160248658A1 · Aug 25, 2016