一种二层网络环路处理的方法、装置及网络设备的制作方法

文档序号:7847284阅读:180来源:国知局
专利名称:一种二层网络环路处理的方法、装置及网络设备的制作方法
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种二层网络环路处理的方法、装置及网络设备。
背景技术
当前虚拟专用交换网服务(Virtual Private LAN Service, VPLS)的二层网络是一种应用广泛的城域网解决方案,在实际网络应用中,每一台网络设备都拥有一个全球唯一的媒体访问控制(Medium Access Control, MAC)地址,在网络设备工作过程经常会出现MAC地址跳变问题。当某个源MAC地址的报文从网络设备的一个端口接入时,网络设备就会学习到这个报文的MAC地址与端口的对应关系,在这个MAC地址没有老化前,又有相同源MAC地址的报文从网络设备的另外一个端口接入,也就是MAC地址从一个端口移动到了另一个端口时,就发生了 MAC地址跳变,实际网络应用中,各网络设备的MAC地址通常是唯一的,所以由于网络设备MAC地址重复而导致MAC地址跳变的可能性很小。出现MAC地址跳变的一个主要原因就是网络形成环路。当某一用户的网络设备发送出一个报文,若报文经过两条路径发送到同一网络设备的不同端口,则网络形成环路。由于网络环路导致的MAC地址跳变会引起网络风暴,导致网络拥塞等问题。现有技术中可以通过MAC地址漂移MAC-Flapping处理方法对二层网络环路进行处理,该方法以MAC学习为基础,当感知到MAC转发表中某一 MAC地址对应出端口的跳变时,会把这些参与跳变的出端口按一定原则一起阻断或者分批阻断,当前Mac-Flapping方法不能精确阻断真正环路产生的端口,而是把参与跳变的所有出端口一起阻断或分批阻断,这样,可能导致一些没有产生环路的出端口也被阻断,这些接口连接的用户将无法继续通讯。

