基于链路层发现协议监控环形网络的方法和装置的制作方法

文档序号:7857612阅读:240来源:国知局
专利名称:基于链路层发现协议监控环形网络的方法和装置的制作方法
技术领域
本发明涉及到通信技术领域,特别涉及到一种基于链路层发现协议监控环形网络的方法和装置。
背景技术
随着IP业务的高速发展,以及以太网在城域网中的广泛应用,二层网络的规模越来越大,使得以太网的性能及可靠性越来越被关注。在交换式的网络中,提高网络可靠性的主要手段是部署一些冗余链路,组建以太环网,如图I所示,这样,当主链路失效时可以使用冗余链路。而环网风暴是环形拓扑的致命因素,环形网络通常采用生成树协议在环形链路上自动设置禁用端口,从逻辑上拆除环路,避免风暴。需要重视的是,无保护的情况下意外成环,或保护协议(生成树协议等)失效所形成的环网风暴,会造成网络带宽严重消耗;而环网中保护协议计算错误导致的全链路禁用,会导致网络瘫痪。因此,环形网络发现及管理 至关重要。LLDP (Linklayerdiscoveryprotocol,链路层发现协议)是一种链路层发现方式,可以将本端设备的的主要能力、管理地址、设备标识、接口标识等信息封装在LLDP报文中,周期性发布给自己的邻居,邻居收到这些信息后将其以邻居条目的形式存放到邻居列表中,以供网络管理系统通过LLDPMIB (ManagementInformationBase,管理信息库)查询,并判断链路的通信状况,网络管理系统还可以综合管理域内的各设备邻居条目,绘制网络拓扑图。环形网络中,可以启用LLDP协议,以了解网络拓扑情况。但是,由于生成树禁用端口只允许生成树协议中的BPDU (BridgeProtocolDataUnit,网桥协议数据单元)报文出入,所以无法通过LLDP报文发现冗余链路上的邻居情况,此时,网络管理系统输出的网络拓扑仅是逻辑拓扑(主链路拓扑),不能反映网络真实物理连接情况,也不能与物理上非环路的拓扑相区分,不利于发现环路,网络监管效果不理想。另外,即使环形网络中,允许LLDP报文出入禁用端口,以发现冗余链路,也会存在LLDP报文环网风暴的问题,不能满足环形网络的高可靠性需求。

发明内容
本发明的主要目的为提供一种基于链路层发现协议监控环形网络的方法和装置,旨在便于对环形网络的监控和管理,并且不会引起环网风暴,从而能够满足环形网络的可
靠性需求。本发明提供一种基于链路层发现协议监控环形网络的方法,包括接收链路层发现协议LLDP报文,根据所述LLDP报文的报文特征判断对所述LLDP报文执行的动作;当判断出对所述LLDP报文执行转发动作时,判断所述LLDP报文是否引起环网风暴,若是,丢弃所述LLDP报文,若否,转发所述LLDP报文;
当判断出对所述LLDP报文执行上报动作时,将所述LLDP报文上送至处理器,在邻居列表中处理所述LLDP报文对应的环形网络链路邻居设备的邻居条目。优选地,在执行所述接收LLDP报文,并根据所述LLDP报文的报文特征判断对所述LLDP报文执行的动作之前,还包括 设备初始化,并根据所述LLDP报文的协议类型,设置包含LLDP报文的匹配特征和对所述LLDP报文执行的动作的访问控制列表;所述访问控制列表包括用于判断报文执行动作的动作访问控制列表,以及用于判断是否引起环网风暴的环网风暴访问控制列表。优选地,在执行所述将LLDP报文上送至处理器,更新邻居列表中的邻居条目之后,还包括根据所述所发现的环形网络链路邻居设备的邻居条目,输出主链路和冗余链路的环形网络拓扑图。
优选地,所述根据LLDP报文的报文特征判断对所述LLDP报文执行的动作包括根据所接收到的所述LLDP报文的目的媒体接入控制MAC地址,以及所述LLDP报文的协议类型,判断所述LLDP报文的报文特征与相应的所述动作访问控制列表中的LLDP报文的匹配特征是否一致;若是,则根据所述动作访问控制列表中的对所述LLDP报文执行的动作,确定对所接收到的所述LLDP报文执行的动作。优选地,所述当对LLDP报文执行转发动作时,判断所述LLDP报文是否引起环网风暴,若是,丢弃所述LLDP报文,若否,转发所述LLDP报文包括根据所接收到的所述LLDP报文的目的媒体接入控制MAC地址,以及所述LLDP报文的协议类型,判断所述LLDP报文的报文特征与相应的所述环网风暴访问控制列表中的LLDP报文的匹配特征是否一致;若是,则所述LLDP报文引起环网风暴,丢弃所述LLDP报文;若否,则转发所述LLDP报文。优选地,所述当对LLDP报文执行上报动作时,将所述LLDP报文上送至处理器,在邻居列表中处理所述LLDP报文对应的环形网络链路邻居设备的邻居条目包括当所述LLDP报文上送至处理器后,根据所述LLDP报文的类型,获取所述LLDP报文对应的环形网络链路邻居设备的邻居列表;提取所述LLDP报文中的设备标识和设备端口标识;在所述邻居列表中查找是否存在所述设备标识和设备端口标识对应的邻居条目;若存在所述邻居条目,则根据所述设备标识和设备端口标识的信息更新所述邻居条目中的信息;若不存在所述邻居条目,则新建一邻居条目,将所述设备标识和设备端口标识的信息存储在所述新建的邻居条目中。本发明还提供一种基于链路层发现协议监控环形网络的装置,包括接收模块,用于接收链路层发现协议LLDP报文;判断模块,用于根据所述LLDP报文的报文特征判断对所述LLDP报文执行的动作;第一处理模块,用于当判断出对所述LLDP报文执行转发动作时,判断所述LLDP报文是否引起环网风暴,若是,丢弃所述LLDP报文,若否,转发所述LLDP报文;第二处理模块,用于当判断出对所述LLDP报文执行上报动作时,将所述LLDP报文上送至处理器,在邻居列表中处理所述LLDP报文对应的环形网络链路邻居设备的邻居条目。优选地,基于链路层发现协议监控环形网络的装置还包括初始化及设置模块,用于设备初始化,并根据所述LLDP报文的协议类型,设置包含LLDP报文的匹配特征和对所述LLDP报文执行的动 作的访问控制列表;所述访问控制列表包括用于判断报文执行动作的动作访问控制列表,以及用于判断是否引起环网风暴的环网风暴访问控制列表。优选地,基于链路层发现协议监控环形网络的装置还包括拓扑输出模块,用于根据所述所发现的环形网络链路邻居设备的邻居条目,输出主链路和冗余链路的环形网络拓扑图。优选地,所述判断模块包括第一判断单元,用于根据所接收到的所述LLDP报文的目的媒体接入控制MAC地址,以及所述LLDP报文的协议类型,判断所述LLDP报文的报文特征与相应的所述动作访问控制列表中的LLDP报文的匹配特征是否一致;确定单元,用于若是,则根据所述动作访问控制列表中的对所述LLDP报文执行的动作,确定对所接收到的所述LLDP报文执行的动作。优选地,所述第一处理模块包括第二判断单元,用于根据所接收到的所述LLDP报文的目的媒体接入控制MAC地址,以及所述LLDP报文的协议类型,判断所述LLDP报文的报文特征与相应的所述环网风暴访问控制列表中的LLDP报文的匹配特征是否一致;丢弃单元,用于若是,则所述LLDP报文引起环网风暴,丢弃所述LLDP报文;转发单元,用于若否,则转发所述LLDP报文。优选地,所述第二处理模块包括获取单元,用于当所述LLDP报文上送至处理器后,根据所述LLDP报文的类型,获取所述LLDP报文对应的环形网络链路邻居设备的邻居列表;提取单元,用于提取所述LLDP报文中的设备标识和设备端口标识;查找单元,用于在所述邻居列表中查找是否存在所述设备标识和设备端口标识对应的邻居条目;更新单元,用于若存在所述邻居条目,则根据所述设备标识和设备端口标识的信息更新所述邻居条目中的信息;新建单元,用于若不存在所述邻居条目,则新建一邻居条目,将所述设备标识和设备端口标识的信息存储在所述新建的邻居条目中。本发明通过在接收到链路层发现协议LLDP报文后,根据该LLDP报文的报文特征判断需要对其执行的动作;当需要对LLDP报文执行转发动作时,进一步判断该LLDP报文是否引起环网风暴,若是,丢弃LLDP报文,若否,转发LLDP报文;当需要对LLDP报文执行上报动作时,并在邻居列表中处理所述LLDP报文对应的环形网络链路邻居设备的邻居条目,从而实现环形网络链路上邻居设备的发现。通过这种方法实现环形网络的发现及控制,使得对环形网络的监控和管理更加方便,并且不会引起环网风暴,从而能够满足环形网络的可
靠性需求。


