CN1826591A - 反向路径转发保护 - Google Patents

反向路径转发保护 Download PDF

Info

Publication number
CN1826591A
CN1826591A CNA2004800207764A CN200480020776A CN1826591A CN 1826591 A CN1826591 A CN 1826591A CN A2004800207764 A CNA2004800207764 A CN A2004800207764A CN 200480020776 A CN200480020776 A CN 200480020776A CN 1826591 A CN1826591 A CN 1826591A
Authority
CN
China
Prior art keywords
acl
access control
control list
subclauses
clauses
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.)
Granted
Application number
CNA2004800207764A
Other languages
English (en)
Other versions
CN100472480C (zh
Inventor
皮拉姆·马里姆素
普里彦克拉曼施·瓦克赫德
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
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN1826591A publication Critical patent/CN1826591A/zh
Application granted granted Critical
Publication of CN100472480C publication Critical patent/CN100472480C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

利用基于转发信息库的访问控制列表自动填充提供了对分组(101、103)的反向路径转发保护。一种实现通过从分组中提取包括源地址(131)的一个或多个值来识别查找值。基于查找值对访问控制列表执行访问控制列表查找操作以识别许可或拒绝状态(133),其中访问控制列表包括多个访问控制列表条目。基于通过访问访问控制列表查找操作识别出的许可或拒绝状态处理分组,这种基于许可状态的分组处理通常包括对转发信息库的表示执行转发查找操作以识别一个位置并将分组转发到该位置。基于转发信息库自动生成访问控制列表条目。

Description

反向路径转发保护
技术领域
本发明的一个实施例涉及通信和计算机系统,尤其是路由器、分组交换系统和其他设备;更具体而言,一个实施例涉及利用基于转发信息库的访问控制列表自动填充进行的反向路径转发保护。
背景技术
通信工业正在迅速变化以适应新兴的技术和不断增长的客户需求。这种对于新应用和现有应用的更强性能的客户需求正在驱动着网络和系统提供商采用速度更快能力更大(例如带宽更大)的网络和系统。在尝试实现这些目标时,许多通信提供商常采用的方法是使用分组交换技术。公共和专用通信网络正越来越多地被用诸如因特网协议(IP)这样的各种分组技术来构建和扩展。
RFC 2827描述了实现单播反向路径转发以防止源地址伪造的必要性。存在两种已知的用于执行此操作的方式。第一,静态访问控制列表(ACL)可被操作者手动创建,以指定特定接口上允许的源地址。此方法的主要缺点包括需要为每个接口手动定义不同的ACL,以及需要手动更新这些ACL以适应网络拓扑的变化以便提供适当的保护。
第二种已知的方法是对转发信息库执行两个查找操作:一个查找操作基于目的地,以识别向哪个位置转发分组,第二查找操作基于分组的源地址,以识别分组是否在被允许的接口上被接收。此方法要求对FIB进行第二查找操作,这一点或者降低了转发分组的速率(因为它要求两个查找而不是一个),或者要求附加的或重复的组件来并行执行这两个查找操作。另外,通常还执行第三查找操作,此查找操作是对一组预定义的ACL进行的,以便进一步识别如何处理分组。执行所有这些查找操作影响了处理分组的速率和/或执行这种操作所需的硬件和软件的量。
在一种已知的方法中,当在接口上启用单播反向路径转发时,路由器检查该接口上接收到的所有分组。路由器进行检查以确定源地址出现在路由选择表中,并且匹配在其上接收到分组的接口。此特征进行检查以查明在路由器接口处接收到的任何分组是否是在去到分组源的最佳返回路径之一上到达的。该特征通过基于分组的源地址在路由选择信息库中执行反向查找来做到这一点。如果未定位到分组的相应反向路径,则该特征可根据配置命令中是否指定了ACL来丢弃或转发分组。如果命令中指定了ACL,则当(且仅当)分组未通过单播反向路径转发检查时,ACL被检查以查明分组应当被丢弃(利用ACL中的拒绝语句)还是被转发(利用ACL中的许可语句)。如果在配置命令中未指定ACL,则路由器立即丢弃伪造或畸形的分组。
发明内容
公开了利用基于转发信息库的访问控制列表自动填充来对分组进行反向路径转发保护的方法、装置、数据结构、计算机可读介质、机构、装置等等。在较宽的方面中,本发明提供了基于转发信息库的访问控制列表自动生成;这一点促进了在转发信息库和访问控制列表二者的基础上进行一致的分组处理。从而,本发明可提供一种分组处理方法,在该方法中,是在包括标识许可或拒绝状态的访问控制列表条目的访问控制列表的基础上以及在标识转发位置的转发信息库的基础上处理分组的,该方法包括基于转发信息库自动生成或更新访问控制列表条目。
优选地,至少基于要处理的分组的源地址为要执行的查找操作安排访问控制列表条目和转发信息库。更优选地,至少基于分组的源地址为要利用公共查找值执行的查找操作安排访问控制列表条目和转发信息库两者。一个实施例通过从分组中提取包括源地址的一个或多个值来识别查找值。基于查找值对访问控制列表执行访问控制列表查找操作以识别许可或拒绝状态,其中访问控制列表包括多个访问控制列表条目。基于通过访问访问控制列表查找操作识别出的许可或拒绝状态处理分组。这种基于许可状态的分组处理通常包括对转发信息库的表示(representation)执行转发查找操作以识别一个位置并将分组转发到该位置。基于转发信息库自动生成访问控制列表条目。
在一个实施例中,基于转发信息库和预定义的访问控制列表自动生成访问控制列表条目。在一个实施例中,响应于转发信息库或预定义的访问控制列表的变化自动更新访问控制列表条目。
在一个实施例中,自动生成访问控制列表条目包括为与预定义的访问控制列表的许可状态相关联的条目识别条目的源地址和转发信息库中的地址(例如完全指定的地址,前缀)的交集,并且基于交集生成访问控制列表条目中的一个或多个。
在一个实施例中,自动生成访问控制列表条目包括基于转发信息库识别多个拒绝操作条目,这些拒绝操作对应于转发信息库中的地址的补集,还包括就搜索顺序而言将这些拒绝操作条目放置在与预定义的访问控制列表相对应的多个预定义的访问控制列表条目之前;并且其中如果在访问控制列表查找操作期间拒绝操作条目之一被匹配,则拒绝状态被生成。在一个实施例中,基于转发信息库识别多个拒绝操作条目包括基于转发信息库构造二元(binary)trie,并且遍历该二元trie以识别拒绝操作条目。
在一个实施例中,执行访问控制列表查找操作包括对关联存储器(associative memory)执行关联存储器查找操作,其中访问控制列表被编程到关联存储器中;并且其中基于转发信息库自动生成的条目被配置为如果在关联存储器查找操作期间被匹配则生成强制无命中结果,以便基于与预定义的访问控制列表相对应的关联存储器条目识别许可或拒绝状态,并且关联存储器包括一个或多个拒绝条目,以便如果基于转发信息库自动生成的条目中没有一个被匹配则生成拒绝状态。
附图说明
所附权利要求书详细阐述了本发明的特征。可从以下结合附图的详细描述中获得对本发明的实施例及其优点的最佳理解,附图中:
图1是示出一个实施例中使用的系统的框图,该系统用于通过利用基于转发信息库的访问控制列表自动填充对分组进行反向路径转发保护来处理分组。
图2A-C示出供一个实施例使用的查找机制的无数的配置中的少数几个;
图3是示出一个实施例中使用的系统的框图,该系统用于通过利用基于转发信息库的访问控制列表自动填充对分组进行反向路径转发保护来处理分组。
图4是示出一个实施例中使用的系统的框图,该系统用于通过利用基于转发信息库的访问控制列表自动填充对分组进行反向路径转发保护来处理分组。
图5A示出了一个实施例中使用的用于基于转发信息库自动填充一个或多个访问控制列表的进程;
图5B是示出一个实施例中生成和使用的访问控制条目的框图;
图6A示出了一个实施例中使用的用于基于转发信息库和预定义的访问控制列表来自动填充一个或多个访问控制列表的进程;
图6B是示出一个实施例中生成和使用的访问控制条目的框图;
图7A示出了一个实施例中使用的用于基于转发信息库和预定义的访问控制列表来自动填充一个或多个访问控制列表的进程;
图7B是示出一个实施例中生成和使用的访问控制条目的框图;
图7C示出了一个实施例中使用的用于基于转发信息库来自动生成访问控制列表拒绝条目的进程;
图7D示出了一个实施例中使用的用于基于转发信息库来自动生成访问控制列表拒绝条目的进程;
图8A示出了一个实施例中使用的用于利用强制无命中条目基于转发信息库和预定义的访问控制列表来自动填充一个或多个访问控制列表的进程;
图8B是示出一个实施例中生成和使用的访问控制条目的框图;
图8C示出了在具有强制无命中条目的ACL中执行查找操作的一个实施例。
具体实施方式
公开了可能在路由器、分组交换系统和其他设备中尤其有用的利用基于转发信息库的访问控制列表自动填充来对分组进行反向路径转发保护的方法、设备、数据结构、计算机可读介质、机构、装置等等。
这里所描述的实施例包括各种元素和限制,其中没有一个元素或限制被视为关键的元素或限制。每项权利要求单独地完整陈述本发明的一个方面。此外,这里所描述的某些实施例可以包括但不限于(除其他外)系统、网络、集成电路芯片、嵌入式处理器、ASIC、方法和包含指令的计算机可读介质。一个或多个系统、设备、组件等可构成一个或多个实施例,这些实施例可包括由相同或不同的系统、设备、组件等执行的权利要求的某些元素或限制。下文中所描述的实施例体现了本发明的范围和精神内的各种方面和配置,其中附图示出了示例性而非限制性的配置。除非另外声明,否则这里公开的元素可以按其他组合方式提供或独立地来提供,并且方法特征可应用于装置或计算机程序方面,反之亦然。
这里所使用的术语“分组”是指各种类型的分组或任何其他信息或数据单元,包括但不限于固定长度信元和可变长度分组,其中每一个可以或不可以被划分成更小的分组或信元。这里所使用的术语“分组”还指分组本身或分组指示,例如但不限于分组的全部或部分或者分组头部、数据结构值、指针或索引或者分组的任何其他部分或标识。此外,这些分组可包含一种或多种类型的信息,包括但不限于语音、数据、视频和音频信息。这里一般使用的术语“项目”是指分组或任何其他信息或数据单元或片段、设备、组件、元件或任何其他实体。短语“处理分组”和“分组处理”通常是指基于分组内容(例如分组头部或其他字段)执行某些步骤或动作,这种步骤或动作可能包括或不包括修改、存储、丢弃和/或转发分组和/或相关联的数据。
这里一般使用的术语“系统”是用于描述任何数目的组件、元件、子系统、设备、分组交换元件、分组交换机、路由器、网络、计算机和/或通信设备或机构,或者其组件的组合。这里一般使用的术语“计算机”是用于描述任何数目的计算机,包括但不限于个人计算机、嵌入式处理元件和系统、控制逻辑、ASIC、芯片、工作站、大型机等。这里一般使用的术语“处理元件”是用于描述任何类型的处理机构或设备,例如处理器、ASIC、现场可编程门阵列、计算机等。这里一般使用的术语“设备”是用于描述任何类型的机构,包括计算机或系统或其组件。这里一般使用的术语“任务”和“进程”是用于描述任何类型的运行程序,包括但不限于计算机进程、任务、线程、执行应用程序、操作系统、用户进程、设备驱动器、原码、机器或其他语言等等,并且可以是交互式的和/或非交互式的、在本地和/或远程执行的、在前台和/或后台执行的、在用户和/或操作系统地址空间中执行的、库例程和/或独立应用程序,并且不限于任何特定的存储器分区技术。在附图(包括但不限于任何框图和流程图以及消息序列图)中示出的步骤、连接、信号和信息处理可以按相同或不同的串行或并行顺序来执行,和/或由不同的组件和/或进程、线程等来执行,和/或在不同连接上执行,并且可与其他实施例中的功能相组合,同时仍保持在本发明的范围和精神内。此外,这里一般使用的术语“识别”是用于描述任何直接或间接断定某件事的方式或机制,其中可包括但不限于:接收、从存储器取回、确定、限定、计算、生成等等。
此外,这里一般使用的术语“网络”和“通信机构”是用于描述一个或多个网络、通信介质或通信系统,包括但不限于:因特网,专用或公共电话、蜂窝、无线、卫星、有线、局域、城域和/或广域网络,电缆,电连接,总线等等,以及诸如消息传递、进程间通信、共享存储器等内部通信机构。这里一般使用的术语“消息”是用于描述一段信息,它可能是也可能不是但通常是经由一个或多个任何类型的通信机构来传输的。
术语“存储机构”包括任何类型的存储器、存储设备或其他以任何格式保存指令或数据的机构。“计算机可读介质”是一个可扩展术语,它包括任何存储器、存储设备、存储机构,以及其他的其中包括了诸如网络接口卡和缓冲器这样的接口和设备的存储和信令机构,以及任何通信设备和接收和发送的信号,和计算机化的系统可解释、接收和/或发送的其他当前和正在发展中的技术。术语“存储器”包括任何随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储器组件或元件。术语“存储设备”包括任何固态存储介质、盘驱动器、软磁盘、网络化服务、磁带驱动器和其他存储设备。存储器和存储设备可存储将要由处理元件和/或控制逻辑执行的计算机可执行指令,以及由处理元件和/或控制逻辑所操纵的数据。术语“数据结构”是一个可扩展术语,它是指任何数据元素、变量、数据结构、数据库和/或可应用到数据以帮助解释数据或对其执行操作的一个或多个组织方案,例如但不限于存储器位置或设备、集合、队列、树、堆、列表、链表、阵列、表、指针等等。数据结构通常被保存在存储机构中。这里一般使用的术语“指针”和“链接”是指某些用于引用或标识另一元素、组件或其他实体的机制,这些机制可包括但不限于对存储器或其他存储机构或其中的位置的引用、数据结构中的索引、值等等。术语“关联存储器”是一个可扩展术语,是指任何类型的已知的或未来开发的关联存储器,包括但不限于二元和三元(temary)内容可寻址存储器、散列表、TRIE和其他数据结构等。此外,术语“关联存储器单元”可包括但不限于一个或多个关联存储器设备或其部件,包括但不限于条目的区域、段、库、页、块、集合等等。
这里所使用的术语“一个实施例”是指特定实施例,其中每次提到“一个实施例”可能是指不同的实施例,这里在描述相关联的特征、元素和/或限制时重复使用该术语并不确立每个和所有实施例必须包括的相关联的特征、元素和/或限制的累积集合,但是一个实施例通常可包括所有这些特征、元素和/或限制。此外,短语“用于xxx的装置”通常包括包含用于执行xxx的计算机可执行指令的计算机可读介质。
此外,这里使用的术语“第一”、“第二”等通常是用于表示不同单元(例如第一元件、第二元件)。这里使用这些术语不一定意味着诸如一个单元或事件发生或出现在另一个之前这样的顺序,而是提供一种区分特定单元的机制。此外,使用名词的单数时态是非限制性的,对其的使用通常包括一个或多个特定事物而不是只有一个(例如使用单词“存储器”通常是指一个或多个存储器而不是必须指定“一个存储器或多个存储器”或者“一个或多个存储器”或“至少一个存储器”等等)。此外,短语“基于x”和“响应于x”被用于指示从中导出或导致某件事的项目x的最小集合,其中“x”是可扩展的,并且不一定描述了在其上执行了操作的项目的完整列表等等。此外,短语“被耦合到”用于指示两个元件或设备之间的某种级别的直接或间接连接,其中一个或多个耦合设备修改或不修改被耦合的信号或被传输的信息。术语“子集”用于指示集合的所有元素或部分元素的群组。术语“子树”用于指示树的全部或部分。此外,术语“或者”在这里是指对相联系的项目中的一个或多个(包括全部)的选择。
公开了利用基于转发信息库的访问控制列表自动填充来对分组进行反向路径转发保护的方法、装置、数据结构、计算机可读介质、机构、装置等等。在较宽的方面中,本发明提供了基于转发信息库的访问控制列表自动生成;这一点促进了在转发信息库和访问控制列表二者的基础上进行一致的分组处理。从而,本发明可提供一种分组处理方法,在该方法中,是在包括标识许可或拒绝状态的访问控制列表条目的访问控制列表的基础上以及在标识转发位置的转发信息库的基础上处理分组的,该方法包括基于转发信息库自动生成或更新访问控制列表条目。
优选地,至少基于要处理的分组的源地址为要执行的查找操作安排访问控制列表条目和转发信息库。更优选地,至少基于分组的源地址为要利用公共查找值执行的查找操作安排访问控制列表条目和转发信息库两者。一个实施例通过从分组中提取包括源地址的一个或多个值来识别查找值。基于查找值对访问控制列表执行访问控制列表查找操作以识别许可或拒绝状态,其中访问控制列表包括多个访问控制列表条目。基于通过访问访问控制列表查找操作识别出的许可或拒绝状态处理分组。这种基于许可状态的分组处理通常包括对转发信息库的表示执行转发查找操作以识别一个位置并将分组转发到该位置。基于转发信息库自动生成访问控制列表条目。
在一个实施例中,基于转发信息库和预定义的访问控制列表自动生成访问控制列表条目。在一个实施例中,响应于转发信息库或预定义的访问控制列表的变化自动更新访问控制列表条目。
在一个实施例中,自动生成访问控制列表条目包括为与预定义的访问控制列表的许可状态相关联的条目识别条目的源地址和转发信息库中的地址(例如完全指定的地址,前缀)的交集,并且基于交集生成访问控制列表条目中的一个或多个。
在一个实施例中,自动生成访问控制列表条目包括基于转发信息库识别多个拒绝操作条目,这些拒绝操作对应于转发信息库中的地址的补集,还包括就搜索顺序而言将这些拒绝操作条目放置在与预定义的访问控制列表相对应的多个预定义的访问控制列表条目之前;并且其中如果在访问控制列表查找操作期间拒绝操作条目之一被匹配,则拒绝状态被生成。在一个实施例中,基于转发信息库识别多个拒绝操作条目包括基于转发信息库构造二元trie,并且遍历该二元trie以识别拒绝操作条目。
在一个实施例中,执行访问控制列表查找操作包括对关联存储器执行关联存储器查找操作,其中访问控制列表被编程到关联存储器中;并且其中基于转发信息库自动生成的条目被配置为如果在关联存储器查找操作期间被匹配则生成强制无命中结果,以便基于与预定义的访问控制列表相对应的关联存储器条目识别许可或拒绝状态,并且关联存储器包括一个或多个拒绝条目,以便如果基于转发信息库自动生成的条目中没有一个被匹配则生成拒绝状态。
图1是示出一个实施例中使用的系统的框图,该系统用于通过利用基于转发信息库的访问控制列表自动填充对分组进行反向路径转发保护来处理分组。转发信息库(FIB)数据121和预定义的(例如从另一个机构由客户定义或自动定义)访问控制列表(ACL)123被FIB和ACL更新机构120所接收,该FIB和ACL更新机构120通常包括用于存储FIB和ACL数据的数据结构。FIB和ACL更新机构120在初始时响应于需要更新的ACL或FIB的变化,自动确定访问控制条目,其中包括基于转发信息库自动确定的那些条目。这些ACL条目被发送(如箭头127所示)到ACL查找机构130。类似地,FIB查找机构接收FIB更新(如箭头125所示),该FIB查找机构包括通常被存储在有助于执行快速查找的数据结构中(例如存储在存储器或关联存储器中)的FIB数据的复本。
分组101被分组处理器100所接收。通过从分组中提取包括源地址的一个或多个值生成查找值131。ACL查找机构130基于它的一个或多个访问控制列表执行查找操作,并且向分组处理器100提供查找结果133,该查找结果133通常包括许可或拒绝指示,并且可选地包括其他指示。如果分组101与许可状态相关联,则分组的目的地地址作为查找值107被提供给FIB查找机构110,FIB查找机构110执行查找操作并返回查找结果109,该查找结果109通常包括向其转发分组的位置(转发分组则由分组处理器100完成,如分组103所指示)或无匹配指示。在一个实施例中,查找机构110和130中的查找操作是并行执行的。在一个实施例中,查找机构110和130中的查找操作是顺序执行的。当然,所描述的是无数的用于通过利用基于转发信息库的访问控制列表自动填充对分组进行反向路径转发保护来处理分组的实施例中的某些实施例的多个方面。
图2A-C示出供一个实施例使用的查找机构的无数的配置中的少数几个。图2A示出一个实施例中使用的查找机构200。控制204执行或致使执行基于查找值201在存储器或关联存储器206中的查找操作,以产生查找结果207,该查找结果207通常包括许可或拒绝状态指示。存在无数的可被一个实施例使用的用于执行查找操作的技术。
图2B示出一个实施例中使用的查找机构210。关联存储器214基于查找值211执行查找操作,并生成匹配位置结果215。在附属存储器216中执行查找操作以产生查找结果217,该查找结果217通常包括许可或拒绝状态指示。
图2C示出一个实施例中使用的查找机构220。关联存储器226基于查找值221执行查找操作,并生成查找结果227(例如匹配位置或无命中指示,或其他指示)。
图3是示出一个实施例中使用的系统300的框图,该系统用于通过利用基于转发信息库的访问控制列表自动填充对分组进行反向路径转发保护来处理分组。例如,一个实施例包括这样的进程,其与这里所示出的框图或流程图之一相对应,或者与实现权利要求的全部或部分的任何其他装置或机构相对应,而其他内部或外部组件或设备可实现权利要求的其他元素/限制。另外,单个或多个系统、设备、组件等可包括实施例。
在一个实施例中,系统300包括处理元件301、存储器302、存储设备303、用于接收和发送分组或其他项目的接口304以及关联存储器和附属存储器(adjunct memory)307,这些部件经由一个或多个通信机构309(为了说明示为总线)被耦合。
系统300的各种实施例可包括更多或更少的元件。系统300的操作通常是由处理元件301利用存储器302和存储设备303控制的,以执行一个或多个任务或进程,例如但不限于通过利用基于转发信息库的访问控制列表自动填充对分组进行反向路径转发保护来处理分组。一个实施例使用另一种查找机构而不是关联存储器和附属存储器307来在基于转发信息库自动填充的访问控制列表中执行查找操作。
存储器302是一种类型的计算机可读介质,通常包括随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储组件。存储器302通常存储用于实现根据本发明的一个实施例的功能的将要由处理元件301执行的计算机可执行指令和/或被处理元件301操纵的数据。存储设备303是另一种类型的计算机可读介质,通常包括固态存储介质、盘驱动器、软磁盘、网络化服务、磁带驱动器和其他存储设备。存储设备303通常存储用于实现根据本发明的一个实施例的功能的将要由处理元件301执行的计算机可执行指令和/或被处理元件301操纵的数据。
图4是示出一个实施例中使用的系统的框图,该系统用于通过利用基于转发信息库的访问控制列表自动填充对分组进行反向路径转发保护来处理分组。处理开始于进程块400中,并前进到进程块402,在这里分组被识别(例如被接收,被从队列中去除,等等)。在进程块404中,查找值被识别,识别方式通常是通过从分组中提取包括源地址的一个或多个字段。在进程块406中,基于查找值在访问控制列表中执行查找操作,以识别许可或拒绝状态,或许还会识别其他指示,该访问控制列表包括基于转发信息库自动生成的以及可能来自其他源(例如预定义的ACL等)的条目。在进程块408中,基于识别出的许可或拒绝状态处理分组。另外,如果是许可操作,则目的地地址被用于在转发信息库中查找分组的目的地位置,分组将被转发到该位置。在一个实施例中,此查找操作是与其他处理步骤并行执行的。如进程块409所示,处理完成。
图5A示出了一个实施例中使用的用于基于转发信息库自动填充一个或多个访问控制列表的进程。处理开始于进程块500,并前进到进程块502,在这里目的地地址(例如前缀和完全指定的地址)被从转发信息库中提取出来。在进程块504中,基于这些目的地地址,ACL条目被识别,并被编程在查找机构中以便匹配分组的源地址(例如用于执行反向路径转发),并与许可状态指示相关联。在进程块506中,将会匹配任何源地址的条目通常被编程在ACL中先前操作中识别出的条目之后,并被与拒绝状态相关联。此时,ACL已被编程并准备好供搜索。如进程块508和510所示,当对FID的更新被识别出时,访问控制列表条目被相应地更新,以便保持反向路径转发操作的完善性。
图5B是示出一个实施例中生成和使用的访问控制条目540的框图。如图所示,基于目的地地址(例如前缀和完全指定的地址)并且与许可状态相关联的ACL条目551从搜索顺序上而言被编程在匹配任何源地址并且与拒绝状态相关联的条目552之前。
图6A示出了一个实施例中使用的用于基于转发信息库和预定义的访问控制列表来自动填充一个或多个访问控制列表的进程。处理开始于进程块600处。按照在进程块602中所确定的,当有更多预定ACL语句时,在进程块604中,识别出第一/下一个语句。按照在进程块606中所确定的,如果该语句不与许可状态相关联,则在进程块608中,直接从该语句生成一个或多个ACL条目,并且它们与拒绝状态相关联。否则,在进程块610中,将语句的源地址与转发信息库中的目的地地址(例如前缀和完全指定的地址)相比较。按照在进程块612中所确定的,如果存在交集,则生成一个或多个ACL条目以覆盖此交集,并且这些条目与拒绝状态相关联。否则,在进程块614中,由于分组的源地址不被允许(例如它未被识别为转发信息库中的目的地地址),因此语句被忽略。处理返回进程块602。注意,通常,保持生成的ACL语句的顺序,但是可应用某些优化技术以将这些条目映射到其他条目中,以用于本发明的一个实施例中。
在所有的预定义的ACL语句已被处理之后,在进程块620中,将会匹配任何源地址的条目通常被编程到ACL中先前操作中识别出的条目之后,并且被与拒绝状态相关联。如进程块622和624所示,当对FIB或预定义的ACL的更新被识别出时,访问控制列表条目被相应地更新,以便保持反向路径转发和访问控制列表操作的完善性。
图6B是示出一个实施例中生成和使用的访问控制条目640的框图。如图所示,基于与许可状态相关联的预定义的ACL语句和转发信息库中的目的地地址(例如前缀和完全指定的地址)的交集的ACL条目641从搜索顺序上而言被编程在匹配任何源地址并且与拒绝状态相关联的条目642之前。
图7A示出了一个实施例中使用的用于基于转发信息库和预定义的访问控制列表来自动填充一个或多个访问控制列表的进程。处理开始于进程块700,并前进到进程块702,在这里识别出来自转发信息库的目的地地址(例如前缀和完全指定的地址)。在进程块704中,这些地址的补集(在所有可能的地址的上下文中)被识别。反向路径转发允许具有源地址并匹配相应转发信息库中的目的地地址的分组被转发/处理。从而,不匹配FIB中的地址的分组被过滤/丢弃。通过识别不在FIB中的所有地址的集合,这些地址可被编程在ACL中(从搜索顺序上而言通常是第一个)并且被与拒绝状态相关联,其后跟随与预定义的ACL相对应的条目。从而,这些ACL部分/ACL条目集合可被独立更新。
接下来,在进程块706中,具有不匹配FIB中的目的地地址的源地址的ACL条目(ACL条目的其他字段通常被通配)被编程并与拒绝状态相关联。在进程块708中,与预定义的ACL语句相对应的条目被编程,并且其后通常跟随与拒绝状态相关联的通配条目。如进程块710-716中所示,响应于对FIB或预定义的ACL语句的更新,相应的ACL条目被更新。
图7B是示出一个实施例中生成和使用的访问控制条目720的框图。如图所示,基于在FIB中未找到的地址的集合(即FIB中的地址的补集)的ACL条目721被编程,其后跟随与预定义的ACL语句相对应的ACL条目722,并且之后通常跟随匹配任何源地址并与拒绝状态相关联的条目723。(当然如果在条目722中找到了一个或者实施例被配置为不添加这种条目723,则不必添加条目723)。术语“地址集合”通常既是指完全指定的地址,又是指前缀(其通常代表完全指定的地址的相邻集合)。
图7C示出了一个实施例中使用的用于基于转发信息库来自动生成访问控制列表拒绝条目的进程。处理开始于进程块730,并且前进到进程块732,在这里,输入前缀集合(可能包括完全指定的地址)被识别出。接下来,在进程块734中,构造二元trie,其具有与来自FIB的前缀相对应的许可节点。在进程块736中,生成与缺少的子节点相对应的拒绝规则,以便识别未出现在FIB中的地址。如738所示,处理完成。(注意,当对FIB进行更新或执行修改trie和节点以更新ACL条目的优化进程时,可重复此进程)。
图7D示出了一个实施例中使用的用于基于转发信息库来自动生成访问控制列表拒绝条目的进程750。图中示出的是递归程序GENERATE DENY,其接收trie的节点的标识作为其输入。此程序在基于转发信息库(或其他源)创建许可节点的情况下遍历二元trie,并且生成地址补集/所需要的拒绝ACL条目。如果当前节点是叶节点而不是许可节点,则生成与节点的前缀相对应的拒绝条目。如果两个子节点都是许可状态,则处理完成。否则,如果节点只有一个孩子,则生成与不存在的子节点相对应的拒绝条目。否则,为每个不是许可状态的子节点递归调用此程序。
图8A示出了一个实施例中使用的用于利用强制无命中条目基于转发信息库和预定义的访问控制列表来自动填充一个或多个访问控制列表的进程。处理开始于进程块800,并且前进到进程块802,在这里从转发信息库中提取目的地地址(例如前缀和完全指定的地址)。在进程块804中,基于这些目的地地址,ACL条目被识别,并且被编程到查找机构中以便匹配分组的源地址(例如用于执行反向路径转发),并且与许可强制无命中指示相关联。另外,将会匹配任何源地址的条目被编程在ACL中,并且被与拒绝状态相关联。接下来,进程块806,基于预定义的ACL语句的ACL条目被编程,以便如果匹配强制无命中条目则这些ACL条目被搜索,这些ACL条目之后通常跟随被标记为拒绝状态的匹配任何源地址的条目。如进程块808-814中所示,响应于对FIB或预定义的ACL语句的更新,相应的ACL条目被更新。
图8B是示出一个实施例中生成和使用的访问控制条目840的框图。如图所示,ACL条目集合850,包括基于来自FIB的目的地地址(例如前缀和完全指定的地址)并与强制无命中状态相关联的ACL条目851以及其后的(从搜索顺序上而言)匹配任何源地址并且与拒绝状态相关联的条目852。ACL条目集合860包括基于预定义的访问控制列表的ACL条目861以及其后的(从搜索顺序上而言)匹配任何源地址并且与拒绝状态相关联的条目862。对ACL条目集合850执行搜索以识别拒绝状态或强制无命中状态。如果识别出强制无命中状态,则ACL条目集合860的搜索结果被用作查找操作的结果。对ACL条目集合850和860的搜索可并行或顺序完成。另外,无数的用于利用强制无命中状态执行查找操作的机构中的一种机构在2002年8月10日递交的美国专利申请No.10/215,719中描述,这里通过引用将其全部公开文本包含进来。
图8C示出了在具有强制无命中条目的ACL中执行查找操作的一个实施例。处理开始于进程块870,并前进到进程块872,在这里对ACL条目集合执行查找操作。如果在进程块874中确定在第一ACL条目集合中识别出匹配,并且在进程块876中确定它不对应于强制无命中状态,则在进程块878中,使用从搜索顺序上而言的第一个匹配结果(在一个实施例中,这将始终对应于拒绝状态-例如条目852)。否则,如进程块880所示,使用来自第二ACL条目集合的最高优先级匹配结果。在一个实施例中,为多于两个条目集合重复此进程。
考虑到本发明的原理适用的许多可能的实施例,可以意识到这里参考附图描述的实施例及其各方面只是说明性的,而不应当被理解为限制了本发明的范围。例如,正如本领域的技术人员将会明白的,许多进程块操作可被重新排序,以便在其他操作之前、之后执行或与其他操作基本上同时执行。另外,在各种实施例中可使用许多不同形式的数据结构。这里所描述的本发明预期了可能处于以下权利要求书及其等同物的范围内的所有这种实施例。

Claims (35)

1.一种分组处理方法,其中在包括标识许可或拒绝状态的访问控制列表条目的访问控制列表的基础上以及在标识转发位置的转发信息库的基础上处理分组,所述方法包括基于所述转发信息库自动生成或更新所述访问控制列表条目。
2.如权利要求1所述的方法,其中至少基于要处理的分组的源地址为要执行的查找操作安排所述访问控制列表条目和所述转发信息库,优选地,其中至少基于所述分组的源地址为要利用公共查找值执行的查找操作安排所述访问控制列表条目和所述转发信息库两者。
3.一种用于处理分组的方法,该方法包括:
通过从分组中提取一个或多个值来识别查找值,所述一个或多个值包括所述分组的源地址;
基于所述查找值在访问控制列表中执行访问控制列表查找操作,以识别许可或拒绝状态,其中所述访问控制列表包括访问控制列表条目;
基于在所述执行访问控制列表查找操作的步骤中识别出的许可或拒绝状态处理所述分组,其中所述基于许可状态处理所述分组的步骤包括对转发信息库的表示执行转发查找操作以识别一个位置并将所述分组转发到该位置;以及
基于转发信息库自动生成所述访问控制列表条目。
4.如前述任何一项权利要求所述的方法,其中所述自动生成所述访问控制列表条目的步骤包括基于所述转发信息库和预定义的访问控制列表自动生成所述访问控制列表条目。
5.如前述任何一项权利要求所述的方法,其中所述自动生成所述访问控制列表条目的步骤包括为与所述预定义的访问控制列表的许可状态相关联的条目识别所述条目的源地址和所述转发信息库中的地址的交集,并且基于该交集生成一个或多个访问控制列表条目。
6.如前述任何一项权利要求所述的方法,其中所述自动生成所述访问控制列表条目的步骤包括基于所述转发信息库识别多个拒绝操作条目,所述多个拒绝操作对应于所述转发信息库中的地址的补集,还包括就搜索顺序而言将所述多个拒绝操作条目放置在与所述预定义的访问控制列表相对应的多个预定义的访问控制列表条目之前;并且其中如果在所述执行访问控制列表查找操作的步骤期间所述多个拒绝操作条目之一被匹配,则所述拒绝状态被生成。
7.如权利要求6所述的方法,其中所述基于所述转发信息库识别多个拒绝操作条目的步骤包括基于所述转发信息库构造二元trie,并且遍历该二元trie以识别所述多个拒绝操作条目。
8.如权利要求2或4所述的方法,其中所述执行访问控制列表查找操作的步骤包括对关联存储器执行关联存储器查找操作,其中所述访问控制列表被编程到所述关联存储器中;并且其中基于所述转发信息库自动生成的所述条目被配置为如果在所述执行关联存储器查找操作的步骤期间被匹配则生成强制无命中结果,以便基于与所述预定义的访问控制列表相对应的关联存储器条目识别所述许可或所述拒绝状态,并且所述关联存储器包括一个或多个拒绝条目,以便如果基于所述转发信息库自动生成的所述条目中没有一个被匹配则生成所述拒绝状态。
9.如权利要求4所述的方法,其中响应于所述转发信息库或所述预定义的访问控制列表的变化自动更新所述访问控制列表条目。
10.如前述任何一项权利要求所述的方法,其中响应于所述转发信息库的变化自动更新所述访问控制列表条目。
11.一种用于处理分组的装置,该装置包括:
用于通过从分组中提取一个或多个值来识别查找值的装置,所述一个或多个值包括所述分组的源地址;
用于基于所述查找值在访问控制列表中执行访问控制列表查找操作以识别许可或拒绝状态的装置,其中所述访问控制列表包括访问控制列表条目;
用于基于在所述执行访问控制列表查找操作的步骤中识别出的许可或拒绝状态处理所述分组的装置,其中所述基于许可状态处理所述分组的步骤包括对转发信息库的表示执行转发查找操作以识别一个位置并将所述分组转发到该位置;以及
用于基于转发信息库自动生成所述访问控制列表条目的装置。
12.如权利要求11所述的装置,其中所述用于自动生成所述访问控制列表条目的装置包括用于基于所述转发信息库和预定义的访问控制列表自动生成所述访问控制列表条目的装置。
13.如权利要求12所述的装置,其中所述用于自动生成所述访问控制列表条目的装置包括用于基于与所述预定义的访问控制列表的许可状态相关联的条目和所述转发信息库中的地址的交集生成一个或多个访问控制列表条目的装置。
14.如权利要求12所述的装置,其中所述自动生成所述访问控制列表条目包括用于基于所述转发信息库识别多个拒绝操作条目的装置,所述多个拒绝操作对应于所述转发信息库中的地址的补集;其中所述多个拒绝操作条目就搜索顺序而言被放置在与所述预定义的访问控制列表相对应的多个预定义的访问控制列表条目之前;并且其中如果在所述访问控制列表查找操作期间所述多个拒绝操作条目之一被匹配,则所述拒绝状态被生成。
15.如权利要求14所述的装置,其中所述用于基于所述转发信息库识别多个拒绝操作条目的装置包括用于基于所述转发信息库构造二元trie并且用于遍历该二元trie以识别所述多个拒绝操作条目的装置。
16.如权利要求12所述的装置,其中所述用于执行访问控制列表查找操作的装置包括用于对关联存储器执行关联存储器查找操作的装置,其中所述访问控制列表被编程到所述关联存储器中;并且其中基于所述转发信息库自动生成的所述条目被配置为如果在所述执行关联存储器查找操作的步骤期间被匹配则生成强制无命中结果,以便基于与所述预定义的访问控制列表相对应的关联存储器条目识别所述许可或所述拒绝状态,并且所述关联存储器包括一个或多个拒绝条目,以便如果基于所述转发信息库自动生成的所述条目中没有一个被匹配则生成所述拒绝状态。
17.如权利要求12所述的装置,包括用于响应于所述转发信息库或所述预定义的访问控制列表的变化自动更新所述访问控制列表条目的装置。
18.如权利要求11所述的装置,包括用于响应于所述转发信息库的变化自动更新所述访问控制列表条目的装置。
19.一种装置,包括:
查找值生成器,其被配置为用于通过从分组中提取一个或多个值来识别查找值,所述一个或多个值包括所述分组的源地址;
访问控制列表查找机构,其被配置为用于基于所述查找值在访问控制列表中执行访问控制列表查找操作以识别许可或拒绝状态;
分组处理器,其被配置为用于基于通过所述访问控制列表查找操作识别出的许可或拒绝状态处理所述分组,其中所述基于许可状态处理所述分组的步骤包括对转发信息库的表示执行转发查找操作以识别一个位置并将所述分组转发到该位置;以及
访问控制列表生成器,其被配置为用于基于所述转发信息库自动生成所述访问控制列表中的条目。
20.如权利要求19所述的装置,其中所述访问控制列表生成器基于所述转发信息库和预定义的访问控制列表自动生成条目。
21.如权利要求20所述的装置,其中所述访问控制列表生成器为与所述预定义的访问控制列表的许可状态相关联的条目识别所述条目的源地址和所述转发信息库中的地址的交集,并且基于该交集生成一个或多个访问控制列表条目。
22.如权利要求20所述的装置,其中所述访问控制列表生成器在生成所述访问控制列表条目时基于所述转发信息库识别多个拒绝操作条目并且就搜索顺序而言将所述多个拒绝操作条目放置在与所述预定义的访问控制列表相对应的多个预定义的访问控制列表条目之前;并且其中如果在所述访问控制列表查找操作期间所述多个拒绝操作条目之一被匹配,则所述访问控制列表查找机构生成所述拒绝状态。
23.如权利要求22所述的装置,其中所述访问控制列表生成器通过执行包括基于所述转发信息库构造和遍历二元trie在内的操作来基于所述转发信息库识别多个拒绝操作条目。
24.如权利要求20所述的装置,其中所述访问控制列表查找机构包括关联存储器;其中所述访问控制列表被编程到所述关联存储器中;并且其中基于所述转发信息库自动生成的所述条目按以下方式被编程到所述关联存储器中:如果在所述关联存储器查找操作期间被匹配则生成强制无命中结果以便基于与所述预定义的访问控制列表相对应的关联存储器条目识别所述许可或所述拒绝状态,并且所述关联存储器包括一个或多个拒绝条目,以便如果基于所述转发信息库自动生成的所述条目中没有一个被匹配则生成所述拒绝状态。
25.如权利要求20所述的装置,其中所述访问控制列表生成器响应于所述转发信息库或所述预定义的访问控制列表的变化更新所述访问控制列表条目。
26.如权利要求19所述的装置,其中所述访问控制列表生成器响应于所述转发信息库的变化更新所述访问控制列表条目。
27.一种计算机可读介质或计算机程序或计算机程序产品,包含用于执行如权利要求1至10中任何一项所述的方法的计算机可执行指令。
28.一种计算机可读介质或计算机程序或计算机程序产品,包含用于执行用于处理分组的步骤的计算机可执行指令,所述步骤包括:
通过从分组中提取一个或多个值识别查找值,所述一个或多个值包括所述分组的源地址;
基于所述查找值在访问控制列表中执行访问控制列表查找操作,以识别许可或拒绝状态,其中所述访问控制列表包括访问控制列表条目;
基于在所述执行访问控制列表查找操作的步骤中识别出的许可或拒绝状态处理所述分组,其中所述基于许可状态处理所述分组的步骤包括对转发信息库的表示执行转发查找操作以识别一个位置并将所述分组转发到该位置;以及
基于转发信息库自动生成所述访问控制列表条目。
29.如权利要求28所述的计算机可读介质,其中所述自动生成所述访问控制列表条目的步骤包括基于所迹转发信息库和预定义的访问控制列表自动生成所述访问控制列表条目。
30.如权利要求29所述的计算机可读介质,其中所述自动生成所述访问控制列表条目的步骤包括为与所述预定义的访问控制列表的许可状态相关联的条目识别所述条目的源地址和所述转发信息库中的地址的交集,并且基于该交集生成一个或多个访问控制列表条目。
31.如权利要求29所述的计算机可读介质,其中所述自动生成所述访问控制列表条目的步骤包括基于所述转发信息库识别多个拒绝操作条目,所述多个拒绝操作对应于所述转发信息库中的地址的补集,还包括就搜索顺序而言将所述多个拒绝操作条目放置在与所述预定义的访问控制列表相对应的多个预定义的访问控制列表条目之前;并且其中如果在所述执行访问控制列表查找操作的步骤期间所述多个拒绝操作条目之一被匹配,则所述拒绝状态被生成。
32.如权利要求31所述的计算机可读介质,其中所述基于所述转发信息库识别多个拒绝操作条目的步骤包括基于所述转发信息库构造二元trie,并且遍历该二元trie以识别所述多个拒绝操作条目。
33.如权利要求29所述的计算机可读介质,其中所述执行访问控制列表查找操作的步骤包括对关联存储器执行关联存储器查找操作,其中所述访问控制列表被编程到所述关联存储器中;并且其中基于所述转发信息库自动生成的所述条目被配置为如果在所述执行关联存储器查找操作的步骤期间被匹配则生成强制无命中结果,以便基于与所述预定义的访问控制列表相对应的关联存储器条目识别所述许可或所述拒绝状态,并且所述关联存储器包括一个或多个拒绝条目,以便如果基于所述转发信息库自动生成的所述条目中没有一个被匹配则生成所述拒绝状态。
34.如权利要求29所述的计算机可读介质,其中响应于所述转发信息库或所述预定义的访问控制列表的变化自动更新所述访问控制列表条目。
35.如权利要求28所述的计算机可读介质,其中响应于所述转发信息库的变化自动更新所述访问控制列表条目。
CNB2004800207764A 2003-08-28 2004-08-26 分组处理方法和装置 Expired - Lifetime CN100472480C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/651,179 2003-08-28
US10/651,179 US7349382B2 (en) 2002-08-10 2003-08-28 Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base

Publications (2)

Publication Number Publication Date
CN1826591A true CN1826591A (zh) 2006-08-30
CN100472480C CN100472480C (zh) 2009-03-25

Family

ID=34273376

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800207764A Expired - Lifetime CN100472480C (zh) 2003-08-28 2004-08-26 分组处理方法和装置

Country Status (4)

Country Link
US (1) US7349382B2 (zh)
EP (1) EP1665055A4 (zh)
CN (1) CN100472480C (zh)
WO (1) WO2005022347A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820383A (zh) * 2010-01-27 2010-09-01 中兴通讯股份有限公司 限制交换机远程访问的方法及装置
CN101043442B (zh) * 2006-11-17 2011-05-25 神州数码网络(北京)有限公司 一种在以太网交换机上实现urpf的方法
CN101606357B (zh) * 2007-02-14 2013-03-27 思科技术公司 网络中的阻塞访问列表id和匹配声明的自动发现
CN109768891A (zh) * 2019-02-13 2019-05-17 烽火通信科技股份有限公司 服务质量策略与访问控制列表的关联方法及系统

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2495059C (en) * 2002-08-17 2010-05-18 Kt Corporation Satellite ip multicasting system and method
CN100366026C (zh) * 2003-07-06 2008-01-30 华为技术有限公司 一种在路由设备中实现报文转发控制的方法
US7711852B1 (en) * 2003-11-04 2010-05-04 Cisco Technology, Inc. Arrangement in a router for inserting address prefixes based on command line address identifiers
US7606236B2 (en) * 2004-05-21 2009-10-20 Intel Corporation Forwarding information base lookup method
US8126017B1 (en) * 2004-05-21 2012-02-28 At&T Intellectual Property Ii, L.P. Method for address translation in telecommunication features
US7480255B2 (en) * 2004-05-27 2009-01-20 Cisco Technology, Inc. Data structure identifying for multiple addresses the reverse path forwarding information for a common intermediate node and its use
US8144618B2 (en) * 2005-01-31 2012-03-27 Hewlett-Packard Development Company, L.P. Method and apparatus for automatic verification of a zone configuration and network access control construct for a plurality of network switches
US20060187924A1 (en) * 2005-02-18 2006-08-24 Broadcom Corporation Ingress handling of data in a network device
US8040895B2 (en) * 2006-03-22 2011-10-18 Cisco Technology, Inc. Method and system for removing dead access control entries (ACEs)
US7860825B2 (en) * 2006-05-08 2010-12-28 Palm, Inc. Method for synchronizing software application and user data for asynchronous client-server and peer to peer computer networks
CN100456747C (zh) * 2006-08-02 2009-01-28 华为技术有限公司 一种单播反向路径检查的实现方法和网络设备
US20090234686A1 (en) * 2008-03-17 2009-09-17 Al Chakra System and method for providing access control in a collaborative environment
US8897134B2 (en) * 2010-06-25 2014-11-25 Telefonaktiebolaget L M Ericsson (Publ) Notifying a controller of a change to a packet forwarding configuration of a network element over a communication channel
US8743888B2 (en) 2010-07-06 2014-06-03 Nicira, Inc. Network control apparatus and method
US9680750B2 (en) 2010-07-06 2017-06-13 Nicira, Inc. Use of tunnels to hide network addresses
US9246764B2 (en) * 2010-12-14 2016-01-26 Verizon Patent And Licensing Inc. Network service admission control using dynamic network topology and capacity updates
EP3462686B1 (en) 2011-08-17 2019-10-16 Nicira Inc. Distributed logical l3 routing
US8861347B2 (en) * 2011-12-04 2014-10-14 Mellanox Technologies Ltd. Configurable access control lists using TCAM
US9374320B2 (en) * 2012-07-27 2016-06-21 Cisco Technology, Inc. Investigating the integrity of forwarding paths within a packet switching device
US9742666B2 (en) 2013-07-09 2017-08-22 Nicira, Inc. Using headerspace analysis to identify classes of packets
US10033693B2 (en) 2013-10-01 2018-07-24 Nicira, Inc. Distributed identity-based firewalls
US9215214B2 (en) 2014-02-20 2015-12-15 Nicira, Inc. Provisioning firewall rules on a firewall enforcing device
US9906494B2 (en) 2014-03-31 2018-02-27 Nicira, Inc. Configuring interactions with a firewall service virtual machine
US9582308B2 (en) 2014-03-31 2017-02-28 Nicira, Inc. Auto detecting legitimate IP addresses using spoofguard agents
US9503427B2 (en) 2014-03-31 2016-11-22 Nicira, Inc. Method and apparatus for integrating a service virtual machine
US9215210B2 (en) 2014-03-31 2015-12-15 Nicira, Inc. Migrating firewall connection state for a firewall service virtual machine
US9825913B2 (en) 2014-06-04 2017-11-21 Nicira, Inc. Use of stateless marking to speed up stateful firewall rule processing
US9729512B2 (en) 2014-06-04 2017-08-08 Nicira, Inc. Use of stateless marking to speed up stateful firewall rule processing
US9692727B2 (en) 2014-12-02 2017-06-27 Nicira, Inc. Context-aware distributed firewall
US10606626B2 (en) 2014-12-29 2020-03-31 Nicira, Inc. Introspection method and apparatus for network access filtering
US10103995B1 (en) * 2015-04-01 2018-10-16 Cisco Technology, Inc. System and method for automated policy-based routing
US10044676B2 (en) 2015-04-03 2018-08-07 Nicira, Inc. Using headerspace analysis to identify unneeded distributed firewall rules
US9755903B2 (en) 2015-06-30 2017-09-05 Nicira, Inc. Replicating firewall policy across multiple data centers
US20170017419A1 (en) * 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US20170017567A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Implementing Distributed-Linked Lists For Network Devices
US20170017420A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US20170017414A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Implementing Hierarchical Distributed-Linked Lists For Network Devices
US10324746B2 (en) 2015-11-03 2019-06-18 Nicira, Inc. Extended context delivery for context-based authorization
US10348685B2 (en) 2016-04-29 2019-07-09 Nicira, Inc. Priority allocation for distributed service rules
US10135727B2 (en) 2016-04-29 2018-11-20 Nicira, Inc. Address grouping for distributed service rules
US11425095B2 (en) 2016-05-01 2022-08-23 Nicira, Inc. Fast ordering of firewall sections and rules
US11171920B2 (en) 2016-05-01 2021-11-09 Nicira, Inc. Publication of firewall configuration
US11082400B2 (en) 2016-06-29 2021-08-03 Nicira, Inc. Firewall configuration versioning
US11258761B2 (en) 2016-06-29 2022-02-22 Nicira, Inc. Self-service firewall configuration
US9762619B1 (en) 2016-08-30 2017-09-12 Nicira, Inc. Multi-layer policy definition and enforcement framework for network virtualization
US10938837B2 (en) 2016-08-30 2021-03-02 Nicira, Inc. Isolated network stack to manage security for virtual machines
US10193862B2 (en) 2016-11-29 2019-01-29 Vmware, Inc. Security policy analysis based on detecting new network port connections
US10715607B2 (en) 2016-12-06 2020-07-14 Nicira, Inc. Performing context-rich attribute-based services on a host
US10803173B2 (en) 2016-12-22 2020-10-13 Nicira, Inc. Performing context-rich attribute-based process control services on a host
US10805332B2 (en) 2017-07-25 2020-10-13 Nicira, Inc. Context engine model
US10581960B2 (en) 2016-12-22 2020-03-03 Nicira, Inc. Performing context-rich attribute-based load balancing on a host
US10812451B2 (en) 2016-12-22 2020-10-20 Nicira, Inc. Performing appID based firewall services on a host
US10503536B2 (en) 2016-12-22 2019-12-10 Nicira, Inc. Collecting and storing threat level indicators for service rule processing
US11032246B2 (en) 2016-12-22 2021-06-08 Nicira, Inc. Context based firewall services for data message flows for multiple concurrent users on one machine
US10587479B2 (en) 2017-04-02 2020-03-10 Nicira, Inc. GUI for analysis of logical network modifications
US10454930B2 (en) * 2017-07-14 2019-10-22 EMC IP Holding Company LLC System and method for local data IP based network security for preventing data breach attempts in a multi-tenant protection storage deployment
US10778651B2 (en) 2017-11-15 2020-09-15 Nicira, Inc. Performing context-rich attribute-based encryption on a host
US10802893B2 (en) 2018-01-26 2020-10-13 Nicira, Inc. Performing process control services on endpoint machines
US10862773B2 (en) 2018-01-26 2020-12-08 Nicira, Inc. Performing services on data messages associated with endpoint machines
US11483313B2 (en) * 2018-06-28 2022-10-25 Intel Corporation Technologies for updating an access control list table without causing disruption
US10764177B2 (en) 2019-01-21 2020-09-01 Mellanox Technologies Tlv Ltd. Efficient implementation of complex network segmentation
US11310202B2 (en) 2019-03-13 2022-04-19 Vmware, Inc. Sharing of firewall rules among multiple workloads in a hypervisor
US11539718B2 (en) 2020-01-10 2022-12-27 Vmware, Inc. Efficiently performing intrusion detection
US11108728B1 (en) 2020-07-24 2021-08-31 Vmware, Inc. Fast distribution of port identifiers for rule processing
US11875172B2 (en) 2020-09-28 2024-01-16 VMware LLC Bare metal computer for booting copies of VM images on multiple computing devices using a smart NIC
US12081395B2 (en) 2021-08-24 2024-09-03 VMware LLC Formal verification of network changes
US11995024B2 (en) 2021-12-22 2024-05-28 VMware LLC State sharing between smart NICs
US11899594B2 (en) 2022-06-21 2024-02-13 VMware LLC Maintenance of data message classification cache on smart NIC
US11928062B2 (en) 2022-06-21 2024-03-12 VMware LLC Accelerating data message classification with smart NICs

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3648254A (en) 1969-12-31 1972-03-07 Ibm High-speed associative memory
US4296475A (en) 1978-12-19 1981-10-20 U.S. Philips Corporation Word-organized, content-addressable memory
US4791606A (en) 1987-09-01 1988-12-13 Triad Semiconductors International Bv High density CMOS dynamic CAM cell
US5088032A (en) 1988-01-29 1992-02-11 Cisco Systems, Inc. Method and apparatus for routing communications among computer networks
US4996666A (en) 1988-08-12 1991-02-26 Duluk Jr Jerome F Content-addressable memory system capable of fully parallel magnitude comparisons
US5440715A (en) 1990-06-27 1995-08-08 Advanced Micro Devices, Inc. Method and apparatus for expanding the width of a content addressable memory using a continuation bit
US5404482A (en) 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
US5481540A (en) 1990-08-24 1996-01-02 At&T Corp. FDDI bridge frame learning and filtering apparatus and method
US5319763A (en) 1991-04-02 1994-06-07 Motorola, Inc. Data processor with concurrent static and dynamic masking of operand information and method therefor
US5339076A (en) 1992-04-27 1994-08-16 Integrated Information Technology Data compression using content addressable memory
US5383146A (en) 1992-06-08 1995-01-17 Music Semiconductors, Inc. Memory with CAM and RAM partitions
EP0600683B1 (en) 1992-12-04 2001-10-10 AT&T Corp. Packet network interface
US6000008A (en) 1993-03-11 1999-12-07 Cabletron Systems, Inc. Method and apparatus for matching data items of variable length in a content addressable memory
WO1994022253A1 (en) 1993-03-20 1994-09-29 International Business Machines Corporation Method and apparatus for extracting connection information from protocol headers
US5450351A (en) 1993-11-19 1995-09-12 International Business Machines Corporation Content addressable memory implementation with random access memory
US6047369A (en) 1994-02-28 2000-04-04 Intel Corporation Flag renaming and flag masks within register alias table
US5428565A (en) 1994-03-11 1995-06-27 Intel Corporation Single stage sensing apparatus for a content addressable memory
US5515370A (en) 1994-03-31 1996-05-07 Siemens Aktiengesellschaft Circuit arrangement for line units of an ATM switching equipment
DE69628451D1 (de) 1995-07-26 2003-07-03 Apple Computer Verfahren zur zeilendarstellung durch sortieren von segmenten und untersegmenten
US6041389A (en) 1995-11-16 2000-03-21 E Cirrus Logic, Inc. Memory architecture using content addressable memory, and systems and methods using the same
US6091725A (en) 1995-12-29 2000-07-18 Cisco Systems, Inc. Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US5740171A (en) 1996-03-28 1998-04-14 Cisco Systems, Inc. Address translation mechanism for a high-performance network switch
US6243667B1 (en) 1996-05-28 2001-06-05 Cisco Systems, Inc. Network flow switching and flow data export
US5978885A (en) 1996-06-17 1999-11-02 Hewlett Packard Co. Method and apparatus for self-timing associative data memory
US6069573A (en) 1996-06-17 2000-05-30 Hewlett-Packard Company Match and match address signal prioritization in a content addressable memory encoder
US5842040A (en) 1996-06-18 1998-11-24 Storage Technology Corporation Policy caching method and apparatus for use in a communication device based on contents of one data unit in a subset of related data units
US5841874A (en) 1996-08-13 1998-11-24 Motorola, Inc. Ternary CAM memory architecture and methodology
US5748905A (en) 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US5930359A (en) 1996-09-23 1999-07-27 Motorola, Inc. Cascadable content addressable memory and system
US5956336A (en) 1996-09-27 1999-09-21 Motorola, Inc. Apparatus and method for concurrent search content addressable memory circuit
US5802567A (en) 1996-10-31 1998-09-01 International Business Machines Corporation Mechanism for managing offset and aliasing conditions within a content-addressable memory-based cache memory
US5920886A (en) 1997-03-14 1999-07-06 Music Semiconductor Corporation Accelerated hierarchical address filtering and translation using binary and ternary CAMs
US5852569A (en) 1997-05-20 1998-12-22 Quality Semiconductor, Inc. Content addressable memory multiple match detection circuit
US6181698B1 (en) 1997-07-09 2001-01-30 Yoichi Hariguchi Network routing table using content addressable memory
US6097724A (en) 1997-08-15 2000-08-01 Lucent Technologies Inc. Ram-based associative content-addressable memory device, method of operation thereof and ATM communication switching system employing the same
JP3191737B2 (ja) 1997-08-29 2001-07-23 日本電気株式会社 ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ
US6148364A (en) 1997-12-30 2000-11-14 Netlogic Microsystems, Inc. Method and apparatus for cascading content addressable memory devices
US6199140B1 (en) 1997-10-30 2001-03-06 Netlogic Microsystems, Inc. Multiport content addressable memory device and timing signals
US6061368A (en) 1997-11-05 2000-05-09 Xylan Corporation Custom circuitry for adaptive hardware routing engine
US6236658B1 (en) 1997-11-21 2001-05-22 Cisco Technology, Inc. Method and apparatus for message routing, including a content addressable memory
US6219748B1 (en) 1998-05-11 2001-04-17 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a content addressable memory device
US6240485B1 (en) 1998-05-11 2001-05-29 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system
US6658002B1 (en) * 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
US6377577B1 (en) 1998-06-30 2002-04-23 Cisco Technology, Inc. Access control list processing in hardware
US6141738A (en) 1998-07-08 2000-10-31 Nortel Networks Corporation Address translation method and system having a forwarding table data structure
US6308219B1 (en) 1998-07-31 2001-10-23 Cisco Technology, Inc. Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks
US6389506B1 (en) 1998-08-07 2002-05-14 Cisco Technology, Inc. Block mask ternary cam
US6289414B1 (en) 1998-10-08 2001-09-11 Music Semiconductors, Inc. Partially ordered cams used in ternary hierarchical address searching/sorting
US6081440A (en) 1998-11-05 2000-06-27 Lara Technology, Inc. Ternary content addressable memory (CAM) having fast insertion and deletion of data values
JP4156112B2 (ja) 1998-12-25 2008-09-24 富士通株式会社 高速検索方法及び高速検索装置
US6237061B1 (en) 1999-01-05 2001-05-22 Netlogic Microsystems, Inc. Method for longest prefix matching in a content addressable memory
US6137707A (en) 1999-03-26 2000-10-24 Netlogic Microsystems Method and apparatus for simultaneously performing a plurality of compare operations in content addressable memory device
US6651096B1 (en) 1999-04-20 2003-11-18 Cisco Technology, Inc. Method and apparatus for organizing, storing and evaluating access control lists
US6175513B1 (en) 1999-07-12 2001-01-16 Netlogic Microsystems Method and apparatus for detecting multiple matches in a content addressable memory
US6526474B1 (en) 1999-10-25 2003-02-25 Cisco Technology, Inc. Content addressable memory (CAM) with accesses to multiple CAM arrays used to generate result for various matching sizes
US6374326B1 (en) 1999-10-25 2002-04-16 Cisco Technology, Inc. Multiple bank CAM architecture and method for performing concurrent lookup operations
US6434662B1 (en) 1999-11-02 2002-08-13 Juniper Networks, Inc. System and method for searching an associative memory utilizing first and second hash functions
US6467019B1 (en) 1999-11-08 2002-10-15 Juniper Networks, Inc. Method for memory management in ternary content addressable memories (CAMs)
US6154384A (en) 1999-11-12 2000-11-28 Netlogic Microsystems, Inc. Ternary content addressable memory cell
US6134135A (en) 2000-01-10 2000-10-17 Switchcore, A.B. Mask arrangement for scalable CAM/RAM structures
US6535951B1 (en) 2000-02-29 2003-03-18 Cisco Technology, Inc. Hit result register file used in a CAM
JP3741258B2 (ja) 2000-03-31 2006-02-01 シャープ株式会社 半導体記憶装置およびその救済方法
US6240003B1 (en) 2000-05-01 2001-05-29 Micron Technology, Inc. DRAM content addressable memory using part of the content as an address
US6246601B1 (en) 2000-06-14 2001-06-12 Netlogic Microsystems, Inc. Method and apparatus for using an inter-row configurable content addressable memory
US6317350B1 (en) 2000-06-16 2001-11-13 Netlogic Microsystems, Inc. Hierarchical depth cascading of content addressable memory devices
JP2002237190A (ja) 2001-02-07 2002-08-23 Kawasaki Microelectronics Kk 連想メモリ装置およびその構成方法
US6606681B1 (en) 2001-02-23 2003-08-12 Cisco Systems, Inc. Optimized content addressable memory (CAM)
US6996662B2 (en) 2001-06-18 2006-02-07 Integrated Device Technology, Inc. Content addressable memory array having flexible priority support
US6597595B1 (en) 2001-08-03 2003-07-22 Netlogic Microsystems, Inc. Content addressable memory with error detection signaling
US6775737B1 (en) 2001-10-09 2004-08-10 Cisco Technology, Inc. Method and apparatus for allocating and using range identifiers as input values to content-addressable memories
US6715029B1 (en) 2002-01-07 2004-03-30 Cisco Technology, Inc. Method and apparatus for possibly decreasing the number of associative memory entries by supplementing an associative memory result with discriminator bits from an original set of information
US7336660B2 (en) 2002-05-31 2008-02-26 Cisco Technology, Inc. Method and apparatus for processing packets based on information extracted from the packets and context indications such as but not limited to input interface characteristics
US6771525B2 (en) 2002-05-31 2004-08-03 Mosaid Technologies Incorporated Method and apparatus for performing variable word width searches in a content addressable memory
US7065609B2 (en) 2002-08-10 2006-06-20 Cisco Technology, Inc. Performing lookup operations using associative memories optionally including selectively determining which associative memory blocks to use in identifying a result and possibly propagating error indications
US7103708B2 (en) 2002-08-10 2006-09-05 Cisco Technology, Inc. Performing lookup operations using associative memories optionally including modifying a search key in generating a lookup word and possibly forcing a no-hit indication in response to matching a particular entry
US7167922B2 (en) * 2002-10-18 2007-01-23 Nokia Corporation Method and apparatus for providing automatic ingress filtering
US6717946B1 (en) 2002-10-31 2004-04-06 Cisco Technology Inc. Methods and apparatus for mapping ranges of values into unique values of particular use for range matching operations using an associative memory

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101043442B (zh) * 2006-11-17 2011-05-25 神州数码网络(北京)有限公司 一种在以太网交换机上实现urpf的方法
CN101606357B (zh) * 2007-02-14 2013-03-27 思科技术公司 网络中的阻塞访问列表id和匹配声明的自动发现
CN101820383A (zh) * 2010-01-27 2010-09-01 中兴通讯股份有限公司 限制交换机远程访问的方法及装置
CN101820383B (zh) * 2010-01-27 2014-12-10 中兴通讯股份有限公司 限制交换机远程访问的方法及装置
CN109768891A (zh) * 2019-02-13 2019-05-17 烽火通信科技股份有限公司 服务质量策略与访问控制列表的关联方法及系统
CN109768891B (zh) * 2019-02-13 2022-02-01 烽火通信科技股份有限公司 服务质量策略与访问控制列表的关联方法及系统

Also Published As

Publication number Publication date
EP1665055A2 (en) 2006-06-07
US7349382B2 (en) 2008-03-25
CN100472480C (zh) 2009-03-25
US20050021752A1 (en) 2005-01-27
WO2005022347A2 (en) 2005-03-10
EP1665055A4 (en) 2013-08-28
WO2005022347A3 (en) 2005-11-17

Similar Documents

Publication Publication Date Title
CN1826591A (zh) 反向路径转发保护
CN1305274C (zh) 用于处理分组的方法和装置
CN100419752C (zh) 关联存储器中的因特网协议安全性匹配值
CN101354719B (zh) 具有增强能力的关联存储器
US6775737B1 (en) Method and apparatus for allocating and using range identifiers as input values to content-addressable memories
CN1462004A (zh) 用于产生和使用改进的树形位图数据结构的方法和装置
CN1947381A (zh) 标识反向路径转发信息
CN1482548A (zh) 对多重搜索实行的过滤器规则进行划分的方法和系统
CN1864144A (zh) 具有条目群组和跳过操作的关联存储器
CN101035131A (zh) 协议识别方法及装置
CN1716877A (zh) 用于自行配置网络中的路由设备的方法和装置
CN1561625A (zh) 用查找键作为分组标签以便于使用统一分组转发缓存
CN1794236A (zh) 高效的基于cam在分组有效载荷中进行串搜索的技术
CN1377543A (zh) 用于四路散列表的方法和装置
CN1543150A (zh) 分组分类装置和使用字段级特里结构的方法
CN1564989A (zh) Mac地址高速搜索引擎
CN1781286A (zh) 用于分组分类和重写的方法和装置
CN101043421A (zh) 一种基于内存的ip地址最长匹配快速查找的方法
CN1703890A (zh) 数据网络中识别和分析协议的方法
CN1362820A (zh) 在路由设备中为分组选择路由的方法
CN1630268A (zh) 一种多isp局域网的出口路由方法
CN101047580A (zh) 创建点对点数据通道的方法
CN1400546A (zh) 用于协议数据单元中协议模式识别的方法和设备
CN1753402A (zh) 简单网管协议代理多变量分组查询方法
CN1271833C (zh) 无需ip重组分发分组的装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20090325

CX01 Expiry of patent term