专利名称:一种基于端口聚合的报文处理方法及其装置的制作方法
技术领域:
本发明涉及通信技术领域,尤其涉及一种基于端口聚合的报文处理方法及其装置。
背景技术:
随着IP视频监控技术的发展,IP视频监控的部署越来越广泛,随着3G技术的迅猛发展以及运营商的建网速度的推进,视频监控业务会越来越多的走进普通居民家庭。通过Internet网络,用户可利用手机终端、平板电脑、上网本、PC等来实时监控某一场所的实况。IP视频监控系统的可靠性要求也随之越来越高,很多链路都需要考虑可靠性,双网口的 EC(视频编码器)在此种背景条件下应运而生。如图1所示,目前一般的组网图下,EC有两个网络接口,分别与接入层交换机相连,其中,EC的两个网络接口(即端口)既可以如图所示与一个交换机连接,也可以分别与不同的交换机连接。交换机与该EC相连的两个端口利用聚合特性聚合起来。由于成本控制的原因,EC的两个端口都在同一个交换芯片上,且该芯片功能简单不支持链路聚合特性。 如此一来,会导致如下问题交换机启用链路聚合而对端的EC不支持端口聚合,会导致业务不可用。因为如图2所示,从交换机侧来的广播报文从Pll 口出去后,EC从Pl 口收到这个广播报文后会从 P2 口转发出去,导致交换机在P12 口上又重新学习这个广播报文的源MAC (Media Access Control,媒体接入控制)地址,这不仅会造成广播流量泛滥,还会造成流量转发不通。
发明内容
本发明提供了一种基于端口聚合的报文处理方法及其装置,用以解决双网口网络设备采用双上行组网时,因该网络设备不支持端口聚合所导致的广播流量泛滥问题。本发明提供的基于端口聚合的报文处理方法,应用于不同的端口分别连接于同一网络设备的不同端口的交换设备,所述网络设备的不同端口在同一交换芯片上,该方法包括交换设备的端口处于学习状态下时,该交换设备对应学习到同一 MAC地址的端口设置聚合组,将学习到该MAC地址的端口作为成员端口加入该聚合组;交换设备的端口处于转发状态下时,当所述聚合组的成员端口接收到报文时,判断所述交换设备上除该聚合组的成员端口以外的其他端口是否学习到该报文的源MAC地址,若判断为是,则丢弃该报文;否则,转发该报文。本发明提供的交换设备,所述交换设备的不同的端口分别连接于同一网络设备的不同端口上,所述网络设备的不同端口在同一交换芯片上,该交换设备包括端口聚合模块,用于在交换设备的端口处于学习状态下时,对应学习到同一 MAC 地址的端口设置聚合组,将学习到该MAC地址的端口作为成员端口加入该聚合组;报文处理模块,用于在交换设备的端口处于转发状态下时,当所述聚合组的成员端口接收到报文时,判断所述交换设备上除该聚合组成员端口以外的其他端口是否学习到该报文的源MAC地址,若判断为是,则丢弃该报文;否则,转发该报文。本发明的有益技术效果包括本发明中,在交换设备端口处于学习状态下时,将学习到相同的MAC地址的端口作为成员端口聚合到聚合组中,当有报文进入交换机的聚合组成员端口时,通过判断该报文的源MAC地址是否在该交换机的除该聚合组成员端口的其它端口学习过,从而可以判断出该报文的入端口是否是连接此MAC地址设备的始发端口,若该入端口不是连接此MAC地址设备的始发端口,则丢弃该报文,以免造成流量泛滥,若该入端口是连接此MAC地址设备的始发端口,则按照常规流程转发该报文,以保证业务正常进行。
图1为现有技术中EC双网口组网示意图;图2为现有技术中EC双网口组网中流量泄露的示意图;图3为本发明实施例中的交换机端口 MAC地址学习阶段的示意图;图4为本发明实施例中交换机自动聚合端口的示意图;图5为本发明实施例中基于交换机自动聚合的端口实现的报文处理流程示意图;图6为本发明实施例提供的交换设备的结构示意图。
具体实施例方式下面结合附图对本发明实施例进行详细描述。通常,交换机在上电或端口 UP(放开)时,其端口进入学习(learning)状态。在学习状态下的端口可以学习MAC地址,但是不转发报文。一定时间长度(如30秒)之后, 端口由学习状态迁移到转发(forward)状态,转发状态下的端口可以转发报文。本发明实施例中,对上述交换机的MAC地址学习过程进行了改进,即,当有两个或多个端口学习到的MAC地址相同时,将这些学习到相同MAC地址的端口聚合在一起,形成聚合组。具体的,如图3所示,当交换机上电或端口 UP时(步骤301),相应端口进入学习状态并进行MAC地址学习(若交换机上电,则除堆叠端口以外的其它用于连接网络设备实现报文转发的端口进入学习状态,若端口 UP则该端口进入学习状态,见步骤302);判断处于学习状态的两个或多个端口上是否学到同一MAC地址(步骤303),若是,则交换机设置聚合组,并将这些学习到同一MAC地址的端口作为成员端口加入该聚合组(步骤304),此后在设定长时间后,该聚合端口迁移为转发状态;否则,按照常规方式进行MAC地址学习,在设定长时间后,处于学习状态的端口迁移为转发状态。图4示出了端口聚合后的示意图,其中, 由于交换机的端口 Pll和P12分别与EC的不同端口连接,因此学习到该EC的MAC地址,进而端口 Pll和P12聚合在一起。上述流程中,优选的,交换机从进入学习状态到迁移为转发状态的时间长度是可配置的参数。可根据网络规模、网络性能等网络环境配置合适的时间长度(如网络规模较小或网络性能较好,则可配置较短的时间长度,如小于或等于30秒;反之,网络规模较大或网络性能较差,则可配置较长的时间长度,如大于30秒),从而一方面可以保证交换机端口在该期间可学习到其他设备的MAC地址,又可以尽量缩短该时间长度,以使交换机端口尽快进入转发状态以处理报文。当经过一段时间,学习状态的端口迁移到转发状态后,如图5所示,当有报文到达聚合组的某个成员端口时(步骤501),交换机查看该报文的源MAC地址是否在其它端口 (此处的其它端口不包括该聚合组的成员端口)学习过,即,该报文的源MAC地址是否存在于其它端口的MAC地址表中(步骤502);若其它端口已经学习过该MAC地址,则表明该聚合组成员端口不是连接此MAC地址设备(即MAC地址是该报文的源MAC地址的设备)的始发端口,此时,接收到该报文的聚合组成员端口丢弃接收到的该报文,并且不在该端口上学习该报文的源MAC地址,以免造成流量泛滥和后续的转发不通等诸多问题(步骤503);若其它端口没有学习过该MAC地址,则表明该端口是连接此MAC地址设备的始发端口,此时, 接收到该报文的端口按照常规流程转发该报文,即,根据该端口上配置的MAC地址表匹配出端口,并通过匹配到的出端口转发该报文(步骤504)。下面结合图2所示的组网架构和具体场景,对本发明实施例的实现过程进行详细说明。广播报文从端口 PlO进入交换机后,端口 PlO学习该广播报文的MAC地址,交换机向所有端口转发,自然也从聚合端口(该聚合端口的成员端口包括Pll和P12)转发出去, 假设从Pll端口转发出去。EC从Pl端口收到此广播报文,由于EC的交换芯片不支持聚合特性,于是EC也向它所有的端口转发,其中包括从端口 P2发出。此时,交换机会从聚合口中的另外一个成员端口 P12收到刚刚转发出去的广播报文,但是这个广播报文的源MAC地址已经在交换机中的MAC地址表中的其他端口(即P10)学习到了,于是端口 P12丢弃该报文,从而不再广播该报文。通过以上描述可以看出,本发明实施例中,由于EC的双网口在同一个交换芯片上,因此具有相同的MAC地址,当与该EC的双网口连接的交换机上电时,交换机的端口进入学习状态,处于学习状态且分别与EC的双网口连接的2个交换机端口将学习到相同的MAC 地址,这样交换机将该2个端口加入聚合组,形成聚合端口。当有报文进入交换机的聚合端口(或聚合端口的某个成员端口)时,通过判断该报文的源MAC地址是否在该交换机的其它端口学习过,从而可以判断出该入端口是否是连接此MAC地址设备的始发端口,若该入端口不是连接此MAC地址设备的始发端口,则丢弃该报文,以免造成流量泛滥,若该入端口是连接此MAC地址设备的始发端口,则按照常规流程转发该报文,以保证业务正常进行。基于相同的技术构思,本发明实施例还提供了一种可应用于上述流程的交换设备。如图6所示,该交换设备可包括端口聚合模块601,用于在交换设备的端口处于学习状态下时,对应学习到同一 MAC地址的端口设置聚合组,将学习到该MAC地址的端口作为成员端口加入该聚合组;报文处理模块602,用于在交换设备的端口处于转发状态下时,当所述聚合组的成员端口接收到报文时,判断所述交换设备上除该聚合组成员端口以外的其他端口是否学习到该报文的源MAC地址,若判断为是,则丢弃该报文;否则,转发该报文。进一步的,报文处理模块602还用于在判断除所述聚合组成员端口以外的其他端口学习到该报文的源MAC地址后,放弃在该聚合组成员端口上学习该报文的源MAC地址。进一步的,端口聚合模块601具体用于当交换机上电或端口 UP时,端口进入学习状态,学习状态下的端口进行MAC地址学习;当判断有至少2个端口学到同一 MAC地址时, 设置聚合组,并将学习到该同一 MAC地址的端口作为成员端口加入该聚合组。进一步的,上述交换设备还可包括端口状态管理模块603,用于在处于学习状态的交换机端口进入学习状态之后经过设定时长后,将该端口迁移为转发状态。优选的,该设定时长是可根据网络环境设置。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
权利要求
1.一种基于端口聚合的报文处理方法,应用于不同的端口分别连接于同一网络设备的不同端口的交换设备,所述网络设备的不同端口在同一交换芯片上,其特征在于,该方法包括交换设备的端口处于学习状态下时,该交换设备对应学习到同一 MAC地址的端口设置聚合组,将学习到该MAC地址的端口作为成员端口加入该聚合组;交换设备的端口处于转发状态下时,当所述聚合组的成员端口接收到报文时,判断所述交换设备上除该聚合组的成员端口以外的其他端口是否学习到该报文的源MAC地址,若判断为是,则丢弃该报文;否则,转发该报文。
2.如权利要求1所述的方法,其特征在于,所述交换设备判断其上除所述聚合组成员端口以外的其他端口学习到该报文的源MAC地址后还包括放弃在该聚合组成员端口上学习该报文的源MAC地址。
3.如权利要求1所述的方法,其特征在于,交换设备的端口处于学习状态下时,该交换设备对应学习到同一 MAC地址的端口设置聚合组,并将学习到该MAC地址的端口作为成员端口加入该聚合组,包括当交换机上电或端口 UP时,端口进入学习状态,学习状态下的端口进行MAC地址学习;所述交换机判断是否有至少2个端口学到同一 MAC地址,若是,则设置聚合组,并将学习到该同一 MAC地址的端口作为成员端口加入该聚合组。
4.如权利要求1所述的方法,其特征在于,处于学习状态的交换机端口在进入学习状态之后经过设定时长后,迁移为转发状态;所述设定时长是根据网络环境设置的。
5.一种交换设备,所述交换设备的不同的端口分别连接于同一网络设备的不同端口上,所述网络设备的不同端口在同一交换芯片上,其特征在于,该交换设备包括端口聚合模块,用于在交换设备的端口处于学习状态下时,对应学习到同一 MAC地址的端口设置聚合组,将学习到该MAC地址的端口作为成员端口加入该聚合组;报文处理模块,用于在交换设备的端口处于转发状态下时,当所述聚合组的成员端口接收到报文时,判断所述交换设备上除该聚合组成员端口以外的其他端口是否学习到该报文的源MAC地址,若判断为是,则丢弃该报文;否则,转发该报文。
6.如权利要求5所述的交换设备,其特征在于,所述报文处理模块还用于,在判断所述交换设备上除所述聚合组成员端口以外的其他端口学习到该报文的源MAC地址后,放弃在该聚合组成员端口上学习该报文的源MAC地址。
7.如权利要求5所述的交换设备,其特征在于,所述端口聚合模块具体用于,当交换机上电或端口 UP时,端口进入学习状态,学习状态下的端口进行MAC地址学习;当判断有至少 2个端口学到同一 MAC地址时,设置聚合组,并将学习到该同一 MAC地址的端口作为成员端口加入该聚合组。
8.如权利要求5所述的交换设备,其特征在于,还包括端口状态管理模块,用于在处于学习状态的交换机端口进入学习状态之后经过设定时长后,将该端口迁移为转发状态;所述设定时长是根据网络环境设置的。
全文摘要
本发明公开了一种基于端口聚合的报文处理方法及其装置,应用于不同的端口分别连接于同一网络设备的不同端口的交换设备,所述网络设备的不同端口在同一交换芯片上,该方法包括交换设备的端口处于学习状态下时,该交换设备对应学习到同一MAC地址的端口设置聚合组,将学习到该MAC地址的端口作为成员端口加入该聚合组;交换设备的端口处于转发状态下时,当所述聚合组的成员端口接收到报文时,判断所述交换设备上除该聚合组的成员端口以外的其他端口是否学习到该报文的源MAC地址,若判断为是,则丢弃该报文;否则,转发该报文。采用本发明可解决因该网络设备不支持端口聚合所导致的广播流量泛滥的问题。
文档编号H04L29/12GK102307140SQ20111023558
公开日2012年1月4日 申请日期2011年8月17日 优先权日2011年8月17日
发明者周迪, 王军 申请人:杭州华三通信技术有限公司