发明内容
本发明实施例提供一种基于Hash的报文传输方法和设备,以实现各端口之间的负载分担。
为了达到上述目的,本发明实施例提供一种基于Hash的报文传输方法,应用于包括主设备和从设备的异构堆叠网络中,所述从设备上包括多个物理芯片,且各物理芯片上具有连接到所述主设备的端口,该方法包括以下步骤:
所述从设备在接收到报文后,将所述报文重定向到等价多路径ECMP,所述ECMP的下一跳对应出端口为各物理芯片上连接到所述主设备的端口;
所述从设备对所述报文的特征信息进行Hash,并根据Hash结果确定所述报文对应的所述ECMP的下一跳;
所述从设备通过所述ECMP的下一跳对应出端口将所述报文发送给所述主设备。
所述从设备将所述报文重定向到等价多路径ECMP,具体包括:
所述从设备利用预先配置的流量策略将所述报文重定向到所述ECMP;其中,所述流量策略用于将所有报文重定向到所述ECMP。
在所述报文为二层报文时,所述报文的特征信息包括以下之一或任意组合:源介质访问控制MAC地址、目的MAC地址、虚拟局域网VLAN、源物理端口号、以太网协议的协议类型;
在所述报文为三层报文时,所述报文的特征信息包括以下之一或任意组合:源IP地址、目的IP地址、源端口、目的端口、协议号。
所述ECMP还用于指示不对报文进行源介质访问控制MAC地址替换、不对报文进行目的MAC地址替换、不对报文中的生存时间TTL进行调整;所述从设备将所述报文重定向到等价多路径ECMP,之后还包括:
所述从设备确定不对所述报文进行源MAC地址替换、不对所述报文进行目的MAC地址替换、以及不对所述报文中的TTL进行调整。
对于所述从设备上的多个物理芯片,各物理芯片不能聚合其它物理芯片上的端口向所述主设备发送报文。
本发明实施例提供一种基于Hash的报文传输设备,作为从设备应用于包括主设备和所述从设备的异构堆叠网络中,所述从设备上包括多个物理芯片,且各物理芯片上具有连接到所述主设备的端口,所述从设备包括:
处理模块,用于在接收到报文后,将所述报文重定向到等价多路径ECMP,所述ECMP的下一跳对应出端口为各物理芯片上连接到所述主设备的端口;
ECMP管理模块,用于对所述报文的特征信息进行Hash,并根据Hash结果确定所述报文对应的所述ECMP的下一跳;
发送模块,用于通过所述ECMP的下一跳对应出端口将所述报文发送给所述主设备。
所述处理模块,具体用于利用预先配置的流量策略将所述报文重定向到所述ECMP;所述流量策略用于将所有报文重定向到所述ECMP。
在所述报文为二层报文时,所述报文的特征信息包括以下之一或任意组合:源介质访问控制MAC地址、目的MAC地址、虚拟局域网VLAN、源物理端口号、以太网协议的协议类型;
在所述报文为三层报文时,所述报文的特征信息包括以下之一或任意组合:源IP地址、目的IP地址、源端口、目的端口、协议号。
所述ECMP还用于指示不对报文进行源介质访问控制MAC地址替换、不对报文进行目的MAC地址替换、不对报文中的生存时间TTL进行调整;所述ECMP管理模块,还用于确定不对所述报文进行源MAC地址替换、不对所述报文进行目的MAC地址替换、以及不对所述报文中的TTL进行调整。
对于所述从设备上的多个物理芯片,各物理芯片不能聚合其它物理芯片上的端口向主设备发送报文。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,在各物理芯片不能聚合其它物理芯片上的端口向主设备发送报文时,通过将报文重定向到ECMP(EqualCostMultipathRouting,等价多路径),且在对报文的特征信息进行Hash之后,可以利用Hash结果对应的ECMP的下一跳对应出端口将报文发送给主设备,从而利用Hash算法对报文进行转发,有效的利用了物理带宽,并可以实现各端口之间的负载分担。
具体实施方式
在包括主设备和从设备的异构堆叠网络中,如果从设备上包括多个物理芯片,各物理芯片上具有连接到主设备的端口,且各物理芯片不能聚合其它物理芯片上的端口向主设备发送报文(即各物理芯片跨芯片上行链路不能进行聚合)时,则上行流量不能根据流量特征进行Hash选路。
以图2为本发明实施例的应用场景示意图,在异构堆叠网络中包括有从设备、主设备1和主设备2,在从设备上具有芯片1和芯片2,且芯片1上具有连接到主设备的端口A(对应于主设备1的端口M)和端口B(对应于主设备2的端口X),且芯片2上具有连接到主设备的端口C(对应于主设备1的端口N)和端口D(对应于主设备2的端口Y)。
在上述异构堆叠网络中,如果芯片1不能聚合芯片2上的端口C和端口D向主设备发送报文,且芯片2不能聚合芯片1上的端口A和端口B向主设备发送报文,即端口A、端口B、端口C和端口D之间不能进行聚合,则说明双芯片的从设备在跨芯片时上行链路不能进行聚合,从而导致上行流量(即从设备需要发送给主设备的报文)不能在多个上行链路之间通过Hash选路。
针对上述发现,在包括主设备和从设备的异构堆叠网络中,如果从设备上包括多个物理芯片,各物理芯片上具有连接到主设备的端口,且各物理芯片不能聚合其它物理芯片上的端口向主设备发送报文,有鉴于此,本发明实施例提供一种基于Hash的报文传输方法,如图3所示,该方法包括以下步骤:
步骤301,从设备在接收到报文后,将报文重定向到ECMP;其中,该ECMP的下一跳对应出端口为各物理芯片上连接到主设备的端口。
在图2所示的应用场景下,该ECMP的下一跳对应出端口为端口A、端口B、端口C和端口D。
本发明实施例中,为了使从设备能够将报文重定向到ECMP,则可以在从设备上预先配置流量策略,且该流量策略用于将所有报文重定向到ECMP;基于该流量策略,从设备在接收到报文(在图2所示的应用场景下,从设备所接收的报文为来自UNI口(即端口1-端口16)的报文)之后,可以利用该预先配置的流量策略将报文重定向到ECMP。
需要说明的是,在存在多条不同链路到达同一目的地址的网络环境中,通过ECMP可以基于策略选择多条不同链路中的一条链路向目的地址发送报文,该策略可以基于实际需要进行选择,本发明实施例中该策略为Hash算法。
此外,从设备上可以包含有ECMP管理模块,该ECMP管理模块用于对ECMP进行相关处理,且将报文重定向到ECMP具体为将报文重定向到ECMP管理模块进行后续处理。
此外,在具体实现时会存在多个ECMP,本发明实施例中选择其中的一个ECMP为指定ECMP,且针对ECMP的处理为针对指定ECMP的处理。
步骤302,从设备(如从设备中的ECMP管理模块)对报文的特征信息进行Hash,并根据Hash结果确定报文对应的ECMP的下一跳。
本发明实施例中,在报文为二层报文时,该报文的特征信息包括但不限于以下之一或任意组合:源MAC(介质访问控制)地址、目的MAC地址、VLAN(虚拟局域网)、源物理端口号、以太网协议的协议类型;在报文为三层报文时,该报文的特征信息包括但不限于以下之一或任意组合:源IP地址、目的IP地址、源端口、目的端口、协议号。
进一步的,在对报文的特征信息进行Hash之后,基于Hash结果以及ECMP的下一跳对应出端口(即端口A、端口B、端口C和端口D),则可以确定出该报文所对应的ECMP的下一跳对应出端口。
步骤303,从设备通过ECMP的下一跳对应出端口将报文发送给主设备;例如,当根据Hash结果确定报文所对应的ECMP的下一跳对应出端口为端口A时,则从设备通过端口A将报文发送给主设备。
需要说明的是,现有技术中因为分布于不同芯片(这里指同一从设备上的不同芯片)的芯片间接口(指与主设备相连的接口)不能聚合,即各物理芯片跨芯片上行链路不能进行聚合,进而不能进行聚合hash选路,但一个芯片还是能够通过另一个芯片的端口发送报文。因此基于ECMP功能,当ECMP的下一跳对应出端口在不同芯片上时,从设备能够通过ECMP的下一跳对应出端口将报文发送给主设备,即一个芯片能够利用另一个芯片的出端口将报文发送给主设备。
综上所述,本发明实施例中,在各物理芯片不能聚合其它物理芯片上的端口向主设备发送报文时,通过将报文重定向到ECMP,且在对报文的特征信息进行Hash之后,可以利用Hash结果对应的ECMP的下一跳对应出端口将报文发送给主设备,从而达到从设备上行流量Hash选路的目的,并有效的利用了物理带宽,实现各端口之间的负载分担。
进一步的,在上行链路发生变化时(如图2中某上行链路Down),则通过ECMP的方式可以在剩余的上行链路之间平衡流量,简化了需要调整的芯片表项,并减少切换时间。
本发明实施例中,由于ECMP当前用于为三层路由提供功能,而本发明实施例中将ECMP用作端口级的二层流量,因此对于上述ECMP还需要进行差异设置,其包括但不限于如下设置:ECMP用于指示不对报文进行MAC(源介质访问控制)地址替换、不对报文进行目的MAC地址替换、不对报文中的TTL(生存时间)进行调整;基于此,从设备将报文重定向到ECMP之后,从设备确定不对报文进行源MAC地址替换、不对报文进行目的MAC地址替换、以及不对报文中的TTL进行调整。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种基于Hash的报文传输设备,作为从设备应用于包括主设备和所述从设备的异构堆叠网络中,所述从设备上包括多个物理芯片,且各物理芯片上具有连接到所述主设备的端口,如图4所示,所述从设备包括:
处理模块11,用于在接收到报文之后,将所述报文重定向到ECMP,所述ECMP的下一跳对应出端口为各物理芯片上连接到所述主设备的端口;
ECMP管理模块12,用于对所述报文的特征信息进行Hash,并根据Hash结果确定所述报文对应的所述ECMP的下一跳;
发送模块13,用于通过所述ECMP的下一跳对应出端口将所述报文发送给所述主设备。
所述处理模块11,具体用于利用预先配置的流量策略将所述报文重定向到所述ECMP;所述流量策略用于将所有报文重定向到所述ECMP。
本发明实施例中,在所述报文为二层报文时,所述报文的特征信息包括以下之一或任意组合:源介质访问控制MAC地址、目的MAC地址、虚拟局域网VLAN、源物理端口号、以太网协议的协议类型;
在所述报文为三层报文时,所述报文的特征信息包括以下之一或任意组合:源IP地址、目的IP地址、源端口、目的端口、协议号。
所述ECMP还用于指示不对报文进行源介质访问控制MAC地址替换、不对报文进行目的MAC地址替换、不对报文中的生存时间TTL进行调整;
所述ECMP管理模块12,还用于确定不对所述报文进行源MAC地址替换、不对所述报文进行目的MAC地址替换、以及不对所述报文中的TTL进行调整。
本发明实施例中,对于所述从设备上的多个物理芯片,各物理芯片不能聚合其它物理芯片上的端口向主设备发送报文。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。