一种lacp链路切换、数据传输方法与装置的制作方法

文档序号:7936673阅读:250来源:国知局
专利名称:一种lacp链路切换、数据传输方法与装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种链路聚合控制协议LACP链路切换、数据传输方法与装置。
背景技术
LACP(Link Aggregation Control Protocol,链路聚合控制协议)是用于实现链路动态聚合与解聚合的协议,聚合的作用在于提高传输带宽、增强系统可靠性。在LACP协议控制下,多条链路(成员链路)汇聚成一条带宽更高的逻辑链路,该逻辑链路称为汇聚组,这种含有汇聚组的链路为LACP链路。聚合于一个汇聚组的成员链路的数量通常根据业务的带宽需求进行确定。一般而言,汇聚组成员链路单端的活动接口数至少应当大于或等于传输相应业务的预设最小活动链路数。满足该要求时汇聚组的状态为UP状态,LACP链路处于“通路”,该链路可使用;未满足该要求时,即汇聚组成员链路单端的活动接口数小于预设最小活动链路数时,汇聚组的状态为Down状态,LACP链路处于“断路”,该链路不能使用。LACP链路汇聚组的状态决定了 LACP链路的切换过程。为了监测汇聚组的状态变化,汇聚组的两端周期性地互发LACPDU(LACP Data Unit)消息,当汇聚组的一端接收到 LACPDU消息后,将LACPDU消息中携带的对端的系统优先级、接口优先级等信息与本端的配置进行比较,如果不一致,则根据比较结果对本端配置进行调整,调整过程中汇聚组内活动接口数将发生变化,当活动接口数增减到一定程度时,汇聚组的状态将在UP、Down两种状态之间交替变化,这种交替变化过程引起LACP链路在“导通”、“断路”之间发生链路切换, 该链路出现“或断或连”的“闪断”过程,这种“闪断”效应反应到用户端则是频繁出现“掉线”,由“掉线”到“上线”进行再次通信时需重新接入网络、重新建立数据链路,这严重影响了正常通信,降低了网络的服务保障水平。此外,汇聚组内活动接口变为非活动接口时,通常会将该接口设置成不再具有收发数据功能的“死”接口,然而,在上述接口的状态变化是由“链路物理故障”之外的其他原因引起时,这种方式将造成已在LACP链路上传输的报文丢失,影响到正常通信。

