一种网络设备的环回检测方法及设备
技术领域
本发明涉及检测技术,特别涉及一种网络设备的环回检测方法及设备。
背景技术
在现有的各种组网中,由于配置的错误或者网络连接的问题,往往会造成组网中存在转发环路。如果网络中存在转发环路,一个网络设备如网络设备1在发出广播、组播、未知单播等报文后,这些报文可能会经其它网络设备转发后,又被网络设备1接收到,而该网络设备1还会将这些本身已经发送过的报文再次转发出去,并循环往复,造成大量的重复转发,进而形成资源的消耗甚至网络的瘫痪。
网络环路分为两种,图1a所示为网络环路中的单端口环路,即由网络设备的一个端口收到由该端口本身发出的报文;图1b所示为网络环路中的双端口环路,即由网络设备的一个端口收到由该设备其它端口发出的报文。目前,进行环回检测以发现网络中存在环路及该环路的环回类型的方法通常为基于端口的环回检测。
基于端口环回检测的基本思想是,网络设备定期从每一个端口发送携带本机标识和发送端口号的环回检测专用报文。网络设备的任意端口通过判断是否接收到携带本机标识的环回检测专用报文,以及该报文中携带的发送端口号确定该端口是否出现环路以及该环路类型。
在存在VLAN的网络环境中,不同的端口支持一个或多个不同的VLAN,因此可能出现下面的状况:一个端口可以同时存在于不同的VLAN中,该端口在某个VLAN中存在环路,而在另外的VLAN中不存在环路。例如,如图2所示的二层组网下,交换机1的端口1和交换机2的端口1都允许属于VLAN 10和VLAN 20的报文通过,交换机2的端口2和端口3只允许属于VLAN 10的报文通过。由于交换机1的端口1和交换机2的端口1、端口2、端口3均允许VLAN 10的报文通过,因此,交换机1的端口1能够收到由该端口1发送的属于VLAN 10的报文,则对于交换机1的端口1,VLAN 10存在环路;而由于交换机2的端口2和端口3不允许VLAN 20的报文通过,因此,交换机1的端口1无法收到由该端口发送的属于VLAN20的报文,则对于交换机1的端口1,VLAN 20不存在环路。
对于上述不同端口支持不同VLAN的网络环境,当应用基于端口的环回检测时,以利用交换机检测二层环路为例,该检测过程包括以下步骤:
1.如果一个端口上允许M个VLAN的报文通过,则交换机中的处理单元定期(每5分钟)针对该端口为M个VLAN分别产生一个环回检测专用报文,转发单元将产生的M个环回检测专用报文由该端口发送出去。报文中携带本机标识和发送端口的端口号。对所有端口均如此处理。
2.如果交换机的某端口收到了携带本机标识的环回检测专用报文,并且该报文中携带的端口号是本端口的端口号,报文属于VLAN 1,则确定该端口上的VLAN 1中有一个单端口环路。
3.如果交换机的某端口收到了携带本机标识的环回检测专用报文,并且该报文中携带的端口号不是本端口的端口号,报文属于VLAN 1,则确定该交换机上的VLAN 1中有一个双端口环路。
应用上述环路检测方法能够检测到网络中的环路并能够通过报文中携带的发送端口号确定该环路的环回类型。
由以上描述可以得到,由于现有技术是基于端口进行环回检测,因此交换机内部产生的环回检测专用报文数据将十分巨大,也就是处理单元与转发单元间的发送报文数量十分巨大。例如,一般的局域网交换机,一个端口上最多可以支持4094个VLAN,一台交换机一般支持48个端口。即使每个端口上配置300个VLAN,交换机内部产生的报文数量(即处理单元与转发单元间的发送报文数量)也将达到每5分钟48*300=14400个。而交换机处理单元与转发单元间的通道带宽有限,在上述配置较多的情况下,极易造成丢包现象,从而降低环回检测的准确性。
更进一步地,如果要保证不发生丢包现象,则需要降低上层软件下发环回检测专用报文的速度,那么必然导致检测速度的降低。
上述为以对二层环路进行检测为例说明的目前环回检测方法存在的问题,事实上,对于其它层的环路(如三层环路)进行检测时,由于网络设备内部处理单元与转发单元间的通道带宽问题,也会存在上述配置较多情况下的丢包现象。
发明内容
有鉴于此,本发明提供一种环回检测的方法,能够保证在检测到网络环路及该环路的环回类型的同时,降低处理单元与转发单元间的环回检测专用报文数量。
本发明还提供一种环回检测设备,能够保证在检测到网络环路及该环路的环回类型的同时,降低处理单元与转发单元间的环回检测专用报文数量。
为实现上述目的,本发明采用如下的技术方案:
一种网络设备的环回检测方法,包括:
a、网络设备中的处理单元针对支持的每个VLAN分别产生第一环回检测专用报文,并发送给所述网络设备中的转发单元,所述转发单元将对应于各个VLAN的第一环回检测专用报文复制后通过支持该VLAN的端口发送,所述第一环回检测专用报文中不携带发送端口标识;
b、确定网络设备中接收到本机发送的第一环回检测专用报文的端口出现环回,并确定该环回对应的VLAN为该接收到的本机发送的第一环回检测专用报文所属的VLAN;
c、所述处理单元针对支持所述环回对应VLAN的出现环回端口,产生携带所述出现环回端口标识的第二环回检测专用报文,将所述出现环回端口标识作为发送端口标识,并将产生的第二环回检测专用报文发送给所述转发单元,所述转发单元将接收的所述第二环回检测专用报文从该报文的发送端口标识所标识的端口发送;所述网络设备的端口接收第二环回检测专用报文并转发给所述处理单元,所述处理单元根据接收到的第二环回检测专用报文的发送端口标识确定环回类型。
较佳地,所述转发单元将对应于各个VLAN的第一环回检测专用报文复制后通过支持该VLAN的端口发送的步骤包括:
所述转发单元复制所述处理单元产生的第一环回检测专用报文,并根据由各第一环回检测专用报文中提取的VLAN Tag,确定各第一环回检测专用报文分别对应的VLAN;
所述转发单元将复制后的各第一环回检测专用报文,通过每个支持该报文对应VLAN的端口发送。
较佳地,所述第一环回检测专用报文中包括设备标识和对应VLAN的VLAN Tag;
确定网络设备中接收到本机发送的第一环回检测专用报文的端口出现环回的步骤包括:网络设备中接收到第一环回检测专用报文的端口,通过转发单元将该第一环回检测专用报文转发给所述处理单元,所述处理单元提取接收到的第一环回检测专用报文中携带的设备标识,当该标识为本机标识时,确定接收到该第一环回检测专用报文的端口出现环回。
较佳地,所述第二环回检测报文中包括设备标识、发送端口标识和对应VLAN的VLAN Tag;
所述处理单元根据接收到的第二环回检测专用报文的发送端口标识确定环回类型为:所述处理单元提取接收到的第二环回检测专用报文中携带的发送端口标识;判断该标识是否代表接收到该报文的端口,若是,则确定接收到该报文的端口的环回类型为单端口环回,否则,确定接收到该报文的端口的环回类型为双端口环回。
较佳地,当确定接收到第二环回检测专用报文的端口的环回类型为双端口环回时,该方法进一步包括:确定双端口环回中的两个端口分别为接收所述第二环回检测专用报文的端口和所述环回检测专用报文中携带的发送端口标识所代表的端口。
较佳地,步骤a中所述第一环回检测专用报文和步骤b中所述第二环回检测专用报文的发送为周期发送。
较佳地,步骤c所述根据接收到的第二环回检测专用报文确定该端口的环回类型之前,进一步包括:
判断接收到的第二环回检测专用报文是否为本机发送的,若是,则继续执行所述确定环回类型的操作,否则结束步骤c。
一种具有环回检测功能的网络设备,包括处理单元、转发单元和至少一个端口,
所述处理单元,针对支持的每个VLAN分别产生不携带发送端口号的第一环回检测专用报文,并发送给所述转发单元;接收所述转发单元转发来的第一端口接收到的第一环回检测专用报文,当确定该第一环回检测专用报文为本机发送时,确定接收该第一环回检测专用报文的端口出现环回,并确定该环回对应的VLAN为该第一环回检测专用报文所属的VLAN,针对支持所述环回对应VLAN的出现环回端口,产生携带所述出现环回端口标识的第二环回检测专用报文,将所述出现环回端口标识作为发送端口标识,并将产生的第二环回检测专用报文发送给所述转发单元;根据所述转发单元转发来的第二环回检测专用报文的发送端口标识确定端口的环回类型;
所述转发单元,接收所述处理单元产生的第一环回检测专用报文,将对应于各个VLAN的第一环回检测专用报文复制并通过支持该VLAN的端口发送;将处理单元发送的第二环回检测专用报文从报文的发送端口标识所标识的端口发送;并将所述端口接收到的第一和第二环回检测专用报文转发给所述处理单元;
所述任意端口,用于发送转发单元转发的第一和第二环回检测专用报文,并接收第一和第二环回检测专用报文。
较佳地,所述处理单元,进一步周期性产生所述第一环回检测专用报文,并发送给所述转发单元。
较佳地,所述处理单元,进一步周期性产生所述第二环回检测专用报文,发送给所述转发单元;并在确定环回类型前,进一步根据所述转发单元转发的所述第二环回检测专用报文判断是否出现环回,当确定出现环回时,执行确定环回类型的操作,当确定未出现环回时,停止发送所述第二环回检测专用报文。
较佳地,所述环回检测设备为交换机,所述处理单元为上层软件,所述转发单元为底层转发芯片。
由上述技术方案可见,本发明中,由于第一环回检测专用报文是针对每个VLAN产生并发送的,因此大大减少了设备内部产生的检测报文量,即处理单元和转发单元间的报文量。例如,对于支持48个端口的交换机,若在每个端口上配置300个VLAN,那么若每5分钟进行一次检测,则产生的环回检测专用报文量(即处理单元与转发单元间的环回检测专用报文量)为每5分钟300个,只相当于基于端口的检测方法的1/48。由于降低了处理单元和转发单元间通道的负荷,因此能够避免丢包现象。同时利用转发单元将相应VLAN的环回检测专用报文复制后通过各个支持相应VLAN的端口发送出去。这样,能够实现端口环回的检测。当某端口接收到环回检测专用报文并确定出现针对某VLAN的端口环回时,从环回端口发送针对该VLAN的第二环回检测专用报文,以确定环回类型。这样,便能够保证在检测到网络环路及该环路的环回类型的同时,降低处理单元与转发单元间的环回检测专用报文数量。
附图说明
图1a为单端口环路的示意图。
图1b为双端口环路的示意图。
图2为一种局域网的组网结构图。
图3为本发明提供的环回检测方法的总体流程图。
图4为本发明环回检测设备的总体结构图。
图5为本发明实施例中环回检测方法的具体流程图。
具体实施方式
为使本发明的目的、技术手段和优点更加清楚明白,以下结合附图,并举实施例说明本发明的具体实施方式。
本发明的基本思想是:将环回检测分成两部分进行,首先针对所有端口产生以VLAN为单位的第一环回检测专用报文,用于确定出现环回的端口;再有针对性地对已经出现环回的端口产生第二环回检测专用报文,并从出现环回的端口发送,以确定具体的环回类型。
图3为本发明提供的环回检测方法的总体流程图。如图3所示,该方法包括:
步骤301,网络设备针对支持的每个VLAN分别产生第一环回检测专用报文,将对应于各个VLAN的第一环回检测专用报文复制后通过支持该VLAN的端口发送。
本步骤中进行的检测是粗略检测,为进行粗略检测而发送的报文称为第一环回检测专用报文,其中携带设备标识,该检测对所有VLAN进行,目的是及时检测到环回的发生。
步骤302,当确定网络设备的第一端口接收到本机发送的第一环回检测专用报文时,则所述第一端口出现环回,并确定该环回对应的VLAN。
本步骤中,当确定端口出现环回时,则启动详细检测,执行步骤303。
步骤303,在第一端口上发送针对环回对应VLAN的第二环回检测专用报文,其中携带设备标识和发送端口的端口号,根据在第一端口接收到的第二环回检测专用报文确定第一端口的环回类型。
本步骤中进行的检测为详细检测,针对已经发生环回的端口进行,为进行该详细检测而发送的报文称为第二环回检测专用报文,与第一环回检测专用报文不同的是,其中除携带设备标识外还携带发送端口的端口号。
至此,本发明提供的环回检测方法流程结束。由上述可见,在本发明提供的环回检测方法中,共分成对所有端口进行的粗略检测和对环回端口进行的详细检测两部分。
另外,本发明还提供了一种环回检测设备,图4即为该设备的总体结构图。如图4所示,该设备包括处理单元、转发单元和至少一个端口。该设备支持一个或多个VLAN。其中,处理单元,针对支持的每个VLAN分别产生第一环回检测专用报文,并发送给转发单元;接收转发单元转发来的第一端口接收到的第一环回检测专用报文,当确定该第一环回检测专用报文为本机发送时,通知所述转发单元在第一端口上发送针对所述环回对应VLAN的第二环回检测专用报文;根据所述转发单元转发来的第二环回检测专用报文确定环回类型。
转发单元,接收处理单元产生的第一环回检测专用报文,将对应于各个VLAN的第一环回检测专用报文复制并通过支持该VLAN的端口发送;将报文产生单元发送的第二环回检测专用报文从第一端口发送;并将端口接收到的第一和第二环回检测专用报文转发给所述处理单元。
任意端口,用于发送底层转发芯片转发的第一和第二环回检测专用报文,并接收该第一和第二环回检测专用报文。
由上述本发明提供的方法和设备可以看出,在进行粗略检测时,处理单元以VLAN为单位产生并发送第一环回检测专用报文到转发单元。由于以VLAN为单位发送报文,因此相对于基于端口的环回检测方法,处理单元产生的检测报文量大大减小,其到转发单元间通道上的检测报文量也大大减小,在满配置的情况下,也不易出现丢包。接下来,转发单元将对应于各个VLAN的第一环回检测专用报文复制后通过设备的各个端口发送出去。由于转发单元复制出来的报文均是相同的,因此支持相同VLAN的每个端口发送出去的第一环回检测专用报文也是相同的。所以,与基于端口的检测不同的是,在发送的第一环回检测专用报文中不能携带端口号,仅携带设备标识。设备端口接收第一环回检测专用报文,并发送给转发单元。转发单元将端口接收到的第一环回检测专用报文转发给处理单元,由处理单元判断该第一环回检测专用报文是否为本机发送的,若是,则表明出现了环回,需要就接收该第一环回检测专用报文的端口进行详细检测。
在进行详细检测时,针对出现环回的端口和VLAN进行。由于进行详细检测的目的是确定环回类型,因此发送的第二环回检测专用报文中要携带发送端口的端口号。这样,由设备的处理单元向转发单元发送包括设备标识和发送端口标识的第二环回检测专用报文,由转发单元从相应VLAN的环回端口发送出去。由于出现环回的端口和VLAN毕竟是少数,因此用于进行详细检测的第二环回检测专用报文的数量也远比基于端口的检测报文量小得多,于是不会对处理单元和转发单元间的通道造成过大负担,不易出现丢包现象。设备端口对发送的第二环回检测专用报文进行接收并发送给转发单元。转发单元将端口接收到的第二环回检测专用报文转发给处理单元,由处理单元根据该报文中携带的发送端口标识确定具体的环回类型。
上述即为对本发明提供的环回检测方法和设备的总体概述,以下结合具体实施例说明本发明的具体实施方式。
实施例:
在本实施例中,以检测网络中出现的二层环路为例说明本发明的具体实施方式,环回检测设备为二层的交换机,其具体结构与图4所示的相同,其中,处理单元具体为交换机的上层软件,转发单元具体为底层转发芯片。
图5为本实施例中环回检测方法的具体流程图。如图5所示,该方法包括:
步骤501,上层软件定期针对本机的每一个VLAN分别产生并向底层转发芯片发送一个第一环回检测专用报文。
本步骤中,由于是以VLAN为单位产生并发送第一环回检测专用报文,因此产生的检测报文量只相当于基于端口方法的1/N,其中,N为支持某VLAN的端口数。在产生的第一环回检测专用报文中包括该报文对应VLAN的VLAN标记(VLAN Tag)和设备标识。其中,VLAN标记用于标识该报文对应的VLAN,设备标识用于标识产生并发送该报文的设备。本实施例中,第一环回检测专用报文的产生及发送均是定期进行的,也就是周期性产生和发送,以及时发现网络中随时出现的环路。
本实施例中进行环回检测时,对于每个VLAN的处理均相同,这里以其中一个为例说明后续流程:
步骤502,交换机的底层转发芯片将针对各个VLAN的第一环回检测专用报文进行复制,并从每个允许该VLAN报文通过的端口发送给网络中支持相应VLAN的设备。
由于步骤501中,上层软件下发到底层转发芯片的第一环回检测专用报文,是针对每个VLAN的一个第一环回检测专用报文,而端口在将第一环回检测专用报文发送出去时,需要在每个支持该VLAN的端口进行发送,因此需要在本步骤中,利用底层转发芯片的复制功能,对第一环回检测专用报文进行复制,以提供给各个支持该VLAN的端口进行发送。
在本实施例中,虽然需要在底层转发芯片处进行第一环回检测专用报文的复制,但是由于底层转发芯片的硬件复制速度很快,因此能够保证在指定时间内完成复制和转发的功能。另外,由于底层转发芯片只能将报文进行复制,但不能修改,也就是说,对于一个VLAN对应的所有端口,其发出的第一环回检测专用报文相同,因此,在该第一环回检测专用报文中携带设备标识,但不携带发送端口的端口号。
具体复制和发送第一环回检测专用报文的方式可以为:底层转发芯片复制当前接收的针对VLAN 1的第一环回检测专用报文,并根据其中携带的VLAN Tag确定该报文属于VLAN 1,于是将复制后的报文从每个支持VLAN1的端口发送出去。
步骤503~504,交换机的所有端口侦听第一环回检测专用报文,当接收到该报文时,底层转发芯片将报文转发给上层软件,并通知上层软件该报文的接收端口;上层软件根据该第一环回检测专用报文中携带的设备标识,判断是否出现环回,若是,则执行步骤505,否则丢弃该报文。
本步骤中,交换机的所有端口接收用于粗略检测的第一环回检测专用报文,并发送给底层转发芯片。底层转发芯片将端口接收到的第一环回检测专用报文转发给上层软件,并通知上层软件该报文的接收端口。交换机的上层软件根据接收到的第一环回检测专用报文中携带的设备标识,判断是否出现环回。具体的判断方式可以为:判断接收到的报文中携带的设备标识是否为本机标识,若是,则判定出现了环回,需要通过步骤505及其后续步骤进行详细检测。否则,丢弃该报文。
步骤501~504进行的是粗略检测,该粗略检测在交换机进行环回检测的过程中由始至终不停地进行,用以及时发现二层网络中存在的环路。但由于粗略检测过程中的第一环回检测专用报文中未携带发送端口标识,因此对于环回类型无法作出判断,需要进一步通过详细检测判断该环回类型。
步骤505,交换机的上层软件确定步骤504中接收到的报文所属的VLAN和出现环回的端口。
本步骤中,假定接收到的报文属于VLAN 1,则表明该交换机上的VLAN1中有一个环路,假定接收该报文的端口为端口A,则需要针对VLAN 1的端口A进行详细检测。
步骤506,从出现环回的端口向网络中支持VLAN 1的设备发送一个针对VLAN 1的第二环回检测专用报文。
本步骤中,发送的第二环回检测专用报文用于确定环回的类型,在该报文中携带设备标识和发送端口标识,该发送端口的标识可以是识别该发送端口的唯一标识,用于确定出现环回的类型,具体可以为发送端口的端口号。该报文具体在上层软件中产生,并通过底层转发芯片由出现环回的端口发送给网络中支持VLAN 1的设备。在此过程中,由于仅对部分出现环回的端口其对应的VLAN发送第二环回检测专用报文,因此上层软件与底层转发芯片间通道上的报文量必然远远小于基于端口检测方法中的报文量,不会造成该通道的极大负担而产生丢包现象。
步骤507,交换机的指定端口侦听第二环回检测专用报文,根据接收到的报文中所携带的发送端口标识确定环回类型。
本步骤中,交换机的指定端口侦听第二环回检测专用报文,并将该报文发送给底层转发芯片。底层转发芯片将指定端口接收到的第二环回检测专用报文转发给上层软件,由上层软件确定环回类型。具体确定环回类型的方式可以为:提取接收到的第二环回检测专用报文中所携带发送端口标识,若该端口标识代表本端口,则确定本端口上的VLAN 1中有一个单端口环路,也就是说环回类型为单端口环路;若该端口标识不代表本端口,则确定交换机上的VLAN 1中有一个双端口环路,该环路涉及的两个端口为:本端口和接收到的报文中所携带发送端口标识所代表的端口,也就是说环回类型为双端口环路。具体发送端口标识可以采用发送端口的端口号表示。
上述步骤505~507为具体的详细检测过程,该检测过程是针对粗略检测过程中出现环回的端口以及相应的VLAN进行的,用于确定该环回的类型。根据该确定的环回类型,可以采取相应的故障维修手段,修复网络,消除检测到的环路。
更进一步地,针对步骤505中确定的出现环回的端口和该环回对应的VLAN,步骤506~507中进行的详细检测也可以与粗略检测类似,采用周期性的方式进行。并且步骤507中,交换机的上层软件可以在判断环回类型前,进一步判断接收到的第二环回检测专用报文是否为本机发送的,判断方法与粗略检测中步骤504的方式,根据报文中携带的设备标识进行判断,当确定为本机发送的第二环回检测专用报文、且属于VLAN 1时,表明依然存在环回,再继续判断该环回类型,这样可以降低误判率。另外,由于步骤506~507的详细检测是周期进行的,在检测过程中,维修人员已根据之前的检测结果对该环路故障进行了排除,这时,在某次进行的详细检测中,发现并未收到第二环回检测专用报文,也就是未检测到环路,则上层软件停止详细检测过程,由周期性的详细检测状态中跳出。
由上述本发明的具体实施例可以看出,应用本发明提供的环回检测方法,能够保证交换机的环回检测速度,又不易出现丢包现象,同时能够准确判定出现的环回类型,最大限度地降低网络中的环路带来的影响。在本发明实施例中是以二层网络环路的环回检测方法为例进行说明的,事实上,对于其它层的网络环路,该环回检测方法同样适用,并且可以根据检测的不同层,选择不同的网络设备实施上述方法,例如,当检测三层环路时,可以选择三层交换机实施上述方法。同时,本发明的方法和设备也可以应用于不存在VLAN的网络环境中,这时,在实施本发明时,相当于只存在一个VLAN,在上层软件向底层转发芯片广播第一环回检测专用报文时,只需要定期广播一个报文,然后底层转发芯片将该广播的第一环回检测专用报文通过该设备的所有端口发送出去即可。后续检测环回的发生以及详细检测过程也相应地不需要考虑VLAN的影响,直接执行即可,这里就不再赘述。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。