图I为本发明基于链路层发现协议监控环形网络的方法一实施例的流程示意图;图2为本发明基于链路层发现协议监控环形网络的方法又一实施例的流程示意图;图3为本发明基于链路层发现协议监控环形网络的方法中判断需要对LLDP报文执行的动作的流程示意·
图4为本发明基于链路层发现协议监控环形网络的方法中判断LLDP报文是否引·起环网风暴的流程示意图;图5为本发明基于链路层发现协议监控环形网络的方法中将LLDP报文上送至处理器的流程示意图;图6为本发明基于链路层发现协议监控环形网络的方法另一实施例的流程示意图;图7为本发明基于链路层发现协议监控环形网络的方法中环形网络的拓扑结构示意图;图8为本发明基于链路层发现协议监控环形网络的方法中输出主链路和冗余链路的环形网络拓扑图;图9为本发明基于链路层发现协议监控环形网络的装置一实施例的结构示意图;图10为本发明基于链路层发现协议监控环形网络的装置又一实施例的结构示意图;图11为本发明基于链路层发现协议监控环形网络的装置中判断模块的结构示意图;图12为本发明基于链路层发现协议监控环形网络的装置中第一处理模块的结构示意图;图13为本发明基于链路层发现协议监控环形网络的装置中第二处理模块的结构示意图;图14为本发明基于链路层发现协议监控环形网络的装置另一实施例的结构示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施例方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明提供一种基于链路层发现协议监控环形网络的方法,允许LLDP报文穿越禁用端口,从而在主链路和冗余链路分别传输LLDP报文;为避免LLDP报文在冗余链路上传输引起环网风暴,在接收到LLDP报文时进行环网风暴检查,如果会引起风暴,则丢弃报文;如果LLDP报文能够上送到处理器,根据LLDP报文更新对应LLDP实例的邻居列表中的对应邻居条目,实现主链路和冗余链路邻居发现;网络管理系统通过LLDPMIB访问管理域内所有设备的邻居列表,获取环形网络物理拓扑。参照图1,图I为本发明基于链路层发现协议监控环形网络的方法一实施例的流程不意图。本实施例所提供的基于链路层发现协议监控环形网络的方法,包括步骤S10,接收链路层发现协议LLDP报文;步骤S20,根据LLDP报文的报文特征判断对LLDP报文执行的动作;当判断出对LLDP报文执行上报动作时,执行步骤30 ;当判断出对LLDP报文执行转发动作时,执行步骤S40 ;步骤S30,判断LLDP报文是否引起环网风暴,若是,执行步骤S31 ;若否,执行步骤S32 ;
步骤S31,丢弃LLDP报文;步骤S32,转发LLDP报文;步骤S40,将LLDP报文上送至处理器,在邻居列表中处理所述LLDP报文对应的环形网络链路邻居设备的邻居条目。在本实施例中,通过环形网络采用生成树协议在环形链路上自动设置的禁用端口和其余正常工作的转发端口接收LLDP报文;当处于以太网系统中的某一个节点的收包端口接收到LLDP报文后,根据所接收到的LLDP报文的唯一可以标识该LLDP报文的报文特征,判断对该LLDP报文执行的动作,即判断此时对该LLDP报文执行上报动作,还是对其进行转发动作。当根据LLDP报文的报文特征判断出对LLDP报文进行转发动作时,首先要进行环网风暴检查,即判断该LLDP报文是否引起环形网络的环网风暴,若是,则对该LLDP报文作丢弃处理,若否,则将该LLDP报文进行转发;而当判断出对该LLDP报文进行上报动作时,则将其上送至处理器,并在该节点的邻居列表中,将该LLDP报文所对应的环形网络链路邻居设备的邻居条目进行处理,至此,该邻居条目所对应的邻居设备即为所发现的该节点在环形网络链路上的邻居设备。本发明实施例,通过在接收到链路层发现协议LLDP报文后,根据该LLDP报文的报文特征判断对其执行的动作;当对LLDP报文执行转发动作时,进一步判断该LLDP报文是否引起环网风暴,若是,丢弃LLDP报文,若否,转发LLDP报文;当对LLDP报文执行上报动作时,并在邻居列表中处理所述LLDP报文对应的环形网络链路邻居设备的邻居条目,从而实现环形网络链路上邻居设备的发现。通过这种方法实现环形网络的发现及控制,使得对环形网络的监控和管理更加方便,并且不会引起环网风暴,从而能够满足环形网络的可靠性需求。参照图2,图2为本发明基于链路层发现协议监控环形网络的方法又一实施例的流程示意图。基于上述实施例,在执行步骤SlO之前,本发明基于链路层发现协议监控环形网络的方法还包括步骤S00,设备初始化,并根据LLDP报文的协议类型,设置包含LLDP报文的匹配特征和对LLDP报文执行的动作的访问控制列表。在本实施例中,在通过禁用端口和转发端口接收LLDP报文之前,对设备进行初始化,并且根据LLDP报文的协议类型,设置底层硬件的访问控制列表ACL,该访问控制列表ACL中包含LLDP报文的匹配特征;即设置包括用于判断报文执行动作的动作ACL,以及用于判断是否引起环网风暴的环网风暴ACL。动作ACL中包含了匹配关系、条件和查询语句,只有在接收到的LLDP报文的报文特征与ACL中设置的LLDP报文匹配特征一致时,对LLDP报文才能执行指定的动作,因此将ACL中LLDP报文的匹配特征设置为与LLDP报文的特征相一致。设置动作ACL的过程主要包括两个步骤一、将基于LLDP协议的LLDP报文的报文特征传递给动作ACL,根据报文特征设置动作ACL中的LLDP报文的匹配特征,例如,用于判断LLDP报文执行动作的动作ACL1,其中LLDP报文的匹配特征便可以设置为LLDP报文的以太网协议号为0x88CC,目的MAC地址为0x0180-C200-000E,收包端口是否属于所有端口类型,当直连邻居收到这类LLDP报文后,不再转发该报文,而直接上送至处理器进行处理;
二、设置动作ACL中的报文匹配动作,例如,如果端口入方向上的LLDP报文的报文特征满足动作ACLl中的报文匹配规则,则将报文上送至处理器进行处理;如果端口入方向上的LLDP报文的报文特征不满足动作ACLl中的报文匹配规则,则不做响应。端口的入方向为端口接收报文的方向;在端口的出方向上,即端口发送报文的方向,不受动作ACLl的控制。如LLDP报文的报文特征不满足动作ACLl中的报文匹配规则,还要设置用于判断报文执行动作的动作ACL2和动作ACL3。在动作ACL2中,LLDP报文的匹配特征可以设置为LLDP报文的以太网协议号为0x88CC,目的MAC地址为0x0180-C200_0003,收包端口是否属于所有端口类型等。这种类型的LLDP报文用于跨过TPMR桥设备,发现与本设备邻近的非TPMR桥设备,本实施例中,非TPMR桥设备指包含C-VLAN组件(支持识别、插入、移除客户VLAN标签)或S-VLAN组件(支持识别、插入、移除服务VLAN标签)的桥设备。当TPMR桥设备端口上收到这种LLDP报文后,不将LLDP报文上送处理器进行处理,而是在端口所在的VLAN内转发该LLDP报文,而非TPMR桥设备端口上收到这种LLDP报文后,不转发该LLDP报文,而是将其上送处理器进行处理。在动作ACL3中,LLDP报文的匹配特征可以设置为LLDP报文的以太网协议号为0x88CC,目的MAC地址为0x0180-C200-0000,收包端口是否属于所有端口类型等。这种类型的LLDP报文,用于跨过非C-VLAN组件,发现与本设备邻近的Customer桥设备(含C-VLAN组件的桥设备)。当非C-VLAN组件桥设备端口上收到这种LLDP报文后,不将其上送处理器处理,而是在端口所在VLAN内转发该LLDP报文;而C-VLAN组件桥设备端口收到该LLDP报文后,不进行转发,而是将其上送处理器处理。此外,设置用于环网风暴检查的环网风暴ACL4和环网风暴ACL5。该环网风暴ACL4和环网风暴ACL5中可以包括LLDP报文的匹配特征。在环网风暴ACL4中,LLDP报文的匹配特征可以设置为=LLDP报文的以太网协议号为0x88CC,目的MAC地址为0x0180-C200-0003,源MAC地址是否与本设备MAC地址相同,收包端口是否属于所有端口类型等;而在环网风暴ACL5中,LLDP报文的匹配特征可以设置为LLDP报文的以太网协议号为0x88CC,目的MAC地址为0x0180-C200-0000,源MAC地址是否与本设备MAC地址相同,收包端口是否属于所有端口类型等。
在对设备进行初始化的同时,设置包含LLDP报文的匹配特征的用于判断报文执行动作的动作访问控制列表ACL,以及用于判断是否引起环网风暴的环网风暴访问控制列表ACL。当接收到LLDP报文后,判断其报文特征与ACL中的LLDP报文匹配特征的一致性,并根据判断结果进一步判断对LLDP报文执行的动作。这样,就能够更方便对环形网络进行监控和管理。参照图3,图3为本发明基于链路层发现协议监控环形网络的方法中判断对LLDP报文执行的动作的流程示意图。在本发明基于链路层发现协议监控环形网络的方 法一实施例的基础上,步骤S20包括步骤S21,根据所接收到的LLDP报文的目的媒体接入控制MAC地址,以及LLDP报文的协议类型,判断LLDP报文的报文特征与动作访问控制列表中的LLDP报文的匹配特征是否一致;若是,执行步骤S22;步骤S22,根据动作访问控制列表中的对LLDP报文执行的动作,确定对所接收到的LLDP报文执行的动作。在本实施例中,当接收到LLDP报文后,首先根据LLDP报文的目的媒体接入控制MAC地址,以及LLDP报文的协议类型,将该LLDP报文的报文特征与动作ACLl中LLDP报文的匹配特征进行对比,判断LLDP报文的报文特征与匹配特征是否一致。动作ACLl中的匹配特征为LLDP报文的以太网协议号是否为0x88CC,目的MAC地址是否为0x0180-C200-000E,收包端口是否属于所有端口类型等,而所有端口类型包括禁用端口、转发端口等。如接收到的LLDP报文的报文特征与动作ACLl中的LLDP报文的匹配特征一致,则进一步确定该LLDP报文是否为用于发现直连邻居的LLDP报文,当LLDP报文为这种类型时,不管设备为何种桥角色,都应该执行动作ACLl中的动作,即上送处理器进行处理。由于动作ACLl匹配的是所有端口类型,因此,动作ACLl动作对禁用端口有效,即实现LLDP报文穿越禁用端口功能。如接收到的LLDP报文的报文特征与动作ACLl中的LLDP报文的匹配特征不一致,则将该LLDP报文的报文特征与动作ACL2中LLDP报文的匹配特征进行对比,判断LLDP报文的报文特征与匹配特征是否一致。动作ACL2中的匹配特征为LLDP报文的以太网协议号是否为0x88CC,目的MAC地址是否为0x0180-C200-0003,收包端口是否属于所有端口类型等。如接收到的LLDP报文的报文特征与动作ACL2中的LLDP报文的匹配特征一致,则进一步确定该LLDP报文是否为用于跨设备发现非TPMR桥设备邻居的LLDP报文,并结合设备为何种桥角色,判断对LLDP报文执行的动作。如果桥设备的角色为非TPMR桥设备,需要执行将LLDP报文上送处理器进行处理的动作,如不是,则需要执行转发该LLDP报文的动作。如接收到的LLDP报文的报文特征与动作ACL2中的LLDP报文的匹配特征不一致,则将该LLDP报文的报文特征与动作ACL3中LLDP报文的匹配特征进行对比,判断LLDP报文的报文特征与匹配特征是否一致。动作ACL3中的匹配特征为LLDP报文的以太网协议号是否为0x88CC,目的MAC地址是否为0x0180-C200-0000,收包端口是否属于所有端口类型等。如接收到的LLDP报文的报文特征与动作ACL3中的LLDP报文的匹配特征一致,则进一步确定该LLDP报文是否为用于跨设备发现Customer桥设备邻居的LLDP报文,并结合设备为何种桥角色,判断需要对LLDP报文执行的动作。如果桥设备的角色为Customer桥设备,需要执行将LLDP报文上送处理器进行处理的动作,如不是,则需要执行转发该LLDP报文的动作。根据接收到LLDP报文的目的媒体接入控制MAC地址,将该LLDP报文的报文特征与动作ACL中的LLDP报文的匹配特征进行对比;若一致,根据相应的动作ACL中的对LLDP报文执行的动作,进一步确定对所接收到的LLDP报文执行的动作是上报动作还是转发动作。通过这种方法判断对LLDP报文执行的动作,使得判断更为准确。参照图4,图4为本发明基于链路层发现协议监控环形网络的方法中判断LLDP报文是否引起环网风暴的流程示意图。在本发明基于链路层发现协议监控环形网络的方法一实施例的基础上,步骤S30 包括步骤S31,根据所接收到的LLDP报文的目的媒体接入控制MAC地址,以及LLDP报 文的协议类型,判断LLDP报文的报文特征与环网风暴访问控制列表中的LLDP报文的匹配特征是否一致;若是,则LLDP报文引起环网风暴,执行步骤S32 ;若否,则执行步骤S33 ;步骤S32,丢弃LLDP报文;步骤S33,转发LLDP报文。在本实施例中,当根据LLDP报文的报文特征判断对LLDP执行转发动作时,首先要进行环网风暴检查,即判断该LLDP报文是否引起环形网络的环网风暴。即根据LLDP报文的协议类型,将接收到的LLDP报文的报文特征与环网风暴ACL4中的LLDP报文匹配特征进行对比,判断是否一致。环网风暴ACL4中的LLDP报文匹配特征为LLDP报文的以太网协议号是否为0x88CC,目的MAC地址是否为0x0180-C200-0003,源MAC地址是否与本设备MAC地址相同,收包端口是否属于所有端口类型等。如判断出接收到的LLDP报文的报文特征与环网风暴ACL4中的LLDP报文匹配特征一致,则进一步确定已接收的报文是否为用于跨设备发现非TPMR桥设备邻居的LLDP报文,而且该LLDP报文是否由本设备发出,在环网中被转发一圈之后,回到了本设备,如是,则说明LLDP报文引起环网风暴,对该LLDP报文做丢弃处理,如不是,则说明LLDP报文没有引起环网风暴,对该LLDP报文做转发处理。如果接收到的LLDP报文的报文特征与环网风暴ACL4中的LLDP报文匹配特征不一致,则判断该LLDP报文的报文特征与环网风暴ACL5中的LLDP报文匹配特征是否一致。如判断出接收到的LLDP报文的报文特征与环网风暴ACL5中的LLDP报文匹配特征一致,则进一步确定接收到的LLDP报文是否为用于跨设备发现Customer设备邻居的LLDP报文,而且该LLDP报文是否由本设备发出,在环网中被转发一圈之后,回到了本设备,如是,则说明LLDP报文引起环网风暴,对该LLDP报文做丢弃处理,如不是,则说明LLDP报文没有引起环网风暴,对该LLDP报文做转发处理。当判断出对LLDP报文执行转发的动作后,根据所接收到的LLDP报文的目的媒体接入控制MAC地址,对该LLDP报文进行环网风暴检查,若该LLDP报文引起环网风暴,则对其做丢弃处理;而若该LLDP报文不引起环网风暴,则将其转发。这样,便进一步保证了不会引起环网风暴,从而能够满足环形网络的可靠性需求。参照图5,图5为本发明基于链路层发现协议监控环形网络的方法中将LLDP报文上送至处理器的流程示意图。在本发明基于链路层发现协议监控环形网络的方法一实施例的基础上,步骤S40包括
步骤S41,当LLDP报文上送至处理器后,根据LLDP报文的类型,获取LLDP报文对应的环形网络链路邻居设备的邻居列表;步骤S42,提取LLDP报文中的设备标识和设备端口标识;步骤S43,在邻居列表中查找是否存在设备标识和设备端口标识对应的邻居条目;若存在邻居条目,则执行步骤S44 ;若不存在邻居条目,则执行步骤S45 ;步骤S44,根据设备标识和设备端口标识的信息更新邻居条目中的信息;步骤S45,新建一邻居条目,将设备标识和设备端口标识的信息存储在新建的邻居条目中。在本实施例中,TLV (Type, Length, Value,类型、长度、值)是组成LLDP报文的单元,每个TLV都代表一个信息。ChassisIDTLV中的ChassisID是设备的唯一性标识,一般 采用设备MAC地址作为ChassisID ;PortIDTLV中的PortID是设备端口的唯一性标识,一般采用端口名称作为Port ID。结合ChassisID和PortID,可以唯一标识一个LLDP邻居,其他TLV则包含了 LLDP邻居的其他信息,例如,SystemNameTLV包含了 LLDP邻居系统域名信息,SystemCapabilitiesTLV包含了 LLDP邻居能力信息等。另外,本地端口和LLDP报文类型唯一标识一个LLDP实例,每个LLDP实例维护一张邻居列表。每张邻居列表以邻居设备的设备标识ChassisID和邻居设备的设备端口标识PortID为二维索引,记录LLDP报文中携带的邻居信息。当根据LLDP报文的报文特征判断对LLDP执行上报动作,并将LLDP报文上送至处理器后,首先根据收包端口和LLDP报文的类型,获取LLDP报文对应的邻居设备的邻居列表;然后,从LLDP报文中的ChassisIDTLV中提取出邻居设备的设备标识ChassisID,从PortIDTLV中提取出邻居设备的设备端口标识PortID ;以ChassisID和PortID为二维索弓I,在邻居列表中查找是否存在ChassisID和PortID对应的邻居条目,该邻居条目中,记录了最近一次从对应LLDP邻居设备上发送过来的LLDP报文,以及其所携带的所有TLV的信肩、O如在邻居列表中已经存在相应的邻居条目,则根据本次所接收到的LLDP报文的ChassisID和PortID的信息,更新该邻居条目中相应的信息;而如在邻居列表中不存在相应的邻居条目,则新建一条邻居条目,并将本次所接收到的LLDP报文的ChassisID和PortID的信息,存储在该新建的邻居条目中。当判断出对LLDP报文执行上送至处理器的动作后,根据LLDP报文的类型,获取LLDP报文对应的邻居设备的邻居列表;并提取LLDP报文中的邻居设备的ChassisID和PortID ;在邻居列表中查找是否存在ChassisID和PortID对应的邻居条目;若存在,则根据ChassisID和PortID的信息更新邻居条目中的信息;若不存在,则新建一邻居条目,将设备标识和设备端口标识的信息存储在新建的邻居条目中。采用这种方法,更加方便并且快速地实现了对需要上送至处理器的LLDP报文进行处理。参照图6,图6为本发明基于链路层发现协议监控环形网络的方法另一实施例的流程示意图。在本发明基于链路层发现协议监控环形网络的方法一实施例的基础上,在执行步骤S40之后,该方法还包括步骤S50,根据所发现的环形网络链路邻居设备的邻居条目,输出主链路和冗余链路的环形网络拓扑图。在本实施例中,当对接收到的LLDP报文的执行动作进行判断,根据判断结果对该LLDP报文进行上报处理器,并在邻居列表中处理所述LLDP报文对应的环形网络链路邻居设备的邻居条目后,根据该环形网络链路邻居设备的邻居条目,输出主链路和冗余链路的环形网络拓扑图。参照图7,图7为本发明基于链路层发现协议监控环形网络的方法中环形网络的拓扑结构示意图。以图7中所示出的以太网的环形网络为例,该以太网环形网络系统包括第一节点
501、第二节点502、第三节点503、第四节点504、第五节点505、第六节点506及第七节点507。其中,第一节点501可以是组播业务服务器,第六节点506可以是客户端,第七节点507可以是网络管理系统服务器,第二至第四节点都在第七节点507的管理域内。第二节点
502、第三节点503、第四节点504和第五节点505可以是路由器或交换机,即都是桥设备,其中第二节点502、第五节点505的桥角色为Customer桥设备,第三节点503的桥角色为TPMR桥设备,第四节点504为S-VLAN组件设备,该设备是非TPMR桥设备,也是非Customer桥设备。第二节点502为生成树协议根桥,且第五节点505的右侧端口为禁用端口 ;可以将环路中与组播业务服务器相连的节点设置为根桥,即主节点。本实施例中以第二节点502是主节点为例,第三节点503、第四节点504及第五节点505均为从节点。该链路上可以有多个节点,不局限于图7中所示的五个节点。禁用端口可以位于任一节点上,可以是上行端口也可以是下行端口。上行端口是接收组播业务服务器方发送的报文或向组播业务服务器发送报文的方向,下行端口是与上行端口相反的方向。本实施例中以禁用端口是上行端口,且位于第五节点505右侧链路为例。开启禁用端口,是指在禁用端口所在的节点,即在第五节点505上开启LLDP报文穿越该禁用端口的功能。各设备上远离禁用端口一侧的链路端口为第一端口,靠近禁用端口一侧的链路端口为第二端口,以第二节点502为例,左侧端口为第一端口,右侧端口为第二端口。本实施例中的LLDP报文类型根据报文目的MAC地址分类,可以是0x0180-C200-000E,用于发现直连邻居,从而获得环路上各跳桥设备组成的环形网络物理拓扑图;也可以是0x0180-C200-0003,用于跨设备发现非TPMR桥设备邻居,获得环路上非TPMR桥设备构成的环形网络逻辑拓扑图;也可以是0x0180-C200-0000,用于跨设备发现Customer桥设备邻居,获得环路上Customer桥设备构成的环形网络逻辑拓扑图。在运行生成树协议的以太网环形网络中,LLDP报文无法穿越禁用端口,即三种类型LLDP报文均无法穿越禁用端口,因此将第五节点505上的禁用端口开启,使LLDP报文可以穿越该禁用端口。参照图8,图8为本发明基于链路层发现协议监控环形网络的方法中输出主链路和冗余链路的环形网络拓扑图。本实施例中,以用于跨设备发现Customer桥设备邻居的LLDP报文为例,Customer桥设备的环形网络拓扑发现过程如下第二节点502的第一端口,以及用于跨设备发现Customer桥设备邻居的LLDP报文类型,二者对应的LLDP实例周期性向主链路发送LLDP报文,该LLDP报文以太网类型为0x88CC,报文目的MAC地址为0x0180-C200-0000,报文中ChassisIDTLV中所填充的ChassisID为第二节点502的设备的MAC地址,报文中PortIDTLV中所填充的PortID为第二节点502的第一端口的名称。当LLDP报文经由主链路传输到第三节点503第二端口时,与ACL3中LLDP报文的匹配特征一致,而由于第三节点503的桥角色为TPMR桥设备,可以判断对LLDP报文执行的动作为转发。对于转发的LLDP报文,为避免环网风暴,要进行环网风暴检查,由于该LLDP报文的源MAC地址为第二节点502,与收包设备即第三节点503的设备MAC地址不一致,因此与ACL4、ACL5都不匹配,检查结果为否,即不会引起环网风暴,对LLDP报文执行转发动作,LLDP报文向第二端口所在的VLAN内除第二端口以外的所有端口转发,包括第一端口。当LLDP报文经由第三节点503第一端口沿主链路传输到第五节点505第一端口时,与ACL3中LLDP报文的匹配特征一致,而由于第五节点505的桥角色为Customer桥设备,可以判断对LLDP报文执行的动作为上送处理器,用以更新邻居条目。更新过程以第五节点505首次收到来自第二节点502的第一端口,目的MAC地址为0x0180-C200-0000的LLDP报文为例,根据收包端口即第三节点503的第一端口,以及LLDP报文的类型,即用于跨设备发现Customer桥设备邻居的LLDP报文类型,获得对应LLDP实例的邻居列表。然后从LLDP报文中的ChassisIDTLV中提取ChassisID值,即第二节点502的设备MAC地址,以及 从PortIDTLV中提取PortID值,即第二节点502的第一端口名称,以ChassisID和PortID为二维索引,在邻居列表中查找对应的邻居条目,由于是新邻居,邻居列表中并没有对应邻居条目,所以在对应邻居列表中创建一条新的邻居条目,并将本次接收到的LLDP报文的TLV信息,记录到该新增邻居条目中。至此,第五节点505的第一端口跨设备发现了主链路Customer桥设备邻居,即第二节点502的第一端口。类似的,第五节点505的第二端口可以跨设备发现冗余链路Customer桥设备邻居第二节点502的第二端口。同样,在上行方向上,第二节点502的第一端口跨设备发现了主链路Customer桥设备邻居,即第五节点505的第一端口 ;第二节点502的第二端口跨设备发现了主链路Customer桥设备邻居,即第五节点505的第二端口。第七节点507通过管理域内的所有设备的LLDPMIB,以某种顺序访问第二至五节点的邻居列表,例如,从第一节点501到第六节点506依次访问。输出管理域Customer桥设备环形网络的拓扑图。输出过程如下首先,第七节点507访问第二节点502的LLDPMIB,该MIB用于读取第二节点502的所有邻居列表。以用于发现Customer桥设备邻居的LLDP报文类型值为索引,在第二节点502的所有邻居列表中查找,由于第二节点502的桥角色为Customer桥设备,所以可以找到两条邻居条目,分别为主链路邻居条目和冗余链路邻居条目。在第二节点502的第一端口、用于发现Customer桥设备邻居的LLDP报文类型值对应的LLDP实例的邻居列表中,仅有一条主链路邻居条目,条目以邻居设备第五节点505的ChassisID和第五节点505的第一端口 PortID为二维索引,记录了第五节点505第一端口的信息。在第二节点502的第二端口、用于发现Customer桥设备邻居的LLDP报文类型值对应的LLDP实例的邻居列表中,仅有一条冗余链路邻居条目,条目以邻居设备第五节点505的ChassisID和第五节点505的第二端口 PortID为二维索引,记录了第五节点505第二端口的信息。根据上述信息,在Customer桥设备环形网络拓扑图中,绘制第二节点502和第五节点505两个节点,并绘制主链路和冗余链路两条链路,主链路为第二节点502第一端口到第五节点505第一端口的连接链路,冗余链路为为第二节点502第二端口到第五节点505第二端口的连接链路。
然后以同样方法依次访问第三至五节点的LLDPMIB。由于第三节点503、第四节点504的桥角色为非Customer桥设备,收到用于发现Customer桥设备邻居的LLDP报文后没有上送处理器,而是执行转发动作,所以在上述节点中不产生邻居条目,LLDPMIB获取的信息为空,不需要在Customer桥设备环形网络拓扑图中绘制第三节点503、第四节点504。最后访问第五节点505的LLDPMIB,由于第五节点505的桥角色为Customer桥设备,与第二节点502类似,可以获取到主链路邻居条目和冗余链路邻居条目,邻居设备为第二节点502,主链路为第五节点505的第一端口到第二节点502的第一端口的连接链路,冗余链路为第五节点505第二端口到第二节点502第二端口的连接链路。在Customer桥设备网络拓扑图中绘制的节点与链路与访问第二节点502时绘制重合。至此,最终输出如图8中所示出的Customer桥设备环形网络拓扑图。当对接收到的LLDP报文的执行动作进行判断,根据判断结果对该LLDP报文进行上报处理器进行处理,或当对其进行转发时,进行环网风暴检查,并根据检查结果做最终处理之后,根据该LLDP报文的类型,输出环形网络拓扑图,即可方便并且明了地对该输出的 环形网络拓扑图进行进一步的管理和监控。参照图9,图9为本发明基于链路层发现协议监控环形网络的装置一实施例的结构示意图。本实施例所提供的基于链路层发现协议监控环形网络的装置,包括接收模块10,用于接收链路层发现协议LLDP报文;判断模块20,用于根据LLDP报文的报文特征判断对LLDP报文执行的动作;第一处理模块30,用于当对LLDP报文执行转发动作时,判断LLDP报文是否引起环网风暴,若是,丢弃LLDP报文,若否,转发LLDP报文;第二处理模块40,用于当对LLDP报文执行上报动作时,将LLDP报文上送至处理器,在邻居列表中处理LLDP报文对应的环形网络链路邻居设备的邻居条目。在本实施例中,环形网络采用生成树协议在环形链路上自动设置的禁用端口和其余正常工作的转发端口通过接收模块10接收LLDP报文;当处于以太网系统中的某一个节点的收包端口接收到LLDP报文后,根据所接收到的LLDP报文的唯一可以标识该LLDP报文的报文特征,判断对该LLDP报文执行的动作,即判断此时对该LLDP报文执行上报动作,还是对其进行转发动作。当根据LLDP报文的报文特征判断出对LLDP报文进行转发动作时,首先要进行环网风暴检查,即通过判断模块20判断该LLDP报文是否引起环形网络的环网风暴,若是,则第一处理模块30对该LLDP报文作丢弃处理,若否,则第一处理模块30将该LLDP报文进行转发;而当判断出对该LLDP报文进行上报动作时,则第二处理模块40将其上送至处理器,并在该节点的邻居列表中,将该LLDP报文所对应的环形网络链路邻居设备的邻居条目进行处理,至此,该邻居条目所对应的邻居设备即为所发现的该节点在环形网络链路上的邻居设备。本发明实施例,通过在接收到链路层发现协议LLDP报文后,根据该LLDP报文的报文特征判断对其执行的动作;当对LLDP报文执行转发动作时,进一步判断该LLDP报文是否引起环网风暴,若是,丢弃LLDP报文,若否,转发LLDP报文;当对LLDP报文执行上报动作时,并在邻居列表中处理所述LLDP报文对应的环形网络链路邻居设备的邻居条目,从而实现环形网络链路上邻居设备的发现。通过这种方法实现环形网络的发现及控制,使得对环形网络的监控和管理更加方便,并且不会引起环网风暴,从而能够满足环形网络的可靠性需求。参照图10,图10为本发明基于链路层发现协议监控环形网络的装置又一实施例的结构示意图。在上述实施例的基础上,基于链路层发现协议监控环形网络的装置还包括
初始化及设置模块00,用于设备初始化,并根据LLDP报文的协议类型,设置包含LLDP报文的匹配特征和对LLDP报文执行的动作的访问控制列表。在本实施例中,在通过禁用端口和转发端口接收LLDP报文之前,初始化及设置模块00对设备进行初始化,并且根据LLDP报文的协议类型,同时设置底层硬件的访问控制列表ACL,该访问控制列表ACL中包含LLDP报文的匹配特征;即设置包括用于判断报文执行动作的动作ACL,以及用于判断是否引起环网风暴的环网风暴ACL。动作ACL中包含了匹配关系、条件和查询语句,只有在接收到的LLDP报文的报文特征与ACL中设置的LLDP报文匹配特征一致时,对LLDP报文才能执行指定的动作,因此将ACL中LLDP报文的匹配特征设置为与LLDP报文的特征相一致。设置动作ACL的过程主要包括两个步骤一、将基于LLDP协议的LLDP报文的报文特征传递给动作ACL,根据报文特征设置动作ACL中的LLDP报文的匹配特征,例如,用于判断LLDP报文执行动作的动作ACL1,其中LLDP报文的匹配特征便可以设置为LLDP报文的以太网协议号为0x88CC,目的MAC地址为0x0180-C200-000E,收包端口是否属于所有端口类型,当直连邻居收到这类LLDP报文后,不再轨发该报文,而直接上送至处理器进行处理;二、设置动作ACL中的报文匹配动作,例如,如果端口入方向上的LLDP报文的报文特征满足动作ACLl中的报文匹配规则,则将报文上送至处理器进行处理;如果端口入方向上的LLDP报文的报文特征不满足动作ACLl中的报文匹配规则,则不做响应。端口的入方向为端口接收报文的方向;在端口的出方向上,即端口发送报文的方向,不受动作ACLl的控制。如LLDP报文的报文特征不满足动作ACLl中的报文匹配规则,还要设置用于判断报文执行动作的动作ACL2和动作ACL3。在动作ACL2中,LLDP报文的匹配特征可以设置为LLDP报文的以太网协议号为0x88CC,目的MAC地址为0x0180-C200_0003,收包端口是否属于所有端口类型等。这种类型的LLDP报文用于跨过TPMR桥设备,发现与本设备邻近的非TPMR桥设备,本实施例中,非TPMR桥设备指包含C-VLAN组件(支持识别、插入、移除客户VLAN标签)或S-VLAN组件(支持识别、插入、移除服务VLAN标签)的桥设备。当TPMR桥设备端口上收到这种LLDP报文后,不将LLDP报文上送处理器进行处理,而是在端口所在的VLAN内转发该LLDP报文,而非TPMR桥设备端口上收到这种LLDP报文后,不转发该LLDP报文,而是将其上送处理器进行处理。在动作ACL3中,LLDP报文的匹配特征可以设置为LLDP报文的以太网协议号为0x88CC,目的MAC地址为0x0180-C200-0000,收包端口是否属于所有端口类型等。这种类型的LLDP报文,用于跨过非C-VLAN组件,发现与本设备邻近的Customer桥设备(含C-VLAN组件的桥设备)。当非C-VLAN组件桥设备端口上收到这种LLDP报文后,不将其上送处理器处理,而是在端口所在VLAN内转发该LLDP报文;而C-VLAN组件桥设备端口收到该LLDP报文后,不进行转发,而是将其上送处理器处理。此外,设置用于环网风暴检查的环网风暴ACL4和环网风暴ACL5。该环网风暴ACL4和环网风暴ACL5中可以包括LLDP报文的匹配特征。在环网风暴ACL4中,LLDP报文的匹配特征可以设置为=LLDP报文的以太网协议号为0x88CC,目的MAC地址为0x0180-C200-0003,源MAC地址是否与本设备MAC地址相同,收包端口是否属于所有端口类型等;而在环网风暴ACL5中,LLDP报文的匹配特征可以设置为LLDP报文的以太网协议号为0x88CC,目的MAC地址为0x0180-C200-0000,源MAC地址是否与本设备MAC地址相同,收包端口是否属于所有端口类型等。在对设备进行初始化的同时,设置包含LLDP报文的匹配特征的用于判断报文执行动作的动作访问控制列表ACL,以及用于判断是否引起环网风暴的环网风暴访问控制列表ACL。当接收到LLDP报文后,判断其报文特征与ACL中的LLDP报文匹配特征的一致性,并根据判断结果进一步判断对LLDP报文执行的动作。这样,就能够更方便对环形网络进行监控和管理。·参照图11,图11为本发明基于链路层发现协议监控环形网络的装置中判断模块的结构示意图。在本发明基于链路层发现协议监控环形网络的装置一实施例中,判断模块20包括第一判断单元21,用于根据所接收到的LLDP报文的目的媒体接入控制MAC地址,以及LLDP报文的协议类型,判断LLDP报文的报文特征与相应的动作访问控制列表中的LLDP报文的匹配特征是否一致;确定单兀22,用于根据动作访问控制列表中的对LLDP报文执行的动作,确定对所接收到的LLDP报文执行的动作。在本实施例中,当接收到LLDP报文后,首先通过第一判断单元21,根据LLDP报文的目的媒体接入控制MAC地址,以及LLDP报文的协议类型,将该LLDP报文的报文特征与动作ACLl中LLDP报文的匹配特征进行对比,判断LLDP报文的报文特征与匹配特征是否一致。动作ACLl中的匹配特征为LLDP报文的以太网协议号是否为0x88CC,目的MAC地址是否为0x0180-C200-000E,收包端口是否属于所有端口类型等,而所有端口类型包括禁用端口、转发端口等。如接收到的LLDP报文的报文特征与动作ACLl中的LLDP报文的匹配特征一致,则进一步通过确定单元22确定该LLDP报文是否为用于发现直连邻居的LLDP报文,当LLDP报文为这种类型时,不管设备为何种桥角色,都应该执行动作ACLl中的动作,即上送处理器进行处理。由于动作ACLl匹配的是所有端口类型,因此,动作ACLl动作对禁用端口有效,即实现LLDP报文穿越禁用端口功能。如接收到的LLDP报文的报文特征与动作ACLl中的LLDP报文的匹配特征不一致,则将该LLDP报文的报文特征与动作ACL2中LLDP报文的匹配特征进行对比,判断LLDP报文的报文特征与匹配特征是否一致。动作ACL2中的匹配特征为LLDP报文的以太网协议号是否为0x88CC,目的MAC地址是否为0x0180-C200-0003,收包端口是否属于所有端口类型等。如接收到的LLDP报文的报文特征与动作ACL2中的LLDP报文的匹配特征一致,则进一步确定该LLDP报文是否为用于跨设备发现非TPMR桥设备邻居的LLDP报文,并结合设备为何种桥角色,判断对LLDP报文执行的动作。如果桥设备的角色为非TPMR桥设备,执行将LLDP报文上送处理器进行处理的动作,如不是,则执行转发该LLDP报文的动作。如接收到的LLDP报文的报文特征与动作ACL2中的LLDP报文的匹配特征不一致,则将该LLDP报文的报文特征与动作ACL3中LLDP报文的匹配特征进行对比,判断LLDP报文的报文特征与匹配特征是否一致。动作ACL3中的匹配特征为LLDP报文的以太网协议号是否为0x88CC,目的MAC地址是否为0x0180-C200-0000,收包端口是否属于所有端口类型等。如接收到的LLDP报文的报文特征与动作ACL3中的LLDP报文的匹配特征一致,则进一步确定该LLDP报文是否为用于跨设备发现Customer桥设备邻居的LLDP报文,并结合设备为何种桥角色,判断对LLDP报文执行的动作。如果桥设备的角色为Customer桥设备,执行将LLDP报文上送处理器进行处理的动作,如不是,则执行转发该LLDP报文的动作。根据接收到LLDP报文的目的媒体接入控制MAC地址,将该LLDP报文的报文特征
与动作ACL中的LLDP报文的匹配特征进行对比;若一致,根据相应的动作ACL中的对LLDP报文执行的动作,判断对所接收到的LLDP报文执行的动作是上报动作/转发动作。通过这种方法判断需要对LLDP报文执行的动作,使得判断更为准确。参照图12,图12为本发明基于链路层发现协议监控环形网络的装置中第一处理模块的结构示意图。在本发明基于链路层发现协议监控环形网络的装置一实施例的基础上,第一处理模块30包括第二判断单元31,用于根据所接收到的LLDP报文的目的媒体接入控制MAC地址,以及LLDP报文的协议类型,判断LLDP报文的报文特征与相应的环网风暴访问控制列表中的LLDP报文的匹配特征是否一致;丢弃单元32,用于当判断出LLDP报文引起环网风暴时,丢弃LLDP报文;转发单元33,用于当判断出LLDP报文不引起环网风暴时,转发LLDP报文。在本实施例中,当根据LLDP报文的报文特征判断对LLDP执行转发动作时,首先要进行环网风暴检查,即判断该LLDP报文是否引起环形网络的环网风暴。即通过判断单元31,根据LLDP报文的协议类型,将接收到的LLDP报文的报文特征与环网风暴ACL4中的LLDP报文匹配特征进行对比,判断是否一致。环网风暴ACL4中的LLDP报文匹配特征为LLDP报文的以太网协议号是否为0x88CC,目的MAC地址是否为0x0180-C200_0003,源MAC地址是否与本设备MAC地址相同,收包端口是否属于所有端口类型等。如判断出接收到的LLDP报文的报文特征与环网风暴ACL4中的LLDP报文匹配特征一致,则进一步确定已接收的报文是否为用于跨设备发现非TPMR桥设备邻居的LLDP报文,而且该LLDP报文是否由本设备发出,在环网中被转发一圈之后,回到了本设备,如是,则说明LLDP报文引起环网风暴,丢弃单元32对该LLDP报文做丢弃处理,如不是,则说明LLDP报文没有引起环网风暴,转发单元33对该LLDP报文做转发处理。如果接收到的LLDP报文的报文特征与环网风暴ACL4中的LLDP报文匹配特征不一致,则判断该LLDP报文的报文特征与环网风暴ACL5中的LLDP报文匹配特征是否一致。如判断出接收到的LLDP报文的报文特征与环网风暴ACL5中的LLDP报文匹配特征一致,则进一步确定接收到的LLDP报文是否为用于跨设备发现Customer设备邻居的LLDP报文,而且该LLDP报文是否由本设备发出,在环网中被转发一圈之后,回到了本设备,如是,,则说明LLDP报文引起环网风暴,对该LLDP报文做丢弃处理,如不是,则说明LLDP报文没有引起环网风暴,对该LLDP报文做转发处理。当判断出对LLDP报文执行转发的动作后,根据所接收到的LLDP报文的目的媒体接入控制MAC地址,对该LLDP报文进行环网风暴检查,若该LLDP报文引起环网风暴,则对其做丢弃处理;而若该LLDP报文不引起环网风暴,则将其转发。这样,便进一步保证了不会引起环网风暴,从而能够满足环形网络的可靠性需求。参照图13,图13为本发明基于链路层发现协议监控环形网络的装置中第二处理模块的结构示意图。在本发明基于链路层发现协议监控环形网络的装置一实施例的基础上,第二处理模块40包括
获取单元41,用于当LLDP报文上送至处理器后,根据LLDP报文的类型,获取LLDP报文对应的环形网络链路邻居设备的邻居列表;提取单元42,用于提取LLDP报文中的设备标识和设备端口标识;查找单元43,用于在邻居列表中查找是否存在设备标识和设备端口标识对应的邻居条目;更新单元44,用于根据设备标识和设备端口标识的信息更新邻居条目中的信息;新建单元45,用于新建一邻居条目,将设备标识和设备端口标识的信息存储在新建的邻居条目中。在本实施例中,TLV (Type, Length, Value,类型、长度、值)是组成LLDP报文的单元,每个TLV都代表一个信息。ChassisIDTLV中的ChassisID是设备的唯一性标识,一般采用设备MAC地址作为ChassisID ;PortIDTLV中的PortID是设备端口的唯一性标识,一般采用端口名称作为Port ID。结合ChassisID和PortID,可以唯一标识一个LLDP邻居,其他TLV则包含了 LLDP邻居的其他信息,例如,SystemNameTLV包含了 LLDP邻居系统域名信息,SystemCapabilitiesTLV包含了 LLDP邻居能力信息等。另外,本地端口和LLDP报文类型唯一标识一个LLDP实例,每个LLDP实例维护一张邻居列表。每张邻居列表以邻居设备的设备标识ChassisID和邻居设备的设备端口标识PortID为二维索引,记录LLDP报文中携带的邻居信息。当根据LLDP报文的报文特征判断对LLDP执行上报动作,并将LLDP报文上送至处理器后,首先通过获取单元31,根据收包端口和LLDP报文的类型,获取LLDP报文对应的邻居设备的邻居列表;然后,通过提取单元32从LLDP报文中的ChassisIDTLV中提取出邻居设备的设备标识ChassisID,从PortIDTLV中提取出邻居设备的设备端口标识PortID ;以ChassisID和PortID为二维索引,通过查找单元33在邻居列表中查找是否存在ChassisID和PortID对应的邻居条目,该邻居条目中,记录了最近一次从对应LLDP邻居设备上发送过来的LLDP报文,以及其所携带的所有TLV的信息。如在邻居列表中已经存在相应的邻居条目,则更新单元34根据本次所接收到的LLDP报文的ChassisID和PortID的信息,更新该邻居条目中相应的信息;而如在邻居列表中不存在相应的邻居条目,则存储单元35新建一条邻居条目,并将本次所接收到的LLDP报文的ChassisID和PortID的信息,存储在该新建的邻居条目中。当判断出对LLDP报文执行上送至处理器的动作后,根据LLDP报文的类型,获取LLDP报文对应的邻居设备的邻居列表;并提取LLDP报文中的邻居设备的ChassisID和PortID ;在邻居列表中查找是否存在ChassisID和PortID对应的邻居条目;若存在,则根据ChassisID和PortID的信息更新邻居条目中的信息;若不存在,则新建一邻居条目,将设备标识和设备端口标识的信息存储在新建的邻居条目中。采用这种方法,更加方便并且快速地实现了对需要上送至处理器的LLDP报文进行处理。参照图14,图14为本发明基于链路层发现协议监控环形网络的装置另一实施例的结构示意图。在本发明基于链路层发现协议监控环形网络的装置一实施例的基础上,该装置还包括拓扑输出模块50,用于根据所发现的环形网络链路邻居设备的邻居条目,输出主链路和冗余链路的环形网络拓扑图。在本实施例中,当对接收到的LLDP报文的执行动作进行判断,根据判断结果对该 LLDP报文进行上报处理器,并在邻居列表中处理所述LLDP报文对应的环形网络链路邻居设备的邻居条目后,根据该环形网络链路邻居设备的邻居条目,通过拓扑输出模块50输出主链路和冗余链路的环形网络拓扑图。参照图7,图7为本发明基于链路层发现协议监控环形网络的方法中环形网络的拓扑结构示意图。以图7中所示出的以太网的环形网络为例,该以太网环形网络系统包括第一节点
501、第二节点502、第三节点503、第四节点504、第五节点505、第六节点506及第七节点507。其中,第一节点501可以是组播业务服务器,第六节点506可以是客户端,第七节点507可以是网络管理系统服务器,第二至第四节点都在第七节点507的管理域内。第二节点
502、第三节点503、第四节点504和第五节点505可以是路由器或交换机,即都是桥设备,其中第二节点502、第五节点505的桥角色为Customer桥设备,第三节点503的桥角色为TPMR桥设备,第四节点504为S-VLAN组件设备,该设备是非TPMR桥设备,也是非Customer桥设备。第二节点502为生成树协议根桥,且第五节点505的右侧端口为禁用端口 ;可以将环路中与组播业务服务器相连的节点设置为根桥,即主节点。本实施例中以第二节点502是主节点为例,第三节点503、第四节点504及第五节点505均为从节点。该链路上可以有多个节点,不局限于图7中所示的五个节点。禁用端口可以位于任一节点上,可以是上行端口也可以是下行端口。上行端口是接收组播业务服务器方发送的报文或向组播业务服务器发送报文的方向,下行端口是与上行端口相反的方向。本实施例中以禁用端口是上行端口,且位于第五节点505右侧链路为例。开启禁用端口,是指在禁用端口所在的节点,即在第五节点505上开启LLDP报文穿越该禁用端口的功能。各设备上远离禁用端口一侧的链路端口为第一端口,靠近禁用端口一侧的链路端口为第二端口,以第二节点502为例,左侧端口为第一端口,右侧端口为第二端口。本实施例中的LLDP报文类型根据报文目的MAC地址分类,可以是0x0180-C200-000E,用于发现直连邻居,从而获得环路上各跳桥设备组成的环形网络物理拓扑图;也可以是0x0180-C200-0003,用于跨设备发现非TPMR桥设备邻居,获得环路上非TPMR桥设备构成的环形网络逻辑拓扑图;也可以是0x0180-C200-0000,用于跨设备发现Customer桥设备邻居,获得环路上Customer桥设备构成的环形网络逻辑拓扑图。在运行生成树协议的以太网环形网络中,LLDP报文无法穿越禁用端口,即三种类型LLDP报文均无法穿越禁用端口,因此将第五节点505上的禁用端口开启,使LLDP报文可以穿越该禁用端口。参照图8,图8为本发明基于链路层发现协议监控环形网络的方法中输出主链路和冗余链路的环形网络拓扑图。本实施例中,以用于跨设备发现Customer桥设备邻居的LLDP报文为例,Customer桥设备的环形网络拓扑发现过程如下第二节点502的第一端口,以及用于跨设备发现Customer 桥设备邻居的LLDP报文类型,二者对应的LLDP实例周期性向主链路发送LLDP报文,该LLDP报文以太网类型为0x88CC,报文目的MAC地址为0x0180-C200-0000,报文中ChassisIDTLV中所填充的ChassisID为第二节点502的设备的MAC地址,报文中PortIDTLV中所填充的PortID为第二节点502的第一端口的名称。当LLDP报文经由主链路传输到第三节点503第二端口时,与ACL3中LLDP报文的匹配特征一致,而由于第三节点503的桥角色为TPMR桥设备,可以判断对LLDP报文执行的动作为转发。对于转发的LLDP报文,为避免环网风暴,要进行环网风暴检查,由于该LLDP报文的源MAC地址为第二节点502,与收包设备即第三节点503的设备MAC地址不一致,因此与ACL4、ACL5都不匹配,检查结果为否,即不会引起环网风暴,对LLDP报文执行转发动作,LLDP报文向第二端口所在的VLAN内除第二端口以外的所有端口转发,包括第一端口。当LLDP报文经由第三节点503第一端口沿主链路传输到第五节点505第一端口时,与ACL3中LLDP报文的匹配特征一致,而由于第五节点505的桥角色为Customer桥设备,可以判断对LLDP报文执行的动作为上送处理器,用以更新邻居条目。更新过程以第五节点505首次收到来自第二节点502的第一端口,目的MAC地址为0x0180-C200-0000的LLDP报文为例,根据收包端口即第三节点503的第一端口,以及LLDP报文的类型,即用于跨设备发现Customer桥设备邻居的LLDP报文类型,获得对应LLDP实例的邻居列表。然后从LLDP报文中的ChassisIDTLV中提取ChassisID值,即第二节点502的设备MAC地址,以及从PortIDTLV中提取PortID值,即第二节点502的第一端口名称,以ChassisID和PortID为二维索引,在邻居列表中查找对应的邻居条目,由于是新邻居,邻居列表中并没有对应邻居条目,所以在对应邻居列表中创建一条新的邻居条目,并将本次接收到的LLDP报文的TLV信息,记录到该新增邻居条目中。至此,第五节点505的第一端口跨设备发现了主链路Customer桥设备邻居,即第二节点502的第一端口。类似的,第五节点505的第二端口可以跨设备发现冗余链路Customer桥设备邻居第二节点502的第二端口。同样,在上行方向上,第二节点502的第一端口跨设备发现了主链路Customer桥设备邻居,即第五节点505的第一端口 ;第二节点502的第二端口跨设备发现了主链路Customer桥设备邻居,即第五节点505的第二端口。第七节点507通过管理域内的所有设备的LLDPMIB,以某种顺序访问第二至五节点的邻居列表,例如,从第一节点501到第六节点506依次访问。输出管理域Customer桥设备环形网络的拓扑图。输出过程如下首先,第七节点507访问第二节点502的LLDPMIB,该MIB用于读取第二节点502的所有邻居列表。以用于发现Customer桥设备邻居的LLDP报文类型值为索引,在第二节点502的所有邻居列表中查找,由于第二节点502的桥角色为Customer桥设备,所以可以找到两条邻居条目,分别为主链路邻居条目和冗余链路邻居条目。在第二节点502的第一端口、用于发现Customer桥设备邻居的LLDP报文类型值对应的LLDP实例的邻居列表中,仅有一条主链路邻居条目,条目以邻居设备第五节点505的ChassisID和第五节点505的第一端口 PortID为二维索引,记录了第五节点505第一端口的信息。在第二节点502的第二端口、用于发现Customer桥设备邻居的LLDP报文类型值对应的LLDP实例的邻居列表中,仅有一条冗余链路邻居条目,条目以邻居设备第五节点505的ChassisID和第五节点505的第二端口 PortID为二维索引,记录了第五节点505第二端口的信息。根据上述信息,在Customer桥设备环形网络拓扑图中,绘制第二节点502和第五节点505两个节点,并绘制主链路和冗余链路两条链路,主链路为第二节点502第一端口到第五节点505第一端口的连接链路,冗余链路为为第二节点502第二端口到第五节点505第二端口的连接链路。然后以同样方法依次访问第三至五节点的LLDPMIB。由于第三节点503、第四节点504的桥角色为非Customer桥设备,收到用于发现Customer桥设备邻居的LLDP报文后没有上送处理器,而是执行转发动作,所以在上述节点中不产生邻居条目,LLDPMIB获取的信 息为空,不需要在Customer桥设备环形网络拓扑图中绘制第三节点503、第四节点504。最后访问第五节点505的LLDPMIB,由于第五节点505的桥角色为Customer桥设备,与第二节点502类似,可以获取到主链路邻居条目和冗余链路邻居条目,邻居设备为第二节点502,主链路为第五节点505的第一端口到第二节点502的第一端口的连接链路,冗余链路为第五节点505第二端口到第二节点502第二端口的连接链路。在Customer桥设备网络拓扑图中绘制的节点与链路与访问第二节点502时绘制重合。至此,最终输出如图8中所示出的Customer桥设备环形网络拓扑图。当对接收到的LLDP报文的执行动作进行判断,根据判断结果对该LLDP报文进行上报处理器进行处理,或当需要对其进行转发时,进行环网风暴检查,并根据检查结果做最终处理之后,根据该LLDP报文的类型,输出环形网络拓扑图,即可方便并且明了地对该输出的环形网络拓扑图进行进一步的管理和监控。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。
权利要求
1.ー种基于链路层发现协议监控环形网络的方法,其特征在于,包括 接收链路层发现协议LLDP报文,根据所述LLDP报文的报文特征判断对所述LLDP报文执行的动作; 当判断出对所述LLDP报文执行转发动作时,判断所述LLDP报文是否引起环网风暴,若是,丢弃所述LLDP报文,若否,转发所述LLDP报文; 当判断出对所述LLDP报文执行上报动作吋,将所述LLDP报文上送至处理器,在邻居列表中处理所述LLDP报文对应的环形网络链路邻居设备的邻居条目。
2.如权利要求I所述的方法,其特征在干,在执行所述接收LLDP报文,井根据所述LLDP报文的报文特征判断对所述LLDP报文执行的动作之前,还包括 设备初始化,井根据所述LLDP报文的协议类型,设置包含LLDP报文的匹配特征和对所述LLDP报文执行的动作的访问控制列表;所述访问控制列表包括用于判断报文执行动作的动作访问控制列表,以及用于判断是否引起环网风暴的环网风暴访问控制列表。
3.如权利要求2所述的方法,其特征在于,在执行所述将LLDP报文上送至处理器,更新邻居列表中的邻居条目之后,还包括 根据所述所发现的环形网络链路邻居设备的邻居条目,输出主链路和冗余链路的环形网络拓扑图。
4.如权利要求I所述的方法,其特征在于,所述根据LLDP报文的报文特征判断对所述LLDP报文执行的动作包括 根据所接收到的所述LLDP报文的目的媒体接入控制MAC地址,以及所述LLDP报文的协议类型,判断所述LLDP报文的报文特征与相应的所述动作访问控制列表中的LLDP报文的匹配特征是否一致; 若是,则根据所述动作访问控制列表中的对所述LLDP报文执行的动作,确定对所接收到的所述LLDP报文执行的动作。
5.如权利要求4所述的方法,其特征在干,所述当对LLDP报文执行转发动作吋,判断所述LLDP报文是否引起环网风暴,若是,丢弃所述LLDP报文,若否,转发所述LLDP报文包括 根据所接收到的所述LLDP报文的目的媒体接入控制MAC地址,以及所述LLDP报文的协议类型,判断所述LLDP报文的报文特征与相应的所述环网风暴访问控制列表中的LLDP报文的匹配特征是否一致; 若是,则所述LLDP报文引起环网风暴,丢弃所述LLDP报文;若否,则转发所述LLDP报文。
6.如权利要求5所述的方法,其特征在于,所述当对LLDP报文执行上报动作时,将所述LLDP报文上送至处理器,在邻居列表中处理所述LLDP报文对应的环形网络链路邻居设备的邻居条目包括 当所述LLDP报文上送至处理器后,根据所述LLDP报文的类型,获取所述LLDP报文对应的环形网络链路邻居设备的邻居列表; 提取所述LLDP报文中的设备标识和设备端ロ标识;在所述邻居列表中查找是否存在所述设备标识和设备端ロ标识对应的邻居条目; 若存在所述邻居条目,则根据所述设备标识和设备端ロ标识的信息更新所述邻居条目中的信息; 若不存在所述邻居条目,则新建一邻居条目,将所述设备标识和设备端ロ标识的信息存储在所述新建的邻居条目中。
7.ー种基于链路层发现协议监控环形网络的装置,其特征在于,包括 接收模块,用于接收链路层发现协议LLDP报文; 判断模块,用于根据所述LLDP报文的报文特征判断对所述LLDP报文执行的动作;第一处理模块,用于当判断出对所述LLDP报文执行转发动作时,判断所述LLDP报文是否引起环网风暴,若是,丢弃所述LLDP报文,若否,转发所述LLDP报文; 第二处理模块,用于当判断出对所述LLDP报文执行上报动作吋,将所述LLDP报文上送至处理器,在邻居列表中处理所述LLDP报文对应的环形网络链路邻居设备的邻居条目。
8.如权利要求7所述的装置,其特征在于,还包括 初始化及设置模块,用于设备初始化,井根据所述LLDP报文的协议类型,设置包含LLDP报文的匹配特征和对所述LLDP报文执行的动作的访问控制列表;所述访问控制列表包括用于判断报文执行动作的动作访问控制列表,以及用于判断是否引起环网风暴的环网风暴访问控制列表。
9.如权利要求8所述的装置,其特征在于,还包括 拓扑输出模块,用于根据所述所发现的环形网络链路邻居设备的邻居条目,输出主链路和冗余链路的环形网络拓扑图。
10.如权利要求7所述的装置,其特征在于,所述判断模块包括 第一判断単元,用于根据所接收到的所述LLDP报文的目的媒体接入控制MAC地址,以及所述LLDP报文的协议类型,判断所述LLDP报文的报文特征与相应的所述动作访问控制列表中的LLDP报文的匹配特征是否一致; 确定单元,用于若是,则根据所述动作访问控制列表中的对所述LLDP报文执行的动作,确定对所接收到的所述LLDP报文执行的动作。
11.如权利要求10所述的装置,其特征在于,所述第一处理模块包括 第二判断単元,用于根据所接收到的所述LLDP报文的目的媒体接入控制MAC地址,以及所述LLDP报文的协议类型,判断所述LLDP报文的报文特征与相应的所述环网风暴访问控制列表中的LLDP报文的匹配特征是否一致; 丢弃单元,用于若是,则所述LLDP报文引起环网风暴,丢弃所述LLDP报文; 转发单元,用于若否,则转发所述LLDP报文。
12.如权利要求11所述的装置,其特征在于,所述第二处理模块包括 获取单元,用于当所述LLDP报文上送至处理器后,根据所述LLDP报文的类型,获取所述LLDP报文对应的环形网络链路邻居设备的邻居列表; 提取单元,用于提取所述LLDP报文中的设备标识和设备端ロ标识; 查找单元,用于在所述邻居列表中查找是否存在所述设备标识和设备端ロ标识对应的邻居条目; 更新単元,用于若存在所述邻居条目,则根据所述设备标识和设备端ロ标识的信息更新所述邻居条目中的信息; 新建単元,用于若不存在所述邻居条目,则新建一邻居条目,将所述设备标识和设备端ロ标识的信 息存储在所述新建的邻居条目中。
全文摘要
本发明公开了一种基于链路层发现协议监控环形网络的方法,包括接收链路层发现协议LLDP报文,根据LLDP报文的报文特征判断对LLDP报文执行的动作;当判断出对LLDP报文执行转发动作时,判断LLDP报文是否引起环网风暴,若是,丢弃LLDP报文,若否,转发LLDP报文;当判断出对LLDP报文执行上报动作时,将LLDP报文上送至处理器,在邻居列表中处理LLDP报文对应的环形网络链路邻居设备的邻居条目。本发明还公开了相应的装置。通过本发明所公开的方案,使得对环形网络的监控和管理更加方便,并且不会引起环网风暴,从而能够满足环形网络的可靠性需求。
文档编号H04L12/42GK102821009SQ201210280638
公开日2012年12月12日 申请日期2012年8月8日 优先权日2012年8月8日
发明者曹淑玲, 张香让 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1