模块间冲突检测的方法、系统和主控板的制作方法

文档序号:7654252阅读:202来源:国知局
专利名称:模块间冲突检测的方法、系统和主控板的制作方法
技术领域
本发明涉及网络转发技术,特别涉及一种模块间冲突检测的方法、系统和主控板。
背景技术
网络转发技术中涉及多种不同功能的模块。不同模块间可能重复设置或建立相同或相关的内容,导致模块功能不能正确执行,这样就产生了冲突。为了保证模块功能的正常执行,模块间需要进行冲突检测。
下面以地址解析协议(Address Resolution Protocol,ARP)与网络转换协议(Network Address Translation,NAT)为例加以说明。ARP是将IP地址转化成物理地址的协议。具体的,ARP模块中保存有包括IP地址到物理地址的映射表。ARP映射表中的表项可以通过静态配置或动态学习的方式建立。静态配置是用户通过界面进行设置。动态学习是当收到ARP请求报文或ARP应答报文时,根据报文中的IP地址与物理地址建立映射表项。NAT是关于将内部私有IP地址转换为公网IP地址的协议。NAT转换过程中,将从NAT地址池中挑选公网IP地址作为转换后的源地址。
为了避免冲突,ARP模块在动态学习过程中,进行的冲突检测包括以下过程检查要建立的ARP表项中的IP地址与ARP模块所在的接口上包含的地址,如果相同,则认为产生冲突,不进行动态学习。所述所在接口上包含的地址包括用户在该接口上配置的IP地址和该接口上NAT地址池中的地址。上述ARP动态学习过程中,如果检查到要建立表项的IP地址与所在接口的NAT地址池中的IP地址相同,则不建立该IP地址相关的表项。
反之,当用户在接口上应用NAT地址池时,需要检查是否与该接口上相关的ARP模块中的表项形成冲突。如果与动态ARP冲突,需要通知ARP删除相关表项。如果与静态ARP冲突,则提示用户发现配置冲突,设置NAT地址池不成功。
以下介绍现有技术中分布式系统下模块间冲突检测的方法。分布式系统中包括多个硬件插板,这些插板分为主控板和接口板。主控板和接口板分别具有NAT和ARP模块。主控板一般处理包括用户配置的内容,接口一般处理包括网络转发的报文。具体的,主控板处理用户的配置并将配置数据保存,通过板间通讯同步到其他接口板。接口板接收网络转发的数据,并对数据进行处理,在收到ARP报文进行动态学习。例如,接口板接收主控板发来的用户配置数据并保存,在发送报文和接收报文时根据用户配置对报文进行处理。在根据用户配置对报文进行处理过程中,可能需要NAT地址转换,这时,这些用户配置的静态ARP与NAT进行冲突检测可以正常进行。但是,对于接口板根据转发报文动态学习的ARP表项会与NAT发生冲突检测无效的情况。图1示出了该情况的原理。如图1所示主控板上执行步骤101A用户配置NAT地址池,并到本板ARP模块检测是否存在冲突。
同时,接口板上执行步骤101B接口板进行ARP动态学习,并检查是否与本板保存的NAT地址池数据有冲突。
主控板上执行步骤102A当检测没有发生冲突时,将设置的NAT地址池保存在主控板上,并发送所述设置的NAT地址池到接口板。
接口板上执行步骤102B当检测没有发生冲突时,接口板将动态学习的ARP表项发送给主控板。
上述过程中,如果步骤101B中接口板上动态学习的ARP与步骤101A中主控板上正在配置的NAT有冲突,由于主控板和接口板此时还没有进行数据同步,或者说由于数据同步需要花费一定的时间,此时还没有完成数据同步,那么,主控板和接口板不知道对方上有冲突的数据存在,即冲突检测失效。经过步骤102A和102B后,主控板和接口板上都会将冲突数据建立为正常数据。这样,会导致模块功能出错。

