具体实施方式
对于包括一接口板以及多个业务板的分布式网络处理系统,在现有技术中采取各业务板独立维护、分别老化各自MAC表项的方案,并由此带来了诸多缺陷;为了对上述缺陷加以克服,本发明提出了一种分布式网络处理系统的MAC表项集中式维护方案,如图2所示。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
对于本发明提供的分布式网络处理系统的MAC表项维护方法,首先需要说明的是,其实施并不影响现有分布式网络处理系统中网络接口与报文处理能力分离的功能架构,即在进行MAC表项学习之前,需要由接口板先将报文流转发给业务板,即步骤S01:当接口板接收到报文流时,根据流表或者HASH算法进行报文流分类,并转发给相应的业务板。
对接收到报文流的业务板来说,还需要执行步骤S02:识别本地第一MAC表中是否存在对应该报文流的MAC表项,存在则直接进行相应的业务处理即可,无需进行MAC表项的学习,否则进入本发明提供的、可概括为“共同学习,集中老化”的MAC表项维护流程,包括MAC表项的学习和老化。由于上述步骤S01~S02的执行并不涉及到对现有技术的改进,因此不再赘述。
请参考图3,本发明的实施例提供了一种分布式网络处理系统的MAC表项维护方法,包括以下步骤:
S1、在业务板上根据接口板转发的报文流进行MAC表项的学习,将需要学习的MAC表项保存在本地的第一MAC表中,并将该需要学习的MAC表项同步保存到其它业务板的第一MAC表以及接口板所维护的第二MAC表中;
可以看出,各个业务板上分别设有第一MAC表,接口板设有第二MAC表,当一个业务板学习到一MAC表项时,接口板所维护的第二MAC表中也将同步添加该MAC表项;这也就意味着,各业务板所学习的全部MAC表项都将反映在接口板的第二MAC表中。
具体的,本步骤S1可以通过以下操作完成:
S11、进行MAC表项学习的业务板将需要学习的MAC表项保存在本地的第一MAC表中;
S12、向接口板发送携带有该MAC表项信息的MAC学习消息;
S13、接收到该MAC学习消息的接口板从中提取该MAC表项并保存到第二MAC表中;
S14、将该MAC表项同步到其他业务板,并将其保存在其他业务板的第一MAC表中。
上述步骤相当于采取了同步保存到全部业务板这样的方案,也就是说,当一个业务板学习到一MAC地址后,其他的业务板和接口板也就同时学习到该MAC地址,从而完成共同学习。
但是,在所有的业务板中保存同样的MAC地址,往往会带来存储空间的占用和浪费。因此,作为改进方案,可将学习到的MAC表项同步到其他业务板,并根据所述业务板预设的规则识别是否需要对该MAC表项进行学习,是则将该MAC表项保存到相应业务板的第一MAC表,否则不予保存。比如,当划分了业务板所对应的域后,对于从非本业务板处理对象的域所发出的报文流,就不必再行学习和维护,从而降低了存储空间的占用,也减少了处理资源的浪费。
通过上述步骤S1对MAC表项的共同学习,所有的MAC表项都能够在接口板查到,因此可以由接口板集中进行老化管理,即执行步骤S2:根据通过接口板的报文流进行第二MAC表的老化维护,且删除第二MAC表中一MAC表项时,同步删除第一MAC表中的相应MAC表项。
例如,可以通过时间老化的方式对MAC表项加以维护,包括以下步骤:
S21、当任一MAC表项添加到第二MAC表中时,赋予其一计时器,其设定了该MAC表项的老化时间t0;
S22、对于该MAC表项,识别是否在预设时间t0内接收到与其匹配的报文流,是则执行步骤S23,否则执行步骤S24;
需要说明的是,与MAC表项匹配的报文流包括:接口板接收的、其SMAC和PORT与该MAC表项一致的报文流;以及,接口板发送的、其DMAC和PORT与MAC表项一致的报文流。
前者是接口板从外部端口接收到的,后者是接口板从业务板接收到的。但无论接口板获取上述哪一类报文,都说明相应的MAC表项处于活动状态,不应予以删除,因此重新计时,不予老化。
S23、重新初始化该表项的计时器为t0,并重新执行步骤S22;
S24、删除所述MAC表项,并执行步骤S25;
S25、向业务板广播第二MAC表中该MAC表项的删除消息;
S26、对于接收到所述删除消息的业务板,如果在其本地的第一MAC表中查找到对应的MAC表项,则执行步骤S27,否则不进行任何操作;
S27、删除该MAC表项。
可以看出,通过上述步骤S2的集中老化处理,当接口板中一MAC表项老化删除时,各业务板也同步执行了删除操作,从而避免了分布式网络处理系统中,各业务板分别老化所导致的MAC表项不一致的问题。基于上述改进,即使报文流在一段时间内只通过一个业务板,由于其必然通过接口板,因此不会带来第二MAC表中相应表项的老化,也不会导致其没有通过的业务板第一MAC表中相应表项的老化。显然,只要一报文流通过接口板的中断时间未超过预设时间,则接口板和业务板的相应表项都不会被老化;由此,无论其进行多少次业务板间的切换,都能够顺利查找到相应的MAC表项,不致在报文流传送过程中发生中断和重新学习问题。
综上所述,通过步骤S1~S2,避免了在报文流传送过程中的中断和重新学习问题,既保证了报文流转发的效率和连续性,又避免了数据包丢失和泛洪现象的发生。
请参考图4,显示了本发明所提供的分布式网络处理系统的MAC表项维护方法一较佳实施例的流程图。
本领域技术人员可以理解,上述过程显示了本发明所提供MAC表项维护方法的整体解决方案。为了更加形象的对该方案加以描述,下面分别通过接口板和业务板上的具体处理过程加以描述。
请结合图5A,显示了在本发明提供的分布式网络处理系统的MAC表项维护方法中,接口板对报文流所执行的转发操作,如下:
SA1、识别接口板接收到的报文,对于从端口进入接口板的报文执行步骤SA2,对于从业务板进行接口板的报文执行步骤SA6;
SA2、接口板提取其SMAC和PORT;
SA3、在第二MAC表中执行匹配;如果找到匹配的表项,则执行步骤SA4,否则执行步骤SA5;
SA4、重新初始化该MAC表项的老化时间,然后执行步骤SA5;
SA5、根据流表或者HASH算法进行流分类,将该报文流转发给相应的业务板;
SA6、提取其DMAC和PORT;
SA7、对第二MAC表中与该DMAC和PORT匹配的MAC表项,重新初始化其老化时间,并发出该报文流,结束。
可以看出,只要在一MAC表项的老化时间之内接收到相应报文流,就能够保持该MAC表项的活性,从而保证相应报文流的正常转发。
请结合图5B,显示了在本发明提供的分布式网络处理系统的MAC表项维护方法中,接口板对第二MAC表所执行的维护操作,如下:
SB1、当接口板接收到一业务板发送的MAC学习消息时,从中提取其携带的MAC表项并保存到第二MAC表中;
SB2、赋予该表项一计时器,其设定了该MAC表项的老化时间t0;
SB3、识别是否在预设时间t0内接收到与其匹配的报文流,是则执行步骤SB4,否则执行步骤SB5;
SB4、重新初始化该表项的计时器为t0,并执行步骤SB3;
SB5、删除所述MAC表项,并向业务板广播第二MAC表中该MAC表项的删除消息。
可以看出,接口板能够同步业务板对MAC表项的学习,进行MAC表项老化的集中管理,并向业务板同步老化信息。
请结合图6,显示了在本发明提供的分布式网络处理系统的MAC表项维护方法中,业务板对第一MAC表和对报文流执行的处理操作,如下:
SC1、识别业务板接收到的信息,为报文流则执行步骤SC2,为其他业务板发送的MAC学习消息则执行步骤SC6,为接口板发送的删除消息则执行步骤SC8;
SC2、识别本地第一MAC表中是否存在对应所述报文流的表项,是则执行步骤SC5,否则执行步骤SC3;
SC3、进行该MAC表项的学习,并将学习到的MAC表项保存在本地的第一MAC表中;
SC4、向接口板及其它业务板发送携带有该MAC表项信息的MAC学习消息,并执行步骤SC5;
SC5、对该报文流进行业务处理;
SC6、根据本业务板预设的规则识别是否需要对该MAC表项进行学习,是则执行步骤SC7,否则不予处理;
SC7、将该MAC表项保存到本业务板的第一MAC表;
SC8、在其本地的第一MAC表中查找到对应的MAC表项,存在则执行步骤SC9,否则不进行任何操作;
SC9、删除该MAC表项。
可以看出,业务板本身不对本地的MAC表项进行老化维护,而是向接口板同步学习信息,并同步接口板对MAC表项的老化。因此,只有当报文流第一次进入分布式网络处理系统时或者在预设时间内未通过接口板导致原有MAC表项老化后,业务板才需要重新进行MAC表项的学习,从而避免了在报文流传送过程中重新学习现象的发生。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤:
S1、在业务板上根据接口板转发的报文流进行MAC表项的学习,将需要学习的MAC表项保存在本地的第一MAC表中,并将所述需要学习的MAC表项同步保存到其它业务板的第一MAC表以及接口板所维护的第二MAC表中;
S2、根据通过所述接口板的报文流进行所述第二MAC表的老化维护,且删除所述第二MAC表中一MAC表项时,同步删除第一MAC表中的相应MAC表项。
所述的存储介质包括:ROM/RAM(Read Only Memory/Random-AccessMemory,只读存储器/随机访问内存)、磁碟或者光盘等。
本发明的实施例还提供了分布式网络处理系统的MAC表项维护装置100,请结合图7,适用于包括一接口板200以及多个业务板300的分布式网络处理系统10。
该分布式网络处理系统的MAC表项维护装置100包括:
分别设置在业务板300中的MAC表项学习单元101,用于根据接口板200转发的报文流进行MAC表项的学习;
分别设置在业务板300中的第一MAC表单元102,与本地的MAC表项学习单元101连接,用于保存需要学习的MAC表项;
分别设置在业务板300中的第一同步单元103,与本地的MAC表项学习单元101连接,用于将需要学习的MAC表项同步到接口板200;
一设置在接口板200中的第二MAC表单元104,与第一同步单元103连接,用于保存被同步的MAC表项;
一设置在接口板200中的老化维护单元105,与第二MAC表单元104连接,用于根据通过接口板200的报文流进行该第二MAC表单元104的老化维护;
一设置在接口板200中的第二同步单元106,与老化维护单元105连接,用于将MAC表项的老化情况同步到业务板300的第一MAC表单元102,使第一MAC表单元102删除被同步的MAC表项;
以及,分别设置在业务板300中的第三同步单元107,与其他业务板300的MAC表项学习单元101连接,用于将该需要学习的MAC表项同步保存到其它业务板300的第一MAC表单元102。
通过上述装置可以看出,设置在接口板200中的第二MAC表单元104记录了业务板300所学习到的全部MAC表项,并由设置在接口板200的老化维护单元105统一进行老化管理。因此,通过上述分布式网络处理系统的MAC表项维护装置100进行的MAC表项共同学习和集中老化处理,当业务板学习到一MAC表项时,接口板和其他业务板也进行了同步学习;当接口板中一MAC表项老化删除时,各业务板也同步执行了删除操作,从而避免了分布式网络处理系统中,各业务板分别老化所导致的MAC表项不一致的问题。
较佳的,请结合图8,在分布式网络处理系统的MAC表项维护装置100中,
为了克服MAC表项重复保存问题,还包括分别设置在业务板300中的学习识别单元108,该第三同步单元107通过其他业务板300的学习识别单元108与该板的MAC表项学习单元连接,用于根据该业务板300预设的规则识别是否需要对其他业务板300同步的MAC表项进行学习,是则将该MAC表项发送到MAC表项学习单元101,进行到第一MAC表单元102的保存,否则抛弃该同步的MAC表项。
显然,在本发明提供的分布式网络处理系统的MAC表项维护装置100中,由设置在接口板200中的老化维护单元105统一执行MAC表项的老化维护。具体的,该老化维护单元105包括:
计时器模块1051,用于对第二MAC表单元104中的任一MAC表项进行计时;
报文识别模块1052,与计时器模块1051连接,用于对接收到的报文流进行识别,并触发计时器模块1051,使其重新对相应MAC表项进行计时;
MAC表项删除模块1053,与计时器模块1051连接,用于删除第二MAC表单元104中在预设时间内未接收到与其匹配报文流的相应MAC表项,并触发第二同步单元106执行业务板的同步老化。
具体的,第二同步单元106执行业务板的同步老化的操作可以通过该第二同步单元106向全部业务板广播MAC表项删除消息来进行,则在接收到该删除消息的业务板的第一MAC表中执行该MAC表项的匹配操作,查找到匹配的MAC表项,则对其执行删除操作。
需要指出的是,该报文识别模块1052包括接口板接收报文识别模块(图中未示),用于识别接口板接收的、其源MAC和端口号与所述MAC表项一致的报文流;以及,接口板发送报文识别模块(图中未示),用于识别接口板发送的、其目的MAC和端口号与所述MAC表项一致的报文流。
本发明的实施例还提供了一种分布式网络处理系统10,包括一接口板200以及与接口板200分布式连接的多个业务板300,接口板200将接收到的报文流转发给业务板300加以处理,并发送业务板300处理后的报文流。
其中,接口板200上包括报文转发单元201,对于从端口接收到的报文流,根据流表或者HASH算法进行报文流分类,并转发给相应的业务板300;并将业务板300处理完成的报文流从相应端口发送出去。
业务板300上包括报文处理单元301,对于接收到的报文流,识别本地是否存在对应的表项,是则直接进行业务处理,并将处理后的报文流通过接口板发送出去,否则先进行MAC表项的学习,然后进行业务处理。
请参见图9,分别显示了分布式网络处理系统10实施例的框图,包括上述的分布式网络处理系统的MAC表项维护装置100。其中,该MAC表项学习单元101由报文处理单元301触发;该老化维护单元105同时与接口板200报文转发单元201连接,用于识别接收到的报文流。
本领域技术人员可以理解,该分布式网络处理系统可以应用于不同的场合,比如作为网关,作为硬件防火墙等,用于对网络报文进行分布式处理。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。