发明内容
有鉴于此,本发明实施例的发明目的在于提供一种LACP链路切换方法和装置,以解决LACP链路切换过程中链路的“闪断”问题,进而避免用户通信时频繁出现“掉线”。一方面,一种链路聚合控制协议LACP链路切换方法,包括监测LACP链路汇聚组内接口的状态变化;当监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,确定所述LACP链路汇聚组内活动状态的接口数是否小于预设最小活动链路数,如果是,则将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数;N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数; 当监测到所述LACP链路汇聚组内处于非活动状态的接口发生状态改变时,将所
述N个保持活动状态的接口中的M个接口的状态调整为非活动状态,M为自然数且M小于
或等于N。 可选地,在将发生状态改变的接口中的N个接口的状态保持为活动状态时,启动定时器,则在预设时间内未监测到所述LACP链路汇聚组内处于处于非活动状态的接口发生状态改变时,将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态。可选地,所述预设时间为LACP配置的长周期或短周期。可选地,在确定所述LACP链路汇聚组内处于活动状态的接口数大于等于预设最小活动链路数时,将发生状态改变的接口中的Q个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,Q 为自然数且Q小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数。另一方面,一种链路聚合控制协议LACP链路切换装置,包括监测单元、确定单元和状态调整单元,其中所述监测单元,用于监测LACP链路汇聚组内接口的状态变化;所述确定单元,用于在监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,确定所述LACP链路汇聚组内处于活动状态的接口数是否小于预设最小活动链路数,如果是,则触发所述状态调整单元;所述状态调整单元,用于在所述LACP链路汇聚组内处于活动状态的接口数小于预设最小活动链路数时,将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数;N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数;在监测到所述LACP链路汇聚组中的非活动状态的接口发生状态改变时,将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态,M为自然数且M小于或等于N。可选地,所述装置还包括定时器,该定时器在将发生状态改变的接口中的N个接口的状态保持为活动状态时启动,则在预设时间内未监测到所述LACP链路汇聚组内处于非活动状态的接口状态改变时,触发所述状态调整单元,该状态调整设置单元用于将所述N 个保持活动状态的接口中的M个接口的状态调整为非活动状态。又一方面,一种链路聚合控制协议LACP链路数据传输方法,包括监测LACP链路汇聚组内接口的状态变化;当监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,确定所述LACP链路汇聚组内活动状态的接口数是否小于预设最小活动链路数,如果是,则将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数;N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数;当监测到所述LACP链路汇聚组内处于非活动状态的接口发生状态改变时,则将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态,M为自然数且M小于或等于N;将所述LACP链路汇聚组内处于活动状态的接口进行报文发送和接收登记,将所述状态改变为非活动状态的接口进行报文接收登记;根据所述LACP链路汇聚组内接口的报文发送和接收登记进行数据传输。可选地,在将状态改变为非活动状态的接口进行报文接收登记时,启动定时器, 则在预设时间到达后,删除该接口的报文接收登记。可选地,所述预设时间为LACP配置的长周期或短周期。又一方面,一种链路聚合控制协议LACP链路数据传输装置,包括监测单元、确定单元、状态调整单元、报文收发登记单元和数据传输单元,其中所述监测单元,用于监测LACP链路汇聚组内接口的状态变化;所述确定单元,用于在监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,确定所述LACP链路汇聚组内处于活动状态的接口数是否小于预设最小活动链路数,如果是,则触发所述状态调整单元;所述状态调整单元,用于在所述LACP链路汇聚组内处于活动状态的接口数小于预设最小活动链路数时,将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数;N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数;在监测到所述LACP链路汇聚组内处于非活动状态的接口发生状态改变时, 将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态,M为自然数且M小于或等于N;所述报文收发登记单元,用于将所述LACP链路汇聚组内处于活动状态的接口进行报文发送和接收登记,将状态改变为非活动状态的接口进行报文接收登记;所述数据传输单元,用于根据所述LACP链路汇聚组内接口的报文发送和接收登记进行数据传输。本发明实施例给出的LACP链路切换技术方案在监测到接口状态发生变化并确定这种变化将导致LACP链路发生切换时,将由活动状态变为非活动状态的接口中的至少一部分接口的变化前的状态保持一段时间,以使得处于活动状态的接口的数量大于或等于所述预设最小活动链路数,直到新的接口由非活动状态变为活动状态,才将上述由活动状态变化为非活动状态的接口的状态设置为非活动状态。本发明的实施例在LACP链路出现切换事件时,通过对状态发生变化的接口的前状态进行锁定处理,直至出现顶替上述接口的新的接口才予以解锁,这样LACP链路汇聚组的状态将始终保持不变。这样,逻辑上位于底层的接口的状态发生变化,并不影响逻辑上处于高层的汇聚组的状态,从而实现了链路切换事件发生时链路的平滑过渡,解决了链路频繁出现“闪断”影响正常通信的问题。此外,本发明实施例给出的LACP链路数据传输技术方案在上述链路切换的方法基础上,将转发表分成两类报文接收数据表和报文发送数据表,并将由活动变为非活动状态的接口登记到报文接收数据表。经过这样处理后,在进行数据传输时,上述由活动状态变为非活动状态的接口仍可接收其状态变化前已在链路上传输的数据报文,从而确保了 LACP 链路切换过程中数据报文不丢失。


