发明内容
本发明提供链路聚合方法及接入设备,以使得双网卡服务器在任意连接情形下都能完成安装部署。
本发明的技术方案是这样实现的:
一种链路聚合方法,该方法包括:
在双网卡服务器的接入设备上创建动态聚合口,该动态聚合口对应的动态聚合组的每个成员端口分别与双网卡服务器的一个网卡连接;
所述接入设备上电,在所述动态聚合组的各成员端口上使能链路聚合控制协议LACP;所述接入设备发现双网卡服务器的网卡上还未配置LACP,则将所述动态聚合组转换为静态聚合组,为该静态聚合组选择选中端口;
当所述接入设备发现所述静态聚合组的任一成员端口开始接收到LACP报文时,将该静态聚合组转换为动态聚合组,为该动态聚合组选择选中端口。
所述为该静态聚合组选择选中端口之后进一步包括:
根据选择结果,将该静态聚合组的状态信息下发到驱动;
所述为该动态聚合组选择选中端口之后进一步包括:
判断所选择的选中端口是否与为所述静态聚合组选择的选中端口相同,若是,不作进一步处理;否则,将该动态聚合组的状态信息下发到驱动,以便驱动以该动态聚合组的状态信息更新自身记录的所述静态聚合组的状态信息。
所述接入设备发现双网卡服务器的网卡上还未配置LACP包括:
所述接入设备接收到双网卡服务器发来的配置请求报文;
或者,所述接入设备上电后,发现在预设时长内未从所述动态聚合组的任一成员端口接收到LACP报文。
所述预设时长小于双网卡服务器初始化配置所需时长。
一种双网卡服务器的接入设备,该接入设备具备动态聚合口,该动态聚合口对应的动态聚合组的每个成员端口分别与双网卡服务器的一个网卡连接;该接入设备包括:
第一模块:上电后,在所述动态聚合组的各成员端口上使能LACP;发现所述双网卡服务器的网卡上还未配置LACP,则将所述动态聚合组转换为静态聚合组,为该静态聚合组选择选中端口;
第二模块:当发现所述静态聚合组的任一成员端口开始接收到LACP报文时,将该静态聚合组转换为动态聚合组,为该动态聚合组选择选中端口。
所述第一模块进一步用于,当为该静态聚合组选择选中端口之后,根据选择结果,将该静态聚合组的状态信息下发到驱动;
所述第二模块进一步用于,当为该动态聚合组选择选中端口之后,判断所选择的选中端口是否与为所述静态聚合组选择的选中端口相同,若是,不作进一步处理;否则,将该动态聚合组的状态信息下发到驱动,以便驱动以该动态聚合组的状态信息更新自身记录的所述静态聚合组的状态信息。
所述第一模块具体用于,当接收到双网卡服务器发来的配置请求报文时,或者,上电后,发现在预设时长内未从所述动态聚合组的任一成员端口接收到LACP报文时,确定双网卡服务器的网卡上还未配置LACP。
所述第一模块进一步用于,预先设定所述预设时长为:小于所述双网卡服务器初始化配置所需时长的值。
可见,本发明在双网卡服务器空配置启动时,不会从网卡上接收到重复内容,也保证了双网卡服务器空配置启动后下载配置的可靠性,使得双网卡服务器在任意连接情形下都能完成安装部署,且避免了双网卡服务器配置成功后接入设备的上层协议单元的震荡,同时可以避免流量转发的临时中断。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图3为本发明实施例提供的链路聚合方法流程图,如图3所示,其具体步骤如下:
步骤300:在双网卡服务器的接入交换机上创建动态聚合口,该动态聚合口对应的动态聚合组的每个成员端口分别与双网卡服务器的一个网卡连接。
即,动态聚合组的一个成员端口与服务器的一个网卡连接,另一成员端口与服务器的另一网卡连接。
步骤301:交换机上电,进行初始化配置,在动态聚合组的各成员端口上使能LACP。
步骤302:当交换机发现双网卡服务器的网卡上还未配置LACP时,将自身的动态聚合组转换为静态聚合组。
在实际应用中,交换机可通过如下方式确定双网卡服务器的网卡上还未配置LACP:
方式一、交换机接收到双网卡服务器发来的配置请求报文,此时,交换机可以确定双网卡服务器刚启动且还未进行初始配置。其中,配置请求报文为双网卡服务器向配置服务器发出的,该报文会首先到达该交换机,经由该交换机发给配置服务器。
方式二、交换机上电后,发现在预设时长内未从该动态聚合组的任一成员端口接收到LACP报文,此时,交换机可以确定双网卡服务器的网卡上还未配置LACP。其中,预设时长可以根据经验设定,具体可以根据双网卡服务器初始化配置所需时长确定,应该小于双网卡服务器初始化配置所需时长。
步骤303:交换机为该静态聚合组选择selected端口,并根据选择结果,将该静态聚合组的状态信息下发到驱动。
聚合组的状态信息包括:各成员端口的selected状态或unselected状态信息。
这里,为静态聚合组选择selected端口可采用现有技术。
为静态聚合组选择selected端口的原则可如下:
对于聚合组内处于up状态的成员端口,按照端口的全双工/高速率、全双工/低速率、半双工/高速率、半双工/低速率的优先次序,选择优先次序最高、且端口的第二类配置和该聚合组的聚合口的第二类配置相同的端口作为该聚合组的参考端口,其中,优先次序相同时,端口号最小的端口为参考端口。
与参考端口的端口属性配置和第二类配置一致且处于up状态的成员端口成为可能处于Selected状态的候选端口,其它端口将处于Unselected状态。由于聚合组中处于Selected状态的成员端口数是有限制的,因此,当候选端口的数目未达到上限时,所有候选端口都为Selected状态,其它端口为Unselected状态;当候选端口的数目超过上限时,按照端口号从小到大的顺序选择候选端口为Selected状态,其他端口号较大的端口为Unselected状态。
当聚合组中全部成员端口都处于down状态时,全部成员端口均为Unselected状态。
因硬件限制而无法与参考端口聚合的成员端口将处于Unselected状态。
其中,第二类配置为LACP中规定的配置,包括:虚拟局域网(VLAN,Virtual Local Area Network)配置和媒体接入控制(MAC,Media AccessControl)地址学习配置。
步骤304:当双网卡服务器上电后,通过一个网卡向配置服务器发送配置请求报文,并将配置服务器返回的配置数据分别应用到各网卡。
步骤305:双网卡服务器通过两个网卡分别向交换机发送LACP报文。
步骤306:交换机发现静态聚合组的任一成员端口开始接收到LACP报文,则将该静态聚合组转换为动态聚合组。
步骤307:交换机为该动态聚合组选择selected端口,且,若发现选择结果与步骤303一致,则不将聚合组的状态信息重复发送给驱动。
为动态聚合组选择selected端口可采用现有技术。
为动态聚合组选择selected端口的原则可如下:
本端和对端系统通过LACP进行协商,根据两端系统中设备ID较优的一端的端口ID的大小,来决定两端端口的状态。
具体协商步骤如下:
1)比较两端系统的设备ID,设备ID小的一端被认为较优。
设备ID=系统的LACP协议优先级+系统MAC地址。先比较系统的LACP协议优先级,如果相同再比较系统MAC地址。系统的LACP协议优先级和MAC地址越小,设备ID越小。
2)比较设备ID较优的一端的端口ID。
端口ID=端口的LACP协议优先级+端口号。对于设备ID较优的一端的各个端口,首先比较端口的LACP协议优先级,如果优先级相同再比较端口号。端口ID小的端口作为参考端口。端口的LACP协议优先级和端口号越小,端口ID越小。
与参考端口的端口属性配置和第二类配置一致且处于up状态的端口、并且该端口的对端端口与参考端口的对端端口的配置也一致时,该端口才成为可能处于Selected状态的候选端口。否则,端口将处于Unselected状态。
聚合组中处于Selected状态的端口数是有限制的,当候选端口的数目未达到上限时,所有候选端口都为Selected状态,其它端口为Unselected状态;当候选端口的数目超过上限时,将按照端口ID从小到大的顺序选择端口为Selected状态,其他端口ID较大的端口则变为Unselected状态。同时,对端设备会感知这种状态的改变,相应端口的状态将随之变化。
因硬件限制而无法与参考端口聚合的端口将处于Unselected状态。
以下给出本发明的应用示例。
设交换机上的动态聚合组的P1、P2端口分别与双网卡服务器的一个网卡连接。
当交换机上电后进行初始化配置,交换机会发现:预设时长内动态聚合组的任一成员端口都未收到双网卡服务器发来的LACP报文,则交换机将该动态聚合组转换为静态聚合组,并为该动态静态聚合组选择Selected端口,设端口P1、P2都被选为Selected端口,则都为非阻塞状态,将动态聚合组的状态信息下发给驱动。图4给出了空配置双网卡服务器与接入交换机间的静态聚合链路示意图。
双网卡服务器上电后,通过一个网卡向配置服务器请求并下载配置数据,下载成功后将配置数据分别应用到两网卡。
双网卡服务器分别通过两个网卡向交换机发送LACP报文,交换机接收报文,发现满足:静态聚合组的任一成员端口开始收到双网卡服务器发来的LACP报文,则将静态聚合组转换为动态聚合组,并为该动态聚合组选择Selected端口。此时,若端口P1、P2仍都被选为Selected端口,则无需将聚合组的状态信息重复下发给驱动。
可以看出:
一)由于双网卡服务器上电后未完成LACP配置前,交换机上的聚合组以静态聚合组的方式工作,因此,当两个成员端口都被选中时,除LACP外的协议会将两个端口视为同一链路上的两个成员端口,这样,双网卡服务器任一网卡发出的广播报文或者交换机转发的广播报文都不会在网卡上重复转发,保证了双网卡服务器空配置启动后下载配置的可靠性,使得双网卡服务器在任意连接情形下都能完成安装部署。
二)当双网卡服务器的两个网卡的配置一致时,网卡在静态聚合组以及动态聚合组工作方式下都可以同时作为Selected端口,从而可以避免上层协议单元的不必要震荡。
三)由于在双网卡服务器完成配置前,交换机上的聚合组也是以聚合组的方式工作,交换机上的转发表项等均是以聚合口为接口实体学习,从而在双网卡服务器完成配置后,成员端口上不会有残留表项的问题。
图5为本发明实施例提供的双网卡服务器的接入设备的组成示意图,该接入设备具备动态聚合口,该动态聚合口对应的动态聚合组的每个成员端口分别与双网卡服务器的一个网卡连接;如图5所示,该接入设备主要包括:第一模块51和第二模块52,其中:
第一模块51:本设备上电后,在与双网卡服务器连接的动态聚合组的各成员端口上使能LACP;若发现双网卡服务器的网卡上还未配置LACP,则将该动态聚合组转换为静态聚合组,为该静态聚合组选择选中端口,将该静态聚合组的标识及状态信息发送给第二模块52。
第二模块52:接收第一模块51发来的静态聚合组的标识及状态信息,当发现该静态聚合组的任一成员端口开始接收到LACP报文时,将该静态聚合组转换为动态聚合组,为该动态聚合组选择选中端口。
第一模块51进一步用于,当为静态聚合组选择选中端口之后,根据选择结果,将该静态聚合组的状态信息下发到驱动;
且,第二模块52进一步用于,当为动态聚合组选择选中端口之后,判断该动态聚合组的状态信息是否与第一模块51发来的静态聚合组的状态信息相同,若是,不作进一步处理;否则,将该动态聚合组的状态信息下发到驱动,以便驱动以该动态聚合组的状态信息更新自身记录的该静态聚合组的状态信息。
第一模块51具体用于,当接收到双网卡服务器发来的配置请求报文时,或者,上电后,发现在预设时长内未从与双网卡服务器连接的动态聚合组的任一成员端口接收到LACP报文时,确定双网卡服务器的网卡上还未配置LACP。其中,预设时长可以为:小于双网卡服务器初始化配置所需时长的值。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。