← Back to Patent Explorer
US7769873B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Dynamically inserting filters into forwarding paths of a network device

Assignee: Juniper Networks Inc
•
Filing: 2002-10-25
•
Granted: 2010-08-03
•
Expires: 2022-10-25
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Techniques are described for dynamically inserting filters into a forwarding path of a router in response to a received filter description. For example, a first router may receive a generic filter description, and process the generic filter description to generate machine instructions executable by forwarding hardware. The forwarding hardware, which may be a forwarding engine or an interface card, executes the machine instructions to implement the dynamic filter. The router, for instance, may filter packet flows of a device sourcing a network disturbance, such as a denial of service (DoS) attack by applying the dynamic filter to the packet flows. The router may further forward the filter description to neighboring routers to filter the packet flows closer to the source.

Inventors

  • 👤 Scott Mackie

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 13:21
CPC Classifications
H; H04; H04L; H04L45/00; H04L45/60; H04L63/00; H04L63/02; H04L63/0227; H04L63/0263; H04L63/14; H04L63/1441; H04L63/1458

Claims Analysis

Total Claims: 31
Claim 1
Independent Claim 237 words
A method comprising: executing a routing protocol process on a processor of a first network router; receiving, with the routing protocol process, routing communications from a second router in accordance with a routing protocol, wherein the routing communications from the second router specify routing information that informs the first network router of routes to a plurality of network destinations within a network, and wherein at least one of the routing communications further specifies a hardware-independent filter description, the filter description including: (1) at least one filtering rule specifying filtering criteria for identifying packets, and (2) an action to be applied to packets matching the filtering criteria; processing the routing information with the routing protocol process to generate forwarding information for forwarding hardware of the first network router, wherein the routing protocol process analyzes the routes received by the routing protocol and generates the forwarding information to associate each of the network destinations with specific next hops; dynamically inserting a filter within a packet forwarding path of the forwarding hardware of the first network router in accordance with the received filter description, wherein the forwarding hardware is communicatively coupled to the processor of the first network router; applying the action included in the filter description to packets matching the filtering criteria to filter packets in the forwarding hardware in accordance with the filter; and forwarding packets in accordance with forwarding information that is generated from the routing information.
Claim 2
Independent Claim 237 words
A method comprising: executing a routing protocol process on a processor of a first network router; receiving, with the routing protocol process, routing communications from a second router in accordance with a routing protocol, wherein the routing communications from the second router specify routing information that informs the first network router of routes to a plurality of network destinations within a network, and wherein at least one of the routing communications further specifies a hardware-independent filter description, the filter description including: (1) at least one filtering rule specifying filtering criteria for identifying packets, and (2) an action to be applied to packets matching the filtering criteria; processing the routing information with the routing protocol process to generate forwarding information for forwarding hardware of the first network router, wherein the routing protocol process analyzes the routes received by the routing protocol and generates the forwarding information to associate each of the network destinations with specific next hops; dynamically inserting a filter within a packet forwarding path of the forwarding hardware of the first network router in accordance with the received filter description, wherein the forwarding hardware is communicatively coupled to the processor of the first network router; applying the action included in the filter description to packets matching the filtering criteria to filter packets in the forwarding hardware in accordance with the filter; and forwarding packets in accordance with forwarding information that is generated from the routing information.
Claim 3
Dependent Claim 57 words
The method of claim 1 wherein dynamically inserting a filter in the forwarding hardware of the first network router comprises: processing, with the filter management process executing on the processor, the hardware-independent filter description to generate hardware-specific machine instructions for the forwarding hardware coupled to the processor; and communicating the hardware-specific machine instructions to the forwarding hardware.
Claim 4
Dependent Claim 43 words
The method of claim 2 , wherein applying the action included in the filter description comprises executing, within the forwarding hardware, the machine instructions received from the filter management process executing on the processor to apply the action included in the filter description.
Claim 5
Dependent Claim 30 words
The method of claim 1 , wherein the filtering criteria includes at least one of a source IP address, a destination IP address, a protocol type, and a port number.
Claim 6
Dependent Claim 46 words
The method of claim 1 , wherein applying the associated action to data matching the filtering criteria includes at least one of dropping data, counting the data, sampling the data, marking the data with a lower priority, and forwarding the data along a different forwarding path.
Claim 7
Dependent Claim 16 words
The method of claim 1 , further comprising forwarding the filter description to neighboring network routers.
Claim 8
Dependent Claim 29 words
The method of claim 1 , further comprising: detecting a network event within the second network router; and generating the filter description in response to detecting the network event.
Claim 9
Dependent Claim 15 words
The method of claim 1 , further comprising filtering the data with a static filter.
Claim 10
Dependent Claim 16 words
The method of claim 1 , wherein the routing protocol is the Border Gateway Protocol (BGP).
Claim 11
Dependent Claim 213 words
A network router comprising: a routing engine having a processor that includes: a routing protocol process executing on the processor that receives routing communications from a second router in accordance with a routing protocol, wherein the routing communications from the second router specify routing information that describes routes to a plurality of network destinations within a network and specify a hardware-independent filter description, the filter description including: (1) at least one filtering rule specifying filtering criteria for identifying packets, and (2) an action to be applied to packets matching the filtering criteria, and wherein the routing protocol process analyzes the routes received by the routing protocol and generates forwarding information to associate each of the network destinations with specific next hops; and a filter management process executing on the processor that processes the hardware-independent filter description to generate hardware-specific machine instructions for insertion within a forwarding path of forwarding hardware within the network router; and forwarding hardware coupled to the processor that forwards packets in accordance with the forwarding information that is generated from the routing information, wherein the forwarding hardware executes the machine instructions received from the filter management process executing on the processor to apply the action to packets matching the filtering criteria to implement a filter within the forwarding hardware.
Claim 12
Dependent Claim 213 words
A network router comprising: a routing engine having a processor that includes: a routing protocol process executing on the processor that receives routing communications from a second router in accordance with a routing protocol, wherein the routing communications from the second router specify routing information that describes routes to a plurality of network destinations within a network and specify a hardware-independent filter description, the filter description including: (1) at least one filtering rule specifying filtering criteria for identifying packets, and (2) an action to be applied to packets matching the filtering criteria, and wherein the routing protocol process analyzes the routes received by the routing protocol and generates forwarding information to associate each of the network destinations with specific next hops; and a filter management process executing on the processor that processes the hardware-independent filter description to generate hardware-specific machine instructions for insertion within a forwarding path of forwarding hardware within the network router; and forwarding hardware coupled to the processor that forwards packets in accordance with the forwarding information that is generated from the routing information, wherein the forwarding hardware executes the machine instructions received from the filter management process executing on the processor to apply the action to packets matching the filtering criteria to implement a filter within the forwarding hardware.
Claim 13
Dependent Claim 16 words
The network router of claim 10 , wherein the forwarding hardware resides within a forwarding engine.
Claim 14
Dependent Claim 78 words
The network router of claim 10 , further comprising: two or more interface cards; and two or more hardware-based controllers, wherein each of the controllers is located within a respective one of the interface cards, wherein the hardware-based controllers receive the machine instructions generated by the processor of the routing engine and executes the machine instructions generated by the processor of the routing engine to apply the action to packets matching the filtering criteria to implement the filter.
Claim 15
Dependent Claim 31 words
The network router of claim 10 , wherein the filtering criteria includes at least one of a source IP address, a destination IP address, a protocol type, and a port number.
Claim 16
Dependent Claim 19 words
The network router of claim 10 , wherein the hardware-independent filter description further includes a lifetime of the filter.
Claim 17
Dependent Claim 25 words
The network router of claim 10 , wherein the filter management process further forwards the hardware-independent filter description to two or more neighboring network routers.
Claim 18
Dependent Claim 33 words
The network router of claim 10 , further comprising: a set of static filters; and wherein the network device filters data with filtering rules of the associated static filters and the dynamic filter.
Claim 19
Dependent Claim 42 words
The network device of claim 10 , wherein the forwarding hardware comprises a hardware-based controller that executes the machine instructions generated by the processor of the routing engine to apply the action to packets matching the filtering criteria to implement the filter.
Claim 20
Dependent Claim 17 words
The network device of claim 10 , wherein the routing protocol is the Border Gateway Protocol (BGP).
Claim 21
Independent Claim 293 words
A method comprising: receiving, with a routing protocol process executing on a processor of a network device, routing communications from a second router in accordance with a routing protocol, wherein the routing communications from the second router specify routing information that informs the first network router of routes to a plurality of network destinations within a network, wherein at least one of the routing communications further specifies a hardware-independent filter description, the filter description including: (1) at least one filtering rule specifying filtering criteria for identifying packets, and (2) an action to be applied to packets matching the filtering criteria; processing the routing information with the routing protocol process to generate forwarding information for forwarding hardware of the first network router, wherein the routing protocol process analyzes the routes received by the routing protocol and generates the forwarding information to associate each of the network destinations with specific next hops; receiving, with a filter management process executing on the processor of the network device, the hardware-independent filter description that includes at least one filtering rule specifying filtering criteria for identifying packets and an action to be applied to packets matching the filtering criteria; processing, with the filter management process executing on the processor, the hardware-independent filter description to generate hardware-specific machine instructions for forwarding hardware coupled to the processor; executing, within the forwarding hardware of the network device, the machine instructions received from the filter management process executing on the processor to apply the action to packets matching the filtering criteria to filter packets of a forwarding path of the network device; forwarding packets with the forwarding hardware in accordance with forwarding information that is generated from the routing information; and forwarding the hardware-independent filter description to at least one neighboring network router.
Claim 22
Independent Claim 293 words
A method comprising: receiving, with a routing protocol process executing on a processor of a network device, routing communications from a second router in accordance with a routing protocol, wherein the routing communications from the second router specify routing information that informs the first network router of routes to a plurality of network destinations within a network, wherein at least one of the routing communications further specifies a hardware-independent filter description, the filter description including: (1) at least one filtering rule specifying filtering criteria for identifying packets, and (2) an action to be applied to packets matching the filtering criteria; processing the routing information with the routing protocol process to generate forwarding information for forwarding hardware of the first network router, wherein the routing protocol process analyzes the routes received by the routing protocol and generates the forwarding information to associate each of the network destinations with specific next hops; receiving, with a filter management process executing on the processor of the network device, the hardware-independent filter description that includes at least one filtering rule specifying filtering criteria for identifying packets and an action to be applied to packets matching the filtering criteria; processing, with the filter management process executing on the processor, the hardware-independent filter description to generate hardware-specific machine instructions for forwarding hardware coupled to the processor; executing, within the forwarding hardware of the network device, the machine instructions received from the filter management process executing on the processor to apply the action to packets matching the filtering criteria to filter packets of a forwarding path of the network device; forwarding packets with the forwarding hardware in accordance with forwarding information that is generated from the routing information; and forwarding the hardware-independent filter description to at least one neighboring network router.
Claim 23
Dependent Claim 30 words
The method of claim 19 , wherein the filtering criteria includes at least one of a source IP address, a destination IP address, a protocol type, and a port number.
Claim 24
Dependent Claim 15 words
The method of claim 19 , further comprising filtering the data with a static filter.
Claim 25
Dependent Claim 244 words
A computer-readable medium comprising instructions that cause one or more processors to: execute a routing protocol process on a processor of a first network router; receive, with the routing protocol process, routing communications from a second router in accordance with a routing protocol, wherein the routing communications from the second router specify routing information that informs the first network router of routes to a plurality of network destinations within a network, and wherein at least one of the routing communications further specifies a hardware-independent filter description, the filter description including: (1) at least one filtering rule specifying filtering criteria for identifying packets, and (2) an action to be applied to packets matching the filtering criteria; process the routing information with the routing protocol process to generate forwarding information for forwarding hardware of the first network router, wherein the routing protocol process analyzes the routes received by the routing protocol and generates the forwarding information to associate network destinations with specific next hops; dynamically insert a filter within a packet forwarding path of the forwarding hardware of the first network router in accordance with the received filter description, wherein the forwarding hardware is communicatively coupled to the processor of the first network router; apply the action included in the filter description to packets matching the filtering criteria to filter packets in the forwarding hardware without modifying the routing information; and forward the packets in accordance with forwarding information that is generated from the routing information.
Claim 26
Dependent Claim 244 words
A computer-readable medium comprising instructions that cause one or more processors to: execute a routing protocol process on a processor of a first network router; receive, with the routing protocol process, routing communications from a second router in accordance with a routing protocol, wherein the routing communications from the second router specify routing information that informs the first network router of routes to a plurality of network destinations within a network, and wherein at least one of the routing communications further specifies a hardware-independent filter description, the filter description including: (1) at least one filtering rule specifying filtering criteria for identifying packets, and (2) an action to be applied to packets matching the filtering criteria; process the routing information with the routing protocol process to generate forwarding information for forwarding hardware of the first network router, wherein the routing protocol process analyzes the routes received by the routing protocol and generates the forwarding information to associate network destinations with specific next hops; dynamically insert a filter within a packet forwarding path of the forwarding hardware of the first network router in accordance with the received filter description, wherein the forwarding hardware is communicatively coupled to the processor of the first network router; apply the action included in the filter description to packets matching the filtering criteria to filter packets in the forwarding hardware without modifying the routing information; and forward the packets in accordance with forwarding information that is generated from the routing information.
Claim 27
Dependent Claim 78 words
The computer-readable medium of claim 22 , wherein the filter descriptions are hardware-independent, and wherein instructions that cause a processor to dynamically insert a filter in a forwarding path of the first network router includes instructions that cause the processor to: process, with the filter management process executing on the processor, the hardware-independent filter description to generate hardware-specific machine instructions for the forwarding hardware coupled to the processor; and communicate the hardware-specific machine instructions to the forwarding hardware.
Claim 28
Dependent Claim 60 words
The computer-readable medium of claim 23 , wherein the processor comprises a first processor, and wherein instructions that cause a processor to apply the action included in the filter description includes instructions that cause a second processor within the forwarding hardware to execute the machine instructions received from the first processor to apply the action included in the filter description.
Claim 29
Dependent Claim 24 words
The computer-readable medium of claim 22 , further comprising instructions that cause a processor to forward the hardware-independent filter description to neighboring network routers.
Claim 30
Dependent Claim 36 words
The computer-readable medium of claim 22 , further comprising instructions that cause a processor to: detect a network event within the second network router; and generate the filter description in response to detecting the network event.
Claim 31
Dependent Claim 22 words
The computer-readable medium of claim 22 , further comprising instructions that cause a processor to filter the data with a static filter.