发明内容
本发明实施例提供了一种二层网络环路处理的方法、装置及网络设备,可以精确的确定发生环路的端口,有效地解决二层网络环路的问题,为达到上述目的,本发明实施例提供了一种二层网络环路处理的方法,包括接收用户发来的报文,获得所述报文的源MAC地址;当MAC表中的与所述源MAC地址关联的端口中最新的端口与所述报文的接收端口不一致,则判断所述源MAC地址发生一次跳变,所述源MAC地址关联的端口和所述报文的接收端口为参与所述源MAC地址跳变的端口 ;当所述源MAC地址的跳变次数达到预设跳变阈值时,通过所述参与所述源MAC地址跳变的端口分别发送探测报文;当收到所述探测报文时,则确定收到所述探测报文的端口为产生环路的端口,阻断所述产生环路的端口。本发明实施例提供了一种二层网络环路处理的装置,所述装置包括
接收单元,用于接收用户发来的报文,获得所述报文的源MAC地址; 判断单元,当MAC表中的与所述源MAC地址关联的端口中最新的端口与所述报文的接收端口不一致,则判断所述源MAC地址发生一次跳变,所述源MAC地址关联的端口和所述报文的接收端口为参与所述源MAC地址跳变的端口 ;检测单元,用于当所述源MAC地址的跳变次数达到预设跳变阈值时,通过所述参与所述源MAC地址跳变的端口分别发送探测报文;处理单元,用于当收到所述探测报文时,则确定收到所述探测报文的端口为产生环路的端口,阻断所述产生环路的端口。本发明实施例提供了一种二层网络环路处理的网络设备,所述网络设备包括本发明实施例提供的装置。综上,本发明实施例提供了一种二层网络环路处理的方法、装置及网络设备,能够精确的确定发生环路的端口,有效地解决二层网络环路的问题,保证了网络运行的可靠性。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是本发明第一实施例提供的一种二层网络环路处理方法的流程图;图2是本发明实施例提供的一种二层网络环路处理方法的示意图;图3是本发明第二实施例提供的一种二层网络环路处理装置的示意图;图4是本发明第二实施例提供的另一种二层网络环路处理装置的示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一本发明实施例提供了一种二层网络环路处理的方法,参见图1,图I为本发明实施例的方法流程图,包括102,接收用户发来的报文,获得所述报文的源MAC地址;104,当MAC表中的与所述源MAC地址关联的端口中最新的端口与所述报文的接收端口不一致,则判断所述源MAC地址发生一次跳变,所述源MAC地址关联的端口和所述报文的接收端口为参与所述源MAC地址跳变的端口 ;106,当所述源MAC地址的跳变次数达到预设跳变阈值时,通过所述参与所述源MAC地址跳变的端口分别发送探测报文; 二层网络互通时,报文的转发直接通过查找MAC地址来实现的,MAC地址学习的正确与否决定着用户之间是否能够正确的互通。网络设备的MAC地址学习机制为当端口收到一个未知源MAC地址的报文,会将这个MAC地址添加到接收该报文的端口上,以便后续以该MAC地址为目的地的报文能够直接转发,同时,会把该MAC地址添加到网络设备保存的MAC地址表中,MAC地址表是网络设备收到报文的源MAC地址的集合,每个MAC地址表项包含一个MAC地址和与该MAC地址有关联关系的端口,所述的关联关系是指以该MAC地址为源MAC的报文是从该端口接收上来的,所述与该MAC地址有关联关系的端口可能包含多个,如网络设备首先从端口 A收到以该MAC为源MAC的报文,后来又从端口 B收到以该MAC为源MAC的报文,则端口 A和端口 B都是与该MAC有关联关系的端口,最后接收到以该MAC为源MAC报文的端口 B为与该MAC有关联关系的最新端口,如果此后又从端口 C收到以该MAC为源MAC报文,则端口 C为与该MAC有关联关系的最新端口,端口 B则不再为与该MAC有关联关系的最新端口。本发明实施例实现时,网络设备接收到用户发来的报文后,通过解析获得所述报文的源MAC地址,根据该 源MAC地址到网络设备保存的MAC表查找,发现MAC地址表中已经存在了该源MAC地址,并且与该源MAC地址关联的端口中最新的端口并非是所述网络设备接收到用户发来的报文的端口,则认为该源MAC地址发生了一次跳变,网络设备MAC地址表中与该MAC地址关联的端口和所述报文的接收端口都认为是参与所述源MAC地址跳变的端口,所有参与所述源MAC地址跳变的端口都有出现环路的可能,需要通过所述参与所述源MAC地址跳变的端口发送探测报文,进一步,由于网络设备管理人员操作等原因会导致某些MAC地址偶尔出现跳变,但这并不影响正常网络功能,为避免此类情况频发发送探测报文,可以预先设置一个预设跳变阈值,默认情况该预设跳变阈值设置为1,当该源MAC地址跳变次数超过该预设跳变阈值时,才认为网络是出现环路,进而通过所述参与所述源MAC地址跳变的端口发送探测报文,例如,当预先设置所述预设跳变阈值为3时,网络设备接收源MAC为MAC地址N的报文,在I秒中内,接收以MAC地址N为源MAC的报文的端口从端口 A变为端口 B,又从端口 B又变为端口 C,然后又从端口 C变为端口 D,则认为参与该源MAC地址N跳变的端口 A、端口 B、端口 C、端口 D都可能出现环路,则通过端口 A、端口 B、端口 C、端口 D分别发送探测报文,此外,MAC地址跳变次数也包含几个端口之间的多次跳变的情况,如,接收以MAC地址N为源MAC的报文的端口从端口 A变为端口 B,又从端口 B变为端口 A,然后又从端口 A变为端口 B,也是发生了 3次MAC地址跳变。在网络设备上网络管理人员经常会根据网络设备端口所承担的业务重要性把端口设置上优先级,例如,连接服务器的端口设置高优先级,连接普通用户的端口设置低优先级。相应地,本发明实施例在通过所述参与所述源MAC地址跳变的端口分别发送探测报文之前,进一步,根据所述参与所述源MAC地址跳变的端口的优先级进行分组,分为高优先级组和低优先级组,针对属于所述低优先级组的端口优先发送探测报文,属于所述高优先级组的端口后发送探测报文,这样可以尽量避免对高优先级业务的影响,因为,在实际现网应用中,一般是连接用户的端口容易出现环路,因此,对于所述低优先级的端口优先发送探测报文,当发现环路时,优先进行阻断,从而尽可能的减少对高优先级端口业务的影响。所述探测报文可以是以太类型的数据报文,具体报文封装格式可以参见RFC 894。108,当收到所述探测报文时,则确定收到所述探测报文的端口为产生环路的端口,阻断所述产生环路的端口。由于连接所述参与所述源MAC地址跳变的端口的用户设备或服务器对于收到的所述探测报文,在正常情况下会直接丢弃,只有当该用户设备或服务器出现环路时,会将该探测报文直接透传,并沿该探测报文发送路径返回,如果网络设备从任一所述参与所述源MAC地址跳变的端口收到所述探测报文,则认为收到所述探测报文的端口为产生环路的端口,将该产生环路的端口进行阻断,停止其工作能力,从而解决出现环路端口对网络的影响问题。相应地,根据步骤106所述低优先级的组优先发送探测报文,如果低优先级的端口出现故障,则优先阻断,可以尽量避免对高优先级业务的影响。进一步,预先设置一个预设解除阻断时间阈值,当所述产生环路的出端口被阻断时间达到所述预设解除阻断时间阈值时,对所述产生环路的出端口解除阻断,使其正常工作。在实际应用中,有些出现环路的端口可以自行修复,因此,如果解除阻断后的端口没有再参与MAC地址跳变,将不会再被阻断,如果又参与了 MAC地址跳变,则按照本发明实施例提供的方案进行相应的处理。
为使本发明实施例更便于理解、清楚,现举例进行描述,如图2,网络设备上有三个出端口端口 I、端口 2、端口 3,端口 I、端口 2连接普通用户,端口 3连接服务器,根据业务优先级,连接普通用户的端口 I、端口 2设置低优先级,连接服务器的端口 3设置高优先级,预先设置预设跳变阈值为1,设置预设解除阻断时间阈值为60秒。当网络设备从端口 2收到用户报文时,通过解析获得报文源MAC为地址A,网络设备通过查找MAC表,发现MAC表中与MAC地址A关联的端口为端口 3,与该用户报文接收的端口 2不一致,出现一次MAC地址跳变,达到预先设置的预设跳变阈值1,则认为端口 2、端口 3都参与了 MAC地址A跳变,网络设备通过端口 2、端口 3分别发送探测报文,进一步,根据端口优先级进行分组,端口 2分到低优先级组,端口 3分到高优先级组,低优先级组的端口 2优先发送探测报文,由于端口I没有参与MAC地址A跳变不需要发送探测报文,当网络设备从端口 2收到该探测报文后,判断端口 2为发生环路的端口,对端口 2进行阻断,避免其对网络的影响,进一步,当端口 2被阻断的时间达到预先设置预设解除阻断时间阈值为60秒时,对端口 2解除阻断,允许其正常工作。可见,通过本发明是实施例提供的方法,能够精确的确定发生环路的端口,有效地解决二层网络环路的问题,保证了网络运行的可靠性,特别地,当网络设备存在多个端口时,通过本发明实施例提供的方法,先确定参与MAC地址跳变的端口,然后通过参与MAC地址跳变的端口发送探测报文,不需要网络设备实时通过所有端口发送探测报文,从而能够减小对网络设备CUP占用的影响。实施例二 本发明实施例提供了一种二层网络环路处理的装置,参见图3,图3为本发明实施例的装置示意图,该装置包括接收单元302,判断单元304,检测单元306,处理单元308。接收单元302,用于接收用户发来的报文,获得所述报文的源MAC地址;判断单元304,当MAC表中的与所述源MAC地址关联的端口中最新的端口与所述报文的接收端口不一致,则判断所述源MAC地址发生一次跳变,所述源MAC地址关联的端口和所述报文的接收端口为参与所述源MAC地址跳变的端口 ;检测单元306,用于当所述源MAC地址的跳变次数达到预设跳变阈值时,通过所述参与所述源MAC地址跳变的端口分别发送探测报文;二层网络互通时,报文的转发直接通过查找MAC地址来实现的,MAC地址学习的正确与否决定着用户之间是否能够正确的互通。网络设备的MAC地址学习机制为当端口收到一个未知源MAC地址的报文,会将这个MAC地址添加到接收该报文的端口上,以便后续以该MAC地址为目的地的报文能够直接转发,同时,会把该MAC地址添加到网络设备保存的MAC地址表中,MAC地址表是网络设备收到报文的源MAC地址的集合,每个MAC地址表项包含一个MAC地址和与该MAC地址有关联关系的端口,所述的关联关系是指以该MAC地址为源MAC的报文是从该端口接收上来的,所述与该MAC地址有关联关系的端口可能包含多个,如网络设备首先从端口 A收到以该MAC为源MAC的报文,后来又从端口 B收到以该MAC为源MAC的报文,则端口 A和端口 B都是与该MAC有关联关系的端口,最后接收到以该MAC为源MAC报文的端口 B为 与该MAC有关联关系的最新端口,如果此后又从端口 C收到以该MAC为源MAC报文则端口 C为与该MAC有关联关系的最新端口,端口 B则不再为与该MAC有关联关系的最新端口。本发明实施例实现时,网络设备接收单元302接收到用户发来的报文后,通过解析获得所述报文的源MAC地址,判断单元304根据该源MAC地址到网络设备保存的MAC表查找,发现MAC地址表中已经存在了该源MAC地址,并且与该源MAC地址关联的端口中最新的端口并非是所述网络设备接收到用户发来的报文的端口,则认为该源MAC地址发生了一次跳变,网络设备MAC地址表中与该MAC地址关联的端口和所述报文的接收端口都认为是参与所述源MAC地址跳变的端口,所有参与所述源MAC地址跳变的端口都有出现环路的可能,需要通过所述参与所述源MAC地址跳变的端口发送探测报文,进一步,由于网络设备管理人员操作等原因会导致某些MAC地址偶尔出现跳变,但这并不影响正常网络功能,为避免此类情况频发发送探测报文,检测单元306可以预先设定一个预设跳变阈值,默认情况该预设跳变阈值设置为1,当该源MAC地址跳变次数超过该预设跳变阈值时,才认为网络是出现环路,进而通过所述参与所述源MAC地址跳变的端口发送探测报文,例如,当预先设置所述预设跳变阈值为3时,网络设备接收源MAC为MAC地址N的报文,在I秒中内,接收以MAC地址N为源MAC的报文的端口从端口 A变为端口 B,又从端口 B又变为端口 C,然后又从端口 C变为端口 D,则认为参与该源MAC地址N跳变的端口 A、端口 B、端口 C、端口D都可能出现环路,则通过端口 A、端口 B、端口 C、端口 D发送探测报文,此外,MAC地址跳变次数也包含几个端口之间的多次跳变的情况,如,接收以MAC地址N为源MAC的报文的端口从端口 A变为端口 B,又从端口 B变为端口 A,然后又从端口 A变为端口 B,也是发生了 3次MAC地址跳变。在网络设备上网络管理人员经常会根据网络设备端口所承担的业务重要性把端口设置上优先级,例如,连接服务器的端口设置高优先级,连接普通用户的端口设置低优先级。相应地,本发明实施例提供一种二层网络环路处理的装置进一步还可以包括优先级分组单元310,如图4所示。在所述检测单元310发送探测报文之前,所述优先级分组单元310根据所述参与所述源MAC地址跳变的端口的优先级进行分组,分为高优先级组和低优先级组,所述检测单元306根据所述分组单元310的分组情况针对属于所述低优先级组的端口优先发送探测报文,属于所述高优先级组的端口后发送探测报文,这样可以尽量避免对高优先级业务的影响,因为,在实际现网应用中,一般是连接用户的端口容易出现环路,因此,对于所述低优先级的端口优先发送探测报文,当发现环路时,优先进行阻断,从而尽可能的减少对高优先级端口业务的影响。所述探测报文可以是以太类型的数据报文,具体报文封装格式可以参见RFC 894。处理单元308,用于当收到所述探测报文时,则确定收到所述探测报文的端口为产生环路的端口,阻断所述产生环路的端口。
由于连接所述参与所述源MAC地址跳变的端口的用户设备或服务器对于收到的所述探测报文,在正常情况下会直接丢弃,只有当该用户设备或服务器出现环路时,会将该探测报文直接透传,并沿该探测报文发送路径返回,如果网络设备处理单元308从任一所述参与所述源MAC地址跳变的端口收到所述探测报文,则认为收到所述探测报文的端口为产生环路的端口,将该产生环路的端口进行阻断,停止其工作能力,从而解决出现环路端口对网络的影响问题。相应地,根据所述低优先级的组优先发送探测报文,如果低优先级的端口出现故障,则优先阻断,可以尽量避免对高优先级业务的影响。进一步,处理单元308可以预先设置一个预设解除阻断时间阈值,当所述产生环路的出端口被阻断时间达到所述预设解除阻断时间阈值时,对所述产生环路的出端口解除阻断,使其正常工作。在实际应用中,有些出现环路的端口可以自行修复,因此,如果解除阻断后的端口没有再参与MAC地址跳变,将不会再被阻断,如果又参与了 MAC地址跳变,则按照本发明实施例提供的方案进行相应的处理。

