CN100547976C - 用于标识反向路径转发信息的方法和装置 - Google Patents

用于标识反向路径转发信息的方法和装置 Download PDF

Info

Publication number
CN100547976C
CN100547976C CNB2005800131026A CN200580013102A CN100547976C CN 100547976 C CN100547976 C CN 100547976C CN B2005800131026 A CNB2005800131026 A CN B2005800131026A CN 200580013102 A CN200580013102 A CN 200580013102A CN 100547976 C CN100547976 C CN 100547976C
Authority
CN
China
Prior art keywords
data structure
node
reverse path
sub
specific
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.)
Active
Application number
CNB2005800131026A
Other languages
English (en)
Other versions
CN1947381A (zh
Inventor
约翰·H·W·贝廷科
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 CN1947381A publication Critical patent/CN1947381A/zh
Application granted granted Critical
Publication of CN100547976C publication Critical patent/CN100547976C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Electric Propulsion And Braking For Vehicles (AREA)
  • Table Devices Or Equipment (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Manipulator (AREA)
  • Peptides Or Proteins (AREA)
  • Power Steering Mechanism (AREA)

Abstract

本发明公开了方法、装置、数据结构、计算机可读介质、机制和装置等,用于维护和使用一种数据结构(图2),该数据结构用于针对多个地址标识公共中间节点的反向路径转发信息(RPF)。一种数据结构包括用于标识多个叶子节点中的与匹配地址相对应的叶子节点(212、213、214)的地址查找数据结构(250)。多个叶子节点(212、213、214)中的每个包括到指示反向路径转发信息(RPF)的相应子数据结构(260)的反向路径转发间接(RPF)链接。在网络中具有相同的中间可达性节点(211)的叶子节点的特定集合中的每个都包括到指示反向路径转发信息(RPF)的相同特定子数据结构的特定间接链接。中间可达性节点(211)可以是或者可以不是到不同内联网(200、210)的网关节点。中间可达性节点(211)一般是一个节点和多个其他节点之间的流量必须遍历的网络中的节点。

Description

用于标识反向路径转发信息的方法和装置
技术领域
本发明的一个实施例涉及通信和计算机系统,尤其是路由器、分组交换系统和其他设备;更具体地说,一个实施例涉及这样一种数据结构及其使用,该数据结构用于针对多个地址标识出公共中间节点的反向路径转发信息。
背景技术
通信工业正快速改变以适应新的技术和日益增加的客户需求。客户对新应用和现有应用的增加的性能的需求正驱动通信网络和系统提供者采用具有更高速度和更大容量(例如,更宽的带宽)的网络和系统。在试图实现这些目标时,许多通信提供者采用的一种共同的方法是使用分组交换技术。越来越多的公共和专用通信网络正使用各种分组技术例如因特网协议(IP)而被构造和扩展。注意,除非明确说明,这部分文档中描述或引用的任何内容都不应被认为是本申请的现有技术。
RFC 2827描述了对实现单播反向路径转发(RPF)来防止源地址伪造的需求。图1A示出了示例性的现有技术路由器或交换机,它们都具有多个线路卡,每个一般具有多个接口。严格模式反向路径转发要求在一个接口上接收到的分组的源地址必须从该接口可达。
例如,图1B图示了两个相连接的内联网,每个具有4个路由器。示出了两个路由器A和B,并且路由器A具有连接到到其他路由器的链路的接口A-1和A-2,如图所示。如果路由器B发送分组到路由器A,并且如果该分组在接口A-2上被接收到,则RPF条件得到满足,因此该分组被处理并被转发。但是,如果该分组在接口A-1上被接收到,则其是无效的,因为路由选择可达性信息由于在网络中存在到节点B的更低代价的路径而不包括接口A-1。
有两种已知的方法用于RPF检查。第一种是,操作员可以手动创建静态访问控制列表(ACL)来指定在特定接口上所允许的源地址。这种方法的主要缺点包括需要为每个接口手动定义不同的ACL,并且这些ACL需要手动更新来适应网络拓扑改变以提供合适的保护。
第二种已知的方法是对转发信息库(FIB)执行两次查找操作:第一次基于目的地来标识出要转发分组的位置,第二次查找操作基于分组的源地址来标识出分组是否是在允许的接口上被接收到。该方法要求对FIB执行第二次查找操作,这要么降低了分组可以被转发的速率(因为该方法要求两次查找而不是仅一次查找),要么要求额外的或者重复的组件来并行执行这两个查找操作。此外,一般还要求执行第三次查找,这次查找是对一组预定的ACL执行,以进一步标识出如何处理分组。执行所有这些查找操作影响了分组可以被处理的速率和/或执行这些操作所要求的硬件和软件的数量。
在一种已知的方法中,当在一个接口上使能单播反向路径转发后,路由器对在该接口上接收到的所有分组进行核查。路由器执行检查以确保源地址出现在路由选择表中,并且与分组在其上被接收到的接口匹配。这种特征检查的目的是查看在路由器接口处接收到的任何分组是否是通过到该分组的源的最佳返回路径之一到达的。该特征通过基于分组的源地址在路由选择/转发信息库中执行反向查找达到上述目的。如果未定位出分组的相应反向路径,则取决于在配置命令中是否指定了ACL,该特征可以丢弃或转发分组。如果在命令中指定了ACL,则当(并且仅当)分组的单播反向路径转发检查失败时,才检查ACL来查看该分组是应当被丢弃(利用ACL中的拒绝语句)还是转发(利用ACL中的许可语句)。如果在配置命令中未指定ACL,则路由器立即丢弃伪造的或畸形的分组。
图1C示出了用于指定各个源地址的RPF信息的现有技术数据结构。该数据结构包括一些信息来对地址执行查找操作以标识出相应的叶子节点(即,相应地址的子数据结构,而不是限于树型数据结构,利用术语“子数据结构”仅表示该数据结构可经由查找或其他检索操作可达)。
例如,存在无数种机制用于对地址执行查找操作来标识出叶子节点,例如但不限于将地址存储在关联存储器中,对地址或者地址的若干个跨度(stride)执行直接的或散列的查找(即,MTRIE等)、树位图(例如,在2003年5月6日授权的美国专利6,560,610中所公开的,该申请通过引用结合于此)、经压缩前缀匹配数据库搜索(例如,在1998年7月14日授权的美国专利5,781,772中所公开的,该申请通过引用结合于此),以及无数的其他查找机制和方法。
如图1C所示,与不同地址相对应的每个叶子节点包含一个位图,该位图示出了可以在其上接收到具有相应源地址的分组的一个或多个有效接口。因此,该数据结构中存储的每个地址(并且对于大量路由器来说这可能是数千或数百万的地址)包含其相应的RPF信息,并且其中的每个必须被维护。
标识网络中的路由选择改变是公知的。例如,边界网关协议(BGP)和内部网关协议(IGP)通常都被用来维护网络的路由选择信息/网络拓扑信息。BGP-4是在RFC 1654中规定的,其通过引用被结合进来。RIP是一种常用的IGP,是在RFC 1058和RFC 1723中规定的,这二者也通过引用被结合进来。基于所发送和接收到的BGP和IGP消息,每个路由器维护其路由选择数据库(包括可达性信息,例如,如何发送分组以到达其预期目的地),并且标识可达性信息改变。
图1D示出了一种更新机制,用于针对具体路由选择改变更新这些位图中的每个,该机制与链接的指针列表相关联,该链接的指针列表指示对于该具体的更新必须被更新的叶子节点。对到达节点的路由的特定路由选择改变可能改变单个,甚至大量(例如,多至数万甚至更多)的RPF信息,因为每个位图必须相应地被更新。因此,在某些网络配置中,对于可达性信息的单个改变(例如,网络拓扑改变)必须执行大量的更新。这种机制已使用了很长时间,因此需要更好的方法,但是尚未发现这种方法。
发明内容
这里公开了方法、装置、数据结构、计算机可读介质、机制和装置等,用于维护和使用一种数据结构,该数据结构用于针对多个地址标识公共中间节点的反向路径转发信息。
一个实施例在一个或多个计算机可读介质上存储数据结构,该数据结构包括用于标识多个叶子节点中的与匹配地址相对应的叶子节点的地址查找数据结构。多个叶子节点中的每个包括到相应的子数据结构的反向路径转发间接链接,其中子数据结构指示反向路径转发信息。在网络中具有相同的中间可达性节点的叶子节点的特定集合中的每个叶子节点都包括到指示反向路径转发信息的相同特定子数据结构的特定间接链接。
在一个实施例中,特定子数据结构利用位图表示指示一个或多个可允许的接口。在一个实施例中,特定子数据结构利用一列接口标识符指示一个或多个可允许的接口。在一个实施例中,特定子数据结构响应于影响网络中的相同中间可达性节点的可达性信息的路由选择更新而被更新。在一个实施例中,中间可达性节点是到不同内联网的网关节点。
一个实施例通过基于特定分组的特定地址来对地址查找数据结构执行查找操作以标识出与该特定地址相对应的叶子节点,从而确定反向路径转发信息。叶子节点包括反向路径转发间接链接。该链接基于到下述特定反向路径子数据结构的反向路径转发间接链接而被遍历,所述特定反向路径子数据结构标识在其上接收到特定分组的接口是否是可允许的。在网络中具有相同中间可达性节点的叶子节点的特定集合中的每个叶子节点都包括到某一特定子数据结构的特定间接链接。在一个实施例中,中间可达性节点是到不同内联网的网关节点。
用于执行查找操作来标识出反向路径转发信息的一个实施例包括一个或多个计算机可读介质,以及一个或多个查找引擎,所述计算机可读介质配置为存储用于标识多个叶子节点中的与匹配地址相对应的叶子节点的地址查找数据结构,所述查找引擎用于对地址查找数据结构执行查找操作。数据结构中的每个叶子节点包括到指示反向路径转发信息的相应子数据结构的反向路径转发间接链接。在网络中具有相同中间可达性节点的叶子节点的特定集合中的每个叶子节点都包括到同一特定子数据结构的特定间接链接,该特定子数据结构指示反向路径转发信息。在一个实施例中,中间可达性节点是到不同内联网的网关节点。
附图说明
所附权利要求具体阐述了本发明的特征。结合附图从下面的详细描述中可以最好地理解本发明及其优点,在附图中:
图1A是示出了路由器或交换机的高层视图的框图;
图1B是示出了网络的框图;
图1C是用于保存RPF信息的现有技术数据结构的框图;
图1D是示出了在现有技术系统中执行的响应于路由选择改变而更新RPF信息的框图;
图2是示出了用于说明在一个实施例中维护的相应RPF信息的网络的框图;
图3是示出了在一个实施例中使用的地址查找数据结构和子数据结构的框图,这些数据结构用于维护与通过公共中间节点可达的不同地址相对应的多个叶子节点的公共RPF信息;
图4包括用于维护子数据结构中的RPF信息的两种不同机制的框图;
图5A是示出了在一个实施例中执行的用于执行RPF检查的过程的流程图;
图5B是示出了在一个实施例中执行的用于更新所维护的RPF信息的过程的流程图;
图6A是在一个实施例中使用的系统或组件的框图;以及
图6B是在一个实施例中使用的系统或组件的框图。
具体实施方式
这里公开了方法、设备、数据结构、计算机可读介质、机制和装置等,用于维护和使用一种数据结构,该数据结构用于针对多个地址标识公共中间节点的反向路径转发信息。
这里所述实施例包括各种元件和限制,但是没有一个元件或限制被认为是关键元件或限制。每个权利要求在整体上单独反映本发明的一个方面。此外,这里所述的一些实施例可以包括但不限于系统、网络、集成电路芯片、嵌入式处理器、ASIC、方法和包含指令的计算机可读介质等。一个或多个系统、设备、组件等可以包括一个或多个实施例,实施例可以包括一些元件或由相同或不同的系统、设备、组件等执行的对权利要求的限制。下文所述实施例体现了本发明的范围和精神内的各个方面和配置,同时附图示出了示例性的非限制性的配置。注意,计算机可读介质和用于执行方法的装置以及处理块操作被公开,并且保持本发明的可延展范围和精神。
这里所使用的术语“分组”指所有类型的分组或者任何其他信息或数据单元,包括但不限于固定长度的信元和可变长度的分组,它们每个都可以或者不可以划分成更小的分组或信元。这里所使用的术语“分组”还指分组自身或分组指示,例如但不限于分组或者分组头部的全部或一部分、数据结构值、指针或索引,或者分组或与其相关联的信息的任何其他部分或者直接或间接的指示。例如,通常路由器对分组的一个或多个字段尤其是头部执行操作,所以在分组头部被操纵时分组的主体通常被存储在独立的存储器中,并且基于对分组(即,在本示例中是分组头部)进行处理的结果,整个分组被转发或丢弃,等等。另外,这些分组可以包含一种或多种类型的信息,包括但不限于语音、数据、视频和音频信息。这里总地使用的术语“项”指分组或者信息或数据的任何其他单元或片段,设备、组件、元件或任何其他实体。短语“处理分组”和“分组处理”一般指基于分组内容(例如,分组头部或其他字段)执行一些步骤或动作,并且这些步骤或动作可以或者可以不包括修改、存储、丢弃和/或转发分组和/或相关数据。
术语“系统”在这里总地用来描述任何数目的组件、元件、子系统、设备、分组交换元件、分组交换机、路由器、网络、计算机和/或通信设备或机构,或者它们的组件的组合。术语“计算机”在这里总地用来描述任何数目的计算机,包括但不限于个人计算机、嵌入式处理元件和系统、控制逻辑、ASIC、芯片、工作站、主机等。术语“处理元件”在这里总地用来描述任何类型的处理机构或设备,例如,处理器、ASIC、现场可编程门阵列、计算机等。术语“设备”在这里总地用来描述任何类型的机构,包括计算机或系统或者它们的组件。术语“任务”和“进程”在这里总地用来描述任何类型的运行程序,包括但不限于计算机进程、任务、线程、执行的应用程序、操作系统、用户进程、设备驱动器、源代码、机器或其他语言等,并且可以是交互式的和/或非交互式的,本地和/或远程执行的,前台和/或后台执行的,在用户和/或操作系统地址空间中执行的,库和/或单独应用程序的子例程,并且不限于任何具体的存储器分区技术。图中所示步骤、连接和对信号和信息的处理包括但不限于任何框图、流程图和消息顺序图,并且一般可以以相同或不同的串行或并行顺序,并且/或者由不同的组件和/或进程、线程,并且/或者通过不同的连接而被执行,并且可以与其他实施例中的其他功能组合,除非这使得该实施例不可用,或者明确或隐含地要求了顺序(例如,对于读取值、处理值的顺序,该值必须在对其进行处理之前被获得,尽管一些关联处理可以在读操作之前、同时或者之后被执行)。此外,术语“标识”总地用来描述用于直接或间接确定一些内容的任何方式或机制,可以包括但不限于接收、从存储器中检索、确定、定义、计算、产生等。
此外,术语“网络”和“通信机制”在这里总地用来描述一个或多个网络、通信介质或通信系统,包括但不限于因特网,专用或公共电话、蜂窝、无线、卫星、线缆、局域、城域和/或广域网,线缆、电连接、总线等,以及诸如消息传递、进程间通信、共享存储器等内部通信机制,等等。术语“消息”在这里总地用来描述信息片段,其可以是或者可以不是但是一般是经由一个或多个任何类型的通信机制传输的。
术语“存储机构”包括任何类型的存储器、存储设备或其他用于维护任何格式的指令或数据的其他机制。“计算机可读介质”是一个可扩展的术语,包括任何存储器、存储设备、存储机构,以及其他存储和信令机制,包括诸如网络接口卡和其中的缓冲区这样的接口和设备,以及任何通信设备和接收和发送的信号,以及计算机化的系统可以解释、接收和/或发送的其他当前和将开发出的技术。术语“存储器”包括任何随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储组件或元件。术语“存储设备”包括任何固态存储介质、盘驱动器、盘、网络服务、带驱动器和其他存储设备。存储器和存储设备可以存储要由处理元件和/或控制逻辑执行的计算机可执行指令,以及由处理元件和/或控制逻辑操纵的数据。术语“数据结构”是一个可扩展的术语,指任何数据元素、变量、数据结构、数据库和/或可被应用到数据来辅助解释数据或者对数据执行操作的一种或多种组织方案,例如但不限于存储器位置和设备、集合、队列、数、堆、列表、链表、数组、表、指针等。数据结构一般保存在存储机构中。术语“指针”和“链接”在这里总地用来标识一些机制,这些机制用于引用或标识另一个元素、组件或者其他实体,并且这些可以包括但不限于对存储器或其他存储机制或其中的位置的引用、数据结构中的索引、值等。
术语“一个实施例”在这里用来引用具体的实施例,每次引用“一个实施例”可以指不同的实施例,并且在对关联特征、元素和/或限制的描述中在这里重复使用该术语并不是要建立每个和所有实施例都必须包括的关联特征、元素和/或限制的累积集合,尽管实施例可能包括所有这些特征、元素和/或限制。另外,短语“用于xxx的装置”一般包括包含用于执行xxx的计算机可执行指令的计算机可读介质。
另外,术语“第一”、“第二”等一般在这里用来表示不同的单元(例如,第一元素、第二元素)。在这里这些术语的使用不一定表示排序(例如一个单元或事件在另一个之前发生或到来),而只是提供了一种机制来区分具体的单元。另外,使用单数名词是非限定性的,其使用一般包括特定事物中的一个或多个,而不是仅一个(例如,使用词“存储器”一般指一个或多个存储器,而不必指定“一个存储器或多个存储器”、“一个或多个存储器”,或者“至少一个存储器”等)。此外短语“基于x”和“响应于x”用来指示事物从其被导出或者导致的x的最小集合,其中“x”是可扩展的,并且不一定描述对其执行操作的项目的完整列表,等等。另外,短语“耦合到”用来指示两个元件或设备之间的一定级别的直接或间接连接,而一个或多个耦合设备改变或不改变耦合的信号或传输的信息。术语“子集”用来指示集合的全部或小于全部的元素的群组。术语“子树”被用来指示树的全部或者少于树的全部。此外,术语“或”在这里被用来标识选择联合项目中的一个或多个,包括全部。
这里公开了方法、装置、数据结构、计算机可读介质、机制和装置等,用于维护和使用一种数据结构,该数据结构用于针对多个地址标识公共中间节点的反向路径转发信息。
一个实施例在一个或多个计算机可读介质上存储数据结构,该数据结构包括用于标识多个叶子节点中的与匹配地址相对应的叶子节点的地址查找数据结构。多个叶子节点中的每个包括到相应的子数据结构的反向路径转发间接链接,其中子数据结构指示反向路径转发信息。在网络中具有相同的中间可达性节点的叶子节点的特定集合中的每个叶子节点都包括到指示反向路径转发信息的相同特定子数据结构的特定间接链接。
在一个实施例中,特定子数据结构利用位图表示指示一个或多个可允许的接口。在一个实施例中,特定子数据结构利用一列接口标识符指示一个或多个可允许的接口。在一个实施例中,特定子数据结构响应于影响网络中的相同中间可达性节点的可达性信息的路由选择更新而被更新。在一个实施例中,中间可达性节点是到不同内联网的网关节点。
一个实施例通过基于特定分组的特定地址来对地址查找数据结构执行查找操作以标识出与该特定地址相对应的叶子节点,从而确定反向路径转发信息。叶子节点包括反向路径转发间接链接。该链接基于到下述特定反向路径子数据结构的反向路径转发间接链接而被遍历,所述特定反向路径子数据结构标识在其上接收到特定分组的接口是否是可允许的。在网络中具有相同中间可达性节点的叶子节点的特定集合中的每个叶子节点都包括到某一特定子数据结构的特定间接链接。在一个实施例中,中间可达性节点是到不同内联网的网关节点。
用于执行查找操作来标识出反向路径转发信息的一个实施例包括一个或多个计算机可读介质,以及一个或多个查找引擎,所述计算机可读介质配置为存储用于标识多个叶子节点中的与匹配地址相对应的叶子节点的地址查找数据结构,所述查找引擎用于对地址查找数据结构执行查找操作。数据结构中的每个叶子节点包括到指示反向路径转发信息的相应子数据结构的反向路径转发间接链接。在网络中具有相同中间可达性节点的叶子节点的特定集合中的每个叶子节点都包括到某一特定子数据结构的特定间接链接,该特定子数据结构指示反向路径转发信息。在一个实施例中,中间可达性节点是到不同内联网的网关节点。
转到图2,图2是示出了用于说明在一个实施例中维护的相应RPF信息的示例性网络的框图。如图所示,该示例性网络包括内联网200(包括节点201-204)和内联网210(包括节点211-214)。一种观察是针对严格模式反向路径转发作出的,内联网-1200中的每个节点201-204到内联网210中的节点211-214的RPF/可达性信息与中间/网关节点211的相同。这样,每个节点201-204的每个线路卡可以通过维护节点211的RPF信息的单个集合来维护节点211-214的RPF信息,并且将地址查找数据结构中的所有叶子节点链接到RPF信息的单个集合。这在图2中由地址查找数据结构250示出,地址查找数据结构250包括在包含内联网200和210的示例性网络中分别与节点211-214相对应的叶子节点251-254。每个叶子节点251-254包括到RPF子数据结构260的间接引用255(例如,指针、链接、偏移值、散列值、相对值、绝对值等),RPF子数据结构260包括节点211的RPF信息。注意,每个节点201-204中的所维护的RPF信息260可以相同,但是一般是不同的,因为对于节点201-204,到达节点211的可达性信息一般不同。在一个实施例中,中间可达性节点是到不同内联网的网关节点。在一个实施例中,中间节点不是到不同内联网的网关节点。在一个实施例中,中间节点是一个节点和多个其他节点之间的流量必须遍历的网络中的节点。
图3是示出了在一个实施例中使用的地址查找数据结构和子数据结构的框图,这些数据结构用于维护与通过公共中间节点可达的不同地址相对应的多个叶子节点的公共RPF信息。如图所示,地址查找数据结构一般包括最长前缀匹配机制300和叶子节点310、320和330,并且还可能包括子数据结构350(因为其可以被看作包括在地址查找数据结构中、在另一个数据结构中或者在单独的数据结构中)。基于接收到的分组的源地址,查找操作由最长前缀匹配机制300执行来标识出相应的叶子节点310、320或330。每个叶子节点310、320和330包括到子数据结构350的间接引用(311、321和331)。相应的间接引用(311、321和331)被遍历来标识和检索子数据结构350,子数据结构350包括网络中的相应网关节点或其他中间点的RPF信息。基于该RPF信息和分组在其上被接收到的接口,可以确定是处理还是丢弃该分组。注意,在一个实施例中,最长前缀匹配机制300被用来通过对分组的目的地地址执行查找操作来标识出相应的叶子节点从而确定路由选择信息,所述叶子节点包括到目的地地址的路由选择信息的间接引用或者路由选择信息。
图4包括用于在子数据结构中维护RPF信息的两种不同机制的框图。RPF信息401以位图形式被存储,一般每个接口一位,标识如果在相应的接口上接收到具有源地址的分组则该分组是否有效。RPF信息402以列表的形式被存储(例如,数组、链表、表、集合等),但是一般被存储在数组中,该数组具有应当在其上接收到具有相应源地址的分组的每个有效接口。一个实施例使用RPF信息401和402的组合,这一般取决于所要求的RPF条目的数目,并且可能取决于实施例的实现方式(例如,如果存在优化的位操纵或列表硬件等)。
图5A是示出了在一个实施例中执行的用于执行RPF检查的过程的流程图。处理开始于过程块500,然后前进到过程块502,在该过程块中从在特定接口上接收到的特定分组中抽取出源地址。接下来,在过程块504中,在地址查找数据结构中执行查找操作来标识出特定的叶子节点。在过程块506中,RPF信息间接引用被跟随到特定RPF子数据结构,该子数据结构指示对于在特定接口上接收到的分组的源地址该特定接口是否是可允许的。如在过程块508中所确定,如果该特定接口是允许的,则如过程块510中所示分组被处理并转发;否则,在过程块512中该分组被丢弃。然后如处理块519所示处理完成。
图5B是示出了在一个实施例中执行的用于更新所维护的RPF信息的过程的流程图。该处理开始于过程块550,然后前进到过程块552以识别出影响中间/网关节点的可达性信息的路由选择更新。如前所述,确定网络中的路由选择改变是公知的并且有文档记载,所以在这里不重复,并且可以使用任何路由更新标识机制。在过程块554中,相应的子数据结构中的RPF信息被更新,然后如过程块559所示处理完成。
图6A是在一个实施例中使用的系统或组件的框图。如图所示,分组601由分组处理器600接收到。在执行RPF检查时,分组的源地址被提供(607)给查找机构610,查找机构610一般包括地址查找数据结构,并且还可以包括RPF子数据结构。查找结果被提供(609)给分组处理器600。在一个实施例中,查找结果609包括可以在其上有效地接收到具有相应地址的分组的有效(和/或无效)接口的列表。在一个实施例中,在其上分组被接收到的接口也被提供(607)给查找机构610,然后指示被返回(609)给分组处理器600,该指示指出分组是否在RPF有效接口上被接收到。分组处理器600处理RPF有效分组603并且一般转发这些分组。在一个实施例中,查找机构610的地址查找数据结构和RPF子数据结构由路由/RPF更新机构620基于接收到的路由选择更新(例如,BGP、IGP更新)621更新(625)。
图6B是在一个实施例搜索中使用的系统或组件650的框图,用于维护和使用一种数据结构,该数据结构用于针对多个地址标识公共中间节点的反向路径转发信息。在一个实施例中,系统或组件650执行与这里所示或所描述的流程图之一相对应的一个或多个过程。
在一个实施例中,系统或组件650包括处理元件651、存储器652、存储设备653,以及用于发送和接收信息/数据项和/或与外部设备(例如,一个或多个存储器和/或查找机构)通信的接口654,它们一般经由一个或多个通信机构695耦合,同时通信路径一般被裁剪来满足应用的需求。组件650的各种实施例可以包括更多或更少的元件。组件650的操作一般由使用存储器652和存储设备653的处理元件651控制,以执行一个或多个任务或过程。存储器652是一种计算机可读介质,并且一般包括随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储器组件。存储器652一般存储要由处理元件651执行的计算机可执行指令和/或由处理元件651操纵的数据,用于实现根据实施例的功能。存储设备653是另一种计算机可读介质,并且一般包括固态存储介质、盘驱动器、盘、网络服务、带驱动器和其他存储设备。存储设备653一般存储要由处理元件651执行的计算机可执行指令和/或由处理元件651操纵的数据,用于实现根据实施例的功能。
考虑到我们的发明的原理可以被应用到的许多可能的实施例,将意识到这里参照附图描述的本发明的实施例和多个方面仅是说明性的,而不应被认为是限制本发明的范围。例如,本领域技术人员将清楚,许多过程块操作可以被重新排序,以在其他操作之前、之后或者基本同时执行。另外,在各个实施例中可以使用许多不同形式的数据结构。这里所述的发明设想所有这种实施例都在所附权利要求书及其等同物的范围内。

Claims (14)

1.一种用于确定反向路径转发信息的方法,该方法包括:
基于特定分组的特定地址对地址查找数据结构执行查找操作来标识多个叶子节点中与所述特定地址相对应的叶子节点,所述叶子节点包括反向路径转发间接链接;以及
遍历到特定反向路径子数据结构的反向路径转发间接链接,其中所述特定反向路径子数据结构标识所述特定分组在其上被接收到的接口是否是可允许的;
其中所述多个叶子节点中的在网络中具有相同中间可达性节点的特定多个中的每个包括到相同特定子数据结构的特定间接链接。
2.如权利要求1所述的方法,其中,所述中间可达性节点是到不同内联网的网关节点。
3.如权利要求1所述的方法,其中,所述特定子数据结构利用位图表示指示一个或多个可允许的接口。
4.如权利要求1所述的方法,其中,所述特定子数据结构利用一列接口标识符指示一个或多个可允许的接口。
5.一种用于确定反向路径转发信息的装置,该装置包括:
用于基于特定分组的特定地址对地址查找数据结构执行查找操作来标识多个叶子节点中与所述特定地址相对应的叶子节点的装置,所述叶子节点包括反向路径转发间接链接;以及
用于遍历到特定反向路径子数据结构的反向路径转发间接链接的装置,其中所述特定反向路径子数据结构标识所述特定分组在其上被接收到的接口是否是可允许的;
其中所述多个叶子节点中的在网络中具有相同中间可达性节点的特定多个中的每个包括到相同特定子数据结构的特定间接链接。
6.如权利要求5所述的装置,包括用于响应于识别出影响所述网络中的相同中间可达性节点的可达性信息的路由选择更新来更新所述特定子数据结构的装置。
7.如权利要求6所述的装置,其中,所述中间可达性节点是到不同内联网的网关节点。
8.如权利要求5所述的装置,其中,所述中间可达性节点是到不同内联网的网关节点。
9.如权利要求5所述的装置,其中,所述特定子数据结构利用位图表示指示一个或多个可允许的接口。
10.如权利要求5所述的装置,其中,所述特定子数据结构利用一列接口标识符指示一个或多个可允许的接口。
11.一种用于执行查找操作来标识反向路径转发信息的装置,该装置包括:
一个或多个计算机可读介质,配置为存储地址查找数据结构,所述地址查找数据结构用于标识多个叶子节点中的与匹配地址相对应的叶子节点;以及
一个或多个查找引擎,用于对所述地址查找数据结构执行查找操作;
其中,所述数据结构中的所述多个叶子节点中的每个包括到指示反向路径转发信息的相应子数据结构的反向路径转发间接链接,并且所述多个叶子节点中的在网络中具有相同中间可达性节点的特定多个中的每个包括到指示反向路径转发信息的相同特定子数据结构的特定间接链接。
12.如权利要求11所述的装置,其中,所述中间可达性节点是到不同内联网的网关节点。
13.如权利要求11所述的装置,其中,所述特定子数据结构利用位图表示指示一个或多个可允许的接口。
14.如权利要求11所述的装置,其中,所述特定子数据结构利用一列接口标识符指示一个或多个可允许的接口。
CNB2005800131026A 2004-05-27 2005-04-18 用于标识反向路径转发信息的方法和装置 Active CN100547976C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/856,558 US7480255B2 (en) 2004-05-27 2004-05-27 Data structure identifying for multiple addresses the reverse path forwarding information for a common intermediate node and its use
US10/856,558 2004-05-27

Publications (2)

Publication Number Publication Date
CN1947381A CN1947381A (zh) 2007-04-11
CN100547976C true CN100547976C (zh) 2009-10-07

Family

ID=35425156

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800131026A Active CN100547976C (zh) 2004-05-27 2005-04-18 用于标识反向路径转发信息的方法和装置

Country Status (6)

Country Link
US (1) US7480255B2 (zh)
EP (1) EP1757024B1 (zh)
CN (1) CN100547976C (zh)
AT (1) ATE501568T1 (zh)
DE (1) DE602005026808D1 (zh)
WO (1) WO2005119970A2 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103086A1 (en) * 2002-11-26 2004-05-27 Bapiraju Vinnakota Data structure traversal instructions for packet processing
JP4759574B2 (ja) * 2004-12-23 2011-08-31 ソレラ ネットワークス インコーポレイテッド ネットワークパケットキャプチャ分散ストレージシステムの方法及び機器
US20100195538A1 (en) * 2009-02-04 2010-08-05 Merkey Jeffrey V Method and apparatus for network packet capture distributed storage system
US7561589B2 (en) * 2005-02-23 2009-07-14 Cisco Technology, Inc Virtual address storage which may be of particular use in generating fragmented packets
ES2383613T3 (es) 2005-10-05 2012-06-22 Nortel Networks Limited Formación de puentes del estado de enlaces de proveedores
US8059647B2 (en) 2005-10-05 2011-11-15 Nortel Networks Limited Multicast implementation in a link state protocol controlled ethernet network
US7551609B2 (en) * 2005-10-21 2009-06-23 Cisco Technology, Inc. Data structure for storing and accessing multiple independent sets of forwarding information
US7953089B1 (en) * 2006-05-16 2011-05-31 Cisco Technology, Inc. Systems and methods for multicast switching in a private VLAN
CN100456747C (zh) * 2006-08-02 2009-01-28 华为技术有限公司 一种单播反向路径检查的实现方法和网络设备
CN101076020B (zh) * 2007-06-25 2011-05-11 中兴通讯股份有限公司 一种防止以太网组播遭恶意攻击的方法
GB0802371D0 (en) * 2008-02-09 2008-03-12 Nortel Networks Ltd PLSB-VPLS interworking
US8521732B2 (en) 2008-05-23 2013-08-27 Solera Networks, Inc. Presentation of an extracted artifact based on an indexing technique
US20090292736A1 (en) * 2008-05-23 2009-11-26 Matthew Scott Wood On demand network activity reporting through a dynamic file system and method
US8625642B2 (en) 2008-05-23 2014-01-07 Solera Networks, Inc. Method and apparatus of network artifact indentification and extraction
US8004998B2 (en) * 2008-05-23 2011-08-23 Solera Networks, Inc. Capture and regeneration of a network data using a virtual software switch
US20110125749A1 (en) * 2009-11-15 2011-05-26 Solera Networks, Inc. Method and Apparatus for Storing and Indexing High-Speed Network Traffic Data
US20110125748A1 (en) * 2009-11-15 2011-05-26 Solera Networks, Inc. Method and Apparatus for Real Time Identification and Recording of Artifacts
US8849991B2 (en) 2010-12-15 2014-09-30 Blue Coat Systems, Inc. System and method for hypertext transfer protocol layered reconstruction
US8666985B2 (en) 2011-03-16 2014-03-04 Solera Networks, Inc. Hardware accelerated application-based pattern matching for real time classification and recording of network traffic
US20130077530A1 (en) * 2011-09-28 2013-03-28 Cisco Technology, Inc. Scaling IPv6 on Multiple Devices Virtual Switching System with Port or Device Level Aggregation
US8713169B2 (en) 2011-10-11 2014-04-29 Cisco Technology, Inc. Distributed IPv6 neighbor discovery for large datacenter switching systems
US9374320B2 (en) * 2012-07-27 2016-06-21 Cisco Technology, Inc. Investigating the integrity of forwarding paths within a packet switching device
US9154414B2 (en) * 2013-05-30 2015-10-06 Cisco Technology, Inc. Reverse path forwarding router system
US9531564B2 (en) * 2014-01-15 2016-12-27 Cisco Technology, Inc. Single hop overlay architecture for line rate performance in campus networks
CN110636064A (zh) * 2019-09-23 2019-12-31 浪潮软件集团有限公司 一种基于gzip压缩的高速加密数据同步方法及系统
CN110932982B (zh) * 2019-12-23 2022-03-18 锐捷网络股份有限公司 硬件路由表的维护方法及装置
CN111555980B (zh) * 2020-03-16 2023-04-14 视联动力信息技术股份有限公司 一种数据发送方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680566A (en) * 1995-03-03 1997-10-21 Hal Computer Systems, Inc. Lookaside buffer for inputting multiple address translations in a computer system

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5829004A (en) * 1996-05-20 1998-10-27 Au; Lawrence Device for storage and retrieval of compact contiguous tree index records
US5917820A (en) * 1996-06-10 1999-06-29 Cisco Technology, Inc. Efficient packet forwarding arrangement for routing packets in an internetwork
JP3191737B2 (ja) * 1997-08-29 2001-07-23 日本電気株式会社 ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ
US6018524A (en) * 1997-09-09 2000-01-25 Washington University Scalable high speed IP routing lookups
US6067574A (en) * 1998-05-18 2000-05-23 Lucent Technologies Inc High speed routing using compressed tree process
US6658002B1 (en) * 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
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
US6560610B1 (en) * 1999-08-10 2003-05-06 Washington University Data structure using a tree bitmap and method for rapid classification of data in a database
US6374326B1 (en) * 1999-10-25 2002-04-16 Cisco Technology, Inc. Multiple bank CAM architecture and method for performing concurrent lookup operations
US6614789B1 (en) * 1999-12-29 2003-09-02 Nasser Yazdani Method of and apparatus for matching strings of different lengths
US20010040895A1 (en) * 2000-03-16 2001-11-15 Templin Fred Lambert An IPv6-IPv4 compatibility aggregatable global unicast address format for incremental deployment of IPv6 nodes within IPv4
US6654734B1 (en) * 2000-08-30 2003-11-25 International Business Machines Corporation System and method for query processing and optimization for XML repositories
US6594655B2 (en) * 2001-01-04 2003-07-15 Ezchip Technologies Ltd. Wildcards in radix- search tree structures
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
US20030174717A1 (en) * 2002-03-15 2003-09-18 Boris Zabarski System and method for longest prefix match for internet protocol lookup
US7289505B2 (en) * 2002-06-04 2007-10-30 Lucent Technologies Inc. Efficient reverse path forwarding check mechanism
US7349382B2 (en) * 2002-08-10 2008-03-25 Cisco Technology, Inc. Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
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
US6934252B2 (en) * 2002-09-16 2005-08-23 North Carolina State University Methods and systems for fast binary network address lookups using parent node information stored in routing table entries
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
US7356033B2 (en) * 2002-11-21 2008-04-08 Lucent Technologies Inc. Method and apparatus for performing network routing with use of power efficient TCAM-based forwarding engine architectures

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680566A (en) * 1995-03-03 1997-10-21 Hal Computer Systems, Inc. Lookaside buffer for inputting multiple address translations in a computer system

Also Published As

Publication number Publication date
WO2005119970A2 (en) 2005-12-15
WO2005119970A3 (en) 2006-08-24
CN1947381A (zh) 2007-04-11
US20050265328A1 (en) 2005-12-01
EP1757024B1 (en) 2011-03-09
EP1757024A4 (en) 2008-03-19
ATE501568T1 (de) 2011-03-15
EP1757024A2 (en) 2007-02-28
DE602005026808D1 (de) 2011-04-21
US7480255B2 (en) 2009-01-20

Similar Documents

Publication Publication Date Title
CN100547976C (zh) 用于标识反向路径转发信息的方法和装置
CN101019357B (zh) 用于通过交换机传输信息的方法和装置
CN107534613B (zh) 使用子树标识符的多区域源路由组播方法
EP1692801B1 (en) Distributing relevant routing information base updates to subscribing clients in a device
US5687168A (en) Link state routing device in ATM communication system
CN100472480C (zh) 分组处理方法和装置
CN101156408B (zh) 用于操作系统分区的网络通信
US5425026A (en) Multi-protocol packet switching network
US5353283A (en) General internet method for routing packets in a communications network
US7007101B1 (en) Routing and forwarding table management for network processor architectures
CN113542125B (zh) 一种基于集成流表转发报文的方法及装置
US7054276B2 (en) System and method for a multicast network messaging service
CN111937360B (zh) 最长前缀匹配
JP3875521B2 (ja) 改良型インターネットプロトコルパケットルータ
US8825896B2 (en) Scalable distributed parallel access memory systems with internet routing applications
CN102035735A (zh) 用于提供转发信息和服务质量信息的设备和方法
EP1096393A2 (en) Retrieving information using network system, network terminal device and network relay device
US7317729B2 (en) System and process for providing auxiliary information for a packet-switched network of shared nodes using dedicated associative store
CN101909005A (zh) 转发表的处理方法和装置
CN116319553A (zh) 一种表项查找方法以及网络设备
CN113315708B (zh) 栅格化网关的实现系统、方法、计算机设备和存储介质
US20040143592A1 (en) Method for processing redundant packets in computer network equipment
JPH0730587A (ja) フレーム中継制御方法、及びその装置
CN116367236A (zh) 报文转发方法、装置和计算机可读存储介质

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