转发端口快速切换的方法及装置的制作方法

文档序号:7846900阅读:115来源:国知局
专利名称:转发端口快速切换的方法及装置的制作方法
技术领域
本发明涉及通信领域,特别涉及一种转发端口快速切换的方法及装置。
背景技术
VPLS(Virtual Private Lan Services,虚拟专用局域网业务)是一种典型的二层 VPN(VirtualPrivate Network,虚拟专用网络)应用,基于以太网,在边缘设备之间,提供基于二层多点连接的网络服务。从CE(CuStom Edge,用户边缘设备)的角度来看,整个提供 VPLS服务的网络是不可见的,就好像这些CE直接连接在一个逻辑的交换机上一样。但实际上,CE是与VPLS网络中的PE(Provider Edge Router,骨干网上的边缘路由器)相连, PE主要负责VPN业务的接入,它完成了报文从私网到公网隧道、从公网隧道到私网的映射与转发。在VPLS网络中,需要对接收的报文进行转发。当一个PE从公网隧道收到报文时, 根据该报文中的目的MAC (Media Access Control,介质访问控制)地址和VSI (Virtual Switchhstance,虚拟交换实例),在MAC表中查找相匹配的表项,并根据查找到的表项中的目的出端口信息把该报文从对应的目的出端口发送给CE,完成报文的转发。但是,在将报文转发给某个CE之前,如果该CE更换了端口,例如该CE从端口 1更换到端口 2时,如果 MAC表中相应的表项没有被删除,就会造成一个老化周期的流量不通,即PE还会将该报文从端口 1转发出去,而与端口 2连接的该CE接收不到该报文。MAC表的老化,是指每隔一个老化周期就检查MAC表中的表项是否有需要删除的,MAC表的老化周期一般为3分钟。为了解决上述问题,现有技术中当CE从端口 1更换到端口 2时,端口 1从该VSI 退出,遍历MAC表,查找目的出端口为端口 1的表项,并删除查找到的表项,这时PE在转发报文时就会找不到相匹配的表项,从而将该报文在该VSI内广播,即对属于该VSI的除该报文的入端口之外的所有端口都发送一份该报文,这样更换到端口 2的CE就能收到该报文。 现有技术是通过删除属于切换前端口的MAC表项,尽可能快地恢复业务流量。在实现本发明的过程中,发明人发现现有技术至少存在以下问题现有技术中,当整个MAC表的表项少时,查找并删除退出的端口的表项用时少,流量恢复较快,但是当MAC表中的表项很多(如64K)时,查找并删除退出的端口的表项会占用CPU相当长的时间,导致这段时间内业务流量中断,对大容量业务规格来说,该技术不太可行。