可见,通过本发明是实施例提供的装置,能够精确的确定发生环路的端口,有效地解决二层网络环路的问题,保证了网络运行的可靠性,特别地,当网络设备存在多个端口时,通过本发明实施例提供的方法,先确定参与MAC地址跳变的端口,然后通过参与MAC地址跳变的端口发送探测报文,不需要网络设备实时通过所有端口发送探测报文,从而能够减少对网络设备CUP占用的影响。实施例三本发明实施例提供了一种二层网络环路处理的网络设备,所述网络设备包括本发明实施例二提供的装置,所述网络设备可以为路由器、交换机等支持二层网络的交换设备。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种二层网络环路处理的方法,其特征在于,包括接收用户发来的报文,获得所述报文的源MAC地址;当MAC表中的与所述源MAC地址关联的端口中最新的端口与所述报文的接收端口不一致,则判断所述源MAC地址发生一次跳变,所述源MAC地址关联的端口和所述报文的接收端口为参与所述源MAC地址跳变的端口 ;当所述源MAC地址的跳变次数达到预设跳变阈值时,通过所述参与所述源MAC地址跳变的端口分别发送探测报文;当收到所述探测报文时,则确定收到所述探测报文的端口为产生环路的端口,阻断所述产生环路的端口。
2.根据权利要求I所述的方法,其特征在于,所述预设跳变阈值默认为I。
3.根据权利要求I所述的方法,其特征在于,所述通过所述参与所述源MAC地址跳变的端口分别发送探测报文之前,进一步包括根据所述参与所述源MAC地址跳变的端口的优先级进行分组,分为高优先级组和低优先级组,根据所述优先级分组,对于所述低优先级组的端口优先发送探测报文,所述高优先级组的端口后发送探测报文。
4.根据权利要求1-3任一权利要求所述的方法,其特征在于,进一步包括当所述产生环路的出端口被阻断时间达到预设解除阻断时间阈值时,对所述产生环路的出端口解除阻断。
5.一种二层网络环路处理的装置,其特征在于,包括接收单元,用于接收用户发来的报文,获得所述报文的源MAC地址;判断单元,当MAC表中的与所述源MAC地址关联的端口中最新的端口与所述报文的接收端口不一致,则判断所述源MAC地址发生一次跳变,所述源MAC地址关联的端口和所述报文的接收端口为参与所述源MAC地址跳变的端口 ;检测单元,用于当所述源MAC地址的跳变次数达到预设跳变阈值时,通过所述参与所述源MAC地址跳变的端口分别发送探测报文;处理单元,用于当收到所述探测报文时,则确定收到所述探测报文的端口为产生环路的端口,阻断所述产生环路的端口。
6.根据权利要求5所述的装置,其特征在于,所述装置进一步包括优先级分组单元,用于在所述检测单元发送探测报文之前,根据所述参与所述源MAC 地址跳变的端口的优先级进行分组,分为高优先级组和低优先级组,相应地,所述检测单元根据所述优先级分组单元的分组情况,对所述低优先级组的端口优先发送探测报文,所述高优先级组的端口后发送探测报文。
7.根据权利要求5-6所述的装置,其特征在于,所述处理单元进一步包括当所述产生环路的出端口被阻断时间达到预设解除阻断时间阈值时,对所述产生环路的出端口解除阻断。
8.—种二层网络环路处理的网络设备,其特征在于,所述网络设备包括权利要求5或6 或7所述的装置。
全文摘要
本发明实施例提供了一种二层网络环路处理的方法,包括接收用户发来的报文,获得所述报文的源MAC地址;当MAC表中的与所述源MAC地址关联的端口中最新的端口与所述报文的接收端口不一致,则判断所述源MAC地址发生一次跳变;当所述源MAC地址的跳变次数达到预设跳变阈值时,通过所述参与所述源MAC地址跳变的端口分别发送探测报文;当收到所述探测报文时,则确定收到所述探测报文的端口为产生环路的端口,阻断所述产生环路的端口。本发明还提供了一种二层网络环路处理的装置及网络设备。通过本发明实施例提供的方法、装置及网络设备,能够有效的解决二层网络出现环路问题,保障了网络运行的可靠性。
文档编号H04L12/26GK102625986SQ201180003165
公开日2012年8月1日 申请日期2011年12月9日 优先权日2011年12月9日
发明者张夏 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1