AU2012202410B2 - Method and apparatus for inspecting inter-layer address binding protocols - Google Patents

Method and apparatus for inspecting inter-layer address binding protocols Download PDF

Info

Publication number
AU2012202410B2
AU2012202410B2 AU2012202410A AU2012202410A AU2012202410B2 AU 2012202410 B2 AU2012202410 B2 AU 2012202410B2 AU 2012202410 A AU2012202410 A AU 2012202410A AU 2012202410 A AU2012202410 A AU 2012202410A AU 2012202410 B2 AU2012202410 B2 AU 2012202410B2
Authority
AU
Australia
Prior art keywords
packet
inter
layer
protocol
binding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
AU2012202410A
Other versions
AU2012202410A1 (en
Inventor
Justin Q. Chen
Marco E. Foschiano
Ambarish C. Kenghe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2009200102A external-priority patent/AU2009200102A1/en
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Priority to AU2012202410A priority Critical patent/AU2012202410B2/en
Publication of AU2012202410A1 publication Critical patent/AU2012202410A1/en
Application granted granted Critical
Publication of AU2012202410B2 publication Critical patent/AU2012202410B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

C .NRPonbl\DCC\TRN\2K761 1_1DOC2(f4/2012 A network device comprising: a forwarding engine, wherein 5 said forwarding engine comprises a lookup table, and a lookup table controller, coupled to said lookup table, said forwarding engine is configured to determine whether a packet is an inter-layer binding protocol packet by virtue of being configured to analyze a 10 header of said packet, said inter-layer binding protocol packet indicates an inter-layer binding between a first protocol layer address and a second protocol layer address, said first protocol layer address is at a first protocol layer, and said second protocol layer address is at a second protocol layer; and 15 an inspection engine, coupled to said forwarding engine, wherein said lookup table controller is configured to cause said forwarding engine to forward said packet to said inspection engine, if said forwarding engine determines said packet is said inter-layer binding protocol packet, and said inspection engine is configured to determine whether said inter-layer 20 binding is a legal inter-layer binding by virtue of being configured to inspect said inter-layer binding protocol packet. start Pass packet on for Receive packe further processing or forwardhngbI next network node destination 310 binding prooo packet? 33D Yes Analyze packet bas ad on filtering rules Is packet Tk cin T acceptable, basedon No Tk cini epne filtering rules? receipt of bad padt Yes Fig. 3

Description

EDITORIAL NOTE Number: 2012202410 Description Note: Second page 5E should be regarded as 5G page Australian Patents Act 1990 - Regulation 3.2A ORIGINAL COMPLETE SPECIFICATION STANDARD PATENT Invention Title "Method and apparatus for inspecting inter-layer address binding protocols" The following statement is a full description of this invention, including the best method of performing it known to me/us: lI sonlnenovenRPortbiDCCSPi~ 6 SS67 2 _1. dec C .NRPonbrtDCC\TRN\42X761 1_.I DOC-2(.04/2W12 -lA METHOD AND APPARATUS FOR INSPECTING INTER-LAYER ADDRESS BINDING PROTOCOLS This is a divisional of Australian Patent Application No. 2009200102, which is 5 itself a divisional of Australian Patent Application No. 2003257075, and the originally filed specifications of these applications are hereby incorporated herein by reference in their entirety. FIELD This invention generally relates to a network device, a method of inspecting 10 packets, a network element, a computer program product for inspecting packets, and an apparatus, e.g., in the field of information networks. For example, the method and apparatus can be for inspecting the bindings created by a packet of an inter-layer binding protocol. BACKGROUND 15 The arsenal of tools available for both protecting and penetrating networking environments is impressive in both quantity and ability. Some of these tools are highly specialized, while other are multipurpose and serve as building blocks for larger toolkits. One such tool is the network "sniffer." Network "sniffing," in its most generic form, consists of intercepting communications (e.g., frames or packets) from the network and 20 viewing their contents. The ability to do this has been widespread for some time and has been employed by network administrators (e.g., troubleshooting problems), so-called "crackers" (those intercepting passwords and files) and others. It will be noted that, in relative terms, it is only recently that network sniffing has become possible on a switched network. As might be expected, tools that allow network sniffing on switched networks 25 have now surfaced. A brief explanation of the manner in which non-switched networks operate, as well as how such networks can be sniffed, as well as the manner in which switched networks operate and how these networks can also be sniffed. Fig. IA is a block diagram illustrating generally the architecture of a non-switched network environment, depicted in Fig. ]A as a network 100. Included in network 100 are a 30 number of nodes (nodes 102(l)-(N)) that are coupled to a router 104 by a hub 106. Each of nodes 102(1)-(N) is coupled to a respective port of hub 106 (not shown). In the non- C:\NRPonbl\DCC\TRM42X76 IL DOC-24"4/212 switched network environment depicted in Fig. IA, the concept of a network segment exists. A segment is a network architecture that resides behind a router, bridge, hub or switch, in which every node is directly addressable from every other node. This is also referred to in certain networks as a sub-net. Nodes 102(l)-(N), then, are depicted in Fig. 5 1A as being in a segment (depicted in Fig. IA as a sub-net 108). In a non-switched environment, frames are handled in a broadcast manner. That is, when one node transmits a frame, it is 'seen' by every node on the segment. Each node, in turn, briefly examines -2 the frame to see if the frame is addressed to the given node. If not, the given node discards the frame. However, if the node is the intended recipient, the node accepts the frame for processing. For the purposes of this discussion, node 102(2) is designated as the host that employs a sniffing agent. Nodes 102(1) and 102(3) represent the 'innocents' who are merely trying to communicate with one another. 5 Fig. lB is a flow diagram illustrating the flow of traffic in a non-switched network when one or more datastreams in the network are sniffed. In order for a node to be used as a sniffing agent, the node's network interface is set to 'promiscuous' mode. Setting this mode typically requires root or administrator access at the node. After this mode is set, the node's network interface will no longer drop network frames which are addressed to other hosts. Rather, the node's network interface will pass 10 these frames up to the higher network layers with the expectation that some software at a higher layer will process such frames. The process depicted in Fig. 1B begins with node 102(1) transmitting a frame, and indicating in the frame that the frame is being transmitted to node 102(3) (step 150). Hub 106 then broadcasts the frame to each of its active ports (step 155). Node 102(2) receives the frame and examines the 15 destination address in the frame (steps 160 and 165). Because node 102(2) is set to 'promiscuous' mode (step 170), node 102(2) accepts the frame (although not addressed to node 102(2)) (step 175). As noted, setting the node's network interface to 'promiscuous' mode allows the network interface to accept any frames, regardless of the address (e.g., MAC (Media Access Control) address) in the frame. However, even though the interface will save the frame, some higher level software is typically required 20 to process the data. Next, others of nodes 102(l)-(N) (e.g., other nodes coupled to active ports on hub 106) receive the frame and determine that they are not the intended host (steps 160, 165 and 170), and so discard the frame (step 180). (Of course, were the network interface of node 102(2) not set to 'promiscuous' mode, node 102(2) would ignore the packet, as well.) In the case of the intended destination (node 102(3)), node 102(3) also receives the frame and examines the frame's destination 25 address (steps 160 and 165). After node 102(3) determines that it is the intended host (step 125), node 102(3) processes the frame further (step 185). For completeness, it should be noted that the actions of steps 160/165/170/180, 160/165/170/175, and 160/165/185 may variously be transposed or occur simultaneously, as the prediction as to which node will receive the frame irst is not important for purposes of this discussion. 30 For practical purposes, it can be assumed that these operations occur at the same time, without loss of generality. From Figs. 1A and IB, it can be seen that a non-switched environment is susceptible to sniffing. Such an environment requires little extra effort on the part of the sniffing agent, because the hub broadcasts the frames to all active ports. As alluded to earlier, several such sniffing utilities exist, 35 and are publicly available. Such capabilities allow unscrupulous parties to view information as the -3 information is passed between "innocent" nodes, unnoticed by those nodes or their users, in an arrangement referred to as a "man-in-the-middle" attack. Moreover, once a hacker sniffing the datastrearn have inserted themselves between the innocent parties, the hacker is at liberty to generate all manner of replies to either side, in a completely transparent manner. 5 Fig. 2A is a block diagram illustrating generally the architecture of a switched network environment, depicted in Fig. 2A as a network 200. In a switched network environment, the concept of a network segment continues to exist, but such a network segment includes only the switch and the node concerned, and frames are handled in a direct manner. That is, frames from a first node to a second node are only sent across the circuits in the switch that are necessary to complete a connection between 10 the first and second nodes. Included in network 200 are a number of nodes (nodes 202(l)-(N)) that are coupled to a router 204 by a switch 206. Each of nodes 202(1)-(N) is coupled to a respective port of switch 206 (not shown). In the switched network environment depicted in Fig. 2A, the concept of a network segment exists. A segment is a network architecture that resides behind a router, bridge, switch or switch, in 15 which every node is directly addressable from every other node. This is also referred to in certain networks as a sub-net. Nodes 202(1) and 202(3), then, are depicted in Fig. 2A as being in a segment (depicted in Fig. 2A as a sub-net 208). Fig. 2B is a flow diagram illustrating the normal flow of traffic in a switched network. First, node 202(1) transmits a frame, and indicates in the frame that the frame is being transmitted to node 20 202(3) (step 210). Switch 206 then examines the frame and determines to which node (port) a connection should be made (step 220). Once this determination has been made, switch 206 configures a connection between the ports to which nodes 202(1) and 202(3) are coupled, respectively (step 230). Switch 206 then forwards the frame to its intended node, node 202(3) (step 240). Once node 202(3) receives the frame, node 202(3) examines the frame's destination address to determine if node 202(3) is 25 the frame's intended destination (step 250). If this address determination indicates that node 202(3) is not the proper destination, the frame is not processed. Otherwise, node 202(3) performs whatever processing is a matter of course for the frame (step 260). This mode of operation carries some intrinsic benefits: 1) Lower network traffic because frames are not broadcasted to each node, which translates to 30 a higher bandwidth through a reduction in the collision domain. 2) Lower node processing overhead as a result of each node only having to process frames that are meant for that node.
-4 However, there are some tradeoffs. For example, the switch is burdened with higher overhead processing requirements because the switch must create, on the fly, virtual connections between machines. As can be seen, a switched network is not as exposed to sniffing as a non-switched network 5 because a non-switched network does not broadcast most frames. However, several methods are available to sniff switched networks. An example of such methods is address resolution protocol (ARP) spoofing, which is briefly discussed below. One of the basic operations of the internet protocol (IP) revolves around ARP (Address Resolution Protocol) requests and replies. In general, when a first node wants to communicate with a 10 second node on the network, the first node sends an ARP request The second node will send an ARP reply that includes its MAC address. Even in a switched environment, this initial ARP request is sent in a broadcast manner. It is possible for a third node to craft and send an unsolicited, fake ARP reply to the first node. This fake ARP reply will specify that the third node has the IP address of the second node. The first node then unwittingly sends the traffic to the third node since the third node has 15 represented itself to have the intended IP address. Some available tools are specialized for sending fake ARP replies to classes of machines (e.g., NFS servers, HTTP servers and the like). One such tool is "dsniff' and works well in sniffing for specific types of traffic. Other tools listen for the general ARP request and send the fake ARP reply at that time, and serve well to sniff an entire network. For this type of attack to work, the ability to forward the frames received on to their intended destination. This 20 is most commonly achieved through some type of IP forwarding, either at the kernel or application level. While there are several methods to protect again such attacks, each is not without its own disadvantages. (It will be noted that some of these methods are applicable to both non-switched and switched network environments.) These solutions include IP filtering, port security, and routing 25 security. By enabling IP filtering on the switch, a user directly specifies which traffic is allowed to flow to and from each port While potentially effective, such an approach can be a monumental effort to put in place and manage, especially if the environment is dynamic. Alternatively, if the hub or switch has the ability to enable port security, such measures can 30 help to protect the network's nodes from both MAC flooding and MAC spoofing attacks. This feature effectively prevents the hub or switch from recognizing more than one MAC address on a physical port. However, this, like many security procedures, restricts the environment and amplifies the need for a management process, as well as an auditing process.
H , .ospA I .tNRPoIbnDKCCSPM%5D, I oc-S/11032014 -5 Moreover, pushing security to the network node level is undesirable for a variety of reasons. First, it makes the source of security available to anyone with access to such nodes. Also, it greatly amplifies the task of managing such security measures, because each node must be separately configured to support such security measures. This proves 5 particularly challenging in network environments where nodes' connectivity changes dynamically (e.g., the laptop example). It is desired to address or ameliorate one or more disadvantages or limitations associated with the prior art, or to at least provide a useful alternative. SUMMARY 10 In accordance with the present invention there is provided a network device comprising: a forwarding engine, wherein said forwarding engine comprises a data bus interface, wherein said data bus interface is coupled to receive a packet via a data bus, 15 a result bus interface, wherein said result bus interface is coupled to provide control of said network device via a result bus, a lookup table, wherein said lookup table is coupled to said data bus interface and said result bus interface, and a lookup table controller, wherein said lookup table controller is 20 coupled to receive an output of said lookup table, said forwarding engine is configured to determine whether said packet is an inter-layer binding protocol packet by virtue of being configured to analyze a header of said packet using said lookup table, information within a header of said inter-layer binding protocol packet 25 represents an inter-layer binding between a first protocol layer address and a second protocol layer address, said first protocol layer address is at a first protocol layer, and said second protocol layer address is at a second protocol layer; and an inspection engine, coupled to said forwarding engine, wherein 30 said lookup table controller is configured to cause said forwarding engine to forward said packet to said inspection engine, if, based on said output of said lookup table, IMSPM\INTERWOVEN\NRPORTL\DCCSPM\605572_ I DOC - 5/3/14 Sspmin erineeinN~orIbIlDC SPMm5%72_I dx-503/2014 - 5A said lookup table controller determines said packet is said inter-layer binding protocol packet, and said inspection engine is configured to determine whether said inter-layer binding is a legal inter-layer binding by virtue of being configured to inspect said inter 5 layer binding protocol packet. The present invention also provides a network device comprising: a forwarding engine, wherein said forwarding engine further comprises 10 a data bus interface, wherein said data bus interface is coupled to receive a packet via a data bus, a result bus interface, wherein said result bus interface is coupled to provide control of said network device via a result bus, a lookup table, wherein said lookup table is coupled to said data bus 15 interface and said result bus interface, and a lookup table controller, coupled to said lookup table, said forwarding engine is configured to determine whether said packet is an inter layer binding protocol packet by virtue of being configured to analyze a header of said packet using said lookup table, 20 information within a header of said inter-layer binding protocol packet represents an inter-layer binding between a first protocol layer address and a second protocol layer address, said first protocol layer address is at a first protocol layer, and said second protocol layer address is at a second protocol layer; 25 an inspection engine, coupled to said forwarding engine, wherein said lookup table controller is configured to cause said forwarding engine to forward a packet to said inspection engine, if said forwarding engine determines said packet is said inter-layer binding protocol packet, and said inspection engine is configured to determine whether said inter-layer binding 30 is a legal inter-layer binding by virtue of being configured to inspect said inter-layer binding protocol packet; and a first port device, communicatively coupled to said forwarding engine, wherein 11 ISPM\INIRWOVEN\NRP)ORIBL\DCC\SPMI\ 6 055 672 _ DOC -- 58/14 HT p>interwociNRPonb1DCC5PM 6 72_ldo1-5/n3/201 -5B said forwarding engine is configured to receive said packet from said first port device, and said inspection engine is further configured to 5 receive said packet from said forwarding engine, if said forwarding engine determines said packet is said inter-layer binding protocol packet, and indicate to said forwarding engine that said inter-layer binding protocol packet is acceptable, if said inspection engine determines said inter-layer binding is said legal inter-layer binding. 10 The present invention also provides a method for inspecting packets comprising: processing a packet, wherein said processing comprises determining if said packet is an inter-layer binding protocol packet, wherein information within a header of said inter-layer binding protocol 15 packet represents an inter-layer binding between a first protocol layer address and a second protocol layer address, said first protocol layer address is at a first protocol layer, and said second protocol layer address is at a second protocol layer, if said packet is an inter-layer binding protocol packet, inspecting said 20 packet, wherein said inspecting determines whether said inter-layer binding is a legal inter layer binding by analyzing a header of said packet using one or more filtering rules, if said inspecting determines said inter-layer binding is not said legal inter layer binding, performing a first action with regard to said packet, if said inspecting determines said inter-layer binding is said legal inter-layer 25 binding, performing a second action with regard to said packet, performing said processing on said packet, and limiting a rate at which said processing is performed on said packets, wherein said packet is received at a port, a port threshold is defined for said port, and 30 said limiting comprises comparing a total number of said packets to said port threshold, and II 'SPMlNTIRWOVEN\NRPORTBL\DCC\SPM\6055 672 _I DOC - 5//14 H.cspm2 mcrnoniNR~onlh.CCIM 22_L~dc-5/10/2014 - 5C dropping said packet, if said comparison indicates said packet should be dropped. 5 The present invention further provides a network element comprising: a processor; a computer-readable storage medium coupled to said processor; and computer code for inspecting packets, said computer code encoded in said computer-readable storage medium and configured to cause said processor to perform 10 processing on a packet by virtue of being configured to determine if said packet is an inter-layer binding protocol packet, wherein said packet is one of said packets, information within a header of said inter-layer binding protocol packet represents an inter-layer binding between a first protocol layer address and a second 15 protocol layer address, said first protocol layer address is at a first protocol layer, and said second protocol layer address is at a second protocol layer, perform inspection of said packet, if said determining indicates said packet is an inter-layer binding protocol packet, wherein 20 said inspecting determines whether said inter-layer binding is a legal inter-layer binding by analyzing a header of said packet using one or more filtering rules, if said inspection determines said inter-layer binding is not said legal inter layer binding, perform a first action with regard to said packet, and if said inspection determines said inter-layer binding is said legal inter-layer 25 binding, perform a second action with regard to said packet. The present invention further provides a computer program product for inspecting packets, comprising: a first set of instructions, executable on a computer system, configured to process a 30 packet, wherein said first set of instructions comprises a first subset of instructions, executable on said computer system, configured to determine if said packet is an inter-layer binding protocol packet, H \SP1 iNTERWOVENNRPORTBL\DCC\SPM\6055 672 _ .DOC - 5/314 l v'' lmnIvINRPrtbhDCCSPMVPM%7_1.doc-MMfl2U14 -5D wherein information within a header of said inter-layer binding protocol packet represents an inter-layer binding between a first protocol layer address and a second protocol layer address, 5 said first protocol layer address is at a first protocol layer, and said second protocol layer address is at a second protocol layer, a second subset of instructions, executable on said computer system, configured to inspect said packet, if said packet is an inter-layer binding protocol packet, wherein said second set of instructions comprise 10 a first sub-subset of instructions, executable on said computer system, configured to determine whether said inter-layer binding is a legal inter-layer binding by analyzing a header of said packet using one or more filtering rules, a third subset of instructions, executable on said computer system, configured to perform a first action with regard to said packet, if said second set of 15 instructions indicate said inter-layer binding is not said legal inter-layer binding, and a fourth subset of instructions, executable on said computer system, configured to perform a second action with regard to said packet if said second set of instructions indicate said inter-layer binding is said legal inter-layer binding; and a computer-readable storage medium, wherein said computer program product is 20 encoded in said computer-readable storage medium. The present invention further provides an apparatus for inspecting packets comprising: means for processing a packet comprising 25 means for determining if said packet is an inter-layer binding protocol packet, wherein said packet is one of a plurality of packets, information within a header of said inter-layer binding protocol packet represents an inter-layer binding between a first protocol layer address and a second 30 protocol layer address, said first protocol layer address is at a first protocol layer, and said second protocol layer address is at a second protocol layer, 11 \SPM\INTERWOVfN\NRPORTBI.ADCC\SPM\6055 6 7 2 _ _DOC - 5/3/14 ||I:\pn\inlenvo'Cni\NRPonblIDCflSPM\6055672 _ Idoc-5/If,2II14 - 5E means for inspecting said packet, if said packet is said inter-layer binding protocol packet, wherein said means for inspecting and said means for processing are coupled to one 5 another, and said means for inspecting is configured to determine whether said inter layer binding is a legal inter-layer binding by analyzing a header of said packet using one or more filtering rules, means for performing a first action with regard to said packet, if said means for 10 inspecting determines said inter-layer binding is not said legal inter-layer binding, and means for performing a second action with regard to said packet, if said means for inspecting determines said inter-layer binding is said legal inter-layer binding, means for causing said means for processing to process each of said packets, and means for limiting a rate at which said means for processing processes said each of 15 said packets, wherein said packets are received at a port, a port threshold is defined for said port, and said means for limiting comprises means for comparing a total number of said packets to said port 20 threshold, and means for dropping said packet, if said means for comparing indicates said packet should be dropped. In one embodiment, a network device is disclosed. The network device includes a 25 forwarding engine and an inspection engine, coupled to the forwarding engine. The forwarding engine is configured to forward a packet to the inspection engine, if the packet is a inter-layer binding protocol packet. The inspection engine is configured to inspect the inter-layer binding protocol packet. In one embodiment, a method for inspecting packets is disclosed. The method 30 includes processing a packet by determining if the packet is an inter-layer binding protocol packet and inspecting the packet, if the packet is an inter-layer binding protocol packet. The inter-layer binding protocol packet indicating a binding between a first network layer Fl\SPIM\INI ERWOVEN\NRPORTBL\DCC\SPM\6055672
_
I DOC - 5/314 H-i is {icreiNRPcnblIDCCSP IV 55672_ I.doc-5/1120)14 - 5F address and a second network layer address. The foregoing is a summary and thus contains, by necessity, simplifications, 11SP\lNTERWOVEN\NRPORFIl.\CCSPM\6055672_I DOC -5/3/14 C .NRPonblDCOTR 4297611_ I DOC-2RA/2012 - 5E generalizations and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description 5 set forth below. BRIEF DESCRIPTION OF TH E DRAWINGS Preferred embodiments of the present invention are hereinafter further described, by way of non-limiting example only, with reference to the accompanying drawings, in which: 10 FIG. l A is a block diagram illustrating a non-switched network of the prior art. FIG. I B is a flow diagram illustrating the operation of a non-switched network of the prior art. FIG. 2A is a block diagram illustrating a switched network of the prior art. FIG. 2B is a flow diagram illustrating the operation of a switched network of the 15 prior art. FIG. 3 is a flow diagram illustrating, generally, a process for inter-layer binding inspection according to embodiments of the present invention.
-6 Fig. 4A is a block diagram illustrating a network according to embodiments of the present invention. Fig. 4B is a block diagram illustrating portions of the network of Fig. 4A in greater detail. Fig. 5 is a block diagram illustrating a switch according to embodiments of the present 5 invention. Fig. 6 is a block diagram illustrating in further detail the features of a forwarding engine according to embodiments of the present invention. Fig. 7 is a flow diagram which illustrates a process such as that depicted in Fig. 3 when implemented on a network element according to Fig. 5. 10 Fig. 8 is a flow diagram of a process for rate limiting inter-layer binding protocol packets according to embodiments of the present invention. The use of the same reference symbols in different drawings indicates similar or identical items. DETAILED DESCRIPTION OF THE INVENTION 15 The following is intended to provide a detailed description of an example of the invention and should not be taken to be limiting of the invention itself. Rather, any number of variations may fall within the scope of the invention which is defined in the claims following the description. Introduction Systems and methods according to embodiments of the present invention provide for the 20 inspection of inter-layer binding protocol (ILBP) packets to prevent erroneous and/or unauthorized bindings from being given effect, and so causing mis-routing of information (e.g., packets) in the affected network. An example of an ILBP is the address resolution protocol (ARP), which binds an internet protocol (IP) address (layer 3) to a media access control (MAC) address (layer 2). Another example of an ILBP is the network discovery protocol (NDP) of IP version 6. Such systems and 25 methods provide such protection by identifying ILBP packets and analyzing only those packets, thus minimizing the method's impact on throughput. If the packets are illegal, either due to malicious or mistaken actions, the illegal packet is dropped. Moreover, rate limiting can be achieved by dropping ILBP packet(s) prior to analysis, by shutting down a port transmitting large volumes of such packets, or other appropriate response. This prevents packet storms, and the overload of the inspection engine 30 analyzing such packets.
-7 Example of Inter-Layer Binding Inspection According to the Present Invention Fig. 3 is a flow diagram illustrating, generally, a process for inter-layer binding inspection according to embodiments of the present invention. The process begins with the receipt of a protocol packet (or frame or other unit of communication) (step 300). A determination is first made as to 5 whether the packet received is a binding protocol packet and so needing analysis (step 310). If the packet received is not a binding protocol packet, the packet is passed on for further processing (or forwarding to the next network node or destination node) (step 320). Conversely, if the packet received is a binding protocol packet, the packet is analyzed based on filtering mles (step 330). Next, a determination is made as to whether the packet, based on the filtering rules employed, is acceptable 10 (step 340). If the packet received is an acceptable packet, the packet is again passed on for further processing (or forwarding to the next network node or destination) (step 320). However, if the packet received is not acceptable, based on the filtering rules employed (step 340), appropriate action is taken in response to the receipt of the bad packet (step 350). Such actions include simply dropping the bad packet, logging the receipt of the bad packet, or interrupting the flow of packets from the given source 15 node, or a combination thereof, among other such possible actions. As noted, Fig. 3 depicts a flow diagram illustrating a process according to an embodiment of the present invention. It is appreciated that operations discussed herein may consist of directly entered commands by a computer system user or by steps executed by application specific hardware modules, but the preferred embodiment includes steps executed by software modules. The functionality of steps 20 referred to herein may correspond to the functionality of modules or portions of modules. The operations referred to herein may be modules or portions of modules (e.g., software, firmware or hardware modules). For example, although the described embodiment includes software modules and/or includes manually entered user commands, the various example modules may be application specific hardware modules. The software modules discussed herein may include script, 25 batch or other executable files, or combinations and/or portions of such files. The software modules may include a computer program or subroutines thereof encoded on computer-readable media. Additionally, those skilled in the art will recognize that the boundaries between modules are merely illustrative and alternative embodiments may merge modules or impose an alternative decomposition of functionality of modules. For example, the modules discussed herein may be 30 decomposed into submodules to be executed as multiple computer processes, and, optionally, on multiple computers. Moreover, alternative embodiments may combine multiple instances of a particular module or submodule. Furthermore, those skilled in the art will recognize that the operations described in example embodiment are for illustration only. Operations may be combined or the functionality of the operations may be distributed in additional operations in accordance with the 35 invention.
Alternatively, such actions may be embodied in the structure of circuitry that implements such functionality, such as the micro-code of a complex instruction set computer (CISC), firmware programmed into programmable or erasable/programmable devices, the configuration of a field programmable gate array (FPGA), the design of a gate array or full-custom application-specific 5 integrated circuit (ASIC), or the like. Each of the blocks of the flow diagram may be executed by a module (e.g., a software module) or a portion of a module or a computer system user using, for example, a computer system such as a computer system 800, described subsequently. Thus, the above described method, the operations thereof and modules therefor may be executed on a computer system configured to execute the 10 operations of the method and/or may be executed from computer-readable media. The method may be embodied in a machine-readable and/or computer-readable medium for configuring a computer system to execute the method. Thus, the software modules may be stored within and/or transmitted to a computer system memory to configure the computer system to perform the functions of the module. Such a computer system normally processes information according to a program (a list of 15 internally stored instructions such as a particular application program and/or an operating system) and produces resultant output information via I/O devices. A computer process typically includes an executing (running) program or portion of a program, current program values and state information, and the resources used by the operating system to manage the execution of the process. A parent process may spawn other, child processes to help perform the overall functionality of the parent process. 20 Because the parent process specifically spawns the child processes to perform a portion of the overall functionality of the parent process, the functions performed by child processes (and grandchild processes, etc.) may sometimes be described as being performed by the parent process. Such a computer system typically includes multiple computer processes executing "concurrently." Often, a computer system includes a single processing unit which is capable of 25 supporting many active processes alternately. Although multiple processes may appear to be executing concurrently, at any given point in time only one process is actually executed by the single processing unit. By rapidly changing the process executing, a computer system gives the appearance of concurrent process execution. The ability of a computer system to multiplex the computer system's resources among multiple processes in various stages of execution is called multitasking. Systems with multiple 30 processing units, which by definition can support true concurrent processing, are called multiprocessing systems. Active processes are often referred to as executing concurrently when such processes are executed in a multitasking and/or a multiprocessing environment. The software modules described herein may be received by such a computer system, for example, from computer readable media. The computer readable media may be permanently, 35 removably or remotely coupled to the computer system. The computer readable media may non- -9 exclusively include, for example, any number of the following: magnetic storage media including disk and tape storage media. optical storage media such as compact disk media (e.g., CD-ROM, CD-R, etc.) and digital video disk storage media. nonvolatile memory storage memory including semiconductor based memory units such as FLASH memory, EEPROM, EPROM, ROM or application specific 5 integrated circuits. volatile storage media including registers, buffers or caches, main memory, RAM, and the like. and data transmission media including computer network, point-to-point telecommunication, and carrier wave transmission media. In a UNIX-based embodiment, the software modules may be embodied in a file which may be a device, a terminal, a local or remote file, a socket, a network connection, a signal, or other expedient of communication or state change. Other new and 10 various types of computer-readable media may be used to store and/or transmit the software modules discussed herein. Fig. 4A illustrates a network 400 according to embodiments of the present invention. Network 400 includes a number of user nodes (depicted in Fig. 4A as nodes 410(l)-(N)), an ISP 420, and internet 430. ISP 420, as depicted in Fig. 4A, supports connectivity between nodes 410(1)-(N) and 15 internet 430 using a router 440 and a switch 450. Switch 450 supports processes according to embodiments of the present invention, as so protects nodes 410(l)-(N) from "man-in-the-middle" attacks, sniffing and other such attacks, as well as erroneous inter-layer bindings. It will be noted that, in a more general sense, the structures and process of the present invention can be included in other network elements (e.g., router 440) without loss of generality or applicability, as the functionality of 20 such network elements may be combined. It will also be noted that, while the discussion herein is in terms of a switch (switch 450), this is merely an illustrative example - the present invention could be implemented in a hub or other environment. Fig. 4B illustrates portions of network 400 in greater detail. Switch 450 is now depicted as including a forwarding engine 460 and an inspection engine 470. Forwarding engine 460, in the 25 simplest terms, makes a determination as to which port (and so node) a packet is forwarded (i.e., sent). Inspection engine 470 performs the function of inspecting those packets forwarded for inspection by forwarding engine 460. Also shown in Fig. 4B are two paths that packets may take through switch 450, a normal path 480 and an inspection path 490. As is apparent, normally, packets follow normal path 480, from, for example, node 410(1), through forwarding engine 460, to the intended destination, node 30 410(2). These packets are the greater majority of the packets processed by switch 450, and so a process such as that depicted in Fig. 3, carried out by switch 450, has little impact on such traffic flow. However, for the inter-layer binding protocol packets which are of interest, an alternate path is followed, that of inspection path 490. In following inspection path 490, such packets are sent, for example, from a given node (e.g., node 4 10(1)), intended for another such node (e.g., node 410(2)), but 35 are forwarded by forwarding engine 460 to inspection engine 470 for inspection, as a result of their being inter-layer binding protocol packets. If inspection engine 470 finds that the packets are -10 acceptable, inspection engine 470 then returns the now-inspected packets to forwarding engine 460, for forwarding on to their destination (e.g., node 410(2)). Fig. 5 is a block diagram illustrating switch 450 and details pertinent to the description of embodiments of the present invention in greater detail. Switch 450, as depicted in Fig. 5, includes a 5 number of line cards (lines cards 500(1)-(N)) which are coupled to forwarding engine 510 (in the manner of forwarding engine 460 of Fig. 4B) and a processor 520 (in the manner of inspection engine 470 of Fig. 4B) via data bus 530 and result bus 540 (again, in the manner of Fig. 4B). Each of line cards 500(1)-(N) includes, among other structures, a number of port devices (depicted in Fig. 5 as port ASICs (1,1)-(NN)) which are under the control of a port controller (depicted in Fig. 5 as being 10 controlled by a respective one of port ASIC controllers 560(1)-(N)). As noted in connection with Fig. 4B, while a non-ILBP packet is simply forwarded to it's intended port, an ILBP packet is identified and analyzed, in a system according to the present invention. In terms of Fig. 5, upon receipt, a packet (of either type) is sent from the one of port ASICs 550(1,1) (N,N) at which the packet was received to those devices coupled to data bus 530 (e.g., others of port 15 ASICs 550(1, 1)-(NN) and FE 510). FE 510 then makes a determination as to whether the packet is an ILBP packet If such is not the case, the (non-ILBP) packet is forwarded by FE 510 to the intended one of port ASICs 550(l,l)-(N,N) by indicating to a corresponding one of port ASIC controllers 560(l)-(N) that the copy of the packet held in the given one of port ASICs 550(1, 1)-(N,N) should be sent-out on the corresponding port. 20 However, if the packet is an ILBP packet, the (ILBP) packet is forwarded to processor 520 for inspection. Processor 520 inspects the packet (to some degree, under software control (depending on how specialized processor 520 is architected, design decisions between hardware and software implementation, and the like). If the packet contains an illegal binding (e.g., a bad ARP packet with an illegal binding between IP and MAC address), processor 520 indicates to FE 510 and port ASIC 25 controllers 560(l)-(N) that the packet in question should be dropped. Thus, the packet is never sent out of switch 450. Alternatively, if the packet contains a legal binding, processor 520 indicates to FE 510 and port ASIC controllers 560(l)-(N) that the packet in question is acceptable, and FE 510 indicates to a corresponding one of port ASIC controllers 560(1)-(N) that the copy of the packet held in the given one of port ASICs 550(l,1)-(NN) should be sent out on the corresponding port. 30 Fig. 6 is a block diagram illustrating in further detail the features of forwarding engine (FE) 510. As in Fig. 5, FE 510 is depicted in Fig. 6 as being coupled to data bus 530 and result bus 540. FE 510 interfaces with data bus 530 via a data bus interface 600. In a similar manner, FE 510 interfaces with result bus 540 via an result bus interface 610. Among other structures contained in FE 510, a lookup table 620 is coupled at an input to data bus interface 600, and at an output to result bus interface 35 610. Lookup table 620 receives packets from data bus 530 via data bus interface 600 and, after - 11 performing an analysis on the given packet, provides control to various of the structures of switch 450 on result bus 540 via result bus interface 610. Lookup table 620 is under the control of a lookup controller 630, which interfaces, in turn, with a processor interface 640. Fig. 7 is a flow diagram which illustrates a process such as that depicted in Fig. 3 when 5 implemented on a network element supporting the structures depicted in Fig. 5. With that being the case, the actions depicted in Fig. 7 will be discussed in terms of the structures that appear in Figs. 5 and 6. The process depicted in Fig. 7 begins with the receipt of a packet by one of port ASICs (1,1)-(NN) (step 700). This packet will be intended for another network node attached to one other of port ASICs (1, l)-(NN), and typically, a one of port ASICs (1,1)-(NN) on another one of line cards (1)-(N). 10 In certain embodiments of switch 450 and the present invention, the packet in question is passed to all possible destinations within switch 450 (e.g., including processor 520, others of port ASICs 550(l,1)-(NN) and FE 510) (step 720). In such a scenario, while all (or a subset of all) possible locations receive the given packet, barring the receipt of instructions (or control signals) to actually process the given packet, these destinations will simply drop or overwrite the packet, ignoring its 15 receipt. Next, having received the given packet, FE 510 proceeds with a pre-inspection analysis of the packet (step 730). Depending on how FE 510 is programmed, and the inter-layer binding protocol packets to be inspected, FE 510 may take any number of actions at this point. While implementing a reasonably large amount of this process in hardware is desirable, it will be apparent to one of skill in the art that the ability to load the rules used in analyzing packets in a 20 manner according to embodiments of the present invention is also desirable, because the use of software-based rules allows for ease of upgrade, dynamic analysis, lower cost resulting fmm simpler hardware, and other such advantages. A determination is then made as to whether the packet received is an inter-layer binding protocol packet (e.g., in the case contemplated in Fig. 7, and ARP/RARP packet) (step 740). In most cases, typically, the received packet will not be an inter-layer binding 25 protocol packet, and so, after the forwarding engine generates the result, the packet is transmitted to the intended one of port ASICs 550 (l,l)-(NN), for transmission to the intended node (step 750). In this way, the analysis of packets to determine whether an inter-layer binding is allowable is not part of the critical path for the typical packet, and so does not greatly impact the flow of packets through switch 450. However, if the packet is an inter-layer binding protocol packet (again, e.g., an ARP/RARP 30 packet), the copy of the packet sent to processor 520 is analyzed by processor 520 to ensure that the inter-layer binding asserted therein is legal (step 760). If the inter-layer binding asserted in the packet is acceptable (step 770), the packet is transmitted by the intended port ASIC, as before (step 750). If the packet is determined to be unacceptable (step 770), the bad packet is processed (step 780). This processing can take on any one of a number of forms including simply dropping the 35 packet, once analyzed. Unfortunately, once an unfriendly party (e.g., a hacker) learns of this ability to -121 - 12 distinguish forged inter-layer bindings, the unfriendly party may then attempt to flood the analysis of such packets by sending inordinately large number of such packets in an attempt to overwhehn the 'analysis performed by processor 520. In that case, the processing of bad packets can be designed to cope with such situations, as described in further detail with regard to Fig. 8. 5 Fig. 8 is a flow diagram of a process for rate limiting inter-layer binding protocol (ILBP) packets to avoid being overwhelmed by a flood of such packets. The process of Fig. 8 begins with a determination as to whether the total number of such packets have exceeded a limit, which may be pre set or dynamic (step 800). As noted previously, an advantage of such software-based analysis is the ability to dynamically respond to varying packet traffic conditions, and so take into account network 10 conditions when performing such analyses. If the total number of packets has exceeded this limit (step 800), the packet(s) can simply be dropped (step 810). It should be noted that FE 510 can perform any one of a number of actions based on rules indicating, for example, whether FE 510 should drop the packet (prior to its analysis by processor 520), or in the alternative, cause the inbound port on which the bad packet was received to be closed. In the 15 example depicted in Fig. 8, if the total number of packets received (e.g., in a given unit time) exceeds the limit that is currently in place (step 800), FE 510 simply drops the packet, prior to sending the packet to processor 520 for analysis, and informs port ASIC controllers 560(l)-(N) that copies of the bad packet potentially held by one or more of port ASICs 550(l,1)-(N,N) should be dropped as well (step 810). 20 If the total number of packets received (e.g., in a given unit time) has not exceeded the limit that is currently in place (step 800), a determination is made as to whether a second limit, referred to herein as a port shutdown limit, has been exceeded (step 820). Such a condition can indicate any one of a number of problems, including a packet storm caused either maliciously or erroneously. If the port shutdown limit has been exceeded, the offending (inbound) port is shut down (step 830). This 25 effectively disconnects the node generating the large numbers of ILBP packets from the rest of the network, as well as the internal structures of switch 450 (in particular, FE 510 and processor 520). This prevents, for example, a third party, having detected that packets sent to enable sniffing have been dropped, the third party from causing an overload situation in order to force a switch to accept bad ILBP packets or the like. Also, if the total number of packets received (e.g., in a given unit time) has 30 not exceeded the limit that is currently in place (step 800), a determination is also made as to whether a third limit, referred to herein as a port drop threshold, has been exceeded (step 840). Here, the number of illegal ILBP packets has exceed some limit, and so the offending packet(s) should be dropped (step 810). If the port drop threshold has not been exceeded and the port has not been shutdown, the packet(s) is (are) passed to the inspection engine (e.g., processor 520) for inspection (step 850).
CI.NRPonblIU)CC\TRN\42$7611_l DOC-2(014/29112 - 13 While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from this invention and its broader aspects and, therefore, the appended claims are to encompass within their scope 5 all such changes and modifications as are within the true spirit and scope of this invention. Moreover, while the invention has been particularly shown and described with reference to these specific embodiments, it will be understood by those skilled in the art that the foregoing and other changes in the form and details may be made therein without departing from the spirit or scope of the invention. 10 Throughout this specification and the claims which follow, unless the context requires otherwise, the word "comprise", and variations such as "comprises" and "comprising", will be understood to imply the inclusion of a stated integer or step or group of integers or steps but not the exclusion of any other integer or step or group of integers or steps. 15 The reference in this specification to any prior publication (or information derived from it), or to any matter which is known, is not, and should not be taken as an acknowledgment or admission or any form of suggestion that that prior publication (or information derived from it) or known matter forms part of the common general knowledge in the field of endeavour to which this specification relates.

Claims (20)

1. A network device comprising: a forwarding engine, wherein said forwarding engine comprises 5 a data bus interface, wherein said data bus interface is coupled to receive a packet via a data bus, a result bus interface, wherein said result bus interface is coupled to provide control of said network device via a result bus, a lookup table, wherein said lookup table is coupled to said data bus 10 interface and said result bus interface, and a lookup table controller, wherein said lookup table controller is coupled to receive an output of said lookup table, said forwarding engine is configured to determine whether said packet is an inter layer binding protocol packet by virtue of being configured to analyze a header of said 15 packet using said lookup table, information within a header of said inter-layer binding protocol packet represents an inter-layer binding between a first protocol layer address and a second protocol layer address, said first protocol layer address is at a first protocol layer, and 20 said second protocol layer address is at a second protocol layer; and an inspection engine, coupled to said forwarding engine, wherein said lookup table controller is configured to cause said forwarding engine to forward said packet to said inspection engine, if, based on said output of said lookup table, said lookup table controller determines said packet is said inter-layer binding protocol 25 packet, and said inspection engine is configured to determine whether said inter-layer binding is a legal inter-layer binding by virtue of being configured to inspect said inter-layer binding protocol packet. 30
2. The network device of claim 1, wherein said inspection engine is configured to inspect said inter-layer binding protocol packet by virtue of being configured to inspect said inter-layer binding represented therein. II \SPM\lN I iRWOVFN\NRI'ORTBlL\DCC\SPMI\6055672_ I DOC - 5/3/14 ll Ssp I ImInerum)le)NRIIorib] DCC SPP~fI5i672_).doc-51 120.J4 15
3. The network device of claim 2, wherein said inter-layer binding protocol packet is an Address Resolution Protocol (ARP) packet and said inter-layer binding is an inter-layer binding between an Internet Protocol (IP) address and a Media Access Control (MAC) 5 address.
4. The network device of claim 1, further comprising: a first port device, communicatively coupled to said forwarding engine; a second port device, communicatively coupled to said forwarding engine and said 10 first port device; and a port device controller, coupled to control said second port device and coupled to be controlled by said forwarding engine.
5. The network device of claim 4, wherein 15 said forwarding engine is configured to receive said packet from said first port device, said second port device is configured to receive said packet from said first port device, and said forwarding engine is further configured to cause said port device controller to 20 cause said second port device to process said packet, if said packet is not said inter-layer binding protocol packet.
6. A network device comprising: a forwarding engine, wherein 25 said forwarding engine further comprises a data bus interface, wherein said data bus interface is coupled to receive a packet via a data bus, a result bus interface, wherein said result bus interface is coupled to provide control of said network device via a result bus, 30 a lookup table, wherein said lookup table is coupled to said data bus interface and said result bus interface, and a lookup table controller, coupled to said lookup table, II \SPlM\INTERWOVEN\NRPORTBL\)CC\SPMII\6 55622_1 DOC - 5/3i14 H spiimrcnmc~erNRPorib[DCOSSFPfM 55672.doca.5/'312014 16 said forwarding engine is configured to determine whether said packet is an inter layer binding protocol packet by virtue of being configured to analyze a header of said packet using said lookup table, information within a header of said inter-layer binding protocol packet represents 5 an inter-layer binding between a first protocol layer address and a second protocol layer address, said first protocol layer address is at a first protocol layer, and said second protocol layer address is at a second protocol layer; an inspection engine, coupled to said forwarding engine, wherein 10 said lookup table controller is configured to cause said forwarding engine to forward a packet to said inspection engine, if said forwarding engine determines said packet is said inter-layer binding protocol packet, and said inspection engine is configured to determine whether said inter-layer binding is a legal inter-layer binding by virtue of being configured to inspect said inter-layer 15 binding protocol packet; and a first port device, communicatively coupled to said forwarding engine, wherein said forwarding engine is configured to receive said packet from said first port device, and said inspection engine is further configured to 20 receive said packet from said forwarding engine, if said forwarding engine determines said packet is said inter-layer binding protocol packet, and indicate to said forwarding engine that said inter-layer binding protocol packet is acceptable, if said inspection engine determines said inter-layer binding is said legal inter-layer binding. 25
7. The network device of claim 6, further comprising: a second port device, communicatively coupled to said forwarding engine and said first port device; and a port device controller, wherein 30 said port device controller is coupled to control said second port device and coupled to be controlled by said forwarding engine, and said forwarding engine is further configured to [.SPM\lINERWOVI:N\NRPORIBL\DCC\SPM\605 56 7 2 _L DOC - 5/3114 IH pn ewwtN~nhD~SM\057_L1doc5/I/2014I 17 cause said port device controller to cause said second port device to process said packet, if said packet is said inter-layer binding protocol packet and if said inter-layer binding protocol packet is acceptable. 5
8. A method for inspecting packets comprising: processing a packet, wherein said processing comprises determining if said packet is an inter-layer binding protocol packet, wherein information within a header of said inter-layer binding protocol packet represents an inter-layer binding between a first protocol layer address and a second 10 protocol layer address, said first protocol layer address is at a first protocol layer, and said second protocol layer address is at a second protocol layer, if said packet is an inter-layer binding protocol packet, inspecting said packet, wherein said inspecting determines whether said inter-layer binding is a legal inter 15 layer binding by analyzing a header of said packet using one or more filtering rules, if said inspecting determines said inter-layer binding is not said legal inter layer binding, performing a first action with regard to said packet, if said inspecting determines said inter-layer binding is said legal inter-layer binding, 20 performing a second action with regard to said packet, performing said processing on said packet, and limiting a rate at which said processing is performed on said packets, wherein said packet is received at a port, 25 a port threshold is defined for said port, and said limiting comprises comparing a total number of said packets to said port threshold, and dropping said packet, if said comparison indicates 30 said packet should be dropped.
9. The method of claim 8, wherein said packet is one of a plurality of packets, and II (SIM\INTERWOVEN\NRPORTBL\DCC\SPN\60556 7 2_1 DOC - 5/3/14 Il:\spmum ,cmorcn\N RPonbIbDCI>SP AY5672 _1.doc-5(/20I1I 18 further comprising: performing said processing on each of said packets; and limiting a rate at which said packets are processed. 5 10. The method of claim 9, wherein said packets are received at a port and said limiting comprises: comparing a total number of said packets to a port shutdown threshold; and if said total number of said packets is greater than said port shutdown threshold, shutting down said port.
10
11. A network element comprising: a processor; a computer-readable storage medium coupled to said processor; and computer code for inspecting packets, said computer code encoded in said 15 computer-readable storage medium and configured to cause said processor to perform processing on a packet by virtue of being configured to determine if said packet is an inter-layer binding protocol packet, wherein said packet is one of said packets, information within a header of said inter-layer binding protocol 20 packet represents an inter-layer binding between a first protocol layer address and a second protocol layer address, said first protocol layer address is at a first protocol layer, and said second protocol layer address is at a second protocol layer, perform inspection of said packet, if said determining indicates said packet 25 is an inter-layer binding protocol packet, wherein said inspecting determines whether said inter-layer binding is a legal inter-layer binding by analyzing a header of said packet using one or more filtering rules, if said inspection determines said inter-layer binding is not said legal inter layer binding, perform a first action with regard to said packet, and 30 if said inspection determines said inter-layer binding is said legal inter-layer binding, perform a second action with regard to said packet. I I SI INIERWOVEN\NRPORT[lcI)(CtSII\6055672_ I DOC - S3/ 4 19
12. The network element of claim 11, wherein said packet is one of a plurality of packets, and said computer code is further configured to cause said processor to: perform said processing on each of said packets; and limit a rate at which said packets are processed. 5
13. The network element of claim 11, wherein said packets are received at a port and said computer code is configured to cause said processor to limit said rate is further configured to cause said processor to: compare a total number of said packets to a port shutdown threshold; and 10 shut down said port, if said total number of said packets is greater than said port shutdown threshold.
14. A computer program product for inspecting packets, comprising: a first set of instructions, executable on a computer system, configured to process a packet, 15 wherein said first set of instructions comprises a first subset of instructions, executable on said computer system, configured to determine if said packet is an inter-layer binding protocol packet, wherein information within a header of said inter-layer binding protocol 20 packet represents an inter-layer binding between a first protocol layer address and a second protocol layer address, said first protocol layer address is at a first protocol layer, and said second protocol layer address is at a second protocol layer, a second subset of instructions, executable on said computer system, 25 configured to inspect said packet, if said packet is an inter-layer binding protocol packet, wherein said second set of instructions comprise a first sub-subset of instructions, executable on said computer system, configured to determine whether said inter-layer binding is a legal inter 30 layer binding by analyzing a header of said packet using one or more filtering rules, a third subset of instructions, executable on said computer system, configured to perform a first action with regard to said packet, if said second set of H \SIPNi\INTERWOVEN\N RPORTBL\DCCSPM\605S672_ I DOC - 5/3/3H II spilerwicrolenN RPoibiDCC;SPM 2.J.II5(.?4 I docM13I2014 20 instructions indicate said inter-layer binding is not said legal inter-layer binding, and a fourth subset of instructions, executable on said computer system, configured to perform a second action with regard to said packet if said second set of instructions indicate said inter-layer binding is said legal inter-layer binding; and 5 a computer-readable storage medium, wherein said computer program product is encoded in said computer-readable storage medium.
15. The computer program product of claim 14, wherein said packet is one of a plurality of packets, and further comprising: 10 a second set of instructions, executable on said computer system, configured to perform said processing on said packets; and a third set of instructions, executable on said computer system, configured to limit a rate at which said packets are processed. 15
16. The computer program product of claim 15, wherein said packets are received at a port and said third set of instructions comprises: a first subset of instructions, executable on said computer system, configured to compare a total number of said packets to a port shutdown threshold; and a second subset of instructions, executable on said computer system, configured to 20 shut down said port, if said total number of said packets is greater than said port shutdown threshold.
17. An apparatus for inspecting packets comprising: means for processing a packet comprising 25 means for determining if said packet is an inter-layer binding protocol packet, wherein said packet is one of a plurality of packets, information within a header of said inter-layer binding protocol packet represents an inter-layer binding between a first protocol layer address and a second 30 protocol layer address, said first protocol layer address is at a first protocol layer, and said second protocol layer address is at a second protocol layer, 11 \SP\1NTERWOVEN\NRPORTLK.IDCC\SPM\6055672_ IDOC - 5/I4 H spmiucmkro eii.N R~knbl\DCC3SPN1H455672_)Ldoc-5/ilh/201I 21 means for inspecting said packet, if said packet is said inter-layer binding protocol packet, wherein said means for inspecting and said means for processing are coupled to one another, and 5 said means for inspecting is configured to determine whether said inter layer binding is a legal inter-layer binding by analyzing a header of said packet using one or more filtering rules, means for performing a first action with regard to said packet, if said means for inspecting determines said inter-layer binding is not said legal inter-layer binding, and 10 means for performing a second action with regard to said packet, if said means for inspecting determines said inter-layer binding is said legal inter-layer binding means for causing said means for processing to process each of said packets, and means for limiting a rate at which said means for processing processes said each of said packets, wherein 15 said packets are received at a port, a port threshold is defined for said port, and said means for limiting comprises means for comparing a total number of said packets to said port threshold, and 20 means for dropping said packet, if said means for comparing indicates said packet should be dropped.
18. The apparatus of claim 17, wherein said packets are received at a port and said means for limiting comprises: 25 means for comparing a total number of said packets to a port shutdown threshold; and means for shutting down said port, if said total number of said packets is greater than said port shutdown threshold. 30
19. The network device of claim 1, wherein said binding is legal if said first protocol layer address is a first address of another network device at said first protocol layer, and I iSIPM\IN TERWOVEN\NK PORIBLDC\SPM\6055672_ DOC -5 1 H.aspmI\ImemcverINR~onbI;DCC5PWf.055i672_I.doc-5/13/214 22 said second protocol layer address is a second address of said another network device at said second protocol layer.
20. The method of claim 8, wherein said binding is legal if 5 said first protocol layer address is a first address of another network device at said first protocol layer, and said second protocol layer address is a second address of said another network device at said second protocol layer. H \SIPM\INTFkWOVEN\NRPOR^1L\LDCCKSPM\6055672_ DOC- 5/3/14
AU2012202410A 2002-07-31 2012-04-26 Method and apparatus for inspecting inter-layer address binding protocols Expired - Fee Related AU2012202410B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2012202410A AU2012202410B2 (en) 2002-07-31 2012-04-26 Method and apparatus for inspecting inter-layer address binding protocols

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/210,190 2002-07-31
AU2009200102A AU2009200102A1 (en) 2002-07-31 2009-01-09 Method and apparatus for inspecting inter-layer address binding protocols
AU2012202410A AU2012202410B2 (en) 2002-07-31 2012-04-26 Method and apparatus for inspecting inter-layer address binding protocols

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
AU2009200102A Division AU2009200102A1 (en) 2002-07-31 2009-01-09 Method and apparatus for inspecting inter-layer address binding protocols

Publications (2)

Publication Number Publication Date
AU2012202410A1 AU2012202410A1 (en) 2012-05-17
AU2012202410B2 true AU2012202410B2 (en) 2014-09-18

Family

ID=46640859

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2012202410A Expired - Fee Related AU2012202410B2 (en) 2002-07-31 2012-04-26 Method and apparatus for inspecting inter-layer address binding protocols

Country Status (1)

Country Link
AU (1) AU2012202410B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151679A (en) * 1995-09-18 2000-11-21 Fortress Technologies Inc. Of Florida System and method for preventing a first node from being emulated by another node
WO2002021244A2 (en) * 2000-09-08 2002-03-14 The Regents Of The University Of Michigan Method and system for protecting publicly accessible network computer services from undesirable network traffic in real-time
WO2002035795A1 (en) * 1999-04-15 2002-05-02 Gilian Technologies, Ltd. Transparent proxy server
WO2003065186A1 (en) * 2002-01-31 2003-08-07 3Com Corporation Network monitoring system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151679A (en) * 1995-09-18 2000-11-21 Fortress Technologies Inc. Of Florida System and method for preventing a first node from being emulated by another node
WO2002035795A1 (en) * 1999-04-15 2002-05-02 Gilian Technologies, Ltd. Transparent proxy server
WO2002021244A2 (en) * 2000-09-08 2002-03-14 The Regents Of The University Of Michigan Method and system for protecting publicly accessible network computer services from undesirable network traffic in real-time
WO2003065186A1 (en) * 2002-01-31 2003-08-07 3Com Corporation Network monitoring system

Also Published As

Publication number Publication date
AU2012202410A1 (en) 2012-05-17

Similar Documents

Publication Publication Date Title
US7830898B2 (en) Method and apparatus for inter-layer binding inspection
Ambrosin et al. Lineswitch: Efficiently managing switch flow in software-defined networking while effectively tackling dos attacks
EP1774716B1 (en) Inline intrusion detection using a single physical port
US8045550B2 (en) Packet tunneling
US6513122B1 (en) Secure gateway for analyzing textual content to identify a harmful impact on computer systems with known vulnerabilities
US8925101B2 (en) System and method for local protection against malicious software
EP1817685B1 (en) Intrusion detection in a data center environment
WO2019179375A1 (en) Method and device for defending network attack
US7474655B2 (en) Restricting communication service
US20030145228A1 (en) System and method of providing virus protection at a gateway
KR100358518B1 (en) Firewall system combined with embeded hardware and general-purpose computer
JP2009534001A (en) Malicious attack detection system and related use method
JP2005135420A (en) Host based network intrusion detection system and method, and computer-readable medium
JPH11163940A (en) Method for inspecting packet
EP1739921A1 (en) Progressive wiretap
JP2003505934A (en) Secure network switch
US20040093514A1 (en) Method for automatically isolating worm and hacker attacks within a local area network
KR100427179B1 (en) Attacker isolation method and system using packet filtering at the border router of ISP
AU2012202410B2 (en) Method and apparatus for inspecting inter-layer address binding protocols
US20090222904A1 (en) Network access node computer for a communication network, communication system and method for operating a communication system
US20050147037A1 (en) Scan detection
US11979431B1 (en) System and method for prevention of lateral propagation of ransomware using ARP control on network switches to create point-to-point links between endpoints
Andre et al. Open vSwitch Configuration for Separation of KVM/libvirt VMs
Zaraska Ids active response mechanisms: Countermeasure subsytem for prelude ids
EP1547340B1 (en) Method, system and computer program product for transmitting a media stream between client terminals

Legal Events

Date Code Title Description
MK25 Application lapsed reg. 22.2i(2) - failure to pay acceptance fee