IP Library Granted Patent US 10,992,566
Granted Patent B1
US 10,992,566 · App. 16/533,361 · Granted Apr 27, 2021

Apparatus, system, and method for improved memory consumption in network devices via efficient route management

Inventor: Hiren Bhalchandra Dave (Fremont, CA)
Assignee: Juniper Networks, Inc
H04L45/021H04L45/18H04L45/24H04L45/38H04L45/745H04L47/125H04L67/10
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,992,566
App. No.
16/533,361
Granted
Apr 27, 2021
Kind
B1
Abstract

The disclosed computer-implemented method may include (1) receiving, at a network device, a route update for one or more routes that direct traffic within a network that supports BGP, (2) identifying, within the route update, a BGP prefix and a plurality of protocol next-hop addresses that (A) identify a plurality of neighbors of the network device and (B) each correspond to the BGP prefix, (3) maintaining a single copy of the BGP prefix and each of the protocol next-hop addresses, (4) receiving a packet destined for a computing device that is reachable via at least one of the neighbors of the network device, and then (5) forwarding the packet to the one of the neighbors of the network device in accordance with the BGP prefix and the protocol next-hop address that identifies the one of the neighbors. Various other methods, systems, and apparatuses are also disclosed.

Claims (61)

1. A method comprising:

receiving, at a network device, a route update for one or more routes that direct traffic within a network that supports Border Gateway Protocol (BGP);

identifying, within the route update, a BGP prefix and a plurality of protocol next-hop addresses that:

identify a plurality of neighbors of the network device; and

each correspond to the BGP prefix;

maintaining, at the network device, a single copy of the BGP prefix and each of the protocol next-hop addresses instead of maintaining a different copy of the BGP prefix for each of the protocol next-hop addresses, wherein maintaining the single copy of the BGP prefix and each of the protocol next-hop addresses comprises installing only the single copy of the BGP prefix and each of the protocol next-hop addresses in a routing table of the network device such that the routing table does not include multiple copies of the BGP prefix;

receiving, at the network device, a packet destined for a computing device that is reachable via at least one of the neighbors of the network device; and

forwarding the packet to the one of the neighbors of the network device in accordance with the BGP prefix and the protocol next-hop address that identifies the one of the neighbors.

2. The method of claim 1 , wherein the network device comprises a router running at a data center.

3. The method of claim 2 , further comprising performing, by the router running at the data center, an Equal-Cost Multi-Path (ECMP) routing operation to facilitate load-balancing traffic at the data center; and

wherein forwarding the packet to the one of the neighbors of the network device comprises forwarding the packet to the one of the neighbors of the network device to load-balance the traffic at the data center in accordance with the ECMP routing operation.

4. The method of claim 1 , wherein maintaining the single copy of the BGP prefix and each of the protocol next-hop addresses comprises installing another single copy of the BGP prefix in another routing table of the network device such that the other routing table does not include multiple copies of the BGP prefix.

5. The method of claim 1 , wherein receiving the route update at the network device comprises receiving the route update from another network device comprising at least one of:

a BGP controller;

a route reflector; and

a router.

6. The method of claim 5 , further comprising sending the route update from the other network device to the network device.

7. The method of claim 6 , further comprising removing, from the route update at the other network device, route information that identifies at least one Autonomous System (AS) path related to the routes prior to sending the route update to the network device.

8. The method of claim 7 , further comprising:

determining that the network device is included in a first AS and the other network device is included in a second AS; and

wherein:

the AS path comprises an AS path that leads to the first AS; and

removing the route information that identifies the AS path from the route update comprises removing, from the route update, route information that identifies the AS path that leads to the first AS.

9. The method of claim 8 , wherein removing the route information that identifies the AS path from the route update comprises preventing a routing loop that involves the first AS by removing, from the router update, the route information that identifies the AS path that leads to the first AS prior to sending the route update to the network device.

10. The method of claim 9 , wherein removing the route information that identifies the AS path from the route update comprises removing, from the route update, route information that identifies all AS paths that lead to a particular destination except for a single preferred AS path that leads to the particular destination.