发明内容
为了解决现有技术的问题,本发明实施例提供了一种转发端口快速切换的方法及装置。所述技术方案如下一方面,提供了一种转发端口快速切换的方法,所述方法包括接收需要转发的报文,并获取所述报文携带的目的介质访问控制MAC地址和虚拟交换实例VSI ;
在MAC表中查找是否存在与所述目的MAC地址和所述VSI相匹配的表项,如果是, 则在VSI表中查找与所述VSI相匹配的表项;判断查找到的所述MAC表的表项中的校验码与查找到的所述VSI表的表项中的校验码是否相同,如果不同,则在所述VSI内广播所述报文。另一方面,提供了一种转发端口快速切换的装置,所述装置包括获取模块,用于接收需要转发的报文,并获取所述报文携带的目的介质访问控制 MAC地址和虚拟交换实例VSI ;查找模块,用于在MAC表中查找是否存在与所述获取模块获取的所述目的MAC地址和所述VSI相匹配的表项,如果是,则在VSI表中查找与所述VSI相匹配的表项;判断模块,用于判断所述查找模块查找到的所述MAC表的表项中的校验码与查找到的所述VSI表的表项中的校验码是否相同;广播模块,用于当所述判断模块判断校验码不同时,在所述VSI内广播所述报文。本发明实施例提供的技术方案带来的有益效果是通过在转发报文时如果发现查找到的MAC表的表项中的校验码与查找到的VSI表的表项中的校验码不同,则不再按照查找到的MAC表项中的目的出端口信息转发报文,而是将报文在该VSI域内广播出去,使报文能够及时转发给相应的用户,业务不会中断,解决了现有VPLS网络中,大量用户切换端口后,短时间流量不通的问题。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例一提供的转发端口快速切换的方法流程图;图2是本发明实施例二提供的切换前VPLS网络结构示意图;图3是本发明实施例二提供的切换后VPLS网络结构示意图;图4是本发明实施例二提供的VSI表和MAC表处理方法流程图;图5是本发明实施例二提供的转发端口快速切换的方法流程图;图6是本发明实施例三提供的转发端口快速切换的装置结构示意图;图7是本发明实施例三提供的另一种转发端口快速切换的装置结构示意图;图8是本发明实施例三提供的又一种转发端口快速切换的装置结构示意图;图9是本发明实施例三提供的再一种转发端口快速切换的装置结构示意图;图10是本发明实施例三提供的再一种转发端口快速切换的装置结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例一本发明实施例提供了一种转发端口快速切换的方法,参见图1,方法流程包括
101 接收需要转发的报文,并获取该报文携带的目的MAC地址和VSI ;102 在MAC表中查找是否存在与该目的MAC地址和VSI相匹配的表项,如果是,则执行步骤103,否则,执行步骤106 ;103 在VSI表中查找与上述VSI相匹配的表项;104 判断查找到的MAC表的表项中的校验码与查找到的VSI表的表项中的校验码是否相同,如果相同,则执行步骤105,如果校验码不同,执行步骤106 ;105 根据查找到的MAC表的表项中的目的出端口信息,将该报文从该目的出端口转发给CE,流程结束;106 在上述VSI内广播该报文。本发明实施例提供的方法,通过在转发报文时如果发现查找到的MAC表的表项中的校验码与查找到的VSI表的表项中的校验码不同,则不再按照查找到的MAC表项中的目的出端口信息转发报文,而是将报文在该VSI域内广播出去,使报文能够及时转发给相应的用户,业务不会中断,解决了现有VPLS网络中,大量用户切换端口后,短时间流量不通的问题。实施例二本发明实施例所要解决的技术问题是,在VPLS网络中,当CE更换端口后,在相应 MAC表项没有被及时删除时,如何能够快速切换转发端口,且业务流量不中断。如图2所示,在VPLS网络中,CEl和CE2同属于VSI 1,建立链路AC1。若PE2上的MAC表中已经存在到CE2的表项,在CEl到发送给CE2的报文到达PE2时,根据该报文中携带的VSI 1和目的MAC地址查询MAC表,得到目的出端口为Portl,然后封装报文,将该报文通过Portl发送到CE2,完成PE2上的报文转发。当CE2上的用户切换到CE3上时,如图3所示,转发报文的端口从Portl切换到 Port2, Portl退出VSI 1。因为流量持续存在,MAC表不会被老化;Portl退出VSI 1的动作对于设备的控制平面此操作是可见的,可以逐条删除属于Portl的MAC表的表项。但是在MAC表还未被删除且Portl状态是UP (工作中)的情况下,报文会通过Portl持续转发到达CE2,而不会到达CE3,直到原先的MAC表被删除,造成这段时间内CE3上的用户流量不通。为了解决CE更换端口后,在相应MAC表项没有被及时删除的时间内业务流量不通的问题,本发明实施例提供了一种转发端口快速切换的方法在进行报文转发之前,PE对VPLS网络中的控制平面上的VSI表和转发平面上的 MAC表做了一些处理,参见图4,方法流程包括401 在VSI表和MAC表中均增加一个校验码字段;具体地,在VSI表和MAC表的每一个表项中都增加一个校验码字段,用于记录校验码。402 当VSI实例创建时,在VSI表的该VSI实例的表项中生成一个校验码;具体地,控制平面上的VSI表的索引可以为具体的VSI,例如VSI UVSI 2、……、 VSIN等,各索引对应的数据可以为校验码,还可以包括MAC学习的上限等其它数据。校验码的设置可以有多种形式,本发明实施例假设VSI实例创建时生成的初始校验码为O。403 在MAC表的学习过程中,将VSI表中的校验码一起学习到该MAC表中,保证同一 VSI域内的MAC表中的校验码与VSI表中的校验码相同。
具体地,转发平面在进行MAC表的学习时,需要将控制平面上的VSI表中的校验码记录到MAC表中相应的VSI表项中,保证同一 VSI域内的MAC表中的校验码与VSI表中的校验码相同,用于表示MAC表中与该VSI相关的表项有效。进一步地,当有端口从VSI实例退出时,刷新VSI表中与该VSI实例对应的表项中的校验码,使其与刷新之前的校验码不同,例如将0改为1,用于标识该VSI实例中有端口退出,以使得当判断出查找到的MAC表的表项中的校验码与查找到的VSI表的表项中的校验码不同时,认为该MAC表中与该VSI相关的表项过期。过期时需要在该VSI内广播要转发的报文,并触发MAC表的重新学习。进一步地,结合图2和图3,在有用户切换端口时,参见图5,PE转发端口快速切换的方法如下501 接收需要转发的报文,并获取该报文携带的目的MAC地址和VSI ;如图3中的PE2接收由CEl发送的、经PEl传送过来的报文,收到报文后,获取该报文所属的VSI和要转发到的目的MAC地址。以图3为例该报文的VSI为VSI 1。502 在MAC表中查找是否存在与该目的MAC地址和VSI相匹配的表项,如果是,则执行步骤503,否则,执行步骤506 ;具体地,可以以目的MAC地址+VSI为索弓丨,遍历MAC表,查找与该目的MAC地址 +VSI相匹配的表项,如果找得到,说明之前已经将该MAC地址学习到了 MAC表中,接着执行步骤503,如果没找到,说明还未学习该MAC地址,无法知道具体从哪个端口转发出去,则执行步骤506,即在该VSI内将该报文广播出去。503 在VSI表中查找与上述VSI相匹配的表项;504 判断查找到的MAC表的表项中的校验码与查找到的VSI表的表项中的校验码是否相同,如果相同,则执行步骤505,如果校验码不同,执行步骤506 ;具体地,获取查找到的MAC表的表项中的校验码和查找到的VSI表的表项中的校验码,并比较两个校验码是否相同,如果相同,则说明该VSI域内没有发生端口切换的现象,端口信息未改变,即MAC表中与该VSI相关的信息有效,可以使用;如果不同,则说明该 VSI域内的端口发生可变化,MAC表中与该VSI相关的信息过期,不能再使用。505 根据查找到的MAC表的表项中的目的出端口信息,将该报文从该目的出端口转发给CE,流程结束;具体地,如果校验码相同,说明查找到的MAC表的表项中的信息有效,那么就可以从查找到的MAC表项中获取目的出端口信息,将该报文从该目的出端口转发给CE。例如图 2中的CE2在切换之前,PE2就可以通过查找MAC表进而将报文通过Portl发送到CE2。506 在上述VSI内广播该报文;具体地,如果校验码不同,说明查找到的MAC表的表项中的信息过期,不能再使用其中的目的出端口信息,那么就将该报文在该VSI内广播出去,使需要接收该报文的CE能够及时收到该报文,业务不会中断。例如图3中CE2上的用户从CE2切换到CE3时,Portl 退出VSI l,Port2加入VSI 1,此时,控制平面刷新VSI表中VSI 1对应的表项中的校验码,使其与刷新之前的校验码不同,例如将0改为1,而未进行学习的MAC表中的与VSI 1相关表项中的校验码未改变,例如还是0,因此查找到的MAC表的表项中的校验码与查找到的 VSI表的表项中的校验码不同,说明查找到的MAC表的表项中的信息过期,目的出端口已经不再是表项中记录的Portl,因此为了使业务不中断,报文能够及时转发给相应的用户,就将报文在VSI 1内广播出去。507 重新学习该VSI域内的目的MAC地址和对应的目的出端口信息,以及VSI表的对应表项中的校验码;具体地,由于MAC表中与该VSI相关的表项已经过期,或者,步骤502在MAC表中没有查找到与目的MAC地址和VSI相匹配的表项,那么在VSI内广播该报文后,触发MAC表重学习功能,重新学习该VSI域内的目的MAC地址和对应的目的出端口信息,以及VSI表中对应表项的校验码。例如延续506中的例子,重新学习到CE3的目的出端口为Port2,校验码为1。508 用重新学习到的目的MAC地址、目的出端口信息和校验码覆盖原有MAC表中相应的表项。具体地,将重新学习到的MAC地址、目的出端口信息和校验码添加到MAC表中,事先已经存在相应表项的则替换相应表项中的内容。进一步地,当再有端口退出时,则再次修改VSI表中相应的校验码,例如图3中的用户又从CE3切换到CE2时,将VSI表中VSI 1表项的校验码刷新为0。本发明实施例提供的方法,通过在VSI表和MAC表中同时增加一个校验码字段, MAC表学习VSI表中的校验码,当一个VSI内有用户切换端口时,通过修改VSI表中相应表项的校验码来标识MAC表中的相关表项已经过期,这样在转发报文时如果发现查找到的 MAC表的表项中的校验码与查找到的VSI表的表项中的校验码不同,则不再按照查找到的 MAC表项中的目的出端口信息转发报文,而是将报文在该VSI域内广播出去,使报文能够及时转发给相应的用户,业务不会中断,解决了现有VPLS网络中,大量用户切换端口后,短时间流量不通的问题,并可以减少瞬间CPU占用率或内存占用率,提高切换效率。实施例三参见图6,本发明实施例提供了一种转发端口快速切换的装置,可以用于VPLS网络中的PE上,该装置包括获取模块601,用于接收需要转发的报文,并获取该报文携带的目的MAC地址和 VSI ;查找模块602,用于在MAC表中查找是否存在与获取模块601获取的目的MAC地址和VSI相匹配的表项,如果是,则在VSI表中查找与该VSI相匹配的表项;判断模块603,用于判断查找模块602查找到的MAC表的表项中的校验码与查找到的VSI表的表项中的校验码是否相同;广播模块604,用于当判断模块603判断校验码不同时,在该VSI内广播该报文。参见图7,该装置还包括转发模块605,用于当判断模块603判断校验码相同时,根据查找到的MAC表的表项中的目的出端口信息,将该报文从该目的出端口转发给CE。参见图8,该装置还包括重学习模块606,用于广播模块604在VSI内广播该报文之后,重新学习该VSI域内的目的MAC地址和对应的目的出端口信息,以及VSI表的对应表项中的校验码,并用重新学习到的目的MAC地址、目的出端口信息和校验码覆盖原有MAC表中相应的表项。
参见图9,该装置还包括生成模块607,用于在获取模块601接收需要转发的报文之前,在VSI表和MAC表中同时增加一个校验码字段;当VSI实例创建时,在VSI表的该VSI实例的表项中生成一个校验码;学习模块608,用于在MAC表的学习过程中,将生成模块607生成的VSI表中的校验码一起学习到MAC表中,保证同一 VSI域内的MAC表中的校验码与VSI表中的校验码相同。参见图10,该装置还包括刷新模块609,用于当有端口从VSI实例退出时,刷新VSI表中与该VSI实例对应的表项中的校验码,使其与刷新之前的校验码不同,用于标识该VSI实例中有端口退出,以使得当判断模块603判断出查找到的MAC表的表项中的校验码与查找到的VSI表的表项中的校验码不同时,认为该MAC表过期。综上所述,本发明实施例通过在VSI表和MAC表中同时增加一个校验码字段,MAC 表学习VSI表中的校验码,当一个VSI内有用户切换端口时,通过修改VSI表中相应表项的校验码来标识MAC表中的相关表项已经过期,这样在转发报文时如果发现查找到的MAC表的表项中的校验码与查找到的VSI表的表项中的校验码不同,则不再按照查找到的MAC表项中的目的出端口信息转发报文,而是将报文在该VSI域内广播出去,使报文能够及时转发给相应的用户,业务不会中断,解决了现有VPLS网络中,大量用户切换端口后,短时间流量不通的问题,并可以减少瞬间CPU占用率或内存占用率,提高切换效率。需要说明的是上述实施例提供的转发端口快速切换的装置在切换转发端口时, 仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的转发端口快速切换的装置与转发端口快速切换的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种转发端口快速切换的方法,其特征在于,所述方法包括接收需要转发的报文,并获取所述报文携带的目的介质访问控制MAC地址和虚拟交换实例VSI ;在MAC表中查找是否存在与所述目的MAC地址和所述VSI相匹配的表项,如果是,则在 VSI表中查找与所述VSI相匹配的表项;判断查找到的所述MAC表的表项中的校验码与查找到的所述VSI表的表项中的校验码是否相同,如果不同,则在所述VSI内广播所述报文。
2.根据权利要求1所述的方法,其特征在于,在所述VSI内广播所述报文之后,所述方法还包括重新学习所述VSI域内的目的MAC地址和对应的目的出端口信息,以及所述VSI表的对应表项中的校验码,并用重新学习到的目的MAC地址、目的出端口信息和校验码覆盖所述MAC表中相应的表项。
3.根据权利要求1所述的方法,其特征在于,接收需要转发的报文之前,所述方法还包括在VSI表和MAC表中均增加一个校验码字段;当VSI实例创建时,在所述VSI表的所述VSI实例的表项中生成一个校验码;在MAC表的学习过程中,将所述VSI表中的校验码一起学习到所述MAC表中,保证同一 VSI域内的MAC表中的校验码与VSI表中的校验码相同。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括当有端口从VSI实例退出时,刷新VSI表中与所述VSI实例对应的表项中的校验码,使其与刷新之前的校验码不同,用于标识所述VSI实例中有端口退出。
5.根据权利要求1至4任一权利要求所述的方法,其特征在于,判断查找到的所述MAC 表的表项中的校验码与查找到的所述VSI表的表项中的校验码是否相同之后,还包括如果校验码相同,则根据查找到的所述MAC表的表项中的目的出端口信息,将所述报文从所述目的出端口转发给用户边缘设备。
6.一种转发端口快速切换的装置,其特征在于,所述装置包括获取模块,用于接收需要转发的报文,并获取所述报文携带的目的介质访问控制MAC 地址和虚拟交换实例VSI ;查找模块,用于在MAC表中查找是否存在与所述获取模块获取的所述目的MAC地址和所述VSI相匹配的表项,如果是,则在VSI表中查找与所述VSI相匹配的表项;判断模块,用于判断所述查找模块查找到的所述MAC表的表项中的校验码与查找到的所述VSI表的表项中的校验码是否相同;广播模块,用于当所述判断模块判断校验码不同时,在所述VSI内广播所述报文。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括重学习模块,用于所述广播模块在所述VSI内广播所述报文之后,重新学习所述VSI域内的目的MAC地址和对应的目的出端口信息,以及所述VSI表的对应表项中的校验码,并用重新学习到的目的MAC地址、目的出端口信息和校验码覆盖原有MAC表中相应的表项。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括生成模块,用于在所述获取模块接收需要转发的报文之前,在VSI表和MAC表中均增加一个校验码字段;当VSI实例创建时,在所述VSI表的所述VSI实例的表项中生成一个校验码;学习模块,用于在MAC表的学习过程中,将所述生成模块生成的所述VSI表中的校验码一起学习到所述MAC表中,保证同一 VSI域内的MAC表中的校验码与VSI表中的校验码相同。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括刷新模块,用于当有端口从VSI实例退出时,刷新VSI表中与所述VSI实例对应的表项中的校验码,使其与刷新之前的校验码不同,用于标识所述VSI实例中有端口退出,以使得当所述判断模块判断出查找到的MAC表的表项中的校验码与查找到的VSI表的表项中的校验码不同时,认为所述MAC表过期。
10.根据权利要求6至9任一权利要求所述的装置,其特征在于,所述装置还包括转发模块,用于当所述判断模块判断校验码相同时,根据查找到的所述MAC表的表项中的目的出端口信息,将所述报文从所述目的出端口转发给用户边缘设备。
全文摘要
本发明实施例提供了一种转发端口快速切换的方法及装置,涉及通信领域,所述方法包括接收需要转发的报文,并获取该报文携带的目的MAC地址和VSI;在MAC表中查找是否存在与该目的MAC地址和VSI相匹配的表项,如果是,则在VSI表中查找与该VSI相匹配的表项;判断查找到的MAC表的表项中的校验码与查找到的VSI表的表项中的校验码是否相同,如果不同,则在该VSI内广播该报文。本发明通过在发现查找到的MAC表的表项中的校验码与查找到的VSI表的表项中的校验码不同时,认为MAC表已经过期,从而将报文在该VSI域内广播出去,使报文能够及时转发给相应的用户,业务不会中断。
文档编号H04L12/46GK102308539SQ201180001327
公开日2012年1月4日 申请日期2011年7月8日 优先权日2011年7月8日
发明者宣慧 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1