Access control mechanism for routers
10 claims: 5 independent, 5 dependent
- 1A method of controlling access of packets arrived at a router (10) over a plurality of interfaces (14-20) of a line card with improved use of memory space storing access control rules, the method comprising the steps of:a. storing at said line card at least two access control rule lists, ACL, a shared access control line card rule list, ACL, (28) with rules that are applicable to the plurality of interfaces (14-20) and a specific access control rule list, ACL, (26) with rules specific to a single interface (14) of the plurality of interfaces;b. associating said shared access control list to the plurality of interfaces and said specific ACL (26) to said single interface (14);c. calculating (52) a key for an incoming data packet arriving at said the single of interface (14) d. identifying (56) in said specific ACL (26) a rule that applies to said packet, based on said key, and processing (58) said packet according to said rule;e. identifying (56) in said shared ACL (28) a rule that applies to said packet based on said key, and processing (58) said packet according to said rule, said rule not being in said specific ACL (26).
- 4The method of anyone of claims I to 3 wherein each rule has an associated action, each associated action being one of packet denial, packet allowance, packet counting, and packet copying.
- 8A line card (12) for a router (10), comprising:a plurality of interfaces (14-20), each for receiving a plurality of incoming data packets;a plurality of specific access control rule lists, ACL's, (26) for storing rules specific to each interface (14-20) each specific ACL (26) being associated individually to a respective one of said interfaces (14);means for determining a key for a data packet arriving at a certain of the plurality of interfaces (14);a shared access control rule list, ACL, (28) for storing rules that are applicable to the plurality of interfaces (14-20), said shared ACL (28) being associated to the plurality of interfaces (14-20) at said router (10);means for accessing said shared (28) and specific (26) ACL associated to the interface over which a packet arrived, based on said key for identifying rules pertinent to said packet in the specific and shared ACLs;and means for processing said packet according to said rules identified in said shared and specific ACLs.
Independent claims5
29 paragraphs, as filed
Field of the invention
0001The invention relates to router interfaces in telecommunication systems, and more particularly to access control lists associated with such interfaces.
Background of the invention
0002Internet routers in communication systems receive internet protocol (IP) packets at interfaces on line cards. A router contains numerous line cards, each of which can have a number of interfaces. Typically, each interface has an associated access control list (ACL) stored on the line card within a Ternary Content Addressable Memory (TCAM). An ACL is a set of rules to be applied to IP packets in order to filter unwanted packets, or perform other actions on packets such as counting or copying. Each rule is composed of a key and an action. When an IP packet arrives through an interface, the router extracts specific fields from the packet to form a key and searches the ACL associated with the interface for a rule having a matching key. If a rule is found, the filter applies the action associated with the rule to the packet.
0003Interfaces may have identical sets of rules. Some routers take advantage of this to simplify configuration and troubleshooting, and to improve robustness. Sets of rule are copied between ACLs. However, once loaded into the TCAM, each rule of each ACL of each interface is stored and accessed separately. There is therefore no saving of TCAM storage space. Other routers go further and share a single ACL between two or more interfaces. While this somewhat reduces the amount of TCAM storage space needed, this is only possible if the interfaces have all their rules in common.
0004Improvements in the storage capacity of TCAMs has not progressed as quickly as improvements in access rate. Due to space and power constraints associated with TCAMs and to the cost of TCAMs, it is preferable to keep the number and size of TCAMs on each line card to a minimum. This may be difficult in some situations, as routers often support hundreds of interfaces and hundreds of ACLs, requiring large TCAM storage space. Line interface cards which minimized the total number of rules being stored would allow fewer or smaller TCAMs to be used, thereby saving space and power. Alternatively, such cards could support more rules for the same space and power usage. Document <patcit id="pcit0001" dnum="US6377577B"><text>US 6377577</text></patcit> discloses hardware processing of ACL's and enforcement of access control. A sequence of access control specifiers from an ACL are recorded in a CAM, and information from the packet header is used to attempt to match selected source and destination IP addresses or subnets, ports, and protocols, against all the ACL specifiers at once. Successful matches are input to a priority selector, which selects the match with the highest priority (that is, the match that is first in the sequence of access control specifiers). The specified result of the selected match is used to permit or deny access for the packet without need for software processing, preferably at a rate comparable to wire speed The CAM includes an ordered sequence of entries, each of which has an array of ternary elements for matching "0", "1 ", or any value, and each of which generates a match signal. The ACL entered for recording in the CAM can be optimized to reduce the number of separate entries in the CAM, such as by combining entries which are each special cases of a more general access control specifier. A router including the CAM can also include pre-processing circuits for certain range comparisons which have been found both to be particularly common and to be otherwise inefficiently represented by the ternary nature of the CAM.
Summary of the invention
0005In accordance with one aspect of the invention, a method is provided for determining rules to be applied to a data packet arriving at a first interface within a data packet router. At least two sets of rules are associated with the first interface, at least one of the sets of rules being a shared set of rules also associated with a second interface. A key of the data packet is determined. The at least two sets of rules are searched for at least one rule matching the key.
0006In accordance with another aspect of the invention, a method is provided for providing security in a data packet router at which a data packet arrives at a first interface. At least two sets of rules are associated with the first interface, at least one of the sets of rules being a shared set of rules also associated with a second interface, each rule in the at least two sets of rules having an associated action. A key of the data packet is determined. The at least two sets of rules are searched for at least one rule matching the key. If at least one rule matching the key is found, the action associated with each of the at least one rule is applied to the data packet.
0007A line card for implementing the methods of the invention is provided. The methods of the invention may also be stored as instructions on a computer-readable medium.
0008The method and line interface card of the present invention allow rules to be shared between interfaces, while still allowing rules specific to individual interface cards to be used. By sharing rules between interfaces rather than just copying the rules, memory storage space (such as TCAM) is saved, thereby reducing the cost and power consumption of the line card.
Brief description of the drawings
0009The features and advantages of the invention will become more apparent from the following detailed description of the preferred embodiment(s) with reference to the attached figures, wherein: <ul id="ul0001" list-style="none"><li><figref idref="f0001">FIG. 1</figref> is a block diagram of a router according to one embodiment of the invention;</li><li><figref idref="f0002">FIG. 2</figref> is a block diagram of an example association between interface cards and ACLs of <figref idref="f0001">FIG. 1</figref>; and</li><li><figref idref="f0003">FIG. 3</figref> is a flowchart of a method by which the filter of <figref idref="f0001">FIG. 1</figref> accesses rules within the ACLs according to one embodiment of the invention.</li></ul>
0010It will be noted that in the attached figures, like features bear similar labels.
Detailed description of the embodiments
0011Referring to <figref idref="f0001">FIG. 1</figref>, a router 10 in accordance with a preferred embodiment of the invention is shown. The router 10 includes a line card 12. The line card 12 includes four interfaces 14, 16, 18, and 20, over which internet protocol (IP) packets arrive. The line card 12 also includes a Ternary Content Addressable Memory (TCAM) 24. The TCAM stores a plurality of Access Control Lists (ACLs). At least one ACL is a specific ACL 26 and at least one ACL is a shared ACL 28. Each interface is associated with at least one ACL, as described below.
0012The line card 12 also includes a filter 34. For each IP packet, the filter 34 extracts specified fields from the IP packet header to build a key, searches the ACLs associated with the interface over which the IP packet arrived for rules corresponding to the key derived from the IP packet, and performs an action associated with any such rules which are found. The filter 34 comprises instructions for locating and applying rules corresponding to received IP packets, and is preferably in the form of software running on a processor. More generally, the filter may contain instructions in the form of any combination of software or hardware within a processor, including hardware within an integrated circuit. The processor need not be a single device, but rather the instructions could be located in more than one device. If in the form of software, the instructions may be stored on a computer-readable medium.
0013Each specific ACL 26 is associated with a single interface, and each interface may be associated with a corresponding specific ACL. Each specific ACL includes rules particular to the interface to which it corresponds. These rules may include associated actions such as packet denial, packet acceptance, packet counting, and packet copying. Each shared ACL 28 is associated with at least two interfaces, and each interface is associated with at least one shared ACL. Each shared ACL 28 includes rules which some or all interfaces have in common.Referring to <figref idref="f0002">FIG. 2</figref>, and example association between interfaces and ACLs is shown. Each interface has one associated specific ACL 26. Two interfaces 14 and 16 are associated with one shared ACL 28a, and all four interfaces are associated with one shared ACL 28b. Each specific ACL 26 includes rules which may be applied to IP packets arriving over the corresponding interface. The shared ACL 28a includes rules which may be applied to IP packets arriving over either of its two associated interfaces 14 and 16. The shared ACL 28b includes rules which may be applied to IP packets arriving over any of the interfaces.
0014Since most interfaces typically have more rules in common with at least one other interface than they have rules specific to the interface, a significant saving of TCAM storage can be realized, as can large scaling benefits. For example, consider the case of each interface having 75 rules in common with other interfaces, and having 25 rules specific to the interface, and assume there are 100 interfaces. If each interface had its own unique ACL, TCAM storage for 100 lists of 100 rules each, or 10,000 rules, must be provided. By using a shared ACL, and by allowing rules for an interface to be stored in more than one ACL, TCAM storage must be provided for only one list of 75 rules and 100 lists of 25 rules, or 2575 rules in total.
0015Returning to <figref idref="f0001">FIG. 1</figref>, the router 10 also includes a plurality of other line cards 36, the details of which are not shown in <figref idref="f0001">FIG. 1</figref>. Each of these other line cards 36 is similar to the line card 12, including a plurality of interfaces, a filter, a TCAM, and a plurality of ACLs, although the number of ACLs may differ between line cards.
0016Referring to <figref idref="f0003">FIG. 3</figref>, a method of retrieving and applying a rule for an IP packet according to one embodiment of the invention is shown. At step 50 an IP packet arrives on one of the interfaces 14, 16, 18, and 20. The IP packet has an IP header and a Transmission Control Protocol (TCP) header. At step 52 the filter 34 determines a key for the IP packet from information within the IP header and the TCP header of the IP packet. The key may be determined from such information as an IP source address, an IP destination address, an ICMP type/ code, a protocol number, a TCP/ UDP source port, and a TCP/ UDP destination port.
0017The filter 34 includes an interface lookup table to determine which ACL or ACLs are to be searched. At step 54 the filter 34 searches within an ACL associated with the interface for a rule matching the key. If at step 56 a rule was found, then the filter applies an action associated with the rule to the IP packet at step 58. Examples of such actions include denial of the packet, acceptance the packet, counting the packet, and copying the packet. There will typically be at least two ACLs associated with the interface, although there may be interfaces on the line card associated with only one ACL. If at step 56 a rule was not found, or if a rule was found then once the action associated with the rule has been applied at step 58, then at step 60 the filter 34 determines whether another ACL exists which is associated with the interface. If at step 60 the filter 34 determines that another ACL associated with the interface exists, then at step 54 the filter 34 searches within the ACL for a rule matching the key. If at step 60 the filter 34 determines that another ACL associated with the interface does not exist, then the filter has finished searching for rules associated with the interface.
0018The filter 34 may search the ACLs associated with an interface in any order. However, in the preferred embodiment the filter maintains a priority order for each interface. This priority order may be configured by the user.
0019Not every shared rule need be stored in a shared ACL, and there may be duplication of rules on different specific ACLs. However, this will increase the amount of TCAM storage being used. In order to minimize the amount of TCAM storage required, every shared rule should be stored in a shared ACL.
0020The line card 12 may have a plurality of TCAMs, each containing at least one of the ACLs.
0021The invention has been described with respect to a line card having four interfaces, one TCAM, four specific ACLs, and two shared ACLs. More generally, the line card has a plurality of interfaces, and at least two ACLs, at least one of which is a shared ACL. A shared ACL may either contain rules that are shared amongst all interfaces, or contain rules that are shared between only a subset of interfaces. Interfaces may be associated with any number of shared ACLs and may or may not be associated with a specific ACL. However, at least one interface is associated with at least two ACLs, at least one of which is a shared ACL. In this way TCAM storage space can be saved.
0022A practical limit on the number of ACLs associated with each interface is the ACL access time. The time taken to access the ACLs must be less than the time available to process a packet. For example, the 00-48 line rate requires a packet processing rate of approximately 6.1 Mpps (million packets per second). With current TCAM access rates on the order of 60 to 100 million lookups per second, the number of ACLs associated with each interface is limited to about eight.
0023The invention has been described with reference to IP packets, routers, and ACLs. More generally, the invention may be applied to any packet switch (such as an Ethernet switch, an ATM switch, or an IPv6 switch) which includes interface specific sets of rules containing rules to be applied to incoming packets. For example, the invention may be applied to more general rule-based security functions, such as rate-limiting and rate-policing, policy-based forwarding, priority assignment, and classification. The key for a received packet may be determined by the filter using any variation of packet header information.
0024The embodiments presented are exemplary only and persons skilled in the art would appreciate that variations to the above described embodiments may be made without departing from the invention. The scope of the invention is solely defined by the appended claims.
3 sheets
Sheet 1 Sheet 2 Sheet 3
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| US2003067874A1 | Cites | United States of America |
| US6377577B1 | Cites | United States of America |
12 members in 6 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 679288 | United States of America | – | |
| 67928803 | United States of America | A | |
| 67928803 | United States of America | A | |
| 679288 | – | – | – |
| US20030679288 | – | – | – |
Members12
| Document | Office | Kind | |
|---|---|---|---|
| US2005076138A1 | United States of America | A1 | |
| CN1606294A | China | A | |
| EP1523138A2 | European Patent Office (EPO) | A2 | |
| EP1523138A3 | European Patent Office (EPO) | A3 | |
| JP2005130489A | Japan | A | |
| EP1523138B1This record | European Patent Office (EPO) | B1 | |
| AT386389T | Austria | T | |
| ATE386389T1 | Austria | T1 | |
| DE602004011721D1 | Germany | D1 | |
| DE602004011721T2 | Germany | T2 | |
| US7509674B2 | United States of America | B2 | |
| CN1606294B | China | B |
68 legal events, as 6 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal feeWithdrawnR119 | R119 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Change of applicant/patenteeR081 | R081 | DE | |
| Change of representativeR082 | R082 | DE | |
| Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)REGISTERED BETWEEN 20190429 AND 20190502732E | 732E | GB | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Fee paymentPLFP | PLFP | FR | |
| Fee paymentPLFP | PLFP | FR | |
| Change of addressCA | CA | FR | |
| Change of addressCA | CA | FR | |
| Lien (pledge) cancelledRG | RG | FR | |
| Lien (pledge) constitutedGC | GC | FR | |
| Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)REGISTERED BETWEEN 20130926 AND 20131002732E | 732E | GB | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Fr: translation filedET | ET | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents actLapsedNLV1 | NLV1 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Corresponds to:REF | REF | EP | |
| European patents granted designating irelandGrantedFG4D | FG4D | IE | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Party data changed (applicant data changed or rights of an application transferred)RAP1 | RAP1 | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Designation fees paidAKX | AKX | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1523138
- Publication, DOCDB
- 1523138
- Publication, EPODOC
- EP1523138
- Application
- 4300647
- Application, DOCDB
- 04300647
- Application, EPODOC
- EP20040300647
Titles3
- German
- Zugriffssteurungsmechanismus für Router
- English
- Access control mechanism for routers
- French
- Mécanisme de contrôle d'accès pour routeurs
Classification
- CPC, 9
- H04L45/00
- H04L45/308
- H04L45/60
- H04L45/7453
- H04L47/20
- H04L47/2425
- H04L47/2441
- H04L63/06
- H04L63/101
- IPC, 3
- H04L12 56
- G06F13 00
- H04L29 06
Designated states1
- Contracting states, 1
- Türkiye