11. The method of claim 6 , wherein sending the route update from the other network device to the network device comprises sending the route update to a plurality of network devices spanning a plurality of data centers.

12. The method of claim 5 , further comprising:

establishing a BGP neighborship between the route reflector and a flow-monitoring server; and

advertising, by the route reflector, the routes with at least one corresponding AS path to the flow-monitoring server to enable the flow-monitoring server to create at least one flow record in connection with the routes.

13. The method of claim 12 , wherein creating the flow record in connection with the routes comprises:

obtaining, at the flow-monitoring server, an address of a destination of the routes from the network device;

identifying, at the flow-monitoring server, the AS path to which the routes correspond; and

creating the flow record based at least in part on the address of the destination and the AS path to which the routes correspond.

14. The method of claim 13 , further comprising monitoring, at the flow-monitoring server, traffic destined for the destination based at least in part on the flow record.

15. A system comprising:

a receiving module, stored in memory at a network device, that receives a route update for one or more routes that direct traffic within a network that supports Border Gateway Protocol (BGP);

an identification module, stored in memory at the network device, that identifies, within the route update, a BGP prefix and a plurality of protocol next-hop addresses that:

identify a plurality of neighbors of the network device; and

each correspond to the BGP prefix;

a maintenance module, stored in memory at the network device, that maintains a single copy of the BGP prefix and each of the protocol next-hop addresses instead of maintaining a different copy of the BGP prefix for each of the protocol next-hop addresses by installing only the single copy of the BGP prefix and each of the protocol next-hop addresses in a routing table of the network device such that the routing table does not include multiple copies of the BGP prefix;

wherein the receiving module receives a packet destined for a computing device that is reachable via at least one of the neighbors of the network device;

a forwarding module, stored in memory at the network device, that forwards the packet to the one of the neighbors of the network device in accordance with the BGP prefix and the protocol next-hop address that identifies the one of the neighbors; and

at least one physical processor configured to execute the receiving module, the identification module, the maintenance module, and the forwarding module.

16. The system of claim 15 , wherein the network device comprises a router running at a data center.

17. The system of claim 16 , further comprising a load-balancing module, stored in memory at the router, that performs an Equal-Cost Multi-Path (ECMP) routing operation to facilitate load-balancing traffic at the data center; and

wherein the forwarding module forwards the packet to the one of the neighbors of the network device to load-balance the traffic at the data center in accordance with the ECMP routing operation.

18. The system of claim 17 , wherein the maintenance module installs another single copy of the BGP prefix in another routing table of the network device such that the other routing table does not include multiple copies of the BGP prefix.

19. The system of claim 15 , wherein the receiving module receives the route update from another network device comprising at least one of:

a BGP controller;

a route reflector; and

a router.

20. An apparatus comprising:

at least one storage device that stores a routing table for a network device; and

at least one physical processing device that is communicatively coupled to the storage device at the network device, wherein the physical processing device:

receives a route update for one or more routes that direct traffic within a network that supports Border Gateway Protocol (BGP);

identifies, within the route update, a BGP prefix and a plurality of protocol next-hop addresses that:

identify a plurality of neighbors of the network device; and

each correspond to the BGP prefix;

maintains a single copy of the BGP prefix and each of the protocol next-hop addresses instead of maintaining a different copy of the BGP prefix for each of the protocol next-hop addresses, wherein maintaining the single copy of the BGP prefix and each of the protocol next-hop addresses comprises installing only the single copy of the BGP prefix and each of the protocol next-hop addresses in the routing table of the network device such that the routing table does not include multiple copies of the BGP prefix;

receives a packet destined for a computing device that is reachable via at least one of the neighbors of the network device; and

forwards the packet to the one of the neighbors of the network device in accordance with the BGP prefix and the protocol next-hop address that identifies the one of the neighbors.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2019
From: DAVE, HIREN BHALCHANDRA
To: JUNIPER NETWORKS, INC
Reel/Frame 049978/0979 →
Continuity (1)
Continuation 15484475 · Apr 11, 2017
Cited By (2)
US 12,388,742 US 12,659,281