CN103236975A - 报文转发方法和装置 - Google Patents
报文转发方法和装置 Download PDFInfo
- Publication number
- CN103236975A CN103236975A CN2013101722871A CN201310172287A CN103236975A CN 103236975 A CN103236975 A CN 103236975A CN 2013101722871 A CN2013101722871 A CN 2013101722871A CN 201310172287 A CN201310172287 A CN 201310172287A CN 103236975 A CN103236975 A CN 103236975A
- Authority
- CN
- China
- Prior art keywords
- port
- selected state
- virtual
- aggregation group
- binding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请提供了报文转发方法和装置。本发明中,当聚合组中处于选中状态的成员端口从选中状态切换为非选中状态时,仅在端口绑定关系表中更新该切换为非选中状态的成员端口与虚拟端口之间的绑定关系,而其它处于成员选中状态的成员端口与虚拟端口的绑定关系保持不变,这样在通过聚合组发送报文时,就会仅使切换为非选中状态的成员端口上的报文重新选择端口,而其它处于选中状态的成员端口转发的报文不会重新选择端口,这避免了现有技术中处于选中状态的成员端口DOWN时其它处于选中状态的成员端口转发的报文重选端口的情况,进而避免报文的乱序。
Description
技术领域
本申请涉及网络通信技术,特别涉及报文转发方法和装置。
背景技术
在目前主流的交换机ASIC处理芯片中,针对每一聚合组维护对应的聚合组选中端口表,该聚合组选中端口表存放该聚合组中处于选中状态的成员端口,在转发报文时,按照设定的哈希(HASH)计算方式对报文进行HASH计算,从聚合组选中端口表找到HASH计算结果对应的成员端口,通过找到的成员端口转发该报文,这实现了报文转发的负载分担。
假如聚合组选中端口表中的成员端口数量M为3,分别为P0、P1、P2,并且,设定的HASH计算方式为:HASH计算结果=目的IP地址的最低字节(BYTE)%M,则,如果当前有3条目的IP地址分别为IP0=10.0.0.3,IP1=10.0.4,IP2=10.0.0.5的报文,按照上述的HASH计算方式,则针对目的IP地址为IP0=10.0.0.3的报文进行HASH计算得到的HASH计算结果=3%3=0,即选择聚合组选中端口表中的第0个成员端口即P0进行转发,针对目的IP地址为IP1=10.0.0.4的报文进行HASH计算得到的HASH计算结果=4%3=1,即选择聚合组选中端口表中的第1个成员端口即P1进行转发,针对目的IP地址为IP2=10.0.0.5的报文进行HASH计算得到的HASH计算结果=5%3=2,即选择聚合组选中端口表中的第2个成员端口即P2进行转发,具体如图1所示。
然而,上述报文转发存在如下缺陷:当聚合组的选中端口变成不可用(DOWN)时,会出现原来在其它选中端口转发的报文也会重选端口的情况,这种情况是不合理的,会出现报文的乱序,例如原来是跨单板转发,现在变成了同一块单板内端口间的转发。下面通过一个实例来说明这个缺陷:
假如图1所示聚合组选中端口表中的3个选中成员端口P0、P1、P2正常时,上述3条目的IP地址分别为IP0=10.0.0.3,IP1=10.0.4,IP2=10.0.0.5的报文依次选择聚合组选中端口表中的第0个成员端口即P0、第1个成员端口即P1、第2个成员端口即P2进行转发,而当由于某种原因导致聚合组的选中端口P2DOWN掉时,此时聚合组成员端口表中的选中端口就从原来的P0、P1、P2更新为以下两个端口:P0、P1,同样,聚合组选中端口表中的选中端口数M就从3更新为2,并且基于更新后的M,上述的HASH计算方式也相应更新为:HASH计算结果=目的IP的最低字节%2,则,
依然是上述3条目的IP地址分别为IP0=10.0.0.3,IP1=10.0.4,IP2=10.0.0.5的报文,利用设定的HASH计算方式该三条报文的转发如图2所示:
针对目的IP地址为IP0=10.0.0.3的报文进行HASH计算得到的HASH计算结果=3%2=1,即选择聚合组选中端口表中的第1个成员端口即P1进行转发,相比于之前选择的端口P0,可以看出,相比于P2DOWN之前,目的IP地址为IP0=10.0.0.3的报文的转发端口需要从P0转移到P1进行转发,即出现了原来在其它正常的选中端口转发的报文重选端口的情况,这种情况是不合理的,会出现报文的乱序,例如原来是跨单板转发,现在变成了同一块单板内端口间的转发;
针对目的IP地址为IP1=10.0.0.4的报文进行HASH计算得到的HASH计算结果=4%2=0,即选择聚合组选中端口表中的第0个成员端口即P0进行转发,相比于P2DOWN之前选择的端口P1,可以看出,目的IP地址为IP1=10.0.0.4的报文的转发端口从P1转移到P0,即出现了原来在其它正常的选中端口转发的报文重选端口的情况,这种情况是不合理的,会出现报文的乱序,例如原来是跨单板转发,现在变成了同一块单板内端口间的转发;
针对目的IP地址为IP2=10.0.0.5的报文进行HASH计算得到的HASH计算结果=5%2=1,即选择聚合组选中端口表中的第1个成员端口即P1进行转发,相比于P2DOWN之前选择的端口P2,由于该端口P2DOWN,不会再进行报文转发,为避免报文转发被中断,势必需要原来从P2转发的报文切换至其它处于选中状态的成员端口继续进行报文转发,因此,该目的IP地址为IP2=10.0.0.5的报文的转发端口需要从P2转移到正常的端口P1进行转发,这种情况是合理的。
发明内容
本申请提供了报文转发方法和装置,以避免聚合组的选中端口不可用时原来在其它选中端口转发的报文重选端口的情况,避免报文的乱序。
本申请提供的技术方案包括:
一种报文转发方法,包括:
针对任一聚合组创建对应的聚合组选中端口表、虚拟端口表和端口绑定关系表;所述聚合组选中端口表包含所述聚合组中处于选中状态的成员端口,所述虚拟端口表包含N个虚拟端口,所述N大于等于所述聚合组最多支持的成员端口的数量M;所述端口绑定关系表记录了所述聚合组选中端口表中成员端口与所述虚拟端口表中虚拟端口之间的绑定关系;
实时检测所述聚合组中处于选中状态的成员端口,当检测到任一成员端口从选中状态切换为非选中状态时,维持所述虚拟端口表中的虚拟端口不变,从所述聚合组选中端口表中删除该切换为非选中状态的成员端口,并从所述端口绑定关系表中找到该切换为非选中状态的成员端口绑定的虚拟端口,将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口并记录至所述端口绑定关系表中,从所述端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系;
接收到需要通过所述聚合组发送的报文时,对所述报文携带的聚合选路因子进行哈希运算得到哈希结果,从所述虚拟端口表中找到与所述哈希结果对应的虚拟端口,并从所述端口绑定关系表中查找到该找到的虚拟端口绑定的成员端口,通过该查找到的成员端口转发所述报文。
优选地,所述从端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系进一步包括:缓存从所述端口绑定关系表中删除的该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系至预设的端口关系配置表;
该方法进一步包括:
当所述切换为非选中状态的成员端口从非选中状态再次切换为选中状态时,在所述聚合组选中端口表中增加该再次切换为选中状态的成员端口,并从所述端口关系配置表中找到该再次切换为选中状态的成员端口与其绑定的虚拟端口之间的绑定关系并添加至所述端口绑定关系表。
优选地,所述将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口包括:
按照虚拟端口与处于选中状态的成员端口均匀绑定的原则将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口。
一种报文转发装置,包括:
表项单元,用于针对任一聚合组创建对应的聚合组选中端口表、虚拟端口表和端口绑定关系表;所述聚合组选中端口表包含所述聚合组中处于选中状态的成员端口,所述虚拟端口表包含N个虚拟端口,所述N大于等于所述聚合组最多支持的成员端口的数量M;所述端口绑定关系表记录了所述聚合组选中端口表中成员端口与所述虚拟端口表中虚拟端口之间的绑定关系;
检测单元,用于实时检测所述聚合组中处于选中状态的成员端口,当检测到任一成员端口从选中状态切换为非选中状态时,维持所述虚拟端口表中的虚拟端口不变,从所述聚合组选中端口表中删除该切换为非选中状态的成员端口,并从所述端口绑定关系表中找到该切换为非选中状态的成员端口绑定的虚拟端口,将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口并记录至所述端口绑定关系表中,从所述端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系;
报文转发单元,用于接收到需要通过所述聚合组发送的报文时,对所述报文携带的聚合选路因子进行哈希运算得到哈希结果,从所述虚拟端口表中找到与所述哈希结果对应的虚拟端口,并从所述端口绑定关系表中查找到该找到的虚拟端口绑定的成员端口,通过该查找到的成员端口转发所述报文。
优选地,所述表项单元进一步在所述检测单元从端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系时缓存从所述端口绑定关系表中删除的该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系至预设的端口关系配置表;
所述检测单元进一步在检测到所述切换为非选中状态的成员端口从非选中状态再次切换为选中状态时,在所述聚合组选中端口表中增加该再次切换为选中状态的成员端口,并从所述端口关系配置表中找到该再次切换为选中状态的成员端口与其绑定的虚拟端口之间的绑定关系并添加至所述端口绑定关系表。
优选地,所述将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口包括:
按照虚拟端口与处于选中状态的成员端口均匀绑定的原则将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口。
由以上技术方案可以看出,本发明中,在聚合组中处于选中状态的成员端口从选中状态切换为非选中状态时,本发明仅在端口绑定关系表中更新该切换为非选中状态的成员端口与虚拟端口之间的绑定关系,而其它处于成员选中状态的成员端口与虚拟端口的绑定关系保持不变,这样,在通过聚合组发送报文时,就会仅使切换为非选中状态的成员端口上的报文重新选择端口,而其它处于选中状态的成员端口转发的报文不会重新选择端口,这避免了现有技术中处于选中状态的成员端口DOWN时其它处于选中状态的成员端口转发的报文重选端口的情况,进而避免报文的乱序。
附图说明
图1为聚合组中处于选中状态的成员端口均正常时转发报文示意图;
图2为聚合组中处于选中状态的成员端口DOWN时转发报文示意图;
图3为本发明实施例提供的方法流程图;
图4为本发明实施例提供的装置结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本申请提供的方法如图3所示,包括以下步骤:
步骤301,针对任一聚合组创建对应的聚合组选中端口表、虚拟端口表和端口绑定关系表。
本发明中,聚合组是由多个接口,例如交换机上的以太网接口,捆绑在一起聚合而成的,相应地,这些捆绑在一起的接口就称为聚合组的成员端口。
其中,聚合组的成员端口具有以下两种状态:
选中(Selected)状态:此状态下的成员端口可以参与用户数据的转发,处于此状态的成员端口简称为“选中端口”。
非选中(Unselected)状态:此状态下的成员端口不能参与用户数据的转发,处于此状态的成员端口简称为“非选中端口”。
基于上面描述的成员端口具有的两种状态,则上述步骤301中的所述聚合组选中端口表包含所述聚合组中处于选中状态的成员端口。这里,聚合组中处于选中状态的成员端口小于或等于聚合组最多可支持的成员端口数量M。
在本发明中,上述步骤301中的虚拟端口表其包含N个虚拟端口,其中,该N个虚拟端口实际并不占用设备的任何端口资源,只是为了便于后续的报文转发,具体见步骤303。
在本发明中,N大于等于所述聚合组最多支持的成员端口的数量M。作为本发明的一个实施例,所述N等于所述M和设定值K的乘积,所述K大于等于1,其按照所述聚合组中处于选中状态的成员端口负载均衡分配的原则设置,通常,K越大,越利于聚合组中处于选中状态的成员端口负载均衡分配,基于此,本发明可预先根据实际情况设置K。
在本发明中,上述步骤301中的端口绑定关系表记录了所述聚合组选中端口表中成员端口与所述虚拟端口表中虚拟端口之间的绑定关系。
优选地,所述聚合组选中端口表中成员端口与所述虚拟端口表中虚拟端口之间的绑定关系按照所述虚拟端口表中的虚拟端口与所述聚合组选中端口表中成员端口均匀绑定的原则确定。
作为本发明的一个实施例,本发明中,按照所述虚拟端口表中的虚拟端口与所述聚合组选中端口表中成员端口均匀绑定的原则确定所述聚合组选中端口表中成员端口与所述虚拟端口表中虚拟端口之间的绑定关系包括:
从预设值开始依次对所述聚合组选中端口表中的成员端口进行编号;
从所述预设值开始依次对所述虚拟端口表中的虚拟端口进行编号;
针对所述虚拟端口表中的任一虚拟端口,用该虚拟端口的编号与所述聚合组选中端口表中成员端口的数量进行模运算得到第一运算结果,并对所述第一运算结果与所述预设值进行加法运算得到第二运算结果,将该虚拟端口与所述聚合组选中端口表中编号为所述第二运算结果的成员端口绑定。
假如所述聚合组选中端口表中的成员端口为3个,具体为P0、P1、P2,虚拟端口表中的虚拟端口为6个,具体为V0、V1、V2、V3、V4、V5,则以预设值为0为例,所述聚合组选中端口表中的成员端口P0、P1、P2的编号依次为0、1、2,而虚拟端口表中的虚拟端口V0、V1、V2、V3、V4、V5的编号依次为0、1、2、3、4、5;则按照上述确定绑定关系的方法,针对虚拟端口表中的虚拟端口V0,用V0的编号0与所述聚合组选中端口表中成员端口的数量3进行模运算,得到结果为0,由于预设值为0,则就将聚合组选中端口表中编号为0的成员端口P0与V0绑定;针对虚拟端口表中的虚拟端口V1,用V1的编号1与所述聚合组选中端口表中成员端口的数量3进行模运算,得到结果为1,由于预设值为0,则就将聚合组选中端口表中编号为1的成员端口P1与V1绑定;针对虚拟端口表中的虚拟端口V2,用V2的编号2与所述聚合组选中端口表中成员端口的数量3进行模运算,得到结果为2,由于预设值为0,则就将聚合组选中端口表中编号为2的成员端口P2与V2绑定;针对虚拟端口表中的虚拟端口V3,用V3的编号3与所述聚合组选中端口表中成员端口的数量3进行模运算,得到结果为0,由于预设值为0,则就将聚合组选中端口表中编号为0的成员端口P0与V3绑定;针对虚拟端口表中的虚拟端口V4,用V4的编号4与所述聚合组选中端口表中成员端口的数量3进行模运算,得到结果为1,由于预设值为0,则就将聚合组选中端口表中编号为1的成员端口P1与V4绑定;针对虚拟端口表中的虚拟端口V5,用V5的编号1与所述聚合组选中端口表中成员端口的数量3进行模运算,得到结果为1,由于预设值为2,则就将聚合组选中端口表中编号为2的成员端口P2与V5绑定。下述表1示出了虚拟端口表中的虚拟端口V0、V1、V2、V3、V4、V5与聚合组选中端口表中的成员端口P0、P1、P2之间的绑定关系。
表1
虚拟端口 | 成员端口 |
V0 | P0 |
V1 | P1 |
V2 | P2 |
V3 | P0 |
V4 | P1 |
V5 | P2 |
本发明中,在针对聚合组创建对应的聚合组选中端口表、虚拟端口表和端口绑定关系表之后,如果接收到需要通过该聚合组发送的报文,则执行步骤303这里暂不赘述。
本发明中,聚合组中处于选中状态的成员端口并非固定不变,其会发生变化的,比如,聚合组中处于选中状态的成员端口从选中状态切换为非选中状态等。其中,为避免处于选中状态的成员端口从选中状态切换为非选中状态会导致其它处于选中状态的成员端口转发的报文也会重选端口的情况,本发明需要执行步骤302。
步骤302,实时检测所述聚合组中处于选中状态的成员端口,当检测到任一成员端口从选中状态切换为非选中状态时,维持所述虚拟端口表中的虚拟端口不变,从所述聚合组选中端口表中删除该切换为非选中状态的成员端口,并从所述端口绑定关系表中找到该切换为非选中状态的成员端口绑定的虚拟端口,将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口并记录至所述端口绑定关系表中,从所述端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系。
假如所述聚合组选中端口表中处于选中状态的成员端口为以下3个端口:P0、P1、P2,虚拟端口表中的虚拟端口为V0、V1、V2、V3、V4、V5,且虚拟端口表中的虚拟端口V0、V1、V2、V3、V4、V5与聚合组选中端口表中的成员端口P0、P1、P2之间的绑定关系如表1所示,则,
若端口P2从选中状态切换为非选中状态,基于步骤302,维持所述虚拟端口表中的虚拟端口仍然为V0、V1、V2、V3、V4、V5,同时从所述聚合组选中端口表中删除P2,此时,所述聚合组选中端口表中处于选中状态的成员端口就更新为以下2个端口:P0、P1,并且,还从所述端口绑定关系表中找到P2绑定的虚拟端口,基于表1所示的端口绑定关系表,发现P2同时与虚拟端口V2、V5绑定,则将该V2、V5重新绑定所述聚合组中当前处于选中状态的成员端口P0、P1并记录至所述端口绑定关系表中,同时从所述端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系。以V2重新绑定P0,V5重新绑定P1为例,则上述表1更新为表2:
表2:
虚拟端口 | 成员端口 |
V0 | P0 |
V1 | P1 |
V2 | P0 |
V3 | P0 |
V4 | P1 |
V5 | P1 |
从上面描述可以看出,本发明中,当聚合组中处于选中状态的成员端口从选中状态切换为非选中状态时,本发明仅在端口绑定关系表中更新该切换为非选中状态的成员端口与虚拟端口之间的绑定关系,而其它处于成员选中状态的成员端口与虚拟端口的绑定关系保持不变,这样,如果接收到需要通过该聚合组发送的报文,就会保证该切换为非选中状态的成员端口上的报文会重新选择端口,而通过其它处于选中状态的成员端口转发的报文不会重新选择端口,具体见步骤303。
在上面描述中,将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口具体实现时也是按照所述虚拟端口表中的虚拟端口均匀映射至所述聚合组选中端口表中成员端口的原则实现的。
仍如上面描述的端口P2从选中状态切换为非选中状态为例,则基于表1所示的端口绑定关系表发现P2同时与虚拟端口V2、V5绑定,并且,此时处于选中状态的成员端口仅为P0、P1,且P0、P1均绑定了2个虚拟端口,基于此,按照虚拟端口表中的虚拟端口均匀映射至所述聚合组选中端口表中成员端口的原则,就可将P2绑定的其中一个虚拟端口比如V2与当前处于选中状态的其中一个成员端口比如P0绑定,同时将P2绑定的另一个虚拟端口比如V5与当前处于选中状态的另一个成员端口比如P1绑定。
步骤303,接收到需要通过所述聚合组发送的报文时,对所述报文携带的聚合选路因子进行哈希运算得到哈希结果,从所述虚拟端口表中找到与所述哈希结果对应的虚拟端口,并从所述端口绑定关系表中找到与该找到的虚拟端口具有绑定关系的成员端口,通过该找到的成员端口转发所述报文。
本发明中,聚合选路因子与本发明定义的聚合组中成员端口负载分担(简称聚合负载分担)的类型有关。本发明中,聚合负载分担的类型为以下七种类型之一或者任意组合:
1)根据报文的MAC地址进行聚合负载分担;
2)根据报文的VLAN标签进行聚合负载分担;
3)根据报文的源/目的服务端口号进行聚合负载分担;
4)根据报文的入端口进行聚合负载分担;
5)根据报文的源/目的IP地址进行聚合负载分担;
6)根据报文的IP协议类型进行聚合负载分担;
7)根据报文的MPLS标签进行聚合负载分担;
基于上面描述的聚合负载分担类型,本发明将影响聚合负载分担的参数作为聚合选路因子。比如,假如聚合负载分担类型为根据报文的MAC地址进行聚合负载分担,则影响聚合负载分担的参数就为MAC地址,基于此,报文携带的聚合选路因子就为报文携带的MAC地址,其他类似,这里不再一一举例描述。
还有,在本发明中,步骤303的从所述虚拟端口表中找到与所述哈希结果对应的虚拟端口具体实现时可有多种实现方式。下面仅举两个实施例进行描述:一个实施例为:预先建立各种可能的哈希结果与虚拟端口之间的对应关系,基于此,在本步骤303计算出哈希结果时,直接依据建立的对应关系找到本步骤303计算出的哈希结果对应的虚拟端口;另一个实施例为:预先针对虚拟端口进行编号,其中,该编号与可能的哈希结果有关,基于此,在本步骤303计算出哈希结果时,直接将编号为本步骤303计算出的哈希结果的虚拟端口作为与所述哈希结果对应的虚拟端口。
还有,本发明中,如步骤302描述,在聚合组中处于选中状态的成员端口从选中状态切换为非选中状态时,本发明仅在端口绑定关系表中更新该切换为非选中状态的成员端口与虚拟端口之间的绑定关系,而其它处于成员选中状态的成员端口与虚拟端口的绑定关系保持不变,这样,基于步骤303,在通过聚合组发送报文时,就会仅使切换为非选中状态的成员端口上的报文重新选择端口,而其它处于选中状态的成员端口转发的报文不会重新选择端口,这避免了现有技术中处于选中状态的成员端口DOWN时其它处于选中状态的成员端口转发的报文重选端口的情况,进而避免报文的乱序。
至此,完成图3所示流程。
下面通过一个具体实施例对图3所示流程进行描述:
假定本实施例中,聚合组最大可以支持的成员端口数M为6,设定值K为1,且聚合组中有三个成员端口即P0、P1、P2处于选中状态,而其它的成员端口处于非选中状态,则本实施例中,聚合组选中端口表中包含P0、P1、P2共3个成员端口,该3个成员端口的编号从0开始顺序递增,而虚拟端口表中虚拟端口的数量N为6,依次为V0、V1、V2、V3、V4、V5,该虚拟端口V0、V1、V2、V3、V4、V5的编号从0开始顺序递增,并且,虚拟端口表中的虚拟端口V0、V1、V2、V3、V4、V5与聚合组选中端口表中的成员端口P0、P1、P2之间的绑定关系如上述的表1所示。
以聚合选路因子为IP地址的最低BYTE、且哈希运算方式为IP地址的最低BYTE与(M*K=6)的取模运算为例,则,
假如此时聚合组中的三个成员端口P0、P1、P2均没有从选中状态切换为非选中状态,则当接收到以下3条目的IP地址分别为IP0=10.0.0.3,IP1=10.0.4,IP2=10.0.0.5的报文时,按照上述的哈希运算方式,就会得到:
针对目的IP地址为IP0=10.0.0.3的报文,用该IP0的最低BYTE即3与6进行取模运算得到结果为3,从虚拟端口表中查找到与3对应的虚拟端口,比如,虚拟端口表中的第3个虚拟端口V3即为与3对应的虚拟端口,然后从表1所示的端口绑定关系表中找到与该虚拟端口V3具有绑定关系的成员端口P0,通过该找到的P0转发目的IP地址为IP0=10.0.0.3的报文;
针对目的IP地址为IP1=10.0.0.4的报文,用该IP0的最低BYTE即4与6进行取模运算得到结果为4,从虚拟端口表中查找到与4对应的虚拟端口,比如,虚拟端口表中的第4个虚拟端口V4即为与4对应的虚拟端口,然后从表1所示的端口绑定关系表中找到与该虚拟端口V4具有绑定关系的成员端口P4,通过该找到的P1转发目的IP地址为IP1=10.0.0.4的报文;
针对目的IP地址为IP2=10.0.0.5的报文,用该IP0的最低BYTE即5与6进行取模运算得到结果为5,从虚拟端口表中查找到与5对应的虚拟端口,比如,虚拟端口表中的第5个虚拟端口V5即为与5对应的虚拟端口,然后从表1所示的端口绑定关系表中找到与该虚拟端口V5具有绑定关系的成员端口P5,通过该找到的P2转发目的IP地址为IP2=10.0.0.5的报文。
而当聚合组中的成员端口P2从选中状态切换为非选中状态时,则此时虚拟端口表中的虚拟端口仍然为V0、V1、V2、V3、V4、V5,而所述聚合组选中端口表就更新为以下2个端口:P0、P1,并且,所述端口绑定关系表更新为上述的表2,基于此,仍以上述3条目的IP地址分别为IP0=10.0.0.3,IP1=10.0.4,IP2=10.0.0.5的报文为例,按照上述的哈希运算方式,就会得到:
针对目的IP地址为IP0=10.0.0.3的报文,用该IP0的最低BYTE即3与6进行取模运算得到结果为3,从虚拟端口表中查找到与3对应的虚拟端口,比如,虚拟端口表中的第3个虚拟端口V3即为与3对应的虚拟端口,然后从表2所示的端口绑定关系表中找到与该虚拟端口V3具有绑定关系的成员端口P0,通过该找到的P0转发目的IP地址为IP0=10.0.0.3的报文,相比于P2未切换为非选中状态之前,发现该目的IP地址为IP0=10.0.0.3的报文选择的端口未发生任何变化。
针对目的IP地址为IP1=10.0.0.4的报文,用该IP0的最低BYTE即4与6进行取模运算得到结果为4,从虚拟端口表中查找到与4对应的虚拟端口,比如,虚拟端口表中的第4个虚拟端口V4即为与4对应的虚拟端口,然后从表2所示的端口绑定关系表中找到与该虚拟端口V4具有绑定关系的成员端口P4,通过该找到的P1转发目的IP地址为IP1=10.0.0.4的报文,相比于P2未切换为非选中状态之前,发现该目的IP地址为IP1=10.0.0.4的报文选择的端口未发生任何变化。
针对目的IP地址为IP2=10.0.0.5的报文,用该IP0的最低BYTE即5与6进行取模运算得到结果为5,从虚拟端口表中查找到与5对应的虚拟端口,比如,虚拟端口表中的第5个虚拟端口V5即为与5对应的虚拟端口,然后从表2所示的端口绑定关系表中找到与该虚拟端口V5具有绑定关系的成员端口P1,通过该找到的P1转发目的IP地址为IP2=10.0.0.5的报文。相比于P2未切换为非选中状态之前,发现该目的IP地址为IP2=10.0.0.5的报文选择的端口从原来的P2切换为P1,而由于P2切换为非选中状态了,不再用于转发报文,为避免报文转发被中断,势必需要原来从P2转发的报文切换至其它处于选中状态的成员端口继续进行报文转发,因此,该目的IP地址为IP2=10.0.0.5的报文选择的端口从原来的P2切换为P1是合理的。
通过上面的例子不难看出,采用本发明后,聚合组中处于选中状态的成员端口从选中状态切换非选中状态时,该成员端口上的报文将会重新选择转发端口,而其它处于选中状态的成员端口转发的报文不会受到影响。
至此,完成上述实施例的描述。
需要说明的是,本发明中,为保证切换为非选中状态的成员端口再次切换为选中状态时,原来由该成员端口转发的报文再次选择该成员端口转发,本发明会在上述从端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系后进一步缓存从所述端口绑定关系表中删除的绑定关系至预设的端口关系配置表。如此,当之前切换为非选中状态的成员端口再次从非选中状态切换为选中状态时,在所述聚合组选中端口表中增加该再次切换为选中状态的成员端口,并从所述端口关系配置表中找到包含该再次切换为选中状态的成员端口的绑定关系,将该找到的绑定关系添加至所述端口绑定关系表。
以上对本发明提供的方法进行了描述,下面对本发明提供的装置进行描述。
参见图4,图4为本发明实施例提供的装置结构图。作为本发明一个实施例,该装置可为交换机。当然,本发明中,该装置也可为其他网络设备,这里不再一一限定。
如图4所示,所述装置包括:
表项单元,用于针对任一聚合组创建对应的聚合组选中端口表、虚拟端口表和端口绑定关系表;所述聚合组选中端口表包含所述聚合组中处于选中状态的成员端口,所述虚拟端口表包含N个虚拟端口,所述N大于等于所述聚合组最多支持的成员端口的数量M;所述端口绑定关系表记录了所述聚合组选中端口表中成员端口与所述虚拟端口表中虚拟端口之间的绑定关系;
检测单元,用于实时检测所述聚合组中处于选中状态的成员端口,当检测到任一成员端口从选中状态切换为非选中状态时,维持所述虚拟端口表中的虚拟端口不变,从所述聚合组选中端口表中删除该切换为非选中状态的成员端口,并从所述端口绑定关系表中找到该切换为非选中状态的成员端口绑定的虚拟端口,将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口并记录至所述端口绑定关系表中,从所述端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系;
报文转发单元,用于接收到需要通过所述聚合组发送的报文时,对所述报文携带的聚合选路因子进行哈希运算得到哈希结果,从所述虚拟端口表中找到与所述哈希结果对应的虚拟端口,并从所述端口绑定关系表中查找到该找到的虚拟端口绑定的成员端口,通过该查找到的成员端口转发所述报文。
优选地,本发明中,所述表项单元进一步在所述检测单元从端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系时缓存从所述端口绑定关系表中删除的绑定关系至预设的端口关系配置表;
基于此,所述检测单元进一步在检测到所述切换为非选中状态的成员端口从非选中状态再次切换为选中状态时,在所述聚合组选中端口表中增加该再次切换为选中状态的成员端口,并从所述端口关系配置表中找到包含该再次切换为选中状态的成员端口的绑定关系,将该找到的绑定关系添加至所述端口绑定关系表。
优选地,本发明中,所述将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口包括:
按照虚拟端口与处于选中状态的成员端口均匀绑定的原则将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口。
至此,完成本发明提供的装置描述。
由以上技术方案可以看出,本发明中,在聚合组中处于选中状态的成员端口从选中状态切换为非选中状态时,本发明仅在端口绑定关系表中更新该切换为非选中状态的成员端口与虚拟端口之间的绑定关系,而其它处于成员选中状态的成员端口与虚拟端口的绑定关系保持不变,这样,在通过聚合组发送报文时,就会仅使切换为非选中状态的成员端口上的报文重新选择端口,而其它处于选中状态的成员端口转发的报文不会重新选择端口,这避免了现有技术中处于选中状态的成员端口DOWN时其它处于选中状态的成员端口转发的报文重选端口的情况,进而避免报文的乱序。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (6)
1.一种报文转发方法,其特征在于,所述方法包括:
针对任一聚合组创建对应的聚合组选中端口表、虚拟端口表和端口绑定关系表;所述聚合组选中端口表包含所述聚合组中处于选中状态的成员端口,所述虚拟端口表包含N个虚拟端口,所述N大于等于所述聚合组最多支持的成员端口的数量M;所述端口绑定关系表记录了所述聚合组选中端口表中成员端口与所述虚拟端口表中虚拟端口之间的绑定关系;
实时检测所述聚合组中处于选中状态的成员端口,当检测到任一成员端口从选中状态切换为非选中状态时,维持所述虚拟端口表中的虚拟端口不变,从所述聚合组选中端口表中删除该切换为非选中状态的成员端口,并从所述端口绑定关系表中找到该切换为非选中状态的成员端口绑定的虚拟端口,将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口并记录至所述端口绑定关系表中,从所述端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系;
接收到需要通过所述聚合组发送的报文时,对所述报文携带的聚合选路因子进行哈希运算得到哈希结果,从所述虚拟端口表中找到与所述哈希结果对应的虚拟端口,并从所述端口绑定关系表中查找到该找到的虚拟端口绑定的成员端口,通过该查找到的成员端口转发所述报文。
2.根据权利要求1所述的方法,其特征在于,所述从端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系进一步包括:缓存从所述端口绑定关系表中删除的该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系至预设的端口关系配置表;
该方法进一步包括:
当所述切换为非选中状态的成员端口从非选中状态再次切换为选中状态时,在所述聚合组选中端口表中增加该再次切换为选中状态的成员端口,并从所述端口关系配置表中找到该再次切换为选中状态的成员端口与其绑定的虚拟端口之间的绑定关系并添加至所述端口绑定关系表。
3.根据权利要求1所述的方法,其特征在于,所述将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口包括:
按照虚拟端口与处于选中状态的成员端口均匀绑定的原则将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口。
4.一种报文转发装置,其特征在于,所述装置包括:
表项单元,用于针对任一聚合组创建对应的聚合组选中端口表、虚拟端口表和端口绑定关系表;所述聚合组选中端口表包含所述聚合组中处于选中状态的成员端口,所述虚拟端口表包含N个虚拟端口,所述N大于等于所述聚合组最多支持的成员端口的数量M;所述端口绑定关系表记录了所述聚合组选中端口表中成员端口与所述虚拟端口表中虚拟端口之间的绑定关系;
检测单元,用于实时检测所述聚合组中处于选中状态的成员端口,当检测到任一成员端口从选中状态切换为非选中状态时,维持所述虚拟端口表中的虚拟端口不变,从所述聚合组选中端口表中删除该切换为非选中状态的成员端口,并从所述端口绑定关系表中找到该切换为非选中状态的成员端口绑定的虚拟端口,将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口并记录至所述端口绑定关系表中,从所述端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系;
报文转发单元,用于接收到需要通过所述聚合组发送的报文时,对所述报文携带的聚合选路因子进行哈希运算得到哈希结果,从所述虚拟端口表中找到与所述哈希结果对应的虚拟端口,并从所述端口绑定关系表中查找到该找到的虚拟端口绑定的成员端口,通过该查找到的成员端口转发所述报文。
5.根据权利要求4所述的装置,其特征在于,所述表项单元进一步在所述检测单元从端口绑定关系表中删除该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系时缓存从所述端口绑定关系表中删除的该切换为非选中状态的成员端口与其绑定的虚拟端口之间的绑定关系至预设的端口关系配置表;
所述检测单元进一步在检测到所述切换为非选中状态的成员端口从非选中状态再次切换为选中状态时,在所述聚合组选中端口表中增加该再次切换为选中状态的成员端口,并从所述端口关系配置表中找到该再次切换为选中状态的成员端口与其绑定的虚拟端口之间的绑定关系并添加至所述端口绑定关系表。
6.根据权利要求4所述的装置,其特征在于,所述将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口包括:
按照虚拟端口与处于选中状态的成员端口均匀绑定的原则将该找到的虚拟端口重新绑定所述聚合组中当前处于选中状态的成员端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310172287.1A CN103236975B (zh) | 2013-05-09 | 2013-05-09 | 报文转发方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310172287.1A CN103236975B (zh) | 2013-05-09 | 2013-05-09 | 报文转发方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103236975A true CN103236975A (zh) | 2013-08-07 |
CN103236975B CN103236975B (zh) | 2017-02-08 |
Family
ID=48884992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310172287.1A Active CN103236975B (zh) | 2013-05-09 | 2013-05-09 | 报文转发方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103236975B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468358A (zh) * | 2013-09-25 | 2015-03-25 | 杭州华三通信技术有限公司 | 分布式虚拟交换机系统的报文转发方法及设备 |
CN106603750A (zh) * | 2017-01-24 | 2017-04-26 | 株洲中车时代电气股份有限公司 | 一种配置本地静态网络地址的方法及系统 |
CN107528711A (zh) * | 2016-06-22 | 2017-12-29 | 华为技术有限公司 | 一种数据传输方法、装置以及网元 |
CN107547452A (zh) * | 2017-07-11 | 2018-01-05 | 新华三技术有限公司 | 一种分布式通信设备及其报文转发方法和装置 |
CN108965156A (zh) * | 2018-07-24 | 2018-12-07 | 迈普通信技术股份有限公司 | 负载调节方法及负载调节网络分流器 |
CN109151620A (zh) * | 2017-06-28 | 2019-01-04 | 中兴通讯股份有限公司 | 聚合组端口切换方法、装置及光线路终端olt设备 |
CN112737956A (zh) * | 2019-10-28 | 2021-04-30 | 华为技术有限公司 | 报文的发送方法和第一网络设备 |
CN113765815A (zh) * | 2020-06-05 | 2021-12-07 | 华为技术有限公司 | 组播报文负载分担的方法、设备和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725761A (zh) * | 2005-06-10 | 2006-01-25 | 杭州华为三康技术有限公司 | 网络设备实现链路聚合的方法 |
JP2008244907A (ja) * | 2007-03-28 | 2008-10-09 | Nec Corp | 通信装置、通信システム及びそれに用いるlag管理テーブル管理方法 |
CN101296185A (zh) * | 2008-06-05 | 2008-10-29 | 杭州华三通信技术有限公司 | 一种均衡组的流量控制方法及装置 |
-
2013
- 2013-05-09 CN CN201310172287.1A patent/CN103236975B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725761A (zh) * | 2005-06-10 | 2006-01-25 | 杭州华为三康技术有限公司 | 网络设备实现链路聚合的方法 |
JP2008244907A (ja) * | 2007-03-28 | 2008-10-09 | Nec Corp | 通信装置、通信システム及びそれに用いるlag管理テーブル管理方法 |
CN101296185A (zh) * | 2008-06-05 | 2008-10-29 | 杭州华三通信技术有限公司 | 一种均衡组的流量控制方法及装置 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468358A (zh) * | 2013-09-25 | 2015-03-25 | 杭州华三通信技术有限公司 | 分布式虚拟交换机系统的报文转发方法及设备 |
WO2015043464A1 (en) * | 2013-09-25 | 2015-04-02 | Hangzhou H3C Technologies Co., Ltd. | Packet forwarding |
CN104468358B (zh) * | 2013-09-25 | 2018-05-11 | 新华三技术有限公司 | 分布式虚拟交换机系统的报文转发方法及设备 |
CN107528711A (zh) * | 2016-06-22 | 2017-12-29 | 华为技术有限公司 | 一种数据传输方法、装置以及网元 |
US10904139B2 (en) | 2016-06-22 | 2021-01-26 | Huawei Technologies Co., Ltd. | Data transmission method and apparatus and network element |
CN106603750A (zh) * | 2017-01-24 | 2017-04-26 | 株洲中车时代电气股份有限公司 | 一种配置本地静态网络地址的方法及系统 |
CN106603750B (zh) * | 2017-01-24 | 2019-11-12 | 株洲中车时代电气股份有限公司 | 一种配置本地静态网络地址的方法及系统 |
CN109151620B (zh) * | 2017-06-28 | 2022-05-13 | 中兴通讯股份有限公司 | 聚合组端口切换方法、装置及光线路终端olt设备 |
CN109151620A (zh) * | 2017-06-28 | 2019-01-04 | 中兴通讯股份有限公司 | 聚合组端口切换方法、装置及光线路终端olt设备 |
CN107547452B (zh) * | 2017-07-11 | 2020-09-25 | 新华三技术有限公司 | 一种分布式通信设备及其报文转发方法和装置 |
CN107547452A (zh) * | 2017-07-11 | 2018-01-05 | 新华三技术有限公司 | 一种分布式通信设备及其报文转发方法和装置 |
CN108965156A (zh) * | 2018-07-24 | 2018-12-07 | 迈普通信技术股份有限公司 | 负载调节方法及负载调节网络分流器 |
CN112737956A (zh) * | 2019-10-28 | 2021-04-30 | 华为技术有限公司 | 报文的发送方法和第一网络设备 |
CN113765815A (zh) * | 2020-06-05 | 2021-12-07 | 华为技术有限公司 | 组播报文负载分担的方法、设备和系统 |
CN113765815B (zh) * | 2020-06-05 | 2024-03-26 | 华为技术有限公司 | 组播报文负载分担的方法、设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103236975B (zh) | 2017-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103236975A (zh) | 报文转发方法和装置 | |
CN101094185A (zh) | 基于多链路的报文转发方法和装置 | |
CN102571587B (zh) | 报文转发方法和设备 | |
CN102647355A (zh) | Lacp协商处理方法、中继节点及系统 | |
CN103179178B (zh) | 扩展集群间聚合组成员端口的方法和设备 | |
CN103916275A (zh) | 一种bfd检测装置和方法 | |
CN102761479A (zh) | 链路选择方法和装置 | |
CN103414801A (zh) | 一种堆叠系统中媒质访问控制地址同步的方法和设备 | |
CN105743816B (zh) | 一种链路聚合方法及装置 | |
CN105704029A (zh) | 伪线建立方法、系统及设备 | |
CN111327524B (zh) | 流量转发方法、系统、sdn控制器及计算机可读存储介质 | |
CN101841485A (zh) | 组播流量分担的方法及相关装置 | |
CN105281951A (zh) | Vsu系统中双主用设备冲突检测方法及网络设备 | |
CN101656893B (zh) | 一种多级交换网 | |
WO2016004820A1 (zh) | 交换系统的流量转发方法和装置 | |
CN103067304B (zh) | 报文保序的方法及装置 | |
CN103812796A (zh) | 通信系统以及网络中继装置 | |
CN102055657B (zh) | Fc数据报文的负载分担方法和fc交换机系统 | |
CN103354567A (zh) | 一种同步媒体访问控制地址的方法和设备 | |
CN106063169A (zh) | 一种数据处理方法及装置 | |
CN105450710B (zh) | 用于网关设备中建立用户对用户的直接通信的方法 | |
CN104380681A (zh) | 用于经由网络的信息-信号的发送和接收的方法、用于方法的应用的发送器和接收器以及用于网络内的应用的分离器单元 | |
CN103188163A (zh) | 一种负载均衡方法及装置 | |
KR102087874B1 (ko) | 파일럿 설정 방법과 장치 | |
CN113489613B (zh) | 报文转发方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |