发明内容
有鉴于此,本发明提供一种用于触发网络设备恢复默认配置的方法、以及一种用于触发网络设备恢复默认配置的装置。
本发明提供的一种用于触发网络设备恢复默认配置的方法,包括:
a1、令交换芯片将所有端口隔离、并使所述交换芯片能够将接收到的目的MAC为保留MAC的所有报文上报;
a2、构造环路检测报文发送至所述交换芯片进行转发;其中,构造的所述环路检测报文的目的MAC为保留MAC、并携带有两个指定端口中的其中一个的端口号所述两个指定端口为预先选定的用于在需要触发网络设备恢复默认配置时被相互连接以构成环路的端口;
a3、在第一预定时间内检测所述交换芯片是否上报了经过所述环路环回的所述环路检测报文;其中,经过所述环路环回的所述环路检测报文的目的MAC为保留MAC、并携带有用于构成环路的两个指定端口中的另一个的端口号;
a4、令所述交换芯片取消对所有端口隔离、并停止将接收到的目的MAC为保留MAC的所有报文上报;
a5、若所述步骤a3检测到了环回的所述环路检测报文则从存储器件读取默认配置并下发。
所述步骤a2进一步以预定间隔连续地构造所述环路检测报文并发送至所述交换芯片进行转发;
或者,所述步骤a2进一步在所述步骤a3每次未能在所述第一预定时间内检测到环回的所述环路检测报文后重新构造所述环路检测报文并发送至所述交换芯片进行转发。
所述步骤a3进一步在检测到环回的所述环路检测报文后,将预设的环路检测标记设置为表示已成功检测到所述环路的有效值;
所述步骤a5进一步依据所述环路检测标记是否为所述有效值来判断所述步骤a3是否检测到了环回的所述环路检测报文。
所述步骤a5仅下发所述默认配置中除所述两个指定端口之外的其它部分,且该方法进一步包括在所述步骤a5从存储器件读取默认配置并下发之后执行的如下步骤:
b1、令所述交换芯片将所述两个指定端口相互隔离并与其他端口隔离、并使所述交换芯片能够将接收到的目的MAC为保留MAC的所有报文上报;
b2、构造所述环路检测报文发送至所述交换芯片进行转发;
b3、检测所述交换芯片是否上报了经过所述环路环回的所述环路检测报文;
b4、若所述步骤b3无法检测到环回的所述环路检测报文,令所述交换芯片取消对所述两个指定端口的相互隔离以及与其他端口的隔离、并停止将接收到的目的MAC为保留MAC的所有报文上报;
b5、下发所述默认配置中针对所述两个指定端口的剩余部分。
所述步骤b2进一步以预定间隔连续地构造所述环路检测报文并发送至所述交换芯片进行转发;
或者,若所述步骤b3在预定第二时间内持续未检测到环回的所述环路检测报文,则认定无法检测到环回的所述环路检测报文,且,所述步骤b2进一步在所述步骤b3每次检测到环回的所述环路检测报文后重新构造所述环路检测报文并发送至所述交换芯片进行转发;
或者,若所述步骤b3在预定第二时间内持续未检测到环回的所述环路检测报文的次数达到预设次数,则认定无法检测到环回的所述环路检测报文,且,所述步骤b2进一步在所述步骤b3每次检测到环回的所述环路检测报文后重新构造所述环路检测报文并发送至所述交换芯片进行转发,以及进一步在所述步骤b3每次在预定第二时间内持续未检测到环回的所述环路检测报文后重新构造所述环路检测报文并发送至所述交换芯片进行转发、直至所述步骤b3认定无法检测到环回的所述环路检测报文。
所述环路检测报文为BPDU报文,所述BPDU报文具有可携带目的MAC和端口号的报文头。
本发明提供的一种用于触发网络设备恢复默认配置的装置,包括:
第一模块,令交换芯片将所有端口隔离、并使所述交换芯片能够将接收到的目的MAC为保留MAC的所有报文上报;
第二模块,构造环路检测报文发送至所述交换芯片进行转发;其中,构造的所述环路检测报文的目的MAC为保留MAC、并携带有两个指定端口中的其中一个的端口号,所述两个指定端口为预先选定的用于在需要触发网络设备恢复默认配置时被相互连接以构成环路的端口;
第三模块,在第一预定时间内检测所述交换芯片是否上报了经过所述环路环回的所述环路检测报文;其中,经过所述环路环回的所述环路检测报文的目的MAC为保留MAC、并携带有用于构成环路的两个指定端口中的另一个的端口号;
第四模块,令所述交换芯片取消对所有端口隔离、并停止将接收到的目的MAC为保留MAC的所有报文上报;
第五模块,若所述第三模块检测到了环回的所述环路检测报文则从存储器件读取默认配置并下发。
所述第二模块进一步以预定间隔连续地构造所述环路检测报文并发送至所述交换芯片进行转发;
或者,所述第二模块进一步在所述第三模块每次未能在所述第一预定时间内检测到环回的所述环路检测报文后重新构造所述环路检测报文并发送至所述交换芯片进行转发。
所述第三模块进一步在检测到环回的所述环路检测报文后,将预设的环路检测标记设置为表示已成功检测到所述环路的有效值;
所述第五模块进一步依据所述环路检测标记是否为所述有效值来判断所述第三模块是否检测到了环回的所述环路检测报文。
所述第五模块仅下发所述默认配置中除所述两个指定端口之外的其它部分,且该装置进一步包括在所述第五模块从存储器件读取默认配置并下发之后触发的如下模块:
第六模块,令所述交换芯片将所述两个指定端口相互隔离并与其他端口隔离、并使所述交换芯片能够将接收到的目的MAC为保留MAC的所有报文上报;
第七模块,构造所述环路检测报文发送至所述交换芯片进行转发;
第八模块,检测所述交换芯片是否上报了经过所述环路环回的所述环路检测报文;
第九模块,若所述第八模块无法检测到环回的所述环路检测报文,则令所述交换芯片取消对所述两个指定端口的相互隔离以及与其他端口的隔离、并停止将接收到的目的MAC为保留MAC的所有报文上报;
第十模块,下发所述默认配置中针对所述两个指定端口的剩余部分。
所述第七模块进一步以预定间隔连续地构造所述环路检测报文并发送至所述交换芯片进行转发;
或者,若所述第八模块在预定第二时间内持续未检测到环回的所述环路检测报文,则认定无法检测到环回的所述环路检测报文,且,所述第七模块进一步在所述第八模块每次检测到环回的所述环路检测报文后重新构造所述环路检测报文并发送至所述交换芯片进行转发;
或者,若所述第八模块在预定第二时间内持续未检测到环回的所述环路检测报文的次数达到预设次数,则认定无法检测到环回的所述环路检测报文,且,所述第七模块进一步在所述第八模块每次检测到环回的所述环路检测报文后重新构造所述环路检测报文并发送至所述交换芯片进行转发,以及进一步在所述第八模块每次在预定第二时间内持续未检测到环回的所述环路检测报文后重新构造所述环路检测报文并发送至所述交换芯片进行转发、直至所述第八模块认定无法检测到环回的所述环路检测报文。
所述环路检测报文为BPDU报文,所述BPDU报文具有可携带目的MAC和端口号的报文头。
如上可见,本发明以两个指定端口构成环路为网络设备恢复默认配置的触发条件,因而相比于现有利用按键触发的方式能够产生如下的技术效果:
1、无需额外的硬件电路即可使网络设备恢复默认配置,从而使恢复默认配置的实现具有更高的通用性、且降低了实现成本;
2、不存在按键损坏等问题,从而能够避免网络设备无法恢复默认配置的情况;
3、无需占用本就十分稀缺的GPIO管脚,从而能够避免CPU的GPIO管脚资源不足。
而且,为了能够以两个指定端口构成环路为网络设备恢复默认配置的触发条件,本发明利用构造的环路检测报文来检测网络设备的两个指定端口是否构成回路、并在检测过程中通过将端口隔离,以此来避免环路所可能导致的网络风暴、进而避免广播风暴导致环路检测报文丢失;以及,本发明还利用保留MAC作为环路检测报文的目的MAC、以使交换芯片能够基于其针对保留MAC所特有的可配置功能而上报环路检测报文。另外,本发明以两个指定端口构成环路作为检测条件还可以避免由于非指定端口构成环路而导致的误触发配置恢复。
进一步优选地,在两个指定端口构成的环路触发网络设备恢复默认配置后,本发明还可以利用环路检测报文检测两个指定端口构成的环路是否解除,并且只有在两个指定端口构成的环路被解除后才允许两个指定端口按照默认配置的方式被使用,从而能够在恢复默认配置后避免由于两个指定端口构成的环路被误保留而导致的网络风暴。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
图2为本发明实施例中利用端口构成环路触发网络设备恢复默认配置的原理图。如图2所示,网络设备中的所有端口UNI1~n(n为大于等于2的正整数)中有两个端口(图2中以UNI1和UNI2为例)被选定为指定端口。
当需要触发网络设备恢复默认配置时,可以将UNI1和UNI2连接、以构成环路;
此后当网络设备上电启动后,即可由CPU协同交换芯片执行如下处理:
1、CPU令交换芯片将端口UNI1~n相互隔离、并知晓需要将接收到的目的MAC为保留MAC的所有报文上报给CPU;
2、CPU构造一个网桥协议数据单元(Bridge Protocol Data Unit,BPDU)报文作为环路检测报文发送至交换芯片,其中,构造的BPDU环路检测报文的报文头(Header)中至少包括源MAC、目的MAC、以及端口号这三个字段,CPU可设定其中的源MAC为任意值(例如00-0F-E2-12-34-56),但需要将其中的目的MAC设置为保留MAC(例如01-80-C2-00-00-00)、端口号设置为其中一个指定端口UNI1的端口号;
3、交换芯片支持Header功能、或称为CPU tag功能,并将BPDU环路检测报文的Header中设置的指定端口UNI1的端口号识别为目的端口号,因而将CPU构造的BPDU环路检测报文从指定端口UNI1转发;
4、BPDU环路检测报文经过环路环回后到达另一指定端口UNI2,交换芯片将指定端口UNI2的端口号作为源端口号写入至环回后的BPDU环路检测报文Header中、并替换Header中的指定端口UNI1的端口号,然后再上报给CPU;
5、由于其他端口在此期间有可能接收到例如生成树协议(Spanning TreeProtocol,STP)报文等其他目的MAC为保留MAC的报文、并由交换芯片上报给CPU,因此,CPU接收到交换芯片上报的报文后,需要判断该报文是否是环回后的BPDU环路检测报文还是其他报文,具体说,CPU判断报文的Header中的源MAC是否为之前发送的BPDU环路检测报文的源MAC、目的MAC是否为保留MAC、端口号是否为另一个指定端口UNI2端口号,如果均满足,则认为其之前构造的BPDU环路检测报文经过了环路环回、即认为检测到了环路,此时,即可从NVRAM读取默认配置并下发,从而实现默认配置恢复。
基于上述原理可见,本发明实施例中以两个指定端口UNI1和UNI2构成环路为网络设备恢复默认配置的触发条件,由此,就需要CPU配置交换芯片进行端口隔离以及报文上报、构造BPDU环路检测报文(除了BPDU之外的其他协议报文也可适用)、以及判断交换芯片上报的报文是否为环回的BPDU环路检测报文,从而,就形成了本发明实施例中用于触发网络设备恢复默认配置的方法。
图3为本发明实施例中用于触发网络设备恢复默认配置的方法的示例性流程示意图。如图3所示,本发明实施例中用于触发网络设备恢复默认配置的方法主要包括在网络设备启动、且判断出两个指定端口均为正常(Up)状态后于CPU内执行的如下步骤:
步骤301,令交换芯片将所有端口隔离、并使交换芯片能够将接收到的目的MAC为保留MAC的所有报文上报;
步骤302,构造环路检测报文发送至交换芯片进行转发;其中,构造的环路检测报文的目的MAC为保留MAC、并携带有用于构成环路的两个指定端口中的其中一个的端口号;
步骤303,在第一预定时间内检测交换芯片是否上报了经过环路环回的环路检测报文;其中,经过环路环回的环路检测报文的目的MAC为保留MAC、并携带有用于构成环路的两个指定端口中的另一个的端口号;
步骤304,令交换芯片取消对所有端口隔离、并停止将接收到的目的MAC为保留MAC的所有报文上报;
步骤305,若步骤303检测到了环回的环路检测报文则从例如NVRAM等存储器件读取默认配置并下发、否则下发当前配置。
另外,在上述流程中:
可以仅通过执行一次步骤302来构造环路检测报文并发送至交换芯片进行转发,但这样就存在环路检测报文丢失而漏检测环路的风险,那么,为了避免由于环路检测报文丢失而漏检测环路,步骤302可以进一步以预定间隔连续地构造环路检测报文并发送至交换芯片进行转发,优选地,为了减少CPU不必要的开销,以预定间隔连续地构造环路检测报文并发送至交换芯片进行转发可以持续至步骤a3未能在第一预定时间内检测到环回的环路检测报文的次数达到最大次数时结束;或者,步骤302可以进一步在步骤303每次未能在第一预定时间内检测到环回的环路检测报文后重新构造环路检测报文并发送至交换芯片进行转发,优选地,为了减少CPU不必要的开销,以该方式重新构造环路检测报文并发送至交换芯片进行转发可以持续至步骤303未能在第一预定时间内检测到环回的环路检测报文的次数达到最大次数时结束。
以及,步骤303可以进一步在检测到环回的环路检测报文后,将预设的环路检测标记设置为表示已成功检测到环路的有效值;相应地,步骤305可以进一步依据环路检测标记是否为有效值来判断步骤303是否检测到了环回的环路检测报文。
图4为本发明实施例中用于触发网络设备恢复默认配置的方法的一种优选流程示意图。如图4所示,以仅一次构造环路检测报文并发送至交换芯片进行转发、以及利用设置的环路检测标记来表示是否检测到了环回的环路检测报文为例,本发明实施例中用于触发网络设备恢复默认配置的方法包括在网络设备启动、且判断出两个指定端口均为Up状态后于CPU内执行的如下步骤:
步骤401,令交换芯片将所有端口隔离、并使交换芯片能够将接收到的目的MAC为保留MAC的所有报文上报,然后跳转至步骤402。
步骤402,构造环路检测报文发送至交换芯片进行转发,然后跳转至步骤403;其中,构造的环路检测报文的目的MAC为保留MAC、并携带有用于构成环路的两个指定端口中的其中一个的端口号。
步骤403,在预定时间(例如100ms)、即第一预定时间内检测交换芯片是否上报了经过环路环回的环路检测报文,如果检测到环回的环路检测报文则跳转至步骤304、否则(至少包括交换芯片未上报报文或交换芯片上报的报文均不是经过环路环回的环路检测报文这两种情况)跳转至步骤305;其中,经过环路环回的环路检测报文的目的MAC为保留MAC、并携带有用于构成环路的两个指定端口中的另一个的端口号(被交换芯片修改)。
实际应用中,本步骤可以利用一定时器来标定预定时间,该定时器可以在步骤402之后被开启、如果超时则表示已到达预定时间。
步骤404,将预设的环路检测标记设置为表示已成功检测到环路的有效值(例如1),然后跳转至步骤405。
实际应用中,环路检测标记在网络设备启动后的初始值为无效值(例如0)。
步骤405,令交换芯片取消对所有端口的隔离、并停止将接收到的目的MAC为保留MAC的所有报文上报,然后跳转至步骤406。
步骤406,判断环路检测标记是否为表示已成功检测到环路的有效值(例如1),如果是则跳转至步骤407、否则跳转至步骤408。
步骤407,由于环路检测标记为有效值,因而从NVRAM读取默认配置并以替换当前配置的方式保存,然后跳转至步骤408。
实际应用中,本步骤中所述的保存实际上是在CPU内部的内存中予以保存。
步骤408,下发保存的配置,即,若环路检测标记为有效值则本步骤下发的保存的配置就是从NVRAM读取的默认配置,否则,本步骤下发的保存的配置则是根据不同运行环境及业务环境来相应调整的当前配置。
另需要说明的是,如果两个指定端口中有至少一个不是Up状态,则本流程就直接从步骤408开始执行、并下发保存的当前配置。
至此,如图4所示的流程结束。
图5为本发明实施例中用于触发网络设备恢复默认配置的方法的一种更优流程示意图。如图5所示,以能够多次构造环路检测报文并发送至交换芯片进行转发、以及利用设置的环路检测标记来表示是否检测到了环回的环路检测报文为例,本发明实施例中用于触发网络设备恢复默认配置的方法包括在网络设备启动、且判断出两个指定端口均为Up状态后于CPU内执行的如下步骤:
步骤501,令交换芯片将所有端口隔离、并使交换芯片能够将接收到的目的MAC为保留MAC的所有报文上报,然后跳转至步骤502。
步骤502,构造环路检测报文发送至交换芯片进行转发,然后跳转至步骤503;其中,构造的环路检测报文的目的MAC为保留MAC、并携带有用于构成环路的两个指定端口中的其中一个的端口号。
步骤503,在预定时间(例如100ms)、即第一预定时间内检测交换芯片是否上报了经过环路环回的环路检测报文,如果检测到环回的环路检测报文则跳转至步骤504、否则(至少包括交换芯片未上报报文或交换芯片上报的报文均不是经过环路环回的环路检测报文这两种情况)跳转至步骤505;其中,经过环路环回的环路检测报文的目的MAC为保留MAC、并携带有用于构成环路的两个指定端口中的另一个的端口号(被交换芯片修改)。
实际应用中,本步骤可以利用一定时器来标定预定时间,该定时器可以在步骤502之后被开启、如果超时则表示已到达预定时间。
步骤504,将预设的环路检测标记设置为表示已成功检测到环路的有效值(例如1),然后跳转至步骤506。
实际应用中,环路检测标记在网络设备启动后的初始值为无效值(例如0)。
步骤505,对未检测到环回的环路检测报文的次数加1,并判断未检测到环回的所述环路检测报文的次数是否达到最大次数(例如3次),如果是则跳转至步骤506,否则,认为之前构造的环路检测报文有可能丢失、因而跳转回步骤502以实现重新检测。
步骤506,令交换芯片取消对所有端口的隔离、并停止将接收到的目的MAC为保留MAC的所有报文上报,然后跳转至步骤507。
步骤507,判断环路检测标记是否为表示已成功检测到环路的有效值(例如1),如果是则跳转至步骤508、否则跳转至步骤509。
步骤508,由于环路检测标记为有效值,因而从NVRAM读取默认配置并以替换当前配置的方式保存,然后跳转至步骤509。
实际应用中,本步骤中所述的保存实际上是在CPU内部的内存中予以保存。
步骤509,下发保存的配置,即,若环路检测标记为有效值则本步骤下发的保存的配置就是从NVRAM读取的默认配置,否则,本步骤下发的保存的配置则是根据不同运行环境及业务环境来相应调整的当前配置。
另需要说明的是,如果两个指定端口中有至少一个不是Up状态,则本流程就直接从步骤509开始执行、并下发保存的当前配置。
至此,如图5所示的流程结束。
如上述如图3以及图4和图5所示的流程可见,本发明实施例中用于触发网络设备恢复默认配置的方法以两个指定端口构成环路为网络设备恢复默认配置的触发条件,因而能够避免现有利用按键触发的方式所存在的缺陷。
而且,为了能够以两个指定端口构成环路为网络设备恢复默认配置的触发条件,本发明实施例中用于触发网络设备恢复默认配置的方法利用构造的环路检测报文来检测网络设备的两个指定端口是否构成回路,并在检测过程中通过将端口隔离、以此来避免环路所可能导致的网络风暴,以及,本发明实施例中用于触发网络设备恢复默认配置的方法还利用保留MAC作为环路检测报文的目的MAC、以使交换芯片能够基于其针对保留MAC所特有的可配置功能而上报环路检测报文。
此外,相比于如图4所示的流程,如图5所示的流程通过在步骤505的判断能够进一步避免由于环路检测报文有可能丢失而导致的环路检测失败,从而提高环路检测的可靠性、并以此来提高默认配置触发的可靠性。
进一步地,如果在恢复默认配置结束后没有及时解除环路,则可能会形成广播风暴、并影响现网正常业务,因此,为了避免这样的情况发生,本发明实施例中用于触发网络设备恢复默认配置的方法还可以对用于构成环路的指定端口进行特殊处理。
所述的特殊处理包括:如果图3中的步骤305、图4中的步骤408和图5中的步骤509所下发的是默认配置、则仅下发默认配置中除两个指定端口之外的其它部分,以及,通过检测环路是否解除的流程来决定是否能够下发默认配置中针对两个指定端口的剩余部分。
图6为本发明实施例中用于触发网络设备恢复默认配置的方法可在恢复默认配置后进一步执行的用于检测环路是否解除的示例性流程示意图。如图6所示,本发明实施例中用于触发网络设备恢复默认配置的方法进一步包括在下发默认配置中除两个指定端口之外的其它部分之后执行的如下步骤:
步骤601,令交换芯片将所述两个指定端口相互隔离并与其他端口隔离、并使交换芯片能够将接收到的目的MAC为保留MAC的所有报文上报;
步骤602,构造环路检测报文发送至所述交换芯片进行转发;
步骤603,在第二预定时间内检测交换芯片是否上报了经过环路环回的环路检测报文,直至认定无法检测到环回的环路检测报文,则表示环路已解除;
步骤604,若步骤603认定无法检测到环回的环路检测报文,则令交换芯片取消对两个指定端口的相互隔离以及与其他端口的隔离、并停止将接收到的目的MAC为保留MAC的所有报文上报;
步骤605,下发默认配置中针对两个指定端口的剩余部分。
另外,在上述流程中:
步骤602可以进一步以预定间隔连续地构造环路检测报文并发送至交换芯片进行转发,优选地,为了减少CPU不必要的开销,以预定间隔连续地构造环路检测报文并发送至交换芯片进行转发可以持续至步骤603认定无法检测到环回的环路检测报文结束;
或者,若步骤603在预定第二时间内持续未检测到环回的环路检测报文,则认定无法检测到环回的环路检测报文,相应地,步骤602可以进一步在步骤603每次检测到环回的环路检测报文后重新构造环路检测报文并发送至交换芯片进行转发;
再或者,若步骤603在预定第二时间内持续未检测到环回的环路检测报文的次数达到预设次数,则认定无法检测到环回的环路检测报文,相应地,步骤602可以进一步在步骤603每次检测到环回的环路检测报文后重新构造环路检测报文并发送至交换芯片进行转发,以及在步骤603每次在预定第二时间内持续未检测到环回的环路检测报文后重新构造环路检测报文并发送至交换芯片进行转发、直至步骤603认定无法检测到环回的环路检测报文。
图7为本发明实施例中用于触发网络设备恢复默认配置的方法可在恢复默认配置后进一步执行的用于检测环路是否解除的一种流程示意图。如图7所示,以每次检测到环回的环路检测报文后重新构造环路检测报文并发送至交换芯片进行转发为例,本发明实施例中用于触发网络设备恢复默认配置的方法进一步包括在下发默认配置中除两个指定端口之外的其它部分之后执行的如下步骤:
步骤701,令交换芯片将两个指定端口相互隔离并与其他端口隔离、并将接收到的目的MAC为保留MAC的所有报文上报,然后跳转至步骤702。
步骤702,构造环路检测报文发送至交换芯片进行转发,然后跳转至步骤703。
步骤703,在预定时间(例如1s)、即第二预定时间内检测交换芯片是否上报了经过环路环回的环路检测报文,如果检测到环回的环路检测报文则表示环路尚未解除并跳转回步骤702继续检测,否则(至少包括交换芯片未上报报文或交换芯片上报的报文均不是经过环路环回的环路检测报文这两种情况)认为环路已解除并跳转至步骤704。
步骤704,令交换芯片取消对两个指定端口的相互隔离以及与其他端口的隔离、并停止将接收到的目的MAC为保留MAC的所有报文上报,然后跳转至步骤705。
步骤705,下发默认配置中针对两个指定端口的剩余部分。
至此,如图7所示的流程结束。
图8为本发明实施例中用于触发网络设备恢复默认配置的方法可在恢复默认配置后进一步执行的用于检测环路是否解除的另一种流程示意图。如图8所示,以多次检测环路检测报文、以及每次检测到环回的环路检测报文后重新构造环路检测报文并发送至交换芯片进行转发、无法检测到的次数未达到预定次数时在每次无法检测到环回的环路检测报文后重新构造环路检测报文并发送至交换芯片进行转发为例,本发明实施例中用于触发网络设备恢复默认配置的方法进一步包括在下发默认配置中除两个指定端口之外的其它部分之后执行的如下步骤:
步骤801,令交换芯片将两个指定端口相互隔离并与其他端口隔离、并将接收到的目的MAC为保留MAC的所有报文上报,然后跳转至步骤802。
步骤802,构造环路检测报文发送至交换芯片进行转发,然后跳转至步骤803。
步骤803,在预定时间(例如1s)、即第二预定时间内检测交换芯片是否上报了经过环路环回的环路检测报文,如果检测到环回的环路检测报文则表示环路尚未解除并跳转回步骤802继续检测,否则(至少包括交换芯片未上报报文或交换芯片上报的报文均不是经过环路环回的环路检测报文这两种情况)跳转至步骤804。
步骤804,对未检测到环回的环路检测报文的次数、即检测到环路解除的次数加1,并判断未检测到环回的环路检测报文的次数是否达到最大次数(例如3次),如果是则表示未检测到环回的环路检测报文不是由于环路检测报文、而是由于环路确实已解除,因而跳转至步骤805,否则,认为未检测到环回的环路检测报文有可能是由于环路检测报文,因而跳转回步骤802继续检测。
步骤805,令交换芯片取消对两个指定端口的相互隔离以及与其他端口的隔离、并停止将接收到的目的MAC为保留MAC的所有报文上报,然后跳转至步骤806;
步骤806,下发默认配置中针对所述两个指定端口的剩余部分。
至此,如图8所示的流程结束。
如上述如图6以及图7和图8所示的流程可见,本发明实施例中用于触发网络设备恢复默认配置的方法在两个指定端口构成的环路触发网络设备恢复默认配置后,可以进一步利用环路检测报文检测两个指定端口构成的环路是否解除,并且只有在两个指定端口构成的环路被解除后才允许两个指定端口按照默认配置的方式被使用,从而能够在恢复默认配置后避免由于两个指定端口构成的环路被误保留而导致的网络风暴。
此外,相比于如图7所示的流程,如图8所示的流程通过在步骤804的判断能够进一步避免由于环路检测报文有可能丢失而误认为环路已解除,从而提高环路解除检测的可靠性。
以上,是对本发明实施例中用于触发网络设备恢复默认配置的方法的详细说明。与该方法相对应地,本发明实施例还提供了用于触发网络设备恢复默认配置的装置。
图9为本发明实施例中用于触发网络设备恢复默认配置的装置的示例性结构示意图。如图9所示,本发明实施例中用于触发网络设备恢复默认配置的装置包括在网络设备上电启动且判断出两个指定端口均为Up状态后被触发、并承载于CPU内的如下模块:
预配置执行模块,令交换芯片将所有端口隔离、并使交换芯片能够将接收到的目的MAC为保留MAC的所有报文上报;
第一报文构造模块,构造环路检测报文发送至交换芯片进行转发;其中,构造的环路检测报文的目的MAC为保留MAC、并携带有用于构成环路的两个指定端口中的其中一个的端口号;
第一报文检测模块,在第一预定时间内检测交换芯片是否上报了经过环路环回的环路检测报文;其中,经过环路环回的环路检测报文的目的MAC为保留MAC、并携带有用于构成环路的两个指定端口中的另一个的端口号;
预配置取消模块,令交换芯片取消对所有端口隔离、并停止将接收到的目的MAC为保留MAC的所有报文上报;
配置下发模块,若报文检测模块检测到了环回的环路检测报文则从例如NVRAM等存储器件读取默认配置并下发、否则下发当前配置。
另外,在上述结构中:
报文构造模块可以仅一次构造环路检测报文并发送至交换芯片进行转发,但这样就存在环路检测报文丢失而漏检测环路的风险,那么,为了避免由于环路检测报文丢失而漏检测环路,第一报文构造模块可以进一步以预定间隔连续地构造环路检测报文并发送至交换芯片进行转发,优选地,为了减少CPU不必要的开销,以预定间隔连续地构造环路检测报文并发送至交换芯片进行转发可以持续直至第一报文检测模块未能在第一预定时间内检测到环回的环路检测报文的次数达到最大次数时结束;或者,第一报文检测模块可以执行预设次数的检测,此时,第一报文构造模块可以进一步在第一报文检测模块每次未能在第一预定时间内检测到环回的环路检测报文后重新构造环路检测报文并发送至交换芯片进行转发,优选地,为了减少CPU不必要的开销,以该方式重新构造环路检测报文并发送至交换芯片进行转发可以持续至第一报文检测模块未能在第一预定时间内检测到环回的环路检测报文的次数达到最大次数时结束。
以及,第一报文检测模块可以进一步在检测到环回的环路检测报文后,将预设的环路检测标记设置为表示已成功检测到环路的有效值;相应地,配置下发模块可以进一步依据环路检测标记是否为有效值来判断报文检测模块是否检测到了环回的环路检测报文。即,若环路检测标记为有效值则从NVRAM读取默认配置并下发、否则下发当前配置。
另需要说明的是,如果两个指定端口中有至少一个不是Up状态,则上述结构中仅有配置下发模块被触发,相应地,环路检测标记会保持为在网络设备启动后赋予的初始值,因此,配置下发模块此时只可能下发保存的当前配置。
如上述如图9所示的结构可见,本发明实施例中用于触发网络设备恢复默认配置的装置以两个指定端口构成环路为网络设备恢复默认配置的触发条件,因而能够避免现有利用按键触发的方式所存在的缺陷。
而且,为了能够以两个指定端口构成环路为网络设备恢复默认配置的触发条件,本发明实施例中用于触发网络设备恢复默认配置的装置利用构造的环路检测报文来检测网络设备的两个指定端口是否构成回路,并在检测过程中通过将端口隔离、以此来避免环路所可能导致的网络风暴,以及,本发明实施例中用于触发网络设备恢复默认配置的装置还利用保留MAC作为环路检测报文的目的MAC、以使交换芯片能够基于其针对保留MAC所特有的可配置功能而上报环路检测报文。
进一步地,如果在恢复默认配置结束后没有及时解除环路,则可能会形成广播风暴、并影响现网正常业务,因此,为了避免这样的情况发生,本发明实施例中用于触发网络设备恢复默认配置的装置还可以对用于构成环路的指定端口进行特殊处理。
所述的特殊处理包括:如果图9中的配置下发模块下发的是默认配置、则仅下发默认配置中除两个指定端口之外的其它部分,以及,通过检测环路是否解除的方式来决定是否能够下发默认配置中针对两个指定端口的剩余部分。
图10为本发明实施例中用于触发网络设备恢复默认配置的装置可在恢复默认配置后进一步触发的用于检测环路是否解除的示例性结构示意图。如图10所示,本发明实施例中用于触发网络设备恢复默认配置的装置进一步包括在配置下发模块下发默认配置中除两个指定端口之外的其它部分之后被触发的如下模块:
特殊配置执行模块,令交换芯片将两个指定端口相互隔离并与其他端口隔离、并使交换芯片能够将接收到的目的MAC为保留MAC的所有报文上报;
第二报文构造模块,构造环路检测报文发送至所述交换芯片进行转发;
第二报文检测模块,检测交换芯片是否上报了经过环路环回的环路检测报文,直至无法检测到环回的环路检测报文,则表示环路已解除;
特殊配置取消模块,若第二报文检测模块无法检测到环回的环路检测报文,则令交换芯片取消对两个指定端口的相互隔离以及与其他端口的隔离、并停止将接收到的目的MAC为保留MAC的所有报文上报;
配置补发模块,下发默认配置中针对两个指定端口的剩余部分。
另外,在上述结构中:
第二报文构造模块可以进一步以预定间隔连续地构造环路检测报文并发送至交换芯片进行转发,优选地,为了减少CPU不必要的开销,以预定间隔连续地构造环路检测报文并发送至交换芯片进行转发可以持续至第二报文检测模块在第二预定时间内无法检测到环回的环路检测报文;
或者,若第二报文检测模块在预定第二时间内持续未检测到环回的环路检测报文,则认定无法检测到环回的环路检测报文,且,第二报文构造模块可以进一步在第二报文检测模块每次检测到环回的环路检测报文后重新构造环路检测报文并发送至交换芯片进行转发;
再或者,若第二报文检测模块在预定第二时间内持续未检测到环回的环路检测报文的次数达到预设次数,则认定无法检测到环回的环路检测报文,且,第二报文检测模块可以执行预设次数的在第二预定时间内的检测,此时,第二报文构造模块可以进一步在第二报文检测模块每次检测到环回的环路检测报文后重新构造环路检测报文并发送至交换芯片进行转发,以及在第二报文检测模块每次在预定第二时间内持续未检测到环回的环路检测报文后重新构造环路检测报文并发送至交换芯片进行转发、直至第二报文检测模块认定无法检测到环回的环路检测报文。
如上述如图10所示的结构可见,本发明实施例中用于触发网络设备恢复默认配置的装置在两个指定端口构成的环路触发网络设备恢复默认配置后,可以进一步利用环路检测报文检测两个指定端口构成的环路是否解除,并且只有在两个指定端口构成的环路被解除后才允许两个指定端口按照默认配置的方式被使用,从而能够在恢复默认配置后避免由于两个指定端口构成的环路被误保留而导致的网络风暴。
上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。