References Cited (Backward Citations)

US5600642A Cited
US6507914B1 Cited
US6147976A Cited
US6266704B1 Cited
US5951651A Cited
US6501754B1 Cited
US6374303B1 Cited
US6738814B1 Cited
US20030056007A1 Cited
US7251218B2 Cited
US20050232193A1 Cited
US7039687B1 Cited
US6493349B1 Cited
US7133928B2 Cited
US20030088696A1 Cited
US6772347B1 Cited
US6553028B1 Cited
US6879594B1 Cited
US6735702B1 Cited
US6807182B1 Cited
US6778531B1 Cited
US6751218B1 Cited
US7035226B2 Cited
US7360084B1 Cited
US20050108419A1 Cited
US6477166B1 Cited
US7120931B1 Cited
US20020118644A1 Cited
US7080161B2 Cited
US7082102B1 Cited
US20060039364A1 Cited
US6920503B1 Cited
US20020071390A1 Cited
US6876657B1 Cited
US20020101819A1 Cited
US6731652B2 Cited
US20020198687A1 Cited
US20020181477A1 Cited
US20020186664A1 Cited
US20020191584A1 Cited
US7463591B1 Cited
US20030014665A1 Cited
US20030012215A1 Cited
US6968389B1 Cited
US20030021282A1 Cited
US20030031175A1 Cited
US20030039248A1 Cited
US20030043772A1 Cited
US20030087653A1 Cited
US20030063591A1 Cited
US20030172114A1 Cited
US20030099235A1 Cited
US20030112748A1 Cited
US20030123446A1 Cited
US20030177221A1 Cited
US20030191937A1 Cited
US7269135B2 Cited
US7333491B2 Cited
US20030212900A1 Cited
US20040047342A1 Cited
US7366894B1 Cited
US20050001720A1 Cited
US20040037279A1 Cited
US7299296B1 Cited
US7281058B1 Cited
US20040081154A1 Cited
US7330468B1 Cited
US20080123654A1 Cited
US20040218536A1 Cited
US20060182034A1 Cited
US20070124454A1 Cited
US20040151180A1 Cited
US20040151181A1 Cited
WO2004071032A1 Cited
US20090028149A1 Cited
US20060147204A1 Cited
US7545735B1 Cited
US7359328B1 Cited
US20050169270A1 Cited
US20040190517A1 Cited
US20040240446A1 Cited
US20070036162A1 Cited
US20040240445A1 Cited
US7421487B1 Cited
US20080056258A1 Cited
US20050018693A1 Cited
JP2005130258A Cited
US20050097203A1 Cited
US20050111351A1 Cited
JP2005167482A Cited
US7477642B2 Cited
US7418003B1 Cited
JP2005252385A Cited
US20050220132A1 Cited
US20050265308A1 Cited
US20050262232A1 Cited
US20050271036A1 Cited
US20050271035A1 Cited
US20050281192A1 Cited
US20060013141A1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2013-08-02 2014-02-01 2014-08-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2017-08-02 2018-02-01 2018-08-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2021-08-02 2022-02-01 2022-08-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag