一种链路层多通道管理方法与流程

文档序号:12279037阅读:508来源:国知局

本发明涉及通信技术领域,特别是涉及一种链路层多通道管理方法。



背景技术:

目前,链路层多通道中,通信终端上行有两个以上的通道,这两个通道的工作模式有以下三种:链路备份,负载均衡,链路聚合。三种工作模式可以应用于不同的场景,也需要不同的技术体制作为支撑。以太网中多链路管理的技术常用于服务器和存储网络当中,以达到到高性能和高可用两个目的。一般的,在以太网技术体制中,在链路层实现多通道管理的中,每次广播ARP请求时都会使用bond的硬件地址,因此对端学习到这个硬件地址后,接收流量将会全部流向当前的slave网口,导致负载不均衡。



技术实现要素:

本发明的目的是提供一种链路层多通道管理方法,以实现负载均衡。

为解决上述技术问题,本发明提供一种链路层多通道管理方法,该方法包括:

当本机发送地址解析协议ARP请求到对端时,bonding驱动从所述ARP请求中获取对端的IP地址;

对端接收所述ARP请求,向本机发送ARP应答;

当所述ARP应答从对端到达本机时,bonding驱动从所述ARP应答中获取对端的硬件地址。

优选的,所述bonding驱动从所述ARP应答中获取对端的硬件地址之后,还包括:

bonding驱动向逻辑网口bond中的一个slave网口发送一个新的ARP应答。

优选的,bonding驱动向逻辑网口bond中的一个slave网口发送一个新的ARP应答之后,还包括:

本机获取逻辑网口bond的硬件地址。

优选的,所述方法还包括:

本机接收对端发送的ARP应答,对ARP请求进行更新,向对端发送更新后的ARP应答。

优选的,所述本机接收对端发送的ARP应答,向对端发送更新后的ARP应答之后,还包括:

bonding驱动截获所述更新后的ARP应答。

优选的,所述方法还包括:

本机向逻辑网口bond中的每个slave网口均传输数据包。

优选的,每个slave网口上的流量是均衡分配的。

本发明所提供的一种链路层多通道管理方法,当本机发送地址解析协议ARP请求到对端时,bonding驱动从所述ARP请求中获取对端的IP地址;对端接收所述ARP请求,向本机发送ARP应答;当所述ARP应答从对端到达本机时,bonding驱动从所述ARP应答中获取对端的硬件地址。可见,利用ARP请求和ARP应答及bonding驱动来进行链路层管理,接收负载均衡是通过ARP协商实现,来自服务器端即本机端的接收流量也会被均衡,实现负载均衡。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明所提供的一种链路层多通道管理方法的流程图。

具体实施方式

本发明的核心是提供一种链路层多通道管理方法,以实现负载均衡。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明所提供的一种链路层多通道管理方法的流程图,该方法包括:

S11:当本机发送地址解析协议ARP请求到对端时,bonding驱动从ARP请求中获取对端的IP地址;

S12:对端接收ARP请求,向本机发送ARP应答;

S13:当ARP应答从对端到达本机时,bonding驱动从ARP应答中获取对端的硬件地址。

可见,利用ARP请求和ARP应答及bonding驱动来进行链路层管理,接收负载均衡是通过ARP协商实现,来自服务器端即本机端的接收流量也会被均衡,实现负载均衡。

基于上述方法,具体的,bonding驱动从ARP应答中获取对端的硬件地址之后,还包括:bonding驱动向逻辑网口bond中的一个slave网口发送一个新的ARP应答。

其中,bonding驱动向逻辑网口bond中的一个slave网口发送一个新的ARP应答之后,还包括:本机获取逻辑网口bond的硬件地址。

进一步的,所述方法还包括:本机接收对端发送的ARP应答,对ARP请求进行更新,向对端发送更新后的ARP应答。具体的,对端的数量为多个时,向每一个对端发送更新后的ARP应答。

其中,本机接收对端发送的ARP应答,向对端发送更新后的ARP应答之后,还包括:bonding驱动截获更新后的ARP应答。bonding驱动截获更新后的ARP之后,bonding驱动将更新后的ARP中的源硬件地址改写为逻辑网口bond中的指定的一个slave网口的唯一硬件地址,然后bonding驱动继续发送更新后的ARP应答。其中。指定的一个slave网口是任意选择的,是bond中的某个slave网口。

这样bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信,来自服务器端即本机的接收流量也会被均衡。

进一步的,所述方法还包括:本机向逻辑网口bond中的每个slave网口均传输数据包。

其中,每个slave网口上的流量是均衡分配的。

详细的,本发明中,接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。来自服务器端的接收流量也会被均衡。当本机发送ARP请求时,bonding驱动把对端的IP信息从ARP包中复制并保存下来。当ARP应答从对端到达时,bonding驱动把它的硬件地址提取出来,并发起一个ARP应答给bond中的某个slave。

通过给所有的对端发送更新后的ARP应答,应答中包含他们独一无二的硬件地址,从而导致流量重新分布。当新的slave加入到bond中时,或者某个未激活的slave重新激活时,接收流量也要重新分布。接收的负载被顺序地分布在bond中最高速的slave上,当某个链路被重新接上,或者一个新的slave加入到bond中,接收流量在所有当前激活的slave中全部重新分配,通过使用指定的MAC地址给每个client发起ARP应答。

基于本发明,硬件设计方面的必要条件为:条件1:ethtool支持获取每个slave的速率;条件2:底层驱动支持设置某个设备的硬件地址,从而使得总是有个slave(curr_active_slave)使用bond的硬件地址,同时保证每个bond中的slave都有一个唯一的硬件地址。如果curr_active_slave出故障,它的硬件地址将会被新选出来curr_active_slave接管。其实mod=6与mod=0的区别:mod=6,先把eth0流量占满,再占eth1,….ethX;而mod=0的话,会发现2个口的流量都很稳定,基本一样的带宽。而mod=6,会发现第一个口流量很高,第2个口只占了小部分流量。

以上,本发明所提供的一种链路层多通道管理方法,当本机发送地址解析协议ARP请求到对端时,bonding驱动从ARP请求中获取对端的IP地址;对端接收ARP请求,向本机发送ARP应答;当ARP应答从对端到达本机时,bonding驱动从ARP应答中获取对端的硬件地址。并且,本机接收对端发送的ARP应答,向对端发送更新后的ARP应答,bonding驱动截获更新后的ARP应答,bonding驱动将更新后的ARP中的源硬件地址改写为逻辑网口bond中的指定的一个slave网口的唯一硬件地址。这样bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信,来自服务器端即本机的接收流量也会被均衡。可见,利用ARP请求和ARP应答及bonding驱动来进行链路层管理,接收负载均衡是通过ARP协商实现,来自服务器端即本机端的接收流量也会被均衡,实现负载均衡。

以上对本发明所提供的一种链路层多通道管理方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1