专利名称:一种路由的处理方法和设备的制作方法
技术领域:
本发明涉及通信技术领域,特别是涉及一种路由的处理方法和设备。
背景技术
报文在网络的转发过程中,需要使用报文的IPdnternet Protocol,网络互连协 议)地址来查找路由转发表项,以得到报文的出接口信息,从而根据该出接口信息来进行 报文的转发。其中,路由转发表项的查找及其实现是网络报文转发的重要部分,而路由查找 的原则是最长匹配原则,以下举例说明路由查找中最长匹配原则的实现过程。例如,现有 四个已知路由1. 0. 0. 0/8,1. 1. 0. 0/16,1. 1. 1. 0/24 和 1. 1. 1. 1/32 ;如果使用 1. 1. 1. 0/32 查找路由转发表项时,没有与之完全匹配的路由表项,则使用1. 1. 1.0/M查找路由转发表 项,如果有与之完全匹配的路由表项,则根据最长匹配原则会匹配到1. 1. 1.0/M这条路 由;如果用1. 1. 1. 1/32查找路由转发表项时,有与之完全匹配的路由表项,则根据最长匹 配原则会匹配到1. 1. 1. 1/32这条路由。
现有技术中,可以利用 TCAM(Ternary Content Addressable Memory,三态内容寻 址存储器)的分块优先级搬移算法来实现路由表项的存储和查找。其中,该算法的原则是 将所有表项划分为若干个优先级,同一优先级的表项不关心相互之间的顺序,不同优先级 的表项则按照优先级保证其在TCAM的顺序。
具体的,在目前的实现中,同一优先级的表项需要放置在一起,以保证其区块的连 续性;在插入表项时,需要根据优先级来确定插入的位置,如果没有空闲则需要搬动旁边优 先级的表项以空出位置;而在删除表项时,需要移动尾部表项来填充删除的空位,以保持优 先级区块的连续性。其中,/32为最高优先级,Λ4次之,/16再次,/8为最低优先级,在TCAM 中,由于TCAM查找返回的结果为最低地址优先命中,则可以将/32的表项放置在TCAM的低 位地址中。如果依次查找出现/8、/16、Λ4、/32四种情况均命中,由于/32放在最低地址, 则返回的结果为/32位的地址。
如图1所示的现有技术中添加表项的示意图,在插入表项的过程中,如果插入优 先级为观的表项,则首先会查找对应的优先级的位置,即27和四之间。从图1可以看出 没有空闲空间,则向周围查找可查找的空闲空间,并发现27下面有空闲位置,因此,可以将 27最上面的表项向下搬移,空出一条表项的空闲,最后将表项(优先级为观的表项)插入。
在删除表项的过程中,通过判断表项是否是优先级的最后一条表项,是否是边界 表项,如果不是,则删除表项之后,将区块的最后一条表项移动填充删除的空闲表项。
在实现本发明的过程中,发明人发现现有技术中至少存在以下问题
在涉及到表项的增加和删除操作时,表项搬迁工作量较大,且占用的CPU (Central Processing Unit,中央处理单元)负荷较重,而且TCAM表项的规格较小,在表项规模上扩 展性不强。发明内容
本发明提供一种路由的处理方法和设备,以利用逻辑器件实现路由表项的增加和 删除,并节省系统资源。
为了达到上述目的,本发明提出了一种路由的处理方法,应用于包括至少2个路 由表的设备中,各路由表对应有各自的辅助路由表,其中,辅助路由表用于表示对应路由表 中各掩码情况下的路由表项是否存在,该方法包括以下步骤
当接收到报文后,所述设备根据所述报文的IP地址查找辅助路由表,并根据所述 辅助路由表的查找结果确定所要查找的路由表;
所述设备确定所述路由表中与所述IP地址匹配的路由表项,并根据所述路由表 项中记录的出接口将所述报文发送至下一跳。
各路由表和对应的辅助路由表分别对应有各自的掩码组,每个路由表用于存储对 应掩码组中各种掩码情况的路由表项,每个辅助路由表中的各比特用于标识对应路由表中 各种掩码情况下的各路由表项是否存在;
其中,每个掩码组中的掩码位数连续,且所有掩码组包括了从1到最大位数的掩码。
所述设备根据所述报文的IP地址查找辅助路由表之前,还包括学习路由的过程, 所述学习路由的过程包括
所述设备根据待学习路由的掩码位数确定对应有该掩码位数的路由表和辅助路由表;
所述设备在确定的路由表中相应的路由表项中记录所述待学习路由的IP地址和 出接口,并将确定的辅助路由表中所述待学习路由对应的比特置位,使其表示对应路由表 项存在。
所述设备根据所述报文的IP地址查找辅助路由表,并根据所述辅助路由表的查 找结果确定所要查找的路由表,具体包括
所述设备从掩码位数最大的第一掩码组所对应的辅助路由表查起,如果根据所述 辅助路由表确定出对应路由表中存在匹配的路由表项,则确定该路由表为要查找的路由 表;
如果根据所述辅助路由表确定出对应路由表中不存在匹配的路由表项,则查找掩 码位数次之的第二掩码组所对应的辅助路由表,以此类推,直到确定出存在匹配路由表项 的路由表;
其中,所述第一掩码组的最小掩码位数大于所述第二掩码组的最大掩码位数,且二者连续。
在查找辅助路由表的过程中,所述设备确定所述辅助路由表对应掩码组的最小掩 码位数,并根据所述IP地址的前(最小掩码位数-1)位确定hash地址;
所述设备根据所述hash地址以及对应该掩码组的IP地址查找所述辅助路由表。
根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,具体为所述路 由表中存在某掩码位数匹配的路由表项;
所述设备确定所述路由表中与所述IP地址匹配的路由表项,具体包括
所述设备根据该掩码位数确定所述路由表中与所述IP地址匹配的路由表项。
根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,具体为所述路由表中存在多个掩码位数匹配的路由表项;所述设备确定所述路由表中与所述IP地址匹配的路由表项,具体包括所述设备根据多个掩码位数中的最大掩码位数确定所述路由表中与所述IP地址 匹配的路由表项。各路由表和各辅助路由表的存储方式包括通过随机存取存储器RAM存储,通过双倍速率同步动态随机存储器DDR SDRAM存储,和/或通过四倍数据倍率静态随机存取存储器QDR SRAM存储。一种路由的处理设备,应用于包括至少2个路由表的设备中,各路由表对应有各 自的辅助路由表,其中,辅助路由表用于表示对应路由表中各掩码情况下的路由表项是否 存在,该设备包括存储模块,用于存储各路由表以及各辅助路由表;处理模块,用于当接收到报文后,根据所述报文的IP地址查找辅助路由表;并根 据所述辅助路由表的查找结果确定所要查找的路由表;确定模块,用于确定所述路由表中与所述IP地址匹配的路由表项;发送模块,用于根据所述路由表项中记录的出接口将所述报文发送至下一跳。各路由表和对应的辅助路由表分别对应有各自的掩码组,每个路由表用于存储对 应掩码组中各种掩码情况的路由表项,每个辅助路由表中的各比特用于标识对应路由表中 各种掩码情况下的各路由表项是否存在;其中,每个掩码组中的掩码位数连续,且所有掩码组包括了从1到最大位数的掩码。还包括学习模块,用于根据待学习路由的掩码位数确定对应有该掩码位数的路由表和辅 助路由表;在确定的路由表中相应的路由表项中记录所述待学习路由的IP地址和出接口, 并将确定的辅助路由表中所述待学习路由对应的比特置位,使其表示对应路由表项存在。所述处理模块,具体用于从掩码位数最大的第一掩码组所对应的辅助路由表查 起,如果根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,则确定该路由表 为要查找的路由表;如果根据所述辅助路由表确定出对应路由表中不存在匹配的路由表项,则查找掩 码位数次之的第二掩码组所对应的辅助路由表,以此类推,直到确定出存在匹配路由表项 的路由表;其中,所述第一掩码组的最小掩码位数大于所述第二掩码组的最大掩码位数,且
二者连续。所述存储模块具体为随机存取存储器RAM,双倍速率同步动态随机存储器DDR SDRAM,和/或,四倍数据 倍率静态随机存取存储器QDR SRAM。与现有技术相比,本发明至少具有以下优点通过使用逻辑器件内部缓存加外挂DDR SDRAM (Double Data Rate SDRAM,双倍速 率同步动态随机存储器)的方式来进行路由表项的存储,DDRSDRAM容易实现,且利于表项规模的扩展以及接口带宽的提升,而且逻辑器件实现表项的增加和删除,节省CPU资源。
图1是现有技术中添加表项的流程示意图2是本发明提供的一种路由的处理方法流程图3是本发明提供的一种路由的处理设备结构图。
具体实施方式
下面结合附图对本发明进行详细描述。
本发明中,考虑到一个32位的IP地址,可出现/8、/16、/24、/32等命中情况,则 可以将整个最长匹配功能划分为两部分来实现,一部分为四种情况的精确查找,另一部分 为最长匹配值选择。其中
(1)精确查找功能部分
首先将所有路由表项分为/8、/16、/24、/32等四种情况进行存储,然后,当接收到 报文后,提取该报文的32位目的IP地址,并将该32位目的IP地址分成/8、/16、/24、/32 等四种情况进行路由表项查找,从而可得到四种情况是否命中及其命中值。
(2)最长匹配值选择功能部分
根据/8、/16、/24、/32等四种情况下的命中情况进行选择,如果/32位的地址命 中,则选择/32位命中的值;否则,如果Λ4位的地址命中,则选择Λ4位命中的值;否则,如 果/16位的地址命中,则选择/16位命中的值;否则,如果/8位的地址命中,则选择/8位命 中的值。可以看出,本发明中优先级为绝对优先,即一旦最长的地址命中,则直接取该命中 信息,而其它较短地址是否命中将不再考虑。
进一步的,当表项分拆功能实现完成后,以下说明存储相关表项的过程。在现有技 术中可采用TCAM来实现表项的存储,而本发明中,由于将表项分拆为/8、/16、/24、/32等 四种情况下的表项,如果仍利用TCAM,则会将原本只需要一次查找得到的路由变为需要四 次查找才能得到路由,查找效率降低,而且利用TCAM的优势在于软件能够利用其掩码加算 法来实现最长匹配,而采用本发明提供的拆分方法后,可以利用精确匹配来实现最长匹配 功能,且不需要掩码功能。因此,本发明中,可以采用成本低廉、容量大的DDRSDRAM来实现 表项的存储。
具体的,本发明中可采用hash算法来实现表项的存储及查找,在存储时利用IP地 址进行hash运算得到一个地址,然后将该IP地址、下一跳端口号(即出接口信息)等信息 存储在DDR SDRAM对应的地址中。在查找时,则可利用IP地址的/8、/16、/M、/32等四种 情况,分别进行hash运算得到四个hash地址,然后查找这四个hash地址中的内容,以及进 行比较得到各自的命中情况,最后根据最长匹配原则得到该IP地址最终的出接口信息。
本发明中,考虑到/8、/16两种情况占用的表项空间不大,/8为256个(即28,对 于/8的情况,最多出现28种情况)表项;/16为64K(即216,对于/16的情况,最多出现216 种情况)个表项。则实际应用中可以将/8、/16这两个表项中的内容存储到逻辑器件中,使 得/8、/16两种表项的查找可以在逻辑器件内部实现;而考虑到/24、/32两种情况占用的 表项空间较大,则可以将Λ4、/32这两个表项中的内容存储到外挂DDR SDRAM中实现,使得/24,/32两种表项的查找可以在DDR SDRAM中实现,以减少查找外挂DDR SDRAM的次数,从 而实现了表项的快速查找。基于上述存储的表项,当表项分拆功能实现完成后,以下说明表项增加和删除的 过程。在表项增加时,可利用计算得到的hash值作为地址,将IP地址及出接口信息作为内 容写到DDR SDRAM中;在表项删除时,可将hash地址中的内容有效位置为无效。综上可以 看出,本发明中,在表项的增加和删除过程中,不用CPU干预,纯逻辑器件即可以实现。需要注意的是,上述实现方式是针对自然路由(/8、/16、/24、/32)的情况的, 而在实际应用中,还有大量的非自然路由,以下对非自然路由(如/1.../7、/9.../15、 /17. . . /23、/25. . . 31)的情况进行详细说明。本发明中,针对所有的路由,可以设置4张路由表(实际应用中该数值还可以进行 调整),并使用这4张路由表存储所有学习到的路由。其中,第一张路由表(以第一路由表 为例进行说明,其他路由表情况类似)用于存储掩码为/25、/26、/27、/28、/29、/30、/31、 /32这8种情况的路由、第二路由表用于存储掩码为/17、/18、/19、/20、/21、/22、/23、/24 这8种情况的路由、第三路由表用于存储掩码为/9、/10、/11、/12、/13、/14、/15、/16这8 种情况的路由、第四路由表用于存储掩码为/1、/2、/3、/4、/5、/6、/7、/8这8种情况的路基于上述4张路由表,当学习到掩码为28的路由时,则需要将该路由存储到第一 路由表中,该路由对应的地址可以通过前28进行hash获得,即可在该hash地址对应的内 容中记录该路由的IP地址和出接口 ;当学习到掩码为4的路由时,则需要将该路由存储到 第四路由表中,依次类推。本发明中,为了在各路由表中准确的确定某种掩码情况下的路由是否存在,则可 以在逻辑器件中设置辅助路由表,辅助路由表与路由表一一对应,即第一路由表与第一辅 助路由表对应,该第一辅助路由表用于确定掩码为/25、/26、/27、/28、/29、/30、/31、/32 这8种情况的路由在第一路由表中是否存在,以此类推,第二辅助路由表用于确定掩码为 /17、/18、/19、/20、/21、/22、/23、/24的路由在第二路由表中是否存在,第三辅助路由表用 于确定掩码为/9、/10、/11、/12、/13、/14、/15、/16的路由在第三路由表中是否存在,第四 辅助路由表用于确定掩码为/1、/2、/3、/4、/5、/6、/7、/8的路由在第四路由表中是否存在。具体的,辅助路由表中的每个地址对应的每个比特的数据表示存不存在对应路由 表项,以第一辅助路由表为例进行说明,/25占用2bit信息、/26占用4bit信息、/27占 用8bit信息、/28占用16bit信息、/29占用32bit信息、/30占用64bit信息、/31占用 128bit信息、/32占用256bit信息,共占用510个bit,因此可将第一辅助路由表的位宽设 置为510bit。而在实际应用中,考虑到硬件的实现是以二进制来实现的,则可以将第一辅助 路由表的位宽设置为512bit (有两个bit为保留位),即使用512位宽的第一辅助路由表 存储/25、/26、/27、/28、/29、/30、/31、/32这8种掩码情况的路由在第一路由表中是否存 在。如表1所示,为第一辅助路由表对应的512位宽的信息。表 权利要求
1.一种路由的处理方法,其特征在于,应用于包括至少2个路由表的设备中,各路由表 对应有各自的辅助路由表,其中,辅助路由表用于表示对应路由表中各掩码情况下的路由 表项是否存在,该方法包括以下步骤当接收到报文后,所述设备根据所述报文的IP地址查找辅助路由表,并根据所述辅助 路由表的查找结果确定所要查找的路由表;所述设备确定所述路由表中与所述IP地址匹配的路由表项,并根据所述路由表项中 记录的出接口将所述报文发送至下一跳。
2.如权利要求1所述的方法,其特征在于,各路由表和对应的辅助路由表分别对应有 各自的掩码组,每个路由表用于存储对应掩码组中各种掩码情况的路由表项,每个辅助路 由表中的各比特用于标识对应路由表中各种掩码情况下的各路由表项是否存在;其中,每个掩码组中的掩码位数连续,且所有掩码组包括了从1到最大位数的掩码。
3.如权利要求2所述的方法,其特征在于,所述设备根据所述报文的IP地址查找辅助 路由表之前,还包括学习路由的过程,所述学习路由的过程包括所述设备根据待学习路由的掩码位数确定对应有该掩码位数的路由表和辅助路由表;所述设备在确定的路由表中相应的路由表项中记录所述待学习路由的IP地址和出接 口,并将确定的辅助路由表中所述待学习路由对应的比特置位,使其表示对应路由表项存 在。
4.如权利要求2所述的方法,其特征在于,所述设备根据所述报文的IP地址查找辅助 路由表,并根据所述辅助路由表的查找结果确定所要查找的路由表,具体包括所述设备从掩码位数最大的第一掩码组所对应的辅助路由表查起,如果根据所述辅助 路由表确定出对应路由表中存在匹配的路由表项,则确定该路由表为要查找的路由表;如果根据所述辅助路由表确定出对应路由表中不存在匹配的路由表项,则查找掩码位 数次之的第二掩码组所对应的辅助路由表,以此类推,直到确定出存在匹配路由表项的路 由表;其中,所述第一掩码组的最小掩码位数大于所述第二掩码组的最大掩码位数,且二者 连续。
5.如权利要求4所述的方法,其特征在于,在查找辅助路由表的过程中,所述设备确定 所述辅助路由表对应掩码组的最小掩码位数,并根据所述IP地址的前(最小掩码位数-1) 位确定hash地址;所述设备根据所述hash地址以及对应该掩码组的IP地址查找所述辅助路由表。
6.如权利要求4所述的方法,其特征在于,根据所述辅助路由表确定出对应路由表中 存在匹配的路由表项,具体为所述路由表中存在某掩码位数匹配的路由表项;所述设备确定所述路由表中与所述IP地址匹配的路由表项,具体包括所述设备根据该掩码位数确定所述路由表中与所述IP地址匹配的路由表项。
7.如权利要求4所述的方法,其特征在于,根据所述辅助路由表确定出对应路由表中 存在匹配的路由表项,具体为所述路由表中存在多个掩码位数匹配的路由表项;所述设备确定所述路由表中与所述IP地址匹配的路由表项,具体包括所述设备根据多个掩码位数中的最大掩码位数确定所述路由表中与所述IP地址匹配的路由表项。
8.如权利要求1-7任一项所述的方法,其特征在于,各路由表和各辅助路由表的存储 方式包括通过随机存取存储器RAM存储,通过双倍速率同步动态随机存储器DDR SDRAM存储,和/或通过四倍数据倍率静态随机存取存储器QDR SRAM存储。
9.一种路由的处理设备,其特征在于,应用于包括至少2个路由表的设备中,各路由表 对应有各自的辅助路由表,其中,辅助路由表用于表示对应路由表中各掩码情况下的路由 表项是否存在,该设备包括存储模块,用于存储各路由表以及各辅助路由表;处理模块,用于当接收到报文后,根据所述报文的IP地址查找辅助路由表;并根据所 述辅助路由表的查找结果确定所要查找的路由表;确定模块,用于确定所述路由表中与所述IP地址匹配的路由表项;发送模块,用于根据所述路由表项中记录的出接口将所述报文发送至下一跳。
10.如权利要求9所述的设备,其特征在于,各路由表和对应的辅助路由表分别对应有 各自的掩码组,每个路由表用于存储对应掩码组中各种掩码情况的路由表项,每个辅助路 由表中的各比特用于标识对应路由表中各种掩码情况下的各路由表项是否存在;其中,每个掩码组中的掩码位数连续,且所有掩码组包括了从1到最大位数的掩码。
11.如权利要求10所述的设备,其特征在于,还包括学习模块,用于根据待学习路由的掩码位数确定对应有该掩码位数的路由表和辅助路 由表;在确定的路由表中相应的路由表项中记录所述待学习路由的IP地址和出接口,并将 确定的辅助路由表中所述待学习路由对应的比特置位,使其表示对应路由表项存在。
12.如权利要求10所述的设备,其特征在于,所述处理模块,具体用于从掩码位数最大的第一掩码组所对应的辅助路由表查起,如 果根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,则确定该路由表为要查 找的路由表;如果根据所述辅助路由表确定出对应路由表中不存在匹配的路由表项,则查找掩码位 数次之的第二掩码组所对应的辅助路由表,以此类推,直到确定出存在匹配路由表项的路由表;其中,所述第一掩码组的最小掩码位数大于所述第二掩码组的最大掩码位数,且二者 连续。
13.如权利要求12所述的设备,其特征在于,所述存储模块具体为随机存取存储器RAM,双倍速率同步动态随机存储器DDR SDRAM,和/或,四倍数据倍率 静态随机存取存储器QDR SRAM。
全文摘要
本发明公开了一种路由的处理方法和设备,该方法包括当接收到报文后,设备根据报文的IP地址查找辅助路由表,并根据辅助路由表的查找结果确定所要查找的路由表;所述设备确定所述路由表中与所述IP地址匹配的路由表项,并根据所述路由表项中记录的出接口将所述报文发送至下一跳。本发明中,通过使用逻辑器件内部缓存加外挂DDR SDRAM的方式来进行路由表项的存储,DDR SDRAM容易实现,且利于表项规模的扩展以及接口带宽的提升,而且逻辑器件实现表项的增加和删除,节省CPU资源。
文档编号H04L12/56GK102035727SQ20101054723
公开日2011年4月27日 申请日期2010年11月17日 优先权日2010年11月17日
发明者王彬 申请人:杭州华三通信技术有限公司