图1 (a) (c)为LACP链路汇聚组的建立过程示意图;图2为本发明的LACP链路切换方法的实施例一的流程图;图3为本发明的LACP链路切换方法的实施例二的流程图;图4为本发明的LACP链路切换装置实施例四的组成框图;图5为本发明的LACP链路数据传输方法的实施例五的流程图;图6为本发明的LACP链路数据传输装置的实施例六的组成框图。
具体实施例方式本发明实施例提供一种LACP链路切换方法和装置,该方法与装置在确定某个或某些接口的状态变化将引起LACP链路发生切换时,对这些接口中的至少一部分接口的变化前的状态进行“锁定”处理,以使得处于活动状态的接口的数量大于或等于所述预设最小活动链路数,直至LACP链路汇聚组中出现与所述锁定“状态”相同的新接口时进行“解锁”, 经过这样处理后,在LACP链路出现切换事件时,LACP链路汇聚组的状态仅在接口这个底层层面发生变化,而在链路汇聚组这个逻辑上的上层层面保持不变,从而实现LACP链路切换过程的平滑过渡,进而解决了切换事件出现后链路随之切换导致的链路频繁“闪断”问题。为便于理解本发明实施例的技术方案,这里先将LACP链路的汇聚组建立过程以及LACP链路切换作简要介绍。LACP链路的汇聚组建立过程包括SlOl 发起LACP链路汇聚组创建消息,LACP链路两端设备收到该汇聚组创建消息后对LACP模式进行配置,并根据各自的接口优先级情况选出准备添加入LACP链路汇聚组的接口,这些被选择后的接口启用LACP协议,两端设备互发LACPDU报文。参见附图1(a) 所示,LACP链路两端设备用路由器Router A和路由器Router B表示,Router A与Router B之间连接的实线表示通信链路,箭头代表LACPDU报文传输方向。S102 =LACP链路两端设备各自接收到对端设备发送的LACPDU报文后,结合本端设备的配置,根据LACPDU报文中的系统LACP优先级和系统ID确定主动端设备和被动端设备。LACPDU报文主要包含以下信息系统优先级、系统ID、接口操作key、接口优先级、接口 ID、接口状态。参见图1 (b)所示,当Router B收到Router A发送的LACPDU报文后,查看LACPDU 报文以获知Router A的系统优先级和系统ID,将其与自身的系统优先级和系统ID进行比较如果Router A的系统优先级高于Router B的系统优先级,则确定RouterA为链路的主动端设备,Router B为被动端设备,否则确定Router B为LACP链路的主动端设备,Router A为被动端设备。类似地,当Router A接收到Router B发送的LACPDU报文也将按照上述方式确定主动端设备和被动端设备。本例中,假定Router A的系统优先级为10,Router B 的优先级为11,确定Router A为主动端设备,Router B为被动端设备。S103 根据LACP链路的主动端设备的接口优先级确定进入汇聚组的接口,两端设备协商一致后,在原通信链路基础之上的逻辑链路即LACP链路汇聚组建立完成。LACP链路的主动端设备与被动端设备确定后,LACP链路的两端设备均按照主动端设备的接口优先级确定构成汇聚组的接口。两端设备对应的接口之间构成一条通信链路,多个通信链路(成员链路)组成逻辑链路。由此,LACP链路的汇聚组建立完成。进入汇聚组的接口并非都处于活动状态。其中处于活动状态的接口数目取决于业务传输对带宽需求大小。通常LACP链路汇聚组成员链路单端的接口数应当在预设最小活动链路数和最大活动链路数之间。没有进入LACP链路汇聚组的接口和汇聚组内处于非活动状态的成员接口构成备份接口,在需要时用于替换LACP链路汇聚组内的活动接口。当LACP链路汇聚组内的活动链路数没有达到预设最大活动链路,根据业务需要如果要提高传输带宽,可将 LACP链路汇聚组内处于非活动状态的成员接口设置成活动状态。为叙述方便,以下实施例中,将位于LACP链路汇聚组之外的接口和LACP链路汇聚组内成员接口均简称为接口。参见附图1 (c)所示,Router A为主动端设备,该端设备有三个接口,Router B为被动端设备,也有三个接口。假设Router A的最高活动链路数预设为2条,因此,按照接口的优先级高低原则进入LACP链路汇聚组的活动接口为Router A的“ 1,,和“2,,两个接口, Router B的相应接口与Router A的“ 1,,和“2”建立链路,由这两个链路组成一个LACP链路汇聚组,该LACP链路汇聚组的两条链路(四个接口 )均处于活动状态。下面结合实施例和附图,对本发明的发明目的、技术特征进行详细介绍。实施例一LACP链路汇聚组按照前述方式建立后,LACP链路是否能进行正常通信取决于 LACP链路汇聚组的当前状态。LACP链路汇聚组的状态包括两种UP状态和Down状态。当 LACP链路汇聚组一端的活动接口(标记为Elected状态,非活动接口标记为Unselected 状态)数量大于等于预设最小活动链路数时,LACP链路汇聚组处于UP状态,LACP链路连通,可进行正常通信;当LACP链路汇聚组一端的活动接口(标记Selected状态)数目小于预设最小活动链路数时,LACP链路汇聚组处于Down状态,LACP链路断裂,通信被中断,只有等到LACP链路汇聚组再次处于UP状态时,通信过程重新建立后才能进行正常通信。LACP 链路汇聚组在UP状态和Down状态之间的变化过程构成LACP链路的切换。从UP状态到Down状态的链路切换由切换事件触发,这些切换事件包括链路Down 事件、ETH-OAM检测到链路失效、LACP发现链路故障等。切换事件发生后导致LACP链路汇聚组内相应接口的状态由Elected变为Unselected,当这种接口状态的变化使得LACP链路汇聚组内活动接口的数量减小到最小链路数以下时,LACP链路汇聚组由UP状态到Down 状态的切换完成。从Down状态到UP状态的链路切换通过LACP抢占实现,LACP链路汇聚组内出现接口由Elected状态变为Unselected后,处于备份状态的非活动接口根据优先级高低接替上述变为非活动状态的接口,即处于备份状态的非活动接口的状态由Unselected 变为Selected,当这种接口状态变化使得LACP链路汇聚组内活动接口的数据增加到最小活动链路数以上时,LACP链路汇聚组由Down状态到UP状态的切换完成。举例来说,假定要维持LACP链路汇聚组的状态为UP状态,该LACP链路汇聚组中至少应当有10个或更多的接口处于活动状态,也就是说预设最小活动链路数为10,那么, 当LACP链路汇聚组中处于活动状态的接口数量少于10个时,该LACP链路汇聚组将从UP 状态切换到Down状态。反之,当LACP链路汇聚组中处于活动状态的接口数量从少于10增加到10或大于10时,LACP链路汇聚组的状态将从Down状态切换到UP状态。由上述内容可知,当UP/Down之间的状态变换频繁时,LACP链路极为不稳定,整个链路不断重复“连通-断开-连通-断开”闪断过程,影响到正常通信,这种现象在汇聚组内仅有一个活动接口时,其后果更为严重。该过程可用打电话的例子进行形象阐释用户B向用户A打电话,拨通线路通话一段时间后,由于某种原因,用户B和A间线路的一段LACP链路由UP状态跳变为Down状态, 该线路断开、电话掉线、用户B、A间通话被迫中断,一会之后,LACP链路又由Down状态恢复到UP状态,此时,用户B不能直接继续通话,而必须重新拨号建立与用户A之间的连接后才能继续前次通话,如果LACP链路频繁处于切换过程中,用户B将进行多次拨号。为了避免LACP链路切换过程由于LACP的频繁闪断给用户带来的麻烦和不便,本发明的实施例提出了一种新的LACP链路的切换方法。参见附图2,该方法包括S201 监测LACP链路汇聚组内接口的状态变化。LACP链路汇聚组内的接口包括活动接口和非活动接口。非活动接口一般不会自动启用,只有当出现活动接口数减少,发生由非活动状态到活动状态变化,用于填补上述的由活动状态变为非活动状态的接口。活动接口的状态变化将可能导致LACP链路汇聚组的状态由UP状态到Down状态的跳变,进而影响了 LACP链路两端的正常通信。S202 当监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时, 确定LACP链路汇聚组内活动状态的接口数是否小于预设最小活动链路数,如果是,执行 S202(a)将发生状态改变的接口中的N个接口的的状态保持为活动状态,以使得处于活动状态的接口的数量大于或等于所述预设最小活动链路数,从而使得所述LACP链路汇聚组的状态保持为UP状态,N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数。接口由活动状态变为非活动状态,将导致处于活动状态的接口数量减少;当LACP 链路汇聚组中处于活动状态的接口数量减少到预设最小活动链路数以下时,将影响到LACP 链路汇聚组的状态。因此,在监测到接口变为非活动状态时,确定LACP链路汇聚组内活动状态的接口数是否小于预设最小活动链路数,如果发生状态变化后LACP链路汇聚组内活动接口的数量小于预设最小活动链路数,则按照满足所述预设最小活动链路数的要求,将刚才由活动状态变为非活动状态中的接口中的N个接口的状态仍然设置成活动状态,并做好标记,经过这样处理后,LACP链路汇聚组认为接口状态没有变化,其UP状态将得到继续保持,LACP链路汇聚组不发生断路,即整个LACP链路汇聚组的某条链路虽不可用,但LACP 链路汇聚组不能感知,仍然保持链路“畅通”状态。S203 当监测到LACP链路汇聚组内处于非活动状态接口发生状态改变时,将所述 N个保持活动状态的接口中的M个接口的状态调整为非活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,M为自然数且M 小于或等于N。所述LACP链路汇聚组内出现接口的状态由活动状态到非活动状态的变化时,备份的接口立即“活跃”起来,通过LACP抢占决定由哪个备份接口接替由活动状态变为非活动状态的那个接口,该“新旧交替”完成后,才将由活动状态变为非活动状态中的N个接口中的M个接口的状态设置为其真实的状态非活动状态,并使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数。本实施例给出的LACP链路切换技术方案在监测到接口状态发生变化后,在确定这种接口的“跳变”将导致链路汇聚组的状态跳变时,将由活动状态变为非活动状态的接口的状态保持原状态(活动状态)一段时间,直到出现由非活动状态变为活动状态的新接口,进而顶替上前述的接口,然后将该由活动状态变化为非活动状态的接口设置回其真实状态。本发明的实施例在LACP链路出现切换事件时,通过将状态发生变化的接口的变化之前的状态保持到新的活动链路的出现,使得LACP链路汇聚组的状态不随接口状态的变化而变化,这样接口层面的状态变化体现到LACP链路汇聚组层面时,被顺利地“平滑掉” 了,LACP链路汇聚组始终保持先前的状态,LACP链路将不出现断路,整个链路的状态不发生变化,不再频繁出现“闪断”效应,从而有效保证了通信服务水平。实施例二本发明实施例将LACP链路汇聚组内由活动状态变为非活动状态的接口的前状态 (活动状态)一直保持到出现新的接口时止,这期间由LACP抢占功能完成新的接口的“推举”工作。但是,实际运行过程中,可能存在多种原因导致LACP抢占不成功或者抢占时延过长,甚至没有进行抢占工作。前者的情形如=LACP链路汇聚组的备份接口出现故障不能用或者没有更多的备份接口,那么根据优先级推荐的备份链路将无法使LACP链路汇聚组由 Down状态回归UP状态;后者的情形如LACP抢占功能并未设置在“使能”状态,没有LACP 抢占功能,LACP链路将无法选择出新的接口进行顶替。这些情况发生后,LACP链路不能一直等待下去,使LACP链路汇聚组的状态长期处于“虚假”状态。因此,本发明的提供了另一个实施例。该实施例包括监测LACP链路汇聚组内接口的状态变化;当监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,确定所述LACP链路汇聚组内活动状态的接口数是否小于预设最小活动链路数,如果是,则将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数,并启动定时器;在定时器的预设时间内未监测到所述LACP链路汇聚组内处于非活动状态的接口发生状态改变时,将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态, 以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,M为自然数且M小于或等于N。本实施例通过设置定时器,由定时器来决定等待时间的长短,在定时器预设时间内监测到活动状态的接口出现,即按照满足所述预设最小活动链路数的要求,解除处于状态保持的N个接口中的M个接口的状态,并将其状态设置回真实状态,并使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数;在超过定时器预设时间未监测到LACP链路汇聚组内处于活动状态接口出现,也解除处于状态保持的 M个接口中的至少一个接口的状态,将其设置回真实状态,这种方式可以避免较长时间内等待不到由非活动状态到活动状态变换的接口,导致LACP链路汇聚组始终处于虚假状态、 LACP链路的资源得不到释放。本实施例中的定时器的预设时间可根据需要进行设置,本实施例可以设置为LACP配置的长周期或短周期,在目前LACP协议中规定的长周期为90s,短周期为3s。
实施例三上述两个实施例主要是针对监测到新的非活动接口导致LACP链路汇聚组状态变化的情形,对于出现新的非活动接口但不会导致LACP链路汇聚组状态变化的情况未有提及。实际上,在监测到LACP链路汇聚组内有接口由活动状态变为非活动状态时,只要LACP 链路汇聚组内的活动接口的数大于或等于预设最小活动链接数,LACP链路汇聚组的状态将不发生变化,但是由于LACP链路汇聚组内活动接口数减少,LACP链路汇聚组内活动链接数将随之减小,数据传输的带宽也将变小,当出现新的活动接口时,LACP链路汇聚组内活动链接数随之增加,数据传输的带宽将恢复到先前水平,如果LACP链路汇聚组内接口的状态变化频繁出现,LACP链路的带宽将出现震荡,容易导致流量拥塞。为了避免这种情况的发生, 本发明提供了再一个实施例。参见附图3,本实施例包括监测LACP链路汇聚组内接口的状态变化;当监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,不论所述LACP链路汇聚组内处于活动状态的接口数是否小于预设最小活动链路数,将所述LACP 链路汇聚组内发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP 链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数。在预设时间内监测到所述LACP链路汇聚组内处于非活动状态的接口发生状态改变时,将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态,以使得所述 LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,M为自然数且M小于或等于N。本实施例中,不论LACP链路汇聚组内处于活动状态的接口数是否小于预设最小活动链路数时,都将由活动状态变为非活动状态的接口中的N个接口的状态设置为活动状态,直到监测到新的活动接口顶替了上述变为非活动状态的接口后,才解除上述保持状态, 并将其状态设置回真实状态。这样不仅可以解决LACP链路汇聚组出现“闪断”,而且便于实现控制和避免带宽震荡。具体而言,如果活动状态的接口发生状态改变的原因是由链路本身故障所引起, 那么在这种故障导致LACP链路汇聚组的状态改变之前进行上述处理,而不是等到LACP链路汇聚组状态改变之时进行该处理工作,将更加有利于实际控制;如果活动状态的接口发生状态改变的原因是链路故障以外的原因引起,那么在这种原因导致LACP链路汇聚组的状态改变之前进行上述处理,可在LACP链路汇聚组的状态改变之前这段时间内保持带宽稳定,带宽稳定可以避免数据发送速率忽大忽小、出现跳跃。实施例四上述的几个实施例是本发明给出的LACP链路切换的方法实施例,相应地,本发明还给出了 LACP链路切换的装置实施例。参见附图4,本装置400包括监测单元401、确定单元402和状态调整单元403,其中所述监测单元401,用于监测LACP链路汇聚组内接口的状态变化;所述确定单元402,用于在监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,确定所述LACP链路汇聚组内处于活动状态的接口数是否小于预设最小活动链路数,如果是,则触发所述状态调整单元403 ;
所述状态调整单元403,用于在所述LACP链路汇聚组内活动状态的接口数小于预设最小活动链路数时,将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数;在监测到所述LACP链路汇聚组内处于非活动状态的接口发生状态改变时,将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,M为自然数且M小于或等于N。也就是,将这些发生状态改变的N个接口中的M个接口的状态调整成为其真实状态非活动状态。本装置400实施例的工作过程是监测单元401对LACP链路汇聚组内接口的状态变化进行监测;在监测到有接口由活动状态变为非活动状态时,触发确定单元402,由该确定单元单元402确定LACP链路汇聚组内活动状态的接口数是否小于预设最小活动链路数, 如果是,则触发状态调整单元403,由该状态调整单元403将由活动状态变为非活动状态的接口中的N个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数;在监测到所述LACP链路汇聚组内有接口由非活动状态变为活动状态时,触发状态调整单元403,由该状态调整单元403 将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态,以使得所述LACP 链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,M为自然数且M小于或等于N。也就是,将这些发生状态改变的接口中的至少一个接口的状态调整成为其真实状态非活动状态。本装置实施例给出的LACP链路切换技术方案监测到接口状态发生变化后,在确定这种接口的跳变将导致LACP链路汇聚组的状态跳变时,将由活动状态变为非活动状态的接口中的部分或全部的状态保持原状态(活动状态)一段时间,直到出现新的由非活动状态变为活动状态的接口,进而顶替上前述的接口中的一部分或全部,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数后,才将该由活动状态变化为非活动状态的接口设置回其真实状态。本发明的实施例在LACP链路出现切换事件时,通过将状态发生变化的接口中的一部分或全部变化之前的状态锁定到新的活动链路出现之时,使得LACP链路汇聚组的状态不随部分接口状态的变化而变化,这样接口层面的状态变化体现到LACP链路汇聚组层面时,则被顺利地“平滑掉” 了,LACP链路汇聚组的状态始终保持不变,LACP链路将不出现断路,整个链路的状态不发生变化,不再频繁出现“闪断”效应,保证通信服务水平。上述装置实施例还可以包括定时器404,该定时器404在发生状态改变的接口中的N个接口的状态保持为活动状态时启动,则在预设时间内未监测到LACP链路汇聚组内处于非活动状态的接口发生状态改变时,触发状态调整单元403,该状态调整单元403将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态。通过设置定时器404, 在定时器404预设时间内监测到LACP链路汇聚组内处于活动状态的接口出现,即解除处于状态保持的N个接口中M个接口的状态,将这M个接口的状态设置回真实状态,在超过定时器404预设时间未监测到LACP链路汇聚组内处于活动状态接口出现,也解除处于状态保持的N个接口中的M个接口的状态,将其设置回真实状态。这种方式可以避免较长时间内等待不到由非活动状态到活动状态变换的接口导致LACP汇聚组始终处于虚假状态,而LACP 链路的资源却得不到释放。本装置实施例中的定时器的预设时间可根据需要进行设置,本实施例优选设置为LACP配置的长周期或短周期,在目前LACP协议中规定的长周期为90s, 短周期为3s。实施例五前面已经叙述汇聚组的建立过程,在LACP链路上建立起LACP链路汇聚组后,要实现通过LACP链路进行数据传输的目的,还需要根据LACP链路汇聚组内的活动接口生产转发表,以便业务数据报文到来后决定由哪个活动接口接收数据、本端产生的业务数据通过哪个活动接口发送出去。现有技术中进行数据传输时,通常将汇聚组内所有处于活动状态的接口设定为同时具有报文接收和发送功能,而将LACP链路汇聚组内处于非活动状态的接口设定为不具有收发数据功能。这种方式在LACP链路状态频繁出现变化,且这种状态变化不是由于链路本身故障而引起时,将造成已在链路上传输的报文丢失,影响到正常通信。 为此,本发明给出了一种LACP链路数据传输方法的实施例,该实施例可以避免或减少报文丢失。参见附图5,本实施例包括S501 监测LACP链路汇聚组内接口的状态。S502 当监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,确定所述LACP链路汇聚组内活动状态的接口数是否小于预设最小活动链路数,如果是,则执行S502(a)将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP 链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数。S503 当监测到有所述LACP链路汇聚组内处于非活动状态的接口发生状态改变时,将所述N个保持活动状态的接口中M个接口的状态调整为非活动状态,以使得所述LACP 链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,M为自然数且M小于或等于N。S504:将LACP链路汇聚组内处于活动状态的接口进行报文发送和接收登记,将 LACP链路汇聚组内状态改变为非活动状态的接口进行报文接收登记;LACP链路汇聚组内处于活动状态的接口既可作为报文接收端口进行对端报文接收的工作,也可作为报文发送端口进行本端报文的发送工作。因此,将活动接口进行报文发送和接收登记;而对于LACP链路汇聚组内由活动状态变为非活动状态的接口仅登记为报文接收功能,变为非活动状态的接口只要不是物理线路本身故障,通常还能继续接收报文, 但不再具有发送功能。S505 根据LACP链路汇聚组内接口的报文发送、接收登记情况进行数据传输; LACP链路按照登记的接口完成数据的传输转发工作。本实施例在LACP链路状态频繁切换环境下,将由活动接口变为非活动接口的接口中的N个接口的变化前状态保持一段时间,直到新的接口出现才对所述N个接口中的部分或全部解除这种状态保持,将其恢复到真实状态。并且在设定接口的功能时,不仅将活动接口分别进行“接收”、“发送”两个方向的登记,而且还将上述由活动状态变为非活动状态的接口登记为“接收”。本实施例充分利用接口的功能,使得已在链路上传输的报文能通过相应接口顺利到达目的端,从而避免或减少数据报文的丢失。上述数据传输的实施例利用了接口由活动状态转变为非活动状态后其数据接收功能还将保持一段时间的特性,但是,随着变为非活动状态的时间变长,这种数据接收功能将消失。因此,将由活动状态变为非活动状态的接口登记为“接收Ii口不是“永久之策”,保持长期登记状态还将占用存储资源。为此,本发明还提供了对上述实施例进行改进的方案, 即在在将由活动状态变为非活动状态的接口进行报文接收登记时,启动定时器,则在预设时间到达后,删除该接口的报文接收登记。这样经过预设时间后可将相应接口从登记表中删除,进而释放出相应资源。这里的预设时间可以根据实际需要进行设定,通常优选LACP 配置的长周期或短周期作为预设时间,在目前LACP协议中规定的长周期为90s,短周期为 3s。实施例六上述实施例给出了 LACP链路数据传输的方法实施例,相应地,本发明还提供了一种装置实施例。参见附图6,本装置600实施例包括监测单元601、确定单元602、状态调整单元603、报文收发登记单元604和数据传输单元605,其中所述监测单元601,用于监测LACP链路汇聚组内接口的状态变化;所述确定单元602,用于在监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,确定所述LACP链路汇聚组内处于活动状态的接口数是否小于预设最小活动链路数,如果是,则触发所述状态调整单元603 ;所述状态调整单元603,用于在确定所述LACP链路汇聚组内处于活动状态的接口数小于预设最小活动链路数时,将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数;在监测到所述LACP链路汇聚组内处于非活动状态的接口发生状态改变时,将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态,M为自然数且M小于或等于N。所述报文收发登记单元604,用于将所述LACP链路汇聚组内处于活动状态的接口进行报文发送和接收登记,将所述LACP链路汇聚组内状态改变为非活动状态的接口进行报文接收登记;所述数据传输单元605,用于根据所述LACP链路汇聚组内接口的报文发送和接收登记进行数据传输。该装置600实施例的工作过程是监测单元601对LACP链路汇聚组内接口的状态变化进行监测;在监测到所述LACP链路汇聚组内有接口由活动状态变为非活动状态时,启动所述确定单元602,由该确定单元602确定所述LACP链路汇聚组内处于活动状态的接口数是否小于预设最小活动链路数,如果是,则触发状态调整单元603,由所述状态调整单元 603将发生状态改变的接口中的N个接口的状态保持为活动状态;在监测到所述LACP链路汇聚组内有接口由非活动状态变为活动状态时,触发所述状态设置单元603将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态。接下来,由所述报文收发登记单元604将所述LACP链路汇聚组内处于活动状态的接口进行报文发送和接收转发登记,将所述LACP链路汇聚组内状态改变为非活动状态的接口进行报文接收登记;然后所述数据传输单元605根据所述LACP链路汇聚组内接口的报文接收和转发登记进行数据传输。本装置实施例在LACP链路状态频繁切换环境下,将所述LACP链路汇聚组内由活动接口变为非活动接口的接口中的至少一部分或全部的变化前状态保持一段时间,直到新的接口出现才解除处于保持状态的这些接口中的一个或所有接口的这种状态保持,将其恢复到真实状态。在设定接口的功能时,不仅将活动接口分别进行“接收”、“发送”两个方向的登记,而且还将上述由活动状态变为非活动状态的接口登记为“接收”。本实施例充分利用接口的功能,使得已在链路线上传输的报文能通过相应接口顺利到达目的端,避免或减少数据报文的丢失。在以上实施例中,也可以在确定所述LACP链路汇聚组内处于活动状态的接口数大于等于预设最小活动链路数时,将发生状态改变的接口中的Q个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,Q为自然数且Q小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在发明的保护范围之内。
权利要求
1.一种链路聚合控制协议LACP链路切换方法,其特征在于,该方法包括监测LACP链路汇聚组内接口的状态变化;当监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,确定所述 LACP链路汇聚组内活动状态的接口数是否小于预设最小活动链路数,如果是,则将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数;N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数;当监测到所述LACP链路汇聚组内处于非活动状态的接口发生状态改变时,将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态,M为自然数且M小于或等于 N0
2.根据权利要求1所述的方法,其特征在于,在将发生状态改变的接口中的N个接口的状态保持为活动状态时,启动定时器,则在预设时间内未监测到所述LACP链路汇聚组内处于处于非活动状态的接口发生状态改变时,将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态。
3.根据权利要求2所述的方法,其特征在于,所述预设时间为LACP配置的长周期或短周期。
4.根据权利要求1所述的方法,其特征在于,在确定所述LACP链路汇聚组内处于活动状态的接口数大于等于预设最小活动链路数时,将发生状态改变的接口中的Q个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数,Q为自然数且Q小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数。
5.一种链路聚合控制协议LACP链路切换装置,其特征在于,该装置包括监测单元、确定单元和状态调整单元,其中所述监测单元,用于监测LACP链路汇聚组内接口的状态变化;所述确定单元,用于在监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,确定所述LACP链路汇聚组内处于活动状态的接口数是否小于预设最小活动链路数,如果是,则触发所述状态调整单元;所述状态调整单元,用于在所述LACP链路汇聚组内处于活动状态的接口数小于预设最小活动链路数时,将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数;N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数;在监测到所述LACP链路汇聚组中的非活动状态的接口发生状态改变时,将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态,M为自然数且M小于或等于N。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括定时器,该定时器在将发生状态改变的接口中的N个接口的状态保持为活动状态时启动,则在预设时间内未监测到所述LACP链路汇聚组内处于非活动状态的接口状态改变时,触发所述状态调整单元,该状态调整设置单元用于将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态。
7.一种链路聚合控制协议LACP链路数据传输方法,其特征在于,该方法包括监测LACP链路汇聚组内接口的状态变化;当监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,确定所述 LACP链路汇聚组内活动状态的接口数是否小于预设最小活动链路数,如果是,则将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数;N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数;当监测到所述LACP链路汇聚组内处于非活动状态的接口发生状态改变时,则将所述N 个保持活动状态的接口中的M个接口的状态调整为非活动状态,M为自然数且M小于或等于N;将所述LACP链路汇聚组内处于活动状态的接口进行报文发送和接收登记,将所述状态改变为非活动状态的接口进行报文接收登记;根据所述LACP链路汇聚组内接口的报文发送和接收登记进行数据传输。
8.根据权利要求7所述的方法,其特征在于,在将状态改变为非活动状态的接口进行报文接收登记时,启动定时器,则在预设时间到达后,删除该接口的报文接收登记。
9.根据权利要求8所述的方法,其特征在于,所述预设时间为LACP配置的长周期或短周期。
10.一种链路聚合控制协议LACP链路数据传输装置,其特征在于,该装置包括监测单元、确定单元、状态调整单元、报文收发登记单元和数据传输单元,其中所述监测单元,用于监测LACP链路汇聚组内接口的状态变化;所述确定单元,用于在监测到所述LACP链路汇聚组内处于活动状态的接口发生状态改变时,确定所述LACP链路汇聚组内处于活动状态的接口数是否小于预设最小活动链路数,如果是,则触发所述状态调整单元;所述状态调整单元,用于在所述LACP链路汇聚组内处于活动状态的接口数小于预设最小活动链路数时,将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述LACP链路汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数;N为自然数且N小于或等于所述LACP链路汇聚组内处于活动状态的接口中发生状态改变的接口数;在监测到所述LACP链路汇聚组内处于非活动状态的接口发生状态改变时,将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态,M为自然数且M小于或等于N;所述报文收发登记单元,用于将所述LACP链路汇聚组内处于活动状态的接口进行报文发送和接收登记,将状态改变为非活动状态的接口进行报文接收登记;所述数据传输单元,用于根据所述LACP链路汇聚组内接口的报文发送和接收登记进行数据传输。
全文摘要
本发明实施例提供了一种链路聚合控制协议LACP链路切换方法和装置。该方法包括监测LACP链路汇聚组内接口的状态变化;当监测到所述汇聚组内处于活动状态的接口发生状态改变时,确定所述汇聚组内活动状态的接口数是否小于预设最小活动链路数,如果是,则将发生状态改变的接口中的N个接口的状态保持为活动状态,以使得所述汇聚组内处于活动状态的接口的数量大于或等于所述预设最小活动链路数;N为自然数且N小于或等于所述汇聚组内处于活动状态的接口中发生状态改变的接口数;当监测到所述汇聚组内处于非活动状态的接口发生状态改变时,将所述N个保持活动状态的接口中的M个接口的状态调整为非活动状态,M为自然数且M小于或等于N。
文档编号H04L1/22GK102364892SQ201110308340
公开日2012年2月29日 申请日期2011年10月12日 优先权日2011年10月12日
发明者丁成龙, 孙琦, 张晓益, 王铖, 赵凤华 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1