具体实施方式
为了实现本发明目的,本发明采用的核心思想为:将选定的IP报文的流特征串根据特定的规则匹配成不同的特征串,其中特征串的数量由等价路由的数量决定。进一步将该匹配后的特征串增加到ACL表项中作为该ACL表项中路由规则的额外匹配项,通过该匹配项,不同IP报文可以选择不同的等价路由进行路由转发,进而实现路由均衡的目的。
为了使本领域技术人员更加清楚和明白,在介绍本发明方案之前,先就现有技术ACL路由转发IP报文的原理进行说明。
如图1所示,其为现有技术通过ACL路由转发IP报文的示意图。在该应用场景中,假设在DUT2(Device Unit,网络设备单元)上配置一条静态路由“ip route 192.168.4.0/24 via nexthop 192.168.2.1”,通过这条路由,所有发往192.168.4.0/24网段的IP报文都通过下一跳192.168.2.1转发。
如图2所示,实际该配置的静态路由在DUT2的Port2端口的硬件表项被分解成两个部分:
第一部分是在ACL表项中,所有匹配“目的MAC为DUT2接口的MAC地址”,并且“目的IP地址为192.168.4.0/24网段”的所有IP报文,都执行“L3 route(三层路由转发)”的动作。
第二部分是在MAC地址表中,就是通常二层交换机通过ARP(AddressResolution Protocol,地址解析协议)自动学习MAC地址的表项。在该MAC地址表中存放了Nexthop为192.168.2.1对应的MAC地址。
当某个IP报文符合ACL中设定的路由规则时,则执行L3route动作。具体地,该动作完成两个部分:
1、“将报文中的TTL(Time To Live,即生存时间,指定数据包被路由器丢弃之前允许通过的网段数量,为防止数据包不断在IP互联网络上永不终止地循环,转发IP数据包时,要求路由器至少将TTL减小1)字段减1”;
2、“将目的MAC替换成nexthop MAC index中指向的MAC地址,并且将源MAC替换成原报文中的目的MAC”。
当以上两个动作被执行完成后,该修改后的报文就通过普通的二层转发流程被转发出去,这样就完成了一次三层路由操作。
进一步地,如图3所示,为了在当前不支持hash算法的三层交换机上实现IP报文的路由均衡,本发明实现方法具体如下:
步骤1、按照预定规则获取IP报文的匹配特征串。
具体地,在本步骤中,首先选定IP报文某个特定的流特征串作为待匹配的特征串,然后将该选定的IP报文的流特征串根据预先配置的特定规则匹配成不同的特征串,其中特征串的数量由等价路由的数量决定,以保证不同的IP报文在这些等价路由上实现均衡。例如:假如在某应用场景下三层交换机共有5条等价路由,那么,选定的IP报文的流特征串A将被匹配成“a0、a1、a2、a3、a4”这5个不同的特征串。另外,需要说明的是,在本发明实现方案中,用来作为匹配的流特征串可以为流中的任何关键字,具体可以为IP报文的源及目的IP地址,源及目的端口号,源及目的MAC地址、IP协议号等,即可以是其中一种,也可以是多种组合。
进一步地,预先配置的“将流特征串匹配成不同特征串”的规则即可以通过静态路由的方式配置,也可以按照同一目的地址/掩码的等价路由的数量,自动匹配流特征串。另外,所述规则亦不局限于本步骤或者后续应用场景中介绍的匹配规则,任何只要满足“一个IP报文只能并且一定会匹配到等价路由中的其中一条路由”的规则均应视为属于本发明匹配规则的构思范围内。
步骤2、在ACL表项中增加匹配特征串,作为该ACL表项中路由规则的额外匹配项。
具体地,在本步骤中,将前述步骤1依特定规则划分的匹配特征串增加到ACL表项中,使各匹配特征串分别与ACL表项中不同的路由规则相对应。仍以前述步骤1中假设的在某应用场景下三层交换机共有5条等价路由为例,那么,IP报文的流特征串A依据特定规则划分的“a0、a1、a2、a3、a4”5个匹配特征串将分别增加到ACL表项中的该5条等价路由规则下,使得每一个需要通过三层交换机转发的IP报文依据匹配特征串均能惟一通过其中的一条等价路由转发出去。
步骤3、通过ACL表项中增加的额外匹配项,找到ACL表项中对应的路由规则,使不同IP报文选择不同的等价路由进行路由转发,进而实现路由均衡的目的。
当某个IP报文需要通过三层交换机进行路由转发时,首先依据该IP报文的流特征串及划分规则获得该IP报文的匹配特征串,而后在ACL表项中通过该匹配特征串找到对应的等价路由规则,最后通过该路由规则将该IP报文三层路由转发出去。
仍以图1所示的应用场景为例,假设在本应用场景下,三层交换机使用的是当前廉价的且不支持Hash算法选择路由的功能的廉价芯片,进一步地,假设当前的三层路由转发存在6条等价路由路径。具体为:
ip route 192.168.4.0/24via nexthop 192.168.2.1
ip route 192.168.4.0/24via nexthop 192.168.3.1
ip route 192.168.4.0/24via nexthop 192.168.5.1
ip route 192.168.4.0/24via nexthop 192.168.6.1
ip route 192.168.4.0/24via nexthop 192.168.7.1
ip route 192.168.4.0/24via nexthop 192.168.8.1
在采用本发明方案实现IP报文的路由均衡时,具体选定IP报文的源IP地址作为待匹配的流特征串。并按照“取源IP地址的最低3位(二进制,LSB)作为匹配特征串”的匹配规则来获得各IP报文匹配后的特征串。具体如下:
00X-->route 1,路由规则1
具体地,在该路由规则下,包括000及001两个匹配的特征串,例如source ip==192.200.200.80(80的最低3位二进制是000),此时将源IP地址为92.200.200.80的所有IP报文均通过ACL路由规则1转发出去。
同理,
01X-->route 2,路由规则2
100-->route3,路由规则3
101-->route4,路由规则4
110-->route5,路由规则5
111-->route6,路由规则6
通过以上匹配规则,不同的源IP的报文将选择到不同的6条路由规则进行转发,且一个IP报文只会并且一定会匹配其中一条路由。该6条路由在硬件表项中的配置如图4所示,关键点在于多了Source IP的匹配项。
通过以上介绍可以看出,由于本发明通过利用ACL表项中的路由规则匹配流特征串,因而可以实现当前不支持Hash算法的三层交换机上实现路由选择和均衡功能,无需采用昂贵的支持Hash算法的三层交换芯片;同时,因本发明中用来作为匹配的流特征串可以为IP报文流中的任何关键字,因而可以增强路由均衡算法的灵活度。
本发明同时提供了一种IP报文的等价路由均衡的装置,应用于不支持hash算法的三层交换机构成的***中,所述装置即可独立于所述三层转发交换机,也可以作为独立的模块直接嵌入到所述三层交换机内,所述装置包括:
获取模块,用于按照预定规则获取IP报文的匹配特征串。
具体地,当预定规则被配置好之后,所述获取模块根据该预定规则从选定的IP报文的流特征串中获取匹配的特征串,其中依预定规则获取不同特征串的数量由等价路由的数量决定。例如:假如在某应用场景下三层交换机共有5条等价路由,那么,获取模块将根据该预定规则从选定的IP报文的流特征串A获取“a0、a1、a2、a3、a4”这5个不同的特征串。另外,需要说明的是,在本发明实现方案中,用来作为匹配的流特征串可以为流中的任何关键字,具体可以为IP报文的源及目的IP地址,源及目的端口号,源及目的MAC地址、IP协议号等,即可以是其中一种,也可以是多种组合。
缓存模块,用于缓存ACL表项,并在获取模块获取IP报文的匹配特征串后,在该缓存模块中增加匹配特征串作为该ACL表项中路由规则的额外匹配项。
具体地,将前述获取模块依特定规则获取的匹配特征串增加到ACL表项中,使各匹配特征串分别与ACL表项中不同的路由规则相对应。仍以前述假设的在某应用场景下三层交换机共有5条等价路由为例。那么,获取模块依据配置的匹配规则分别获得IP报文的流特征串A不同的匹配特征串“a0、a1、a2、a3、a4”,在缓存模块中将此等匹配的特征串分别增加到ACL表项中的该5条等价路由规则下,使得每一个需要三层转发的IP报文依据匹配特征串均能惟一通过其中的一条等价路由转发出去。
转发模块,用于通过ACL表项中增加的额外匹配项,找到与该匹配项对应的路由规则,使不同IP报文选择不同的等价路由进行路由转发,进而实现路由均衡的目的。
当某个IP报文需要通过三层交换机转发时,首先依据该IP报文的流特征串及匹配规则获得该IP报文的匹配特征串,而后在ACL表项中通过该匹配特征串找到对应的等价路由规则,最后通过该路由规则将该IP报文三层路由转发出去。
进一步地,本发明还包括一配置模块,用于配置将IP报文的流特征串匹配成不同特征串的规则。
需要说明的是,本发明中配置的将IP报文的流特征串匹配成不同特征串的规则,即可以通过静态路由的方式配置,也可以按照同一目的地址/掩码的等价路由的数量,自动匹配流特征串。另外,所述规则亦不局限于本发明实施例中介绍的配置规则,任何只要满足“一个IP报文只能并且一定会匹配到等价路由中的其中一条路由”的规则均应视为属于本发明匹配规则的构思范围内。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。