CN103339887B - 用于优化网络前缀列表搜索的方法 - Google Patents
用于优化网络前缀列表搜索的方法 Download PDFInfo
- Publication number
- CN103339887B CN103339887B CN201180065692.2A CN201180065692A CN103339887B CN 103339887 B CN103339887 B CN 103339887B CN 201180065692 A CN201180065692 A CN 201180065692A CN 103339887 B CN103339887 B CN 103339887B
- Authority
- CN
- China
- Prior art keywords
- prefix
- route
- list
- information
- policy
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
分组网络设备包括操作来维持一个或多个转发表的路由处理器,且包括操作来处理由分组网络设备从网络接收的信息并将信息转发到其正确的目的地的一个或多个线卡。路由处理器还操作来识别哪些进入前缀可用于更新转发表或识别存储在分组网络设备中的前缀,其可从一个网络协议重新分配到在路由处理器上运行的另一网络协议。在路由处理器上运行的表管理功能操作来识别在进入前缀与包括在与有序前缀列表和基数树结构都相关的政策语句中的信息之间的最佳匹配。
Description
背景技术
1.技术领域
本公开通常涉及用于IP封包前缀的过滤的有效过程,且更具体地涉及用识别哪些互联网协议前缀存储在由网络协议维持的RIB中的有效过程。
2.相关技术的描述
大型通信网络一般由单个组织或单位所管理的多个自主系统组成,且每个自主系统可包括多个子网络或子网,每个子网是自主系统的不同的逻辑部分。每个子网可包括协作来将信息从网络中的一个位置传送到另一位置的某个数量的分组网络设备例如路由器和/或交换机和某个数量的主机设备例如服务器和客户端。为了将信息从网络例如互联网中的一个位置传送到另一位置,IP地址被加到信息的每个传输的封包或帧的开始处。这个IP地址分成网络部分或网络前缀和主机部分,网络前缀部分占据地址的N个(N对于IpV4是从1到32的数字)最高有效位,而主机部分是占据地址的N个最低有效位。IP地址的网络部分由路由器或交换机使用来确定具有特定的网络前缀的封包或帧发送到网络(子网)的哪个部分,而IP地址的主机部分由路由器或交换机使用来确定封包发送到哪个特定的主机(服务器或客户端)。
为了在网络内操作来将信息转发到正确的目的地,分组网络设备从它们可通信的其它分组网络设备获悉可达性信息。该信息可除了别的以外还包括周围网络设备的网络前缀信息。该网络前缀信息一般由在分组网络设备上运行的网络协议获悉。任何特定的网络设备可包括一个或多个网络协议,如果只列举三个,例如近路先开(OSPF)协议、边界网关协议(BGP)、路由信息协议(RIP)。该网络可达性信息接着由各种网络协议使用来构建路由信息库(RIB),路由表管理器可使用路由信息库来构建转发信息库(FIB)。
除了用于构建RIB和FIB以外,网络前缀还可用于定义由分组网络设备使用来接受或拒绝从它所位于的网络的其它区域,或因为路由重新分配从其它协议接收的封包的政策。更具体地,前缀可用于过滤网络协议所使用的进入和外发网络更新信息,例如BGP和OSPF,且前缀可用于控制路由信息从一个网络协议到另一网络协议例如在OSPF和RIP之间或在OSPF和BGP之间的重新分配,而不管不同的协议是否在同一网络设备上或在不同的网络设备上运行。如上所述使用的IP前缀可包括在网络协议可从第一个语句到最后一个语句顺序地走过的语句的顺序列表中,查找在最近接收的前缀(重新分配的或网络地址更新)和包括在语句中的信息之间的匹配。当网络协议确定在最近接收的前缀和包括在语句中的信息之间存在匹配时,允许或拒绝最近接收的前缀。该过程一般被称为前缀过滤。如果前缀被允许,则协议除了别的以外还可使用前缀来更新路由或转发表。在本上下文中的最近接收的封包可以是从另一网络设备或从另一网络协议接收的封包。
基于顺序的前缀列表的前缀过滤方法的一个问题是当前缀列表的大小增加时,网络设备的性能开始下降。当顺序排序的前缀列表中的语句的数量变得较大时(该数量可为例如大约两万个语句,且匹配针对大量前缀(500,000或更多,如可能是互联网馈送的情况的)而被执行),网络设备用于更新其路由和转发表所花费的时间增加到不可接受的水平。
发明内容
前缀列表语句的有序列表可被组织成基数树结构,以便明显减少使更新IP前缀信息与包括在基数树中的语句中的信息匹配的时间。在一个实施方式中,公开了一种用于识别由在分组网络设备上运行的网络协议所使用的IP前缀以更新转发表的方法,其中多个前缀列表语句被限定为包括在有序列表中,基数树结构的节点和子节点填充有被包括在前缀列表语句中的至少一些信息,在分组网络上运行的一个或多个网络协议接收更新IP前缀信息,并比较这个接收的信息与包括在基数树中的信息,且如果它匹配基数树中的信息,转发表用所接收的IP前缀信息来更新。
附图说明
通过参考下面的附图阅读说明书可最好地理解本发明,其中:
图1A是通信网络10的图;
图1B是分组网络设备的图示;
图2A是示出IP地址的格式的图示;
图2B是示出IP路由前缀的格式的图示;
图3是示出包括在前缀列表中的政策语句的格式的图;
图4是示出前缀列表的格式的图示;
图5是填充有被包括在图4的前缀列表中的信息的基数树的图示;
图6A-6B是用于使更新前缀与包括在基数树中的前缀信息匹配的过程的一个实施方式的逻辑流程图;
图7是用于使更新前缀与包括在基数树中的前缀信息匹配的过程的可选实施方式的逻辑流程图。
具体实施方式
通信网络例如互联网包括大量自主系统(AS),其中每个自主系统可包括某个数量的互连子网络。如上文描述的,AS可包括由单个组织或单位管理的多个网络设备,且每个自主系统可包括多个子网络或子网,其中每个子网是自主系统的不同的逻辑部分。通常,包括子网的所有分组网络设备(路由器/交换机)使用被称为子网地址或IP网络前缀的公共IP网络地址是可寻址/定址的。图1A是可根据公知的互联网协议(IP)来操作的通信网络10的图。网络10在这种情况下包括三个自主系统AS.1、AS.2和AS.3,其中每个自主系统又由每个自主系统的被标记为子网-0到子网-2的某个数量的子网组成。在这种情况下当网络10根据互联网协议来操作时,在所有自主系统中的每个子网中的所有分组网络设备(路由器和/或交换机)通过一般被称为网络前缀或IP前缀的唯一的子网地址是可寻址/定址的,
继续参考图1A,中央权威机构例如互联网网络信息中心(INIC)给在AS.2中的每个子网(0-2)指定唯一的IP前缀。为了这个描述的目的,每个IP前缀以带点十进制格式被表示为IP前缀地址/前缀长度对(前缀对)。为了这个描述的目的,子网-0被指定前缀10.30.20.0/24,子网-1被指定前缀10.10.10.0/24,且子网-2被指定前缀10.20.10.0/24。将稍后分别参考图2A和2B描述IP地址和IP前缀的格式和内容。
图1B是示出根据一个实施方式可包括分组网络设备15例如网络路由器或交换机的功能的方框图。网络设备15除了别的以外还由控制处理器和一个或多个线卡(linecards)组成。线卡通常操作来从网络接收信息并将信息发送到网络,网络设备15通过一个或多个I/O端口连接到该网络,且线卡操作来处理从网络接收的信息以确定如何转发信息和将信息转发到哪里。每个线卡包括封包处理功能和使它能够执行信息转发功能的转发表。控制处理器通常操作来除了别的以外还维持包括在每个线卡中的转发表,且控制处理器根据一个实施方式来操作以控制哪些路由包括在线卡中维持的转发表中,以控制哪些IP地址重新分配在分组网络设备14上运行的网络协议之间。在这方面,控制处理器包括由至少一个网络协议组成的至少一个路由处理器模块和表管理模块,且它包括存储器。网络协议可包括下面的公知网络协议的一个或多个,如互联网协议、近路先开(OSPF)协议、边界网关协议(BGP)、路由信息协议(RIP)、地址分辨协议(ARP),仅列举几个。控制模块存储器可除了别的以外还可用于存储网络协议所收集的路由信息,表管理模块可使用该路由信息来在线卡上构建和维持转发表。
继续参考图1B,表管理模块由一个或多个IP前缀过滤政策、前缀列表发展工具、基数树发展工具和匹配例程组成。通常,过滤政策操作来控制网络设备15所接收的哪些前缀为了更新路由和转发表的目的而被允许或拒绝到网络协议或被允许或拒绝重新分配在网络协议之间。如将稍后分别参考图4和图5描述,前缀列表发展工具和基数树发展工具可由网络管理员使用来构建/编译前缀列表并构建基数树。匹配例程通常操作来走过基数树以识别进入信息前缀对与包括在基数树中的信息的最佳匹配。
图2A是示出Ipv4地址20的通常格式的图。根据IPv4,每个IP地址由分成两个可变长度节段的信息的32位组成。第一节段保留为网络地址,而第二节段保留为主机地址。在三个前缀被指定给包括AS.2的三个子网的情况下,每个地址的前24位包括IP前缀信息,其在每个前缀中由/24记号规定。/24记号在这种情况下指子网掩码长度或仅仅子网地址的长度。根据网络的大小,IP地址可以在三个主要类的任一个中,不同数量的较低阶位为网络地址信息保留。然而,为了这个描述的目的,IP地址的类不是重要的,所以将不进一步被讨论。如图2A所示且根据上面描述的三个IP前缀,在这种情况下IP地址的第一节段由包括在地址的第一个、第二个和第三个八位位组中的较低阶的24位组成,且IP地址的第二节段由包括在地址的第四个八位位组中的八个较低阶的位组成。虽然这里描述了以IPv4格式的前缀地址,前缀地址也可以以IPv6格式。
图2B示出以带点十进制形式的IP前缀21的格式。在这种情况下示出的IP前缀21是IPv4地址,所以它包括在四个八位位组当中均匀地划分的地址信息的32位。IP前缀21在长度上可以是一位,或它在长度上可以是24位,且每个IP前缀可被表示为前缀/长度对,该对的第一个成员是IP前缀,而该对的第二个成员是前缀长度。该对的第二个成员通过“/”与该对的第一个成员分开。
如上文在背景章节中描述,网络前缀可用于定义由分组网络设备使用来接受或拒绝从它所位于的网络的其它区域,或因为路由重新分配从其它协议接收的封包的政策。图3示出这样的政策语句30的格式,政策语句30可存储在参考图1B描述的位于设备15中的控制模块存储器中。图3的政策语句由三个字段组成,但可包括更多或更少的字段。第一字段包括允许或拒绝指令,第二字段包括IP前缀地址/前缀长度对,且第三字段包括前缀范围信息。政策语句例如图3所示的语句可用于过滤由网络协议例如BGP和OSPF使用的进入和外发网络更新信息,且它们可用于控制路由信息从一个网络协议到另一网络协议例如在OSPF和RIP之间或在OSPF和BGP之间的重新分配,而不管不同的协议是否在同一网络设备上或在不同的网络设备上运行。在格式上类似于上面描述的格式的语句可包括在网络协议可从第一个语句到最后一个语句顺序地走过的顺序列表中,查找在最近接收的前缀(重新分配的或网络地址更新)和包括在语句中的信息之间的匹配。当网络协议确定在最近接收的前缀和包括在前缀列表中的语句中的信息之间存在匹配时,允许或拒绝最近接收的前缀。该过程一般被称为前缀过滤。如果允许前缀,则协议除了别的以外还可使用前缀来更新路由或转发表。在本上下文中的最近接收的封包可以是从另一网络设备或从另一网络协议接收的封包。
图4是示出由八个被顺序地组织的政策语句或仅仅语句组成的前缀列表40的图示,这些语句可存储在参考图1B描述的控制模块存储器中。所有语句在这种情况下包括连续掩码信息,但类似于前缀列表40的前缀列表可包括非连续子网掩码信息。一般而言,在前缀列表中的每个语句由网络管理器产生,且每个列表可被构建来满足每个分组网络设备的网络管理员所遵循的路由或交换要求(这由流的源和流的目的地确定),列表在分组网络设备中被实现/构建/包括。路由器和交换机供货商一般向消费者提供可用于产生语句并构建前缀列表的专用工具。这样的工具的设计和操作对于路由器/交换机的领域中的技术人员是公知的,所以将不在这里被描述。前缀列表40被策略性地构建以在第一个语句开始被顺序地走过。路由器可包括操作来对照包括在每个语句中的信息顺序地测试它接收的每个新前缀并在存在匹配的点处立即停止测试的过滤功能。在存在匹配的点处,采取相应于在匹配语句中规定的条件(允许或拒绝)的行动,且测试过程终止。关于图4更具体地,在前缀列表40中的第一个语句被标记为“seq10”,且它包括允许到具有IP前缀10.10.10.0(其在长度上是24位)的目的地的任何路由的政策。被标记为“seq15”的第二个语句包括拒绝到具有IP前缀10.10.10.0(其在长度上是24位)的目的地的任何路由的政策。范围项“gt30”在这种情况下用于在匹配过程期间使进入前缀与语句匹配。所以例如进入IP前缀对10.10.10.0/32被这个语句允许,因为32的前缀长度匹配大于30的在语句中的范围。被标记为“seq20”的第三个语句包括允许到具有IP前缀10.10.10.0(其中前缀长度是24到26位,包括端点)的目的地的任何路由的政策,而被标记为“seq45”的最后一个语句包括拒绝到具有不匹配前面的语句中的任何政策的前缀的目的地的任何路由的政策。
如在背景章节中描述的,前缀列表例如图4的列表可包括两万个语句,在这种情况下,走过列表以使进入前缀与包括在包括列表的语句中的信息匹配的过程可能花费不可接受地长的时间。已发现,包括语句的顺序列表的语句可以用于允许路由器非常快地使进入前缀信息与包括在包括前缀列表例如图4的前缀列表40的语句中的信息匹配的方式而被放置在基数树结构中。在存在匹配的情况下,包括在匹配的语句中的IP前缀地址信息可用于更新包括在分组网络设备中的路由或转发表,或包括在匹配的语句中的IP前缀地址信息可用于确定哪些IP前缀在网络协议之间被重新分配。
图5示出由参考图4描述的语句组成的基数树结构50(存储在图1B的控制模块存储器中)。基数树由七个节点N1到N7组成,每个节点相应于图4的前缀列表40中的一个或多个语句。每个节点N1-N7包括匹配密钥,其在一个实施方式中是上文参考图2B描述的IP前缀地址/前缀长度对(或仅仅前缀对)。因为多个语句可包括相同的前缀地址/前缀长度对信息,但不同的信息可包括在语句的其余部分中,每个节点N1-N7可与一个或多个不同的子节点相关。每个子节点包括包含语句的至少一些其它信息,例如序列号、语句行动(允许/拒绝)和前缀范围信息(gt或le)。例如,在图5中,节点N3包括相应于图4的前缀列表40中的两个序列10和15的两个子节点(SN10和SN15)。序列10和序列15都包括相同的前缀地址,即,10.10.10.0/24,但语句中的其余信息是不同的,所以包括在相应语句中的序列号、行动和范围信息被包括在相应的子节点中。在图5的基数树结构的情况下,与每个子节点相关的信息包括在子节点列表中的单独条目中,使得SN10和SN15都包括在与节点N3相关的子节点列表中。基数树50可使用专用路由器/交换机供货商工具来构建填充有前缀列表信息的三个节点和子节点。这样的工具的设计和操作对于本领域中的从业人员是公知的,所以将不在这里被描述。
继续参考图5,节点N1是基数树50的根节点,且它包括前缀地址/前缀长度对0.0.0.0/0,其是默认路由。节点N1与仅仅一个子节点SN45(在这种情况下)相关,该子节点由包括在图4的前缀列表40中的被标记为序列45的语句中的信息组成。在节点N1的情况下,在包括基数表50的网络设备处的任何前缀将被确定为与节点N1匹配,因为前缀0.0.0.0/0是默认路由并匹配所有前缀。节点N1连接到两个分支节点:节点N2和N5。在操作中,假定10.10.10.1/32的进入前缀,分组网络设备可检查该前缀中的一个或多个位的状态,且在节点N1开始比较这个状态与语句密钥中的相应位的状态,语句密钥在这种情况下是包括在基数树的每个节点中的前缀地址/前缀长度对。根据哪些位被设置,选择左(节点N2)或右(节点N5)。走过基数树以使进入前缀信息与语句密钥信息匹配的这个过程继续,直到网络设备找到最佳匹配节点。接着,此时,该过程执行查找具有最低序列号的子节点的退回操作。用于识别被允许或拒绝的进入或外发前缀信息的这个过程在计算上非常不同。在最坏情况情景中,给定IPv4前缀地址,最佳前缀匹配过程在它识别匹配与否之前仅执行32次重复。
图6是可用来确定是允许还是拒绝在网络发现/可达性操作(ARP)期间接收的或在前缀重新分配操作期间发送的前缀的过程的逻辑流程图。为了描述该过程的实施方式的目的,图5的基数树结构50被使用,且假设被接收或发送的前缀是10.10.10.0,以及它是24位长(10.10.10.0/24)。在该过程的步骤1中,使用包括在图4的前缀列表40中的信息来构建图5的基数树50。如前所述,分组网络设备供货商一般提供设备用户可使用来产生包括在前缀列表中并从包括前缀列表的信息构建基数树结构的专用工具。在步骤1A中,默认序列号被选择/预先选择并存储在分组网络设备存储器例如包括在参考图1B描述的分组网络设备15的控制模块中的表存储器中。在步骤2中,分组网络设备接收可用于更新路由或转发表的前缀,或它被指示重新分配一个或多个前缀,其中前缀10.10.10.0/24是一。无论如何,分组网络设备(在设备上运行的网络协议)在步骤3中调用例程“基数-得到-最好”(“Radix-Get-Best”),其使用前缀10.10.10.0/24作为搜索密钥来向下走过基数树40。基数-得到-最好例程可以是包括在上文参考图1B描述的匹配例程中的子例程。具体地,基数-得到-最好比较搜索密钥信息(前缀对)与在每个节点处包括在以根节点和基数树结构的一个路径中的每个随后的节点开始的基数树中的信息。在这种情况下,前缀10.10.10.0/24与节点N1、节点N2和节点N3比较,且例程确定包括在节点N3中的语句的信息是最佳匹配并在步骤4中返回该节点——在这种情况下是节点N3——的标识特征。
继续参考图6,在步骤5中,基数-得到-最好例程继续进行以执行贯穿基数树结构的子节点(沿着基数-得到-最好例程遵循的路径)的退回操作以比较包括在每个子节点中的范围信息与包括在前缀对10.10.10.0/24中的范围信息。以与节点N3相关的子节点列表(其具有两个子节点SN10和SN5)开始,如果在步骤6中例程确定一个或多个子节点与节点N3相关,则该过程继续进行到步骤8,否则该过程继续进行到步骤7,其中它执行退回操作而到达基数树结构中的下一节点。在步骤8中,如果例程确定在与语句标记的序列10相关的子节点(SN10)中的前缀长度信息匹配在所接收的前缀或24中的前缀长度信息,则该过程继续进行到步骤9。另一方面,如果在步骤8中例程确定没有匹配,则该过程继续进行到步骤S12,其中例程确定包括当前节点的子节点的列表是否被走过,且如果没有走过,则该过程返回到图6A中的步骤5,否则该过程终止。在步骤9中,在步骤8中识别的序列号与在步骤1A中存储在存储器中的预先选择的序列号(这是具有最大值或大于基数树中的任一个序列号的序列号)比较,且如果在步骤8中识别的序列号小于预先选择的序列号,则该过程继续进行到步骤10,且该序列号被存储。在这种情况下,所存储的序列号是10。另一方面,如果在步骤8中识别的序列号大于预先选择的序列号(这将不在此时出现,因为在基数树中的序列号中没有一个大于预先选择的序列号)以为则该过程继续进行到步骤10,则在步骤11中序列号不被存储且该过程继续进行到步骤12,其中通过该例程确定退回操作是否检查了在基数树结构的当前节点中的所有子节点。如果它检查了,则该过程继续进行到步骤13,其中确定当前节点是否是基数树结构的根节点。如果当前节点是根节点,则该过程结束,否则该过程继续进行到步骤5,其中退回操作移动到下一节点N2。另一方面,如果在步骤12中该过程确定不是当前节点中的子节点的列表中的所有子节点都被走过,则在步骤14中列表中的下一子节点被检查,且该过程返回到步骤8。虽然该过程确定在前缀对10.10.10.0/24和包括在与语句标记的序列35相关的子节点中的信息之间存在匹配,则它确定与该子节点相关的序列号高于所存储的序列号,所以序列号35不被存储。该过程继续向上在基数树中退回直到它到达根节点,且如果例程未确定存在与小于10的序列号相关的子节点,则它确定节点N3的子节点SN10是最佳匹配。在这种情况下,前缀被允许,作为与语句标记的序列10相关的政策。
虽然基于基数树的方法基于到连续掩码信息非常有效地操作来允许或拒绝前缀,该方法并不支持使进入IP前缀与包括在语句中的非连续掩码信息匹配。具体地,因为如上所述的基数树方法被设计成对照基数树节点中的相应前缀位从最低到最高阶位顺序地估计IP前缀中的每个位(该估计是每个位的状态的比较),基数树方法不能用于对照包括非连续掩码信息的语句估计进入前缀。如果情况是语句(进入前缀对照该语句被估计)包括非连续信息,则这些语句包括在有序前缀列表中,与包括在基数树结构中相反。以与参考图4描述的前缀列表相同的方式构建该前缀列表。该前缀列表由顺序地排序的语句组成,这些语句可由参考图4描述的顺序匹配技术使用来识别最好地匹配进入前缀的政策。图7是用于识别在进入前缀和包括在有序前缀列表(其包括具有非连续掩码信息的至少一个语句)中的信息之间的最佳匹配和在进入前缀与包括在基数树结构(其只包括连续掩码信息)之间的最佳匹配。
参考图7,分组网络设备在被包括在图1B的分组网络设备15中的匹配例程的步骤1中和在步骤2中接收进入前缀,继续进行以对照包括在有序前缀列表例如在图4中描述的前缀列表中的语句估计前缀,查找最佳匹配,且同时或逐次地,匹配例程对照包括在基数树中的信息估计前缀(见关于图6A和6B的描述),再次查找最佳匹配。有序前缀列表包括具有非连续前缀掩码信息和基数树结构的至少一个语句,除了别的以外还包括连续前缀掩码信息。在步骤3中,匹配例程返回第一序列号,其是与对前缀列表中的语句的最佳匹配相关的最低序列号,且它返回第二序列号,其是与对基数树中的语句的最佳匹配相关的最低序列号。接着,在步骤4中,匹配例程比较作为步骤3的结果被识别的第一和第二序列号,以便识别这两个序列号的最低序列号,且在步骤5中,匹配例程返回第一和第二序列号中的最低序列号作为在有序前缀列表和基数树结构中的进入前缀和信息之间的最佳匹配。根据包括在最低识别的序列号中的允许或拒绝指令,前缀可用于更新路由或转发表,或前缀可从一个网络协议重新分配到另一网络协议。
为了解释的目的,前述描述使用特定的术语来提供本发明的彻底理解。然而,对于本领域中的技术人员将明显,为了实践本发明,并不需要特定的细节。因此,为了说明和描述的目的而提出本发明的特定实施方式的前述描述。它们并没有被规定为排他的或将本发明限制到所公开的精确形式;显然,鉴于上述教导,很多修改和变化是可能的。虽然在IPv4的背景中描述了实施方式,这些实施方式也可对根据IPv6标准格式化的前缀操作。实施方式被选择和描述,以便最好地解释本发明的原理及其实际应用,它们从而使本领域中的技术人员能够最好地利用本发明,且具有各种修改的各种实施方式适合于所设想的特定使用。意图是下面的权利要求及其等效形式限定本发明的范围。
Claims (18)
1.一种用于更新分组网络设备中的转发表的方法,包括:
定义第一多个路由政策用于包括在路由政策的第一顺序地编号的列表中;
定义第二多个路由政策用于包括在包括路由政策的第二顺序地编号的列表的有序前缀列表中,所述第二多个路由政策中的至少一些包括非连续IP前缀掩码;
使用包括在所述第一顺序地编号的列表中的信息来构建基数树结构;
使用包括在IP前缀中的IP前缀信息来搜索所述基数树结构以识别在所述基数树结构中最好地匹配所述IP前缀信息的最低序列号的路由政策;
使用在所述IP前缀中的所述IP前缀信息来搜索所述有序前缀列表以识别在所述有序前缀列表中最好地匹配所述IP前缀信息的最低序列号的路由政策;
比较在所述有序前缀列表中的所述最低序列号的路由政策与在所述基数树结构中的所述最低序列号的路由政策以识别具有完整最低序列号的路由政策;以及
如果具有完整最低序列号的路由政策包括允许所述IP前缀的指令,则用所述IP前缀信息更新所述转发表。
2.如权利要求1所述的方法,其中路由被网络协议发现。
3.如权利要求1所述的方法,其中所述第一多个路由政策中的每个由连续子网掩码信息组成。
4.如权利要求1所述的方法,其中所述第二多个路由政策中的每个由非连续掩码信息组成。
5.如权利要求1所述的方法,其中路由政策的所述第一顺序地编号的列表是IP前缀列表。
6.如权利要求1所述的方法,其中所述有序前缀列表是IP前缀列表。
7.如权利要求1所述的方法,其中所述第一多个路由政策由允许/拒绝部分以及IP前缀对部分组成。
8.如权利要求7所述的方法,其中所述第一多个路由政策包括IP前缀范围部分。
9.如权利要求1所述的方法,其中所述基数树结构由包括IP前缀对信息的节点和包括序列号和允许/拒绝部分的子节点组成。
10.如权利要求9所述的方法,其中在所述基数树结构中的子节点包括前缀范围。
11.如权利要求9所述的方法,其中搜索所述基数树结构以识别在所述基数树结构中最好地匹配所述IP前缀信息的最低序列号的路由政策包括:
搜索所述基数树结构,直到所述IP前缀信息和所述基数树中的路由政策之间的最佳匹配被识别出;以及
在所识别的路由政策处开始,向上在所述基数树结构中退回以识别在所述基数树结构中最好地匹配所述IP前缀信息的最低序列号的路由政策。
12.一种分组网络设备,包括:
一个或多个线卡,其中每个线卡由一个或多个输入/输出端口、封包处理器和线卡存储器组成,所述线卡存储器包括具有所述封包处理器使用来转发所述线卡接收的封包的信息的至少一个转发表;以及
控制模块,其由路由处理器和控制模块存储器组成,所述路由处理器操作来维持在所述一个或多个线卡上的所述至少一个转发表,且所述控制模块存储器用于存储包括路由政策的第一顺序地编号的列表的基数树结构以及包括路由政策的第二顺序地编号的列表的有序前缀列表,路由政策的所述第二顺序地编号的列表中的至少一些包括非连续IP前缀掩码;其中所述路由处理器操作来:
使用在IP前缀中的IP前缀信息来搜索所述基数树结构以识别在所述基数树结构中最好地匹配所述IP前缀信息的最低序列号的路由政策;
使用在所述IP前缀中的所述IP前缀信息来搜索所述有序前缀列表以识别在所述有序前缀列表中最好地匹配所述IP前缀信息的最低序列号的路由政策;
比较在所述有序前缀列表中的所述最低序列号的路由政策与在所述基数树结构中的所述最低序列号的路由政策以识别具有完整最低序列号的路由政策;以及
如果具有完整最低序列号的的路由政策包括允许所述IP前缀的指令,则用所述IP前缀信息更新所述至少一个转发表。
13.如权利要求12所述的分组网络设备,其中在路由政策的所述第一顺序地编号的列表中,所述路由政策中的每个包括连续子网掩码信息。
14.如权利要求12所述的分组网络设备,其中在路由政策的所述第二顺序地编号的列表中,所述路由政策中的每个包括非连续掩码信息。
15.如权利要求12所述的分组网络设备,其中路由政策的所述第一顺序地编号的列表是IP前缀列表。
16.如权利要求12所述的分组网络设备,其中路由政策的所述第二顺序地编号的列表是IP前缀列表。
17.如权利要求12所述的分组网络设备,其中所述基数树结构由包括IP前缀对信息的节点和包括序列号和允许/拒绝部分以及前缀范围信息的子节点组成。
18.如权利要求12所述的分组网络设备,其中所述路由处理器操作来搜索所述基数树结构,直到所述IP前缀信息和在所述基数树结构中的路由政策之间的最佳匹配被识别出,以及在所识别的路由政策处开始,对所述基数树结构执行退回操作以识别在所述基数树结构中最好地匹配所述IP前缀信息的最低序列号的路由政策。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/951,276 | 2010-11-22 | ||
US12/951,276 US8432914B2 (en) | 2010-11-22 | 2010-11-22 | Method for optimizing a network prefix-list search |
PCT/US2011/061864 WO2012071423A1 (en) | 2010-11-22 | 2011-11-22 | Method for optimizing a network prefix-list search |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103339887A CN103339887A (zh) | 2013-10-02 |
CN103339887B true CN103339887B (zh) | 2016-05-04 |
Family
ID=46064327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180065692.2A Active CN103339887B (zh) | 2010-11-22 | 2011-11-22 | 用于优化网络前缀列表搜索的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8432914B2 (zh) |
EP (1) | EP2643938B1 (zh) |
CN (1) | CN103339887B (zh) |
WO (1) | WO2012071423A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909566B2 (en) | 2009-06-23 | 2014-12-09 | Oracle International Corporation | Method, a computer program and apparatus for analyzing symbols in a computer |
WO2012070173A1 (en) | 2010-11-22 | 2012-05-31 | Nec Corporation | Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow |
US8719450B2 (en) | 2011-10-31 | 2014-05-06 | Cable Television Laboratories, Inc. | Internet protocol (IP) address translation |
EP2928141A4 (en) * | 2012-12-27 | 2016-03-16 | Huawei Tech Co Ltd | METHOD, DEVICE AND SYSTEM FOR IPV6 ADDRESS TRACKING |
US10205662B2 (en) * | 2014-07-11 | 2019-02-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Prefix distribution-based table performance optimization in SDN |
CN105991425B (zh) * | 2015-02-12 | 2020-04-10 | 中兴通讯股份有限公司 | 路由配置方法和系统 |
CN105007572A (zh) * | 2015-06-29 | 2015-10-28 | 江苏鸿信系统集成有限公司 | 天翼终端售后管理的信息防冲突的方法 |
CN106130910A (zh) * | 2016-08-29 | 2016-11-16 | 桂林浩新科技服务有限公司 | 一种报文匹配方法和系统 |
CN107357695B (zh) * | 2017-06-16 | 2018-11-20 | 英特尔产品(成都)有限公司 | 子卡验证方法、装置及系统 |
US10623322B1 (en) * | 2017-09-15 | 2020-04-14 | Juniper Networks, Inc. | Dynamic prefix list for route filtering |
US10972740B2 (en) | 2018-03-06 | 2021-04-06 | Forcepoint, LLC | Method for bandwidth reduction when streaming large format multi-frame image data |
US11134087B2 (en) | 2018-08-31 | 2021-09-28 | Forcepoint, LLC | System identifying ingress of protected data to mitigate security breaches |
US11140190B2 (en) | 2018-10-23 | 2021-10-05 | Forcepoint, LLC | Automated user module assessment |
CN111147371B (zh) | 2018-11-02 | 2022-03-11 | 华为技术有限公司 | 处理路由事件记录表项的方法、网络设备和控制设备 |
US11048611B2 (en) | 2018-11-29 | 2021-06-29 | Forcepoint, LLC | Web extension JavaScript execution control by service/daemon |
US11132973B2 (en) | 2019-02-01 | 2021-09-28 | Forcepoint, LLC | System for capturing images from applications rendering video to a native platform with a graphics rendering library |
US10917382B2 (en) * | 2019-04-03 | 2021-02-09 | Forcepoint, LLC | Virtual point of presence in a country to allow for local web content |
US11962504B2 (en) * | 2019-07-30 | 2024-04-16 | VMware LLC | Identification of route-map clauses using prefix trees |
CN112948446A (zh) * | 2019-11-26 | 2021-06-11 | 北京京东振世信息技术有限公司 | 一种匹配产品单据的方法和装置 |
US11431743B2 (en) | 2020-02-03 | 2022-08-30 | Forcepoint, LLC | Cross domain dynamic data protection intermediary message transform platform |
CN113194030B (zh) * | 2021-05-06 | 2021-12-24 | 中国人民解放军国防科技大学 | 一种基于网络前缀切分的多路径报文转发方法 |
CN114567589B (zh) * | 2022-02-22 | 2024-06-07 | 北京华三通信技术有限公司 | 路由上报的识别方法及装置 |
US11949593B2 (en) * | 2022-05-10 | 2024-04-02 | Cisco Technology, Inc. | Stateless address translation at an autonomous system (AS) boundary for host privacy |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006088788A1 (en) * | 2005-02-17 | 2006-08-24 | The George Washington University | Network router based on combinatorial designs |
US7386525B2 (en) * | 2001-09-21 | 2008-06-10 | Stonesoft Corporation | Data packet filtering |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5251205A (en) | 1990-09-04 | 1993-10-05 | Digital Equipment Corporation | Multiple protocol routing |
US6061712A (en) * | 1998-01-07 | 2000-05-09 | Lucent Technologies, Inc. | Method for IP routing table look-up |
CA2287689C (en) * | 1998-12-03 | 2003-09-30 | P. Krishnan | Adaptive re-ordering of data packet filter rules |
US20020133586A1 (en) * | 2001-01-16 | 2002-09-19 | Carter Shanklin | Method and device for monitoring data traffic and preventing unauthorized access to a network |
US8285874B2 (en) | 2004-01-27 | 2012-10-09 | Cisco Technology, Inc. | Routing systems and methods for implementing routing policy with reduced configuration and new configuration capabilities |
US20070008888A1 (en) * | 2005-06-28 | 2007-01-11 | Shuchi Chawla | Direct lookup tables and extensions thereto for packet classification |
US8320372B2 (en) * | 2008-06-23 | 2012-11-27 | Alcatel Lucent | Processing of packet fragments |
-
2010
- 2010-11-22 US US12/951,276 patent/US8432914B2/en active Active
-
2011
- 2011-11-22 WO PCT/US2011/061864 patent/WO2012071423A1/en active Application Filing
- 2011-11-22 EP EP11843820.9A patent/EP2643938B1/en active Active
- 2011-11-22 CN CN201180065692.2A patent/CN103339887B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386525B2 (en) * | 2001-09-21 | 2008-06-10 | Stonesoft Corporation | Data packet filtering |
WO2006088788A1 (en) * | 2005-02-17 | 2006-08-24 | The George Washington University | Network router based on combinatorial designs |
Also Published As
Publication number | Publication date |
---|---|
EP2643938A4 (en) | 2015-09-16 |
WO2012071423A1 (en) | 2012-05-31 |
US8432914B2 (en) | 2013-04-30 |
US20120127997A1 (en) | 2012-05-24 |
EP2643938A1 (en) | 2013-10-02 |
EP2643938B1 (en) | 2016-09-07 |
CN103339887A (zh) | 2013-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103339887B (zh) | 用于优化网络前缀列表搜索的方法 | |
CN109462534B (zh) | 区域互联控制器、区域互联控制方法以及计算机存储介质 | |
US9118587B2 (en) | Network multi-path discovery | |
US7440415B2 (en) | Virtual network addresses | |
EP2192725B1 (en) | Packet switch being partitioned into virtual LANs (VLANs) | |
US7330918B2 (en) | Buffer memory management method and system | |
US20090316584A1 (en) | Mechanism for Enabling Load Balancing to be Achieved in a Loop-Free Switching Path, Reverse Path Learning Network | |
US7720001B2 (en) | Dynamic connectivity determination | |
CN105227466B (zh) | 通信处理方法和装置 | |
CN105794158B (zh) | 用于处理因特网协议包的方法和系统 | |
US11184281B2 (en) | Packet processing method and apparatus | |
CN104852840A (zh) | 一种控制虚拟机之间互访的方法及装置 | |
CN109240796A (zh) | 虚拟机信息获取方法及装置 | |
US8914503B2 (en) | Detected IP link and connectivity inference | |
JP2010531602A (ja) | リアルタイム通信ネットワークにおける診断データの通信のための方法と装置 | |
CN105743687B (zh) | 节点故障的判断方法及装置 | |
CN105721487B (zh) | 信息处理方法及电子设备 | |
US10615999B2 (en) | Virtual local area network configuration system and method, and computer program product thereof | |
CN109413227A (zh) | 基于多IPv6网络的IPv4用户访问IPv6网络互通装置和设备 | |
US8316151B1 (en) | Maintaining spatial ordering in firewall filters | |
CN111464443B (zh) | 基于服务功能链的报文转发方法、装置、设备及存储介质 | |
CN104506440B (zh) | 路由器的数据包发送方法和路由表修改方法 | |
JP2006174399A (ja) | グループ内通信方法、システム及び記録媒体 | |
US11075835B2 (en) | Distributed, packet-mediated, packet routing | |
CN109088767B (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 |