专利名称:一种环路检测报文封装方法、环路检测方法及装置的制作方法
技术领域:
本发明涉及通信技术领域,尤其涉及一种环路检测报文封装方法、环路检测方法及装置。
背景技术:
随着网络技术的日新月异以及用户需求的不断增加,使用端口聚合以获得更高的带宽的技术得到了广泛应用。端口聚合技术允许两个交换机之间通过多个端口并行连接同时传输数据以提供更高的带宽。端口聚合主要用于交换机之间的连接,交换机将一组物理端口联合起来构成一个聚合组,作为一个逻辑通道,并将这个逻辑通道视为一个聚合端口。使用聚合端口具有以下优点1、带宽增加,带宽相当于聚合组内的所有物理端口的带宽总和;2、增加冗余,只要聚合组内不是所有的物理端口都down掉,两个交换机之间仍然可以继续通信;3、负载均衡,可以在聚合组内的物理端口上灵活配置,使流量可以在这些物理端口上自动进行负载均衡。如果在聚合端口上存在环路将会导致MAC (Media Access Control,介质访问控制)地址学习错误,甚至造成广播风暴,严重的还会导致网络及交换机瘫痪,因此需要对聚合端口进行环路检测。现有的环路检测技术都是基于物理端口的检测,但是这种基于物理端口的检测技术无法应用于聚合端口的环路检测。图1示出了当几个物理端口加入到一个聚合组内的拓扑示意图。其中,端口 4属于聚合组1,端口 6和端口 8属于聚合组2。如果环路检测技术仅支持基于物理端口的检测, 则在图1所示的端口聚合情况下是无法检测到环路的,甚至会出现检测错误。其具体原因如下如果从端口 4和端口 6判断,端口 6收到端口 4发送的环路检测报文时,将报文中的源MAC地址与自身的MAC地址进行比较后,发现两者相同,则会判定聚合组1和聚合组2之间是存在环路的;而如果从端口 4和端口 8判断,由于端口 8无法收到从端口 4发送的环路检测报文,因而无法检测到环路,从而判定聚合组1和聚合组2之间是不存在环路的,但实际上环路确实是存在的。可见,这种互相矛盾的检测结果,将会导致环路检测出现错误。综上所述,现有环路检测技术存在如下缺陷现有的环路检测技术都是基于物理端口的检测,当几个物理端口加入到一个聚合组内时,如果不能够在聚合端口上准确地检测出环路,则当存在环路时会占用大量的网络带宽,甚至造成广播风暴,严重的还会导致网络及交换机瘫痪。大大降低了网络带宽的利用率。
发明内容
本发明解决的技术问题是提供一种环路检测报文封装方法、环路检测方法及装置,能够在聚合端口上正确检测出环路并可做进一步的处理。
为解决上述技术问题,本发明提供了一种环路检测方法,所述方法包括从聚合组发送环路检测报文时,在所述环路检测报文的源端口字段中填充所述聚合组的端口号;将所述环路检测报文广播发送至与所述聚合组相连接的所有端口 ;接收到所述环路检测报文的接收端口,根据所述环路检测报文判断是否存在环路。进一步地,所述接收端口根据所述环路检测报文判断是否存在环路,具体包括所述接收端口根据所述环路检测报文中的源端口字段识别出所述环路检测报文的发送端口属于聚合组时,则判断所述发送端口与本接收端口是否属于同一个聚合组,如果不属于同一个聚合组,则所述接收端口通过比较所述环路检测报文中的源介质访问控制 (MAC)地址是否与本接收端口的MAC地址一致,判断是否存在环路。进一步地,所述接收端口在识别出所述环路检测报文的发送端口属于聚合组后, 如果判断出所述发送端口与本接收端口属于同一个聚合组,则判定不存在环路。进一步地,所述接收端口在识别出所述环路检测报文的发送端口属于聚合组后, 按照以下方式判断所述发送端口与本接收端口是否属于同一个聚合组如果本接收端口不属于聚合组,则直接判定所述发送端口与本接收端口不属于同一个聚合组; 如果本接收端口属于聚合组,则比较所述源端口字段中的聚合组的端口号与本接收端口所属的聚合组的端口号是否一致,如果一致,则判定所述发送端口与本接收端口属于同一个聚合组;如果不一致,则判定所述发送端口与本接收端口不属于同一个聚合组。进一步地,从聚合组发送所述环路检测报文之前,还包括获取所述聚合组内的公共激活虚拟局域网(vlan)列表,其中所述公共激活vlan 列表中包含所述聚合组内各物理端口下激活的vlan的交集;为所述公共激活vlan列表中的每个激活的vlan分别构造对应的环路检测报文, 并在对应的环路检测报文中携带相应的激活的vlan。进一步地,所述方法还包括如果所述接收端口属于聚合组,且所述接收端口根据接收到的所述环路检测报文判定本接收端口所属的聚合组内激活的vlan存在环路时,则对存在环路的所述vlan进行阻塞处理或者进行记录。进一步地,所述方法还包括从所述聚合组发送所述环路检测报文时,查看本聚合组内各物理端口下激活的 vlan是否已经被阻塞或者存在于环路记录中,对于已经被阻塞的或者存在于环路记录中的 vlan,则不再发送与所述vlan对应的环路检测报文。进一步地,所述方法还包括所述接收端口接收到所述环路检测报文时,首先对接收到的所述环路检测报文的有效性进行判断,在判定所述环路检测报文有效之后,再根据所述环路检测报文判断是否存在环路。此外,本发明还提供了一种环路检测报文封装方法,从聚合组发送环路检测报文时,在所述环路检测报文的源端口字段中填充所述聚合组的端口号。
进一步地,所述环路检测报文的二层报文头中封装以下内容目的MAC地址、源 MAC地址、标签Oltag)和报文类型;在所述环路检测报文的数据中封装以下字段长度、桥MAC、源端口。此外,本发明还提供了一种环路检测装置,所述装置包括报文发送模块,以及环路检测模块,其中,所述报文发送模块用于,从聚合组发送环路检测报文时,在所述环路检测报文的源端口字段中填充所述聚合组的端口号,并将所述环路检测报文广播发送至与所述聚合组相连接的所有端口;所述环路检测模块用于,从本接收端口接收到环路检测报文时,根据接收到的所述环路检测报文判断是否存在环路。进一步地,所述环路检测模块用于,按照以下方式判断是否存在环路根据所述环路检测报文中的源端口字段识别出所述环路检测报文的发送端口属于聚合组时,则判断所述发送端口与本接收端口是否属于同一个聚合组,如果不属于同一个聚合组,则所述接收端口通过比较所述环路检测报文中的源MAC地址是否与本接收端口的MAC地址一致,判断是否存在环路。进一步地,所述环路检测模块还用于,在识别出所述环路检测报文的发送端口属于聚合组后,如果判断出所述发送端口与本接收端口属于同一个聚合组,则判定不存在环路。进一步地,所述环路检测模块用于,在识别出所述环路检测报文的发送端口属于聚合组后,按照以下方式判断所述发送端口与本接收端口是否属于同一个聚合组如果本接收端口不属于聚合组,则直接判定所述发送端口与本接收端口不属于同一个聚合组;如果本接收端口属于聚合组,则比较所述源端口字段中的聚合组的端口号与本接收端口所属的聚合组的端口号是否一致,如果一致,则判定所述发送端口与本接收端口属于同一个聚合组;如果不一致,则判定所述发送端口与本接收端口不属于同一个聚合组。进一步地,所述报文发送模块还用于,从聚合组发送所述环路检测报文之前,获取所述聚合组内的公共激活虚拟局域网(vlan)列表,其中所述公共激活vlan列表中包含所述聚合组内各物理端口下激活的vlan的交集;以及,为所述公共激活vlan列表中的每个激活的vlan分别构造对应的环路检测报文, 并在对应的环路检测报文中携带相应的激活的vlan。进一步地,所述环路检测模块还用于,如果本接收端口属于聚合组,且根据接收到的所述环路检测报文判定本接收端口所属的聚合组内激活的vlan存在环路时,则对存在环路的所述vlan进行阻塞处理或者进行记录。进一步地,所述报文发送模块还用于,从所述聚合组发送所述环路检测报文时,查看本聚合组内各物理端口下激活的vlan是否已经被阻塞或者存在于环路记录中,对于已经被阻塞的或者存在于环路记录中的vlan,则不再发送与所述vlan对应的环路检测报文。进一步地,所述装置还包括有效性检验模块,所述有效性检验模块用于,从本接收端口接收到所述环路检测报文时,首先对接收到的所述环路检测报文的有效性进行判断,在判定所述环路检测报文有效之后,再发送给所述环路检测模块。此外,本发明还提供了一种环路检测报文封装装置,所述装置包括报文构造模块,所述报文构造模块用于,从聚合组发送环路检测报文时,在所述环路检测报文的源端口字段中填充所述聚合组的端口号。进一步地,所述报文构造模块用于,在所述环路检测报文的二层报文头中封装以下内容目的MAC地址、源MAC地址、标签Oltag)和报文类型;在所述环路检测报文的数据中封装以下字段长度、桥MAC、源端口。与现有技术相比较,本发明至少具有如下有益效果1、本发明方案不仅可以支持基于物理端口的环路检测,也可以支持基于聚合端口的环路检测,从而避免了由于存在环路而产生的一系列问题,提高网络带宽的利用率;2、当端口已经发现环路(物理端口和聚合端口都适用)时,将不再继续发送环路检测报文,从而减少了环路检测报文的重复和冗余发送;3、当两个物理端口之间出现环路,且这两个端口是属于一个聚合组时,则不认为是环路,避免出现一个聚合组内出现环路的情况发生。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1示出了端口聚合的拓扑示意图;图2为本发明实施例的环路检测报文的发送流程示意图;
图3为本发明实施例的环路检测的流程示意图;图4为本发明实施例的环路检测装置的示意框图。
具体实施例方式本实施方式提供了一种环路检测方法,具体采用如下技术方案从聚合组发送环路检测报文时,在所述环路检测报文的源端口字段中填充聚合组的端口号;将所述环路检测报文广播发送至与所述聚合组相连接的所有端口 ;接收到所述环路检测报文的接收端口,根据所述环路检测报文判断是否存在环路。进一步地,所述接收端口接收到所述环路检测报文时,首先对接收到的所述环路检测报文的有效性进行判断,在判定所述环路检测报文有效之后,再根据所述环路检测报文判断是否存在环路。进一步地,所述接收端口根据所述环路检测报文判断是否存在环路,具体包括所述接收端口根据所述环路检测报文中的源端口字段识别出所述环路检测报文的发送端口属于聚合组时,则再判断所述发送端口与本接收端口是否属于同一个聚合组, 如果不属于同一个聚合组,则所述接收端口通过比较所述环路检测报文中的源MAC地址是否与本接收端口的MAC地址一致,判断是否存在环路。此外,所述接收端口在识别出所述环路检测报文的发送端口属于聚合组后,如果判断出所述发送端口与本接收端口属于同一个聚合组,则判定不存在环路。进一步地,所述接收端口按照以下方式识别所述环路检测报文的发送端口是否属于聚合组如果所述环路检测报文的源端口字段中填充的是聚合组的端口号,则所述接收端口识别出所述发送端口属于聚合组;如果所述环路检测报文的源端口字段中填充的是物理端口的端口号,则所述接收端口识别出所述发送端口不属于聚合组。进一步地,所述接收端口在识别出所述环路检测报文的发送端口属于聚合组后, 按照以下方式判断所述发送端口与本接收端口是否属于同一个聚合组如果所述接收端口不属于聚合组,则直接判定所述发送端口与本接收端口不属于同一个聚合组;如果所述接收端口属于聚合组,则比较所述源端口字段中的聚合组的端口号与本接收端口所属的聚合组的端口号是否一致,如果一致,则判定所述发送端口与本接收端口属于同一个聚合组;如果不一致,则判定所述发送端口与本接收端口不属于同一个聚合组。进一步地,所述环路检测报文的封装方式如下所述环路检测报文的二层报文头中封装以下内容目的MAC地址、源MAC地址、 Qtag和报文类型;所述环路检测报文的数据中封装以下字段长度、桥MAC、源端口。进一步地,从聚合组发送所述环路检测报文之前,还包括获取所述聚合组内的公共激活vlan列表;其中所述公共激活vlan列表中包括所述聚合组内各物理端口下激活的 vlan的交集;对于所述公共激活vlan列表中的每个激活的vlan,分别构造对应的环路检测报文,并在对应的环路检测报文中携带相应的vlan。进一步地,如果所述接收端口属于聚合组,且所述接收端口根据接收到的所述环路检测报文判定本接收端口所属的聚合下激活的vlan存在环路时,则对存在环路的vlan进行阻塞处理或者进行记录。进一步地,从所述聚合组发送所述环路检测报文时,查看本聚合组内各物理端口下激活的vlan是否存在于环路记录中或者已经被阻塞,对于已经存在于环路记录中或者已经被阻塞的vlan,则不再发送与该vlan对应的环路检测报文。为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。实施例一图2为本实施例的基于聚合端口构造并发送环路检测报文的流程示意图。如图2 所示,该流程的主要步骤描述如下步骤SlOl 获取聚合组下已经激活的vlan列表;环路检测需要对每一个已经激活的vlan都要进行检测,且针对每个激活的vlan 都会发送一个对应的环路检测报文。一个聚合组中包含多个物理端口,每个物理端口下激活的vlan有可能不同,而只有当这些物理端口下激活的vlan有交集时,才表明该聚合组构成的逻辑通道是有效的,进而再对该聚合组进行环路检测。根据本步骤获取到激活的公共vlan列表后,就可以确定发送环路检测报文的个数以及报文中需要携带哪些vlan。步骤S102 查看vlan是否已经存在过环路,例如该vlan已经被阻塞,或者已经存在环路记录;如果是,则结束本次流程,否则,继续执行下一步骤S103 ;如果聚合组内的某个vlan已经被阻塞或者已经存在环路记录,说明之前已经检测出环路,则该聚合组不再发送该vlan对应的环路检测报文,即不再发送携带这个vlan的环路检测报文。通过采用这样的处理方法,一方面可以减少环路检测报文对网络性能造成的影响,另一方面可以减少环路检测技术对重复报文的处理。步骤S103 为环路检测报文分配内存;具体地,可以根据环路检测报文的长度大小分配内存的大小。步骤S104 构造环路检测报文;环路检测报文中应包含目的MAC地址、源MAC地址、Qtag (标签)和报文类型等二层报文头的内容,同时也要包含长度、桥MAC、源端口等环路检测报文特有的数据内容,其中源端口部分应填充为聚合组的端口号(该聚合组的端口号应设置得与普通物理端口的端口号有区别)。例如,每一款设备都有最大物理端口号。例如某款设备共有6个物理端口,那么这款设备的最大物理端口号为6。而聚合组的端口号可定义为最大物理端口号与聚合组号之和。如,聚合组1的端口号为7,聚合组2的端口号为8,依此类推。因此,在收到环路检测报文之后,通过判断源端口的端口号是否大于最大物理端口号即可判断是否属于聚合组, 如果大于,则为聚合组,否则,即为物理端口。步骤S105 发送环路检测报文;环路检测报文构造完成之后,将广播发送环路检测报文,以探测是否存在环路。步骤S106:释放内存;环路检测报文发送完成之后,需要释放为环路检测报文申请的内存空间,具体释放方式可以是如果报文发送成功则由驱动释放内存;否则,由环路检测模块自行释放内存。至此,环路检测报文发送完成。实施例二图3为本实施例的根据接收到的环路检测报文进行环路检测的处理流程示意图。 如图3所示,该流程的主要步骤描述如下步骤S201 判断报文的有效性,如果有效,则继续执行下一步骤S202,否则,结束本次流程;收到环路检测报文之后,首先要检测报文的有效性,有效性检测主要包括以下几个方面收到报文的端口号是否是有效的端口号、端口是否处于link-up的状态、报文长度是否合法、报文的类型是否合法、报文的校验和是否合法等。步骤S202 判断发送报文的物理端口和接收报文的物理端口是否属于一个聚合组内,如果是,则结束本次流程,否则,继续执行下一步骤S203 ;此处,如果发送报文和接收报文的两个物理端口属于一个聚合组,即使这两个端口之间真的有环路出现,也不认为这是一个环路,因为从实际应用的角度来讲,这两个端口可以看成一个端口,而同一个端口上是不可能出现环路的。步骤S203 判断是否存在环路,如果存在,则按照下述步骤S204和S205继续进行环路处理;如果不存在,则结束本次流程;具体地,可以根据接收到的环路检测报文中的源MAC地址与报文接收端口的MAC 地址是否一致,判断是否存在环路,即,如果报文中的源MAC地址与端口自身的MAC地址一致,则检测出存在环路。步骤S204 将聚合端口转换为实际的物理端口 ;由于现有的环路处理方式都是针对物理端口进行处理的,因此,在检测出聚合组内存在环路时,首先获取该聚合组内包含的所有物理端口,再对每个物理端口分别进行环路处理。步骤S205 对每个物理端口进行环路处理;具体的环路处理可以分为trap-only (环路通知模式)和discarding (阻塞模式) 两种模式。trap-only模式下,仅通知用户有环路出现了,并不做阻塞处理;Discarding模式下又分为两种不同的模式,端口模式和vlan模式。在端口模式下,若在某个vlan发现环路,则down掉端口 ;在vlan模式下,若发现某个或某几个vlan出现环路,则阻塞出现环路 ^ vlan。此外,为了避免同时阻塞多个端口,按照如下阻塞规则进行阻塞处理阻塞大的。 即,如果MAC地址不相同,则阻塞MAC地址大的;如果MAC地址相同,则阻塞端口号大的;如果端口号相同,则阻塞自己。至此,环路检测的处理流程完成。实施例三本实施例提供了一种环路检测装置,参见图4,该装置主要包括报文发送模块, 以及环路检测模块,其中,报文发送模块用于,从聚合组发送环路检测报文时,在所述环路检测报文的源端口字段中填充所述聚合组的端口号,并将所述环路检测报文广播发送至与所述聚合组相连接的所有端口;环路检测模块用于,从本接收端口接收到环路检测报文时,根据接收到的所述环路检测报文判断是否存在环路。进一步地,上述的环路检测模块用于,按照以下方式判断是否存在环路根据所述环路检测报文中的源端口字段识别出所述环路检测报文的发送端口属于聚合组时,则判断所述发送端口与本接收端口是否属于同一个聚合组,如果不属于同一个聚合组,则所述接收端口通过比较所述环路检测报文中的源MAC地址是否与本接收端口的MAC地址一致,判断是否存在环路。进一步地,上述的环路检测模块还用于,在识别出所述环路检测报文的发送端口属于聚合组后,如果判断出所述发送端口与本接收端口属于同一个聚合组,则判定不存在环路。进一步地,上述的环路检测模块用于,在识别出所述环路检测报文的发送端口属于聚合组后,按照以下方式判断所述发送端口与本接收端口是否属于同一个聚合组
如果本接收端口不属于聚合组,则直接判定所述发送端口与本接收端口不属于同一个聚合组;如果本接收端口属于聚合组,则比较所述源端口字段中的聚合组的端口号与本接收端口所属的聚合组的端口号是否一致,如果一致,则判定所述发送端口与本接收端口属于同一个聚合组;如果不一致,则判定所述发送端口与本接收端口不属于同一个聚合组。进一步地,上述的报文发送模块还用于,从聚合组发送所述环路检测报文之前,获取所述聚合组内的公共vlan列表,其中所述公共激活vlan列表中包含所述聚合组内各物理端口下激活的vlan的交集;以及,为所述公共激活vlan列表中的每个激活的vlan分别构造对应的环路检测报文, 并在对应的环路检测报文中携带相应的激活的vlan。进一步地,上述的环路检测模块还用于,如果本接收端口属于聚合组,且根据接收到的所述环路检测报文判定本接收端口所属的聚合组内激活的vlan存在环路时,则对存在环路的所述vlan进行阻塞处理或者进行记录。进一步地,上述的报文发送模块还用于,从所述聚合组发送所述环路检测报文时, 查看本聚合组内各物理端口下激活的vlan是否已经被阻塞或者存在于环路记录中,对于已经被阻塞的或者存在于环路记录中的vlan,则不再发送与所述vlan对应的环路检测报文。如图4所示,可选地,本实施例装置中还包括有效性检验模块,该有效性检验模块用于,从本接收端口接收到环路检测报文时,首先对接收到的环路检测报文的有效性进行判断,在判定所述环路检测报文有效之后,再发送给所述环路检测模块。此外,本发明实施例中还提供了一种环路检测报文封装装置(未图示),该装置主要包括报文构造模块,该报文构造模块用于,从聚合组发送环路检测报文时,在所述环路检测报文的源端口字段中填充所述聚合组的端口号。进一步地,上述的报文构造模块用于,在环路检测报文的二层报文头中封装以下内容目的MAC地址、源MAC地址、Qtag和报文类型;在环路检测报文的数据中封装以下字段长度、桥MAC、源端口。根据以上描述,本发明具有如下特点1)本发明的不仅可以支持基于物理端口的环路检测,而且可以支持基于聚合端口的环路检测,进一步避免了由于存在环路而产生的一系列问题,从而提高的网络带宽的利用率。2)由于将几个物理端口视作一个聚合端口,而且是基于聚合端口构造环路检测报文,因此不会增加环路检测报文的数量。3)当端口已经发现环路(物理端口和聚合端口都适用),就不会继续发送环路检测报文,从而减少了环路检测报文的重复,冗余发送。4)支持多个vlan的环路检测,在默认情况下,支持所有已经激活的vlan的环路检测,激活vlan中任何一个vlan出现了环路都可以检测出来,并可按照阻塞规则进行阻塞。5)在检测出环路时可以有多种环路处理方式,用户可以根据需要灵活选择。以上仅为本发明的优选实施案例而已,并不用于限制本发明,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发
1明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
权利要求
1.一种环路检测方法,其特征在于,所述方法包括从聚合组发送环路检测报文时,在所述环路检测报文的源端口字段中填充所述聚合组的端口号;将所述环路检测报文广播发送至与所述聚合组相连接的所有端口 ;接收到所述环路检测报文的接收端口,根据所述环路检测报文判断是否存在环路。
2.如权利要求1所述的方法,其特征在于,所述接收端口根据所述环路检测报文判断是否存在环路,具体包括所述接收端口根据所述环路检测报文中的源端口字段识别出所述环路检测报文的发送端口属于聚合组时,则判断所述发送端口与本接收端口是否属于同一个聚合组,如果不属于同一个聚合组,则所述接收端口通过比较所述环路检测报文中的源介质访问控制 (MAC)地址是否与本接收端口的MAC地址一致,判断是否存在环路。
3.如权利要求2所述的方法,其特征在于,所述接收端口在识别出所述环路检测报文的发送端口属于聚合组后,如果判断出所述发送端口与本接收端口属于同一个聚合组,则判定不存在环路。
4.如权利要求2或3所述的方法,其特征在于,所述接收端口在识别出所述环路检测报文的发送端口属于聚合组后,按照以下方式判断所述发送端口与本接收端口是否属于同一个聚合组如果本接收端口不属于聚合组,则直接判定所述发送端口与本接收端口不属于同一个聚合组;如果本接收端口属于聚合组,则比较所述源端口字段中的聚合组的端口号与本接收端口所属的聚合组的端口号是否一致,如果一致,则判定所述发送端口与本接收端口属于同一个聚合组;如果不一致,则判定所述发送端口与本接收端口不属于同一个聚合组。
5.如权利要求1、2或3所述的方法,其特征在于,从聚合组发送所述环路检测报文之前,还包括获取所述聚合组内的公共激活虚拟局域网(vlan)列表,其中所述公共激活vlan列表中包含所述聚合组内各物理端口下激活的vlan的交集;为所述公共激活vlan列表中的每个激活的vlan分别构造对应的环路检测报文,并在对应的环路检测报文中携带相应的激活的vlan。
6.如权利要求5所述的方法,其特征在于,所述方法还包括如果所述接收端口属于聚合组,且所述接收端口根据接收到的所述环路检测报文判定本接收端口所属的聚合组内激活的vlan存在环路时,则对存在环路的所述vlan进行阻塞处理或者进行记录。
7.如权利要求6所述的方法,其特征在于,所述方法还包括从所述聚合组发送所述环路检测报文时,查看本聚合组内各物理端口下激活的vlan 是否已经被阻塞或者存在于环路记录中,对于已经被阻塞的或者存在于环路记录中的 vlan,则不再发送与所述vlan对应的环路检测报文。
8.如权利要求1、2或3所述的方法,其特征在于,所述方法还包括所述接收端口接收到所述环路检测报文时,首先对接收到的所述环路检测报文的有效性进行判断,在判定所述环路检测报文有效之后,再根据所述环路检测报文判断是否存在环路。
9.一种环路检测报文封装方法,其特征在于,从聚合组发送环路检测报文时,在所述环路检测报文的源端口字段中填充所述聚合组的端口号。
10.如权利要求9所述的方法,其特征在于,所述环路检测报文的二层报文头中封装以下内容目的MAC地址、源MAC地址、标签 (Qtag)和报文类型;在所述环路检测报文的数据中封装以下字段长度、桥MAC、源端口。
11.一种环路检测装置,其特征在于,所述装置包括报文发送模块,以及环路检测模块,其中,所述报文发送模块用于,从聚合组发送环路检测报文时,在所述环路检测报文的源端口字段中填充所述聚合组的端口号,并将所述环路检测报文广播发送至与所述聚合组相连接的所有端口;所述环路检测模块用于,从本接收端口接收到环路检测报文时,根据接收到的所述环路检测报文判断是否存在环路。
12.如权利要求11所述的装置,其特征在于,所述环路检测模块用于,按照以下方式判断是否存在环路根据所述环路检测报文中的源端口字段识别出所述环路检测报文的发送端口属于聚合组时,则判断所述发送端口与本接收端口是否属于同一个聚合组,如果不属于同一个聚合组,则所述接收端口通过比较所述环路检测报文中的源MAC地址是否与本接收端口的 MAC地址一致,判断是否存在环路。
13.如权利要求12所述的装置,其特征在于,所述环路检测模块还用于,在识别出所述环路检测报文的发送端口属于聚合组后,如果判断出所述发送端口与本接收端口属于同一个聚合组,则判定不存在环路。
14.如权利要求12或13所述的装置,其特征在于,所述环路检测模块用于,在识别出所述环路检测报文的发送端口属于聚合组后,按照以下方式判断所述发送端口与本接收端口是否属于同一个聚合组如果本接收端口不属于聚合组,则直接判定所述发送端口与本接收端口不属于同一个聚合组;如果本接收端口属于聚合组,则比较所述源端口字段中的聚合组的端口号与本接收端口所属的聚合组的端口号是否一致,如果一致,则判定所述发送端口与本接收端口属于同一个聚合组;如果不一致,则判定所述发送端口与本接收端口不属于同一个聚合组。
15.如权利要求11、12或13所述的装置,其特征在于,所述报文发送模块还用于,从聚合组发送所述环路检测报文之前,获取所述聚合组内的公共激活虚拟局域网(vlan)列表,其中所述公共激活vlan列表中包含所述聚合组内各物理端口下激活的vlan的交集;以及,为所述公共激活vlan列表中的每个激活的vlan分别构造对应的环路检测报文,并在对应的环路检测报文中携带相应的激活的vlan。
16.如权利要求15所述的装置,其特征在于,所述环路检测模块还用于,如果本接收端口属于聚合组,且根据接收到的所述环路检测报文判定本接收端口所属的聚合组内激活的vlan存在环路时,则对存在环路的所述 vlan进行阻塞处理或者进行记录。
17.如权利要求16所述的装置,其特征在于,所述报文发送模块还用于,从所述聚合组发送所述环路检测报文时,查看本聚合组内各物理端口下激活的vlan是否已经被阻塞或者存在于环路记录中,对于已经被阻塞的或者存在于环路记录中的vlan,则不再发送与所述vlan对应的环路检测报文。
18.如权利要求11、12或13所述的装置,其特征在于,所述装置还包括有效性检验模块,所述有效性检验模块用于,从本接收端口接收到所述环路检测报文时,首先对接收到的所述环路检测报文的有效性进行判断,在判定所述环路检测报文有效之后,再发送给所述环路检测模块。
19.一种环路检测报文封装装置,其特征在于,所述装置包括报文构造模块,所述报文构造模块用于,从聚合组发送环路检测报文时,在所述环路检测报文的源端口字段中填充所述聚合组的端口号。
20.如权利要求19所述的装置,其特征在于,所述报文构造模块用于,在所述环路检测报文的二层报文头中封装以下内容目的 MAC地址、源MAC地址、标签Oltag)和报文类型;在所述环路检测报文的数据中封装以下字段长度、桥MAC、源端口。
全文摘要
本发明公开了一种环路检测报文封装方法、环路检测方法及装置,其中环路检测方法包括从聚合组发送环路检测报文时,在环路检测报文的源端口字段中填充聚合组的端口号;将环路检测报文广播发送至与聚合组相连接的所有端口;接收到环路检测报文的接收端口,根据环路检测报文判断是否存在环路。本发明能够在聚合端口上正确检测出环路,从而避免了由于存在环路而产生的一系列问题,进而能够提高网络带宽的利用率。
文档编号H04L12/56GK102420721SQ20111039116
公开日2012年4月18日 申请日期2011年11月30日 优先权日2011年11月30日
发明者石凤 申请人:瑞斯康达科技发展股份有限公司