发明内容
本发明的目的是提供一种模块间冲突检测的方法,以避免分布式系统下模块间冲突检测发生失效。
为解决上述技术问题,本发明提供一种模块间冲突检测的方法、系统和主控板是这样实现的一种模块间冲突检测的方法,应用于分布式系统,包括主控板上配置NAT模块的地址池;接口板发送动态学习的ARP表项到主控板;当检测到所述接口板发来的ARP表项与所述主控板上配置的NAT地址池有冲突时,删除所述ARP表项中的冲突表项后保存,并通知接口板删除自身保存的ARP冲突表项;主控板保存设置的NAT地址池数据,并发送所述NAT地址池数据至接口板。
所述检测接口板发来的ARP表项与所述主控板上配置的NAT地址池中的数据的冲突由以下方式实现主控板上建立暂态表项,将所述配置的NAT地址池中的数据保存在建立的暂态表项中;检测所述接口板发来的ARP表项与所述暂态表项的冲突数据。
在建立暂态表项时启动定时器,定时器定时时间到达后删除建立的暂态表项。
在检测发来的ARP表项与暂态表项是否冲突之前包括如果用户删除所述配置的主控板上NAT地址池数据,该方法还包括删除暂态表项中的相应的数据;如果用户删除所述配置的主控板上NAT地址池的全部数据,该方法还包括删除暂态表项。
所述接口板动态学习ARP表项包括接口板根据转发的报文动态学习ARP,并与接口板上保存的NAT地址池进行冲突检测。
一种模块间冲突检测的主控板,应用于分布式系统,其中,主控板包括NAT地址池配置单元,冲突检测单元,通知单元,第一保存单元,NAT地址池发送单元,
NAT地址池配置单元用于配置NAT模块的地址池;冲突检测单元用于检测到接口板发来的ARP表项与所述主控板上NAT地址池配置单元配置的NAT地址池有冲突时,删除所述ARP表项中的冲突表项;通知单元用于通知接口板删除保存的ARP冲突表项;第一保存单元用于保存删除冲突表项后的ARP表项;NAT地址池发送单元用于发送配置的NAT地址池到接口板。
所述冲突检测单元包括暂态表项生成单元和暂态表项冲突检测单元,其中,暂态表项生成单元用于建立暂态表项,将配置的NAT地址池中的数据保存在建立的暂态表项中;暂态表项冲突检测单元用于检测所述接口板发来的ARP表项与所述暂态表项冲突时,删除所述ARP表项中的冲突表项。
所述冲突检测单元还包括定时器,用于在暂态表项生成单元生成暂态表项时启动定时,并在定时时间到达时删除暂态表项生成单元中的暂态表项。
一种模块间冲突检测的系统,应用于分布式系统,包括所述的主控板,还包括接口板,其中,接口板包括ARP动态学习单元,发送单元,删除单元,第二保存单元,ARP动态学习单元用于动态学习ARP表项;发送单元用于发送动态学习的ARP表项到主控板上的冲突检测单元;删除单元用于根据主控板上通知单元发来的通知删除ARP表项中的冲突表项;第二保存单元用于保存主控板上NAT地址池发送单元发来的NAT地址池。
由以上本发明提供的技术方案可见,本发明在主控板上配置NAT模块的地址池,接口板发送动态学习的ARP表项到主控板,当检测到所述接口板发来的ARP表项与所述主控板上配置的NAT地址池有冲突时,删除所述ARP表项中的冲突表项后保存,并通知接口板删除自身保存的ARP冲突表项,主控板保存设置的NAT地址池数据,并发送所述NAT地址池数据至接口板。这样,由于主控板上保存的接口板发来的ARP表项中,已经删除了与配置的NAT地址池中冲突的数据,因此,主控板保存的NAT地址池与ARP表项不会有冲突。同样地,接口板上保存的ARP表项是删除了与主控板上设置的NAT地址池有冲突的数据,因此,接口板上保存的ARP表项与主控板发来的NAT地址池数据也不会有冲突。


图1为现有技术中模块间冲突检测的原理图;图2为本发明方法实施例的流程图;图3为本发明方法一个完整实施例的流程图;图4为本发明系统实施例的框图;图5为本发明系统另一实施例的框图;图6为本发明主控板实施例的框图;图7为本发明主控板另一实施例的框图。
具体实施例方式
本发明提供一种模块间冲突检测的方法,主控板上配置NAT模块的地址池;接口板发送动态学习的ARP表项到主控板,当检测到所述接口板发来的ARP表项与所述主控板上配置的NAT地址池有冲突时,删除所述ARP表项中的冲突表项后保存,并通知接口板删除自身保存的ARP冲突表项;主控板保存设置的NAT地址池数据,并发送所述NAT地址池数据至接口板。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明作进一步的详细说明。
图2示出了本发明的方法实施例的流程图,如图所示,包括步骤201主控板上配置NAT模块的地址池。
该步骤是用户配置主控板上的NAT模块的地址池。配置NAT模块的地址池包括向NAT模块地址池中添加数据、更新数据等操作。
配置过程中,配置的NAT模块地址池中的数据还会与主控板上的ARP模块保存的表项进行冲突检测,以判断是否有发生冲突的数据。如果发生冲突,则按照现有技术的方法处理。具体的,如果与动态ARP冲突,需要通知ARP删除相关表项。如果与静态ARP冲突,则提示用户发现配置冲突,设置NAT地址池不成功。
该步骤进行的同时,接口板正在进行ARP动态学习,具体的,接口板根据转发的报文动态学习ARP,并与接口板上保存的NAT地址池进行冲突检测。
而该步骤只能检测主控板上的NAT地址池与主控板上ARP模块中的表项是否冲突。类似的,接口板只能检测接口板上动态学习的ARP表项与接口板上保存的NAT地址池是否冲突。由于接口板上动态学习产生的ARP表项发送到主控板需要一定的时间,也就是说还没有发送到主控板,因此该步骤不能检测到主控板上的配置的NAT地址池是否与接口板上动态学习的ARP表项是否冲突。
步骤202接口板发送动态学习的ARP表项到主控板;当检测到所述接口板发来的ARP表项与所述主控板上配置的NAT地址池有冲突时,删除所述ARP中的冲突表项后保存,并通知接口板删除自身保存的ARP冲突表项。
该步骤中,检测接口板发来的ARP表项与所述主控板上配置的NAT地址池中的冲突数据,可以是每次接口板发来的ARP表项与主板上NAT地址池中的全部数据进行冲突检测,也可以如以下步骤202a和202b实现202a主控板上建立暂态表项,并将所述配置的NAT地址池中的数据保存在建立的暂态表项中。
前述步骤201中配置的NAT地址池中的数据,在该步骤中,通过建立的暂态表项保存,以提供在后续过程中与接口板发来的ARP表项进行冲突检测。
步骤202b检测所述接口板发来的ARP表项与所述暂态表项的冲突数据。
该步骤即是检测接口板发来的ARP表项与所述暂态表项中是否有相同的数据。
另外,可以设置定时器,对暂态表项的存在时间进行定时。具体的,当建立暂态表项时启动定时器,在定时器定时时间结束后删除建立的暂态表项。这是考虑到接口板发送的ARP表项到主控板,检测发来的ARP表项与所述暂态表项有冲突,这个过程需要一定的时间,而在此时间之后,即完成ARP表项与暂态表项的冲突检测之后,暂态表项没有存在的必要,因此将其删除。所述定时器的定时时间可以根据经验值设定。所述的经验值基于对接口板发送的ARP表项到主控板并检测暂态表项所需时间的统计。
如果在检测发来的ARP表项与暂态表项是否冲突之前,用户删除主控板上NAT地址池中的数据,这时,需要删除暂态表项中的相应的数据,以及时地避免删除接口板上ARP表项中没有发生冲突的数据。类似的,如果用户删除的NAT地址池中的数据与暂态表项中存储的数据相同,这时可以立即删除暂态表项,而不必等定时器定时时间到达后再删除暂态表项。
步骤202a和202b所述的方式,只有在主控板上设置NAT地址池时存在暂态表项,并不是在每次接口板上发来ARP表项时都有暂态表项存在,也就是说,步骤202a和202b的方式只有存在暂态表项时才需要接口板上发来ARP表项与暂态表项进行冲突检测,相对于之前提到的每次接口板发来的ARP表项与主板上NAT地址池中的数据进行冲突检测来说,效率得到了提高。并且,暂态表项中的数据包括设置的NAT数据,数据量较小,冲突检测过程所需的执行时间也会比较短。
步骤203主控板保存设置的NAT地址池数据,并发送所述NAT地址池数据至接口板。
由于前面步骤中主控板上保存的接口板发来的ARP表项中,已经删除了与配置的NAT地址池中冲突的数据,因此,该步骤之后,主控板保存的NAT地址池与ARP表项不会有冲突。
同样地,接口板上保存的ARP表项是删除了与主控板上设置的NAT地址池有冲突的数据,因此,该步骤之后,接口板上保存的ARP表项与主控板发来的NAT地址池数据不会有冲突。
需要说明的是,也可以先执行步骤203,再执行步骤202,这样,最终主控板和接口板上也都不会有冲突。
以下例举本发明方法的一个完整实施例。图3示出了该实施例的流程图,如图所示步骤301主控板上配置NAT地址池中的数据。
如前所述,该步骤是用户配置主控板上的NAT模块的地址池。假设设置的数据中存在IP地址202.1.1.1。
步骤302检测配置的NAT数据与ARP模块没有冲突发生。
该步骤是主控板上配置的NAT数据是否与主控板上的ARP模块是否有冲突发生,与现有技术相同。这里为了简化,假设检测没有冲突发生。
与此同时,接口板上正在进行步骤301a,即进行ARP动态学习。这里,假设动态学习的ARP表项中存在IP地址为202.1.1.1的数据。可以看出,该ARP表项与前面步骤301中主控板上配置的NAT地址池中有相同的数据,即有相同的202.1.1.1的地址。
之后,接口板执行步骤302a,即将学习的ARP表项发送到主控板。如前所述,接口板将动态学习的ARP表项发送到主控板需要一定时间。
步骤303主控板建立暂态表项,并将配置的NAT数据保存在暂态表项中。同时,启动定时器。
步骤304检测到ARP表项与NAT地址池有冲突,删除ARP中的冲突表项后保存。
该步骤检测到ARP表项中包括IP地址为202.1.1.1表项与NAT地址池中冲突,则删除ARP中IP地址为202.1.1.1的表项后,保存ARP表项。
步骤305定时时间到达,删除暂态表项。
步骤306主控板通知接口板删除自身保存的ARP表项中的冲突表项。
接口板接到主控板的通知后,删除自身保存的ARP表项中包括IP地址为202.1.1.1的表项。
步骤307主控板保存设置的NAT地址池数据。
步骤308主控板发生NAT地址池数据到接口板。
由以上实施例可见,主控板上保存的接口板发来的ARP表项中,已经删除了与配置的NAT地址池中冲突的表项,因此,主控板保存的NAT地址池与ARP表项不会有冲突。
同样地,接口板上保存的ARP表项是删除了与主控板上设置的NAT地址池有冲突的表项,因此,接口板上保存的ARP表项与主控板发来的NAT地址池数据也不会有冲突。
以下介绍本发明提供的系统实施例。图4示出了该系统实施例的框图,如图所示一种模块间冲突检测的系统,包括主控板41和接口板42,其中,主控板41包括NAT地址池配置单元411,冲突检测单元412,通知单元413,第一保存单元414,NAT地址池发送单元415,NAT地址池配置单元411用于配置NAT模块的地址池;冲突检测单元412用于检测到接口板42上的发送单元422发来的ARP表项与所述主控板41上NAT地址池配置单元411配置的NAT地址池有冲突时,删除所述ARP表项中的冲突表项;通知单元413用于通知接口板42上的删除单元423删除保存的ARP冲突表项;第一保存单元414用于保存删除冲突表项后的ARP表项;NAT地址池发送单元415用于发送配置的NAT地址池到接口板42上的第二保存单元424;接口板42包括ARP动态学习单元421,发送单元422,删除单元423,第二保存单元424,ARP动态学习单元421用于动态学习ARP表项;发送单元422用于发送动态学习的ARP表项到主控板41上的冲突检测单元412;删除单元423用于根据主控板41上通知单元413发来的通知删除ARP表项中的冲突表项;第二保存单元424用于保存主控板41上NAT地址池发送单元415发来的NAT地址池。
该系统中,所述冲突检测单元412包括暂态表项生成单元4121和暂态表项冲突检测单元4122,其中,暂态表项生成单元4121用于建立暂态表项,将配置的NAT地址池中的数据保存在建立的暂态表项中;暂态表项冲突检测单元4122用于检测所述接口板发来的ARP表项与所述暂态表项冲突时,删除所述ARP表项中的冲突表项。
该系统中,所述冲突检测单元412还包括定时器4123,如图5所示,用于在暂态表项生成单元4121生成暂态表项时启动定时,并在定时时间到达时删除暂态表项生成单元4121中的暂态表项。
利用该系统实现分布式系统中模块间中冲突检测的方法与前面类似,在此不再赘述。
以下介绍本发明提供的主控板实施例。图6示出了该主控板实施例的框图,如图所示一种模块间冲突检测的主控板,包括NAT地址池配置单元411,冲突检测单元412,通知单元413,第一保存单元414,NAT地址池发送单元415,NAT地址池配置单元411用于配置NAT模块的地址池;冲突检测单元412用于检测到接口板发来的ARP表项与所述主控板上NAT地址池配置单元411配置的NAT地址池有冲突时,删除所述ARP表项中的冲突表项;通知单元413用于通知接口板删除保存的ARP冲突表项;第一保存单元414用于保存删除冲突表项后的ARP表项;NAT地址池发送单元415用于发送配置的NAT地址池到接口板。
该主控板中,所述冲突检测单元412包括暂态表项生成单元4121和暂态表项冲突检测单元4122,其中,暂态表项生成单元4121用于建立暂态表项,将配置的NAT地址池中的数据保存在建立的暂态表项中;
暂态表项冲突检测单元4122用于检测所述接口板发来的ARP表项与所述暂态表项冲突时,删除所述ARP表项中的冲突表项。
该主控板中,所述冲突检测单元412还包括定时器4123,如图7所示,用于在暂态表项生成单元4121生成暂态表项时启动定时,并在定时时间到达时删除暂态表项生成单元4121中的暂态表项。
利用该主控板实现分布式系统中模块间中冲突检测的方法与前面类似,在此不再赘述。
由以上实施例可见,主控板上保存的接口板发来的ARP表项中,已经删除了与配置的NAT地址池中冲突的表项,因此,主控板保存的NAT地址池与ARP表项不会有冲突。同样地,接口板上保存的ARP表项是删除了与主控板上设置的NAT地址池有冲突的表项,因此,接口板上保存的ARP表项与主控板发来的NAT地址池数据也不会有冲突。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
权利要求
1.一种模块间冲突检测的方法,应用于分布式系统,其特征在于,包括主控板上配置NAT模块的地址池;接口板发送动态学习的ARP表项到主控板;当检测到所述接口板发来的ARP表项与所述主控板上配置的NAT地址池有冲突时,删除所述ARP表项中的冲突表项后保存,并通知接口板删除自身保存的ARP冲突表项;主控板保存设置的NAT地址池数据,并发送所述NAT地址池数据至接口板。
2.如权利要求1所述的方法,其特征在于,所述检测接口板发来的ARP表项与所述主控板上配置的NAT地址池中的数据的冲突由以下方式实现主控板上建立暂态表项,将所述配置的NAT地址池中的数据保存在建立的暂态表项中;检测所述接口板发来的ARP表项与所述暂态表项的冲突数据。
3.如权利要求2所述的方法,其特征在于,在建立暂态表项时启动定时器,定时器定时时间到达后删除建立的暂态表项。
4.如权利要求2所述的方法,其特征在于,在检测发来的ARP表项与暂态表项是否冲突之前包括如果用户删除所述配置的主控板上NAT地址池数据,该方法还包括删除暂态表项中的相应的数据;如果用户删除所述配置的主控板上NAT地址池的全部数据,该方法还包括删除暂态表项。
5.如权利要求2所述的方法,其特征在于,所述接口板动态学习ARP表项包括接口板根据转发的报文动态学习ARP,并与接口板上保存的NAT地址池进行冲突检测。
6.一种模块间冲突检测的主控板,应用于分布式系统,其特征在于,其中,主控板包括NAT地址池配置单元,冲突检测单元,通知单元,第一保存单元,NAT地址池发送单元,NAT地址池配置单元用于配置NAT模块的地址池;冲突检测单元用于检测到接口板发来的ARP表项与所述主控板上NAT地址池配置单元配置的NAT地址池有冲突时,删除所述ARP表项中的冲突表项;通知单元用于通知接口板删除保存的ARP冲突表项;第一保存单元用于保存删除冲突表项后的ARP表项;NAT地址池发送单元用于发送配置的NAT地址池到接口板。
7.如权利要求6所述的主控板,其特征在于,所述冲突检测单元包括暂态表项生成单元和暂态表项冲突检测单元,其中,暂态表项生成单元用于建立暂态表项,将配置的NAT地址池中的数据保存在建立的暂态表项中;暂态表项冲突检测单元用于检测所述接口板发来的ARP表项与所述暂态表项冲突时,删除所述ARP表项中的冲突表项。
8.如权利要求6所述的主控板,其特征在于,所述冲突检测单元还包括定时器,用于在暂态表项生成单元生成暂态表项时启动定时,并在定时时间到达时删除暂态表项生成单元中的暂态表项。
9.一种模块间冲突检测的系统,应用于分布式系统,其特征在于包括如权利要求6至8任一项所述的主控板,还包括接口板,其中,接口板包括ARP动态学习单元,发送单元,删除单元,第二保存单元,ARP动态学习单元用于动态学习ARP表项;发送单元用于发送动态学习的ARP表项到主控板上的冲突检测单元;删除单元用于根据主控板上通知单元发来的通知删除ARP表项中的冲突表项;第二保存单元用于保存主控板上NAT地址池发送单元发来的NAT地址池。
全文摘要
本发明公开了一种模块间冲突检测的方法,应用于分布式系统,包括在主控板上配置NAT模块的地址池,接口板发送动态学习的ARP表项到主控板,当检测到所述接口板发来的ARP表项与所述主控板上配置的NAT地址池有冲突时,删除所述ARP表项中的冲突表项后保存,并通知接口板删除自身保存的ARP冲突表项,主控板保存设置的NAT地址池数据,并发送所述NAT地址池数据至接口板。本发明还公开了一种模块间冲突检测的系统和主控板。利用本发明,可以保证主控板保存的NAT地址池与ARP表项不会有冲突,并保证接口板上保存的ARP表项与主控板发来的NAT地址池数据也不会有冲突。
文档编号H04L12/54GK101068254SQ20071010945
公开日2007年11月7日 申请日期2007年6月21日 优先权日2007年6月21日
发明者常向青, 赵丽娜 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1