专利名称:一种学习介质访问控制地址的方法和装置、业务板的制作方法
技术领域:
本发明涉及数据通信技术,尤指一种学习介质访问控制(MAC)地址的方法和装置、一种业务板。
背景技术:
在网络处理设备中,报文的转发是极为重要的一环。报文转发的实现主要依赖于对MAC地址的学习。参见图1,图1为现有技术中采用MAC地址集中学习的网络处理设备的结构图。该网络处理设备包括主控板、和一个或多个业务板。其中,业务板上包括接收报文的端口、以及本业务板用于转发报文的转发表。业务板从端口接收到报文后,假设此处收到的报文为来自虚拟局域网(VLAN)的报文时,业务板获得该报文的源MAC地址、携带的VLAN标识以及入端口,在本板维护的转发表中查找是否存在与该源MAC地址、携带的VLAN标识及入端口对应的MAC表项,当不存在时,则上报消息给主控板;当存在时,则表明本板当前已经保存了该MAC表项,因此不需要再学习当前MAC表项。主控板收到业务板发送的消息后,判断是否需要学习当前收到报文的MAC地址,如果需要,则通知网络处理设备内的所有业务板学习当前收到报文的MAC地址;如果不需要,则不触发学习当前MAC地址的操作。
从以上的介绍可知,在现有技术中主要依靠主控板对MAC地址的学习进行集中控制,由主控板控制所有业务板MAC地址的学习。业务板只能根据主控板的控制进行MAC地址的学习,自身没有主动学习MAC地址的权力。在网络处理设备中,主控板除了需要对MAC地址的学习进行集中控制,还需要进行其他控制处理,例如对网络协议报文的处理,对系统资源的集中调度,提供系统用户的管理等。因此,由主控板控制所有业务板MAC地址的学习,极大的增加了主控板的处理负担,影响了网络处理设备学习MAC的效率,不利于整个网络处理设备的高效运行。
发明内容
有鉴于此,本发明的主要目的在于提供一种学习MAC地址的方法,应用该方法能够提高MAC地址学习效率。
为达到上述目的,本发明的技术方案是这样实现的一种学习介质访问控制地址的方法,其特征在于,该方法包括业务板接收报文,确定自身需要学习当前收到报文的介质访问控制MAC地址时,学习当前收到报文的MAC地址;所述业务板通知自身所在装置中其他业务板学习当前收到报文的MAC地址;收到所述通知的业务板在确定自身需要学习当前报文的MAC地址时,学习当前报文的MAC地址。
较佳地,该方法进一步包括由业务板所在装置中的主控板接收报文,并按照负载均衡原则向业务板发送收到的报文;所述业务板接收报文为业务板接收主控板发送的报文。
较佳地,当接收报文为来自虚拟局域网VLAN的报文时,所述学习报文的MAC地址包括将该报文的源MAC地址、VLAN标识以及该报文的入端口号之间的对应关系作为MAC表项,记录至学习该报文MAC地址的业务板的转发表内;当接收报文不为来自VLAN的报文时,所述学习报文的MAC地址包括将该报文的源MAC地址以及所述源MAC地址与该报文的入端口号之间的对应关系作为MAC表项,记录至学习该报文MAC地址的业务板的转发表内。
较佳地,当接收报文为来自VLAN的报文时,所述接收到报文的业务板确定自身需要学习当前收到报文的MAC地址包括所述业务板获得当前报文的源MAC地址、VLAN标识和该报文的入端口号,判断自身保存的转发表内是否记录有与当前获得的源MAC地址、VLAN标识和入端口号对应的MAC表项,在没有的情况下判定需要学习当前收到报文的MAC地址;当接收报文不为来自VLAN的报文时,所述接收到报文的业务板确定自身需要学习当前收到报文的MAC地址包括所述业务板获得当前报文的源MAC地址和入端口号,判断自身保存的转发表内是否记录有与当前获得的源MAC地址和入端口号对应的MAC表项,在没有的情况下判定需要学习当前收到报文的MAC地址。
较佳地,当接收报文为来自VLAN的报文时,所述业务板通知其他业务板学习当前收到报文的MAC地址包括接收报文的业务板将获得的当前报文的源MAC地址、VLAN标识和该报文的入端口号,发送给自身所在装置中的其他业务板;收到所述通知的业务板确定自身需要学习当前报文的MAC地址包括收到所述通知的业务板判断自身保存转发表内,是否记录有与当前获得的源MAC地址、VLAN标识和入端口号对应的MAC表项,在没有的情况下判定需要学习当前报文的MAC地址;当接收报文不为来自VLAN的报文时,所述业务板通知其他业务板学习当前收到报文的MAC地址包括接收报文的业务板将获得的当前报文的源MAC地址和入端口号,发送给自身所在装置中的其他业务板;收到所述通知的业务板确定自身需要学习当前报文的MAC地址包括收到所述通知的业务板判断自身保存的转发表内,是否记录有与当前获得的源MAC地址和入端口号对应的MAC表项,在没有的情况下判定需要学习当前报文的MAC地址。
较佳地,该方法进一步包括设置老化时间;业务板对于记录MAC地址和VLAN标识、与端口号之间对应关系的MAC表项,在大于或者等于老化时间内,未收到将MAC表项中的MAC地址作为源MAC、端口号作为入端口、以及携带该MAC表项中VLAN标识的报文,或者将MAC表项中的MAC地址作为目的MAC、端口号作为出端口、以及携带该MAC表项中VLAN标识的报文时,删除自身转发表中的该MAC表项;业务板对于记录MAC地址与端口号之间对应关系的MAC表项,在大于或者等于老化时间内,未收到将MAC表项中的MAC地址作为源MAC、该端口号作为入端口的报文,或者将MAC表项中的MAC地址作为目的MAC、该端口号作为出端口的报文时,删除自身转发表中的该MAC表项。
另外,本发明的又一主要目的在于提供一种学习MAC地址的装置,应用该装置能够提高MAC地址学习效率。
一种学习介质访问控制地址的装置,该装置包括多个业务板;接收报文的第一业务板,确定自身需要学习当前收到报文的介质访问控制MAC地址时,学习当前收到报文的MAC地址;并通知所在装置内的其他业务板学习当前收到报文的MAC地址;接收到所述第一业务板通知的第二业务板,在确定自身需要学习当前报文的MAC地址时,学习当前报文的MAC地址。
较佳地,该装置进一步包括主控板;所述主控板接收发送给该装置的报文;并按照负载均衡原则发送收到的报文;所述第一业务板接收主控板发送的报文。
较佳地,所述主控板包括控制单元和多个端口;所述端口用于接收发送给所在装置的报文,并将接收到的报文发送至控制单元;所述控制单元按照负载均衡原则将收到的报文发送至所在装置内的业务板。
较佳地,所述业务板自身老化MAC表项。
同时,本发明的又一主要目的在于提供一种业务板,应用该业务板能够提高MAC地址学习效率。
一种业务板,包括控制单元、获取单元、学习单元;所述控制单元接收报文,并将当前接收报文发送至获取单元;或者接收来自所在装置中其他业务板发送的源MAC地址、VLAN标识和入端口号,或者源MAC地址和入端口号,将收到的该信息发送至学习单元;所述获取单元接收所述控制单元发送的报文,获取当前收到报文的源MAC地址、VLAN标识和入端口号,或者当前收到报文的MAC地址和入端口号,并将该获得的信息发送至学习单元、以及自身所在装置中的其他业务板;所述学习单元根据收到的信息,在确定自身需要学习当前收到报文的MAC地址时,学习当前收到报文的MAC地址。
较佳地,所述学习单元包括处理单元和存储单元;所述存储单元保存所在业务板使用的转发表;所述处理单元在收到源MAC地址、VLAN标识和该报文的入端口号时,判断存储单元中存储的转发表内,是否保存有与当前源MAC地址、VLAN标识和入端口号对应的MAC表项,在没有的情况下将当前源MAC地址、VLAN标识,与入端口号之间的对应关系保存至存储单元;或者在收到源MAC地址和入端口号时,判断存储单元中存储的转发表内,是否保存有与当前源MAC地址和入端口号对应的MAC表项,在没有的情况下将该源MAC地址,与入端口号之间的对应关系保存至存储单元。
较佳地,所述处理单元对于记录MAC地址和VLAN标识、与端口号之间对应关系的MAC表项,在大于或者等于老化时间内,未收到将MAC表项中的MAC地址作为源MAC、端口号作为入端口、以及携带该MAC表项中VLAN标识的报文,或者将MAC表项中的MAC地址作为目的MAC、端口号作为出端口、以及携带该MAC表项中VLAN标识的报文时,删除自身转发表中的该MAC表项;对于记录MAC地址与端口号之间对应关系的MAC表项,在大于或者等于老化时间内,未收到将MAC表项中的MAC地址作为源MAC、端口号作为入端口的报文,或者将MAC表项中的MAC地址作为目的MAC、端口号作为出端口的报文时,删除自身转发表中的该MAC表项。
本发明所提供的技术方案,主要通过由网络处理设备中的业务板确定自身是否需要学习当前收到报文的MAC地址,并在学习该MAC地址后,通知网络处理设备中的其他业务板学习当前自身学到的MAC地址,从而将主控板从控制MAC地址的学习中解脱出来,进而提高MAC地址学习效率。本发明提供的技术方案极大的减轻了主控板的处理负担,提高了网络处理设备学习MAC的效率,有利于整个网络处理设备的高效运行。
另外,在使用主控板接收发送给网络处理设备报文的技术方案的情况下,同时减轻了主控板的工作负荷和板间通信的流量。并且,由于每个业务板都有机会收到一个MAC地址发送来的报文,因此一个业务板在学习MAC地址失败后,还有机会在后续处理报文的过程中对该MAC地址再次进行学习,从而保证了各业务板上转发表的完整性,保障了网络处理设备的可靠性。
图1为现有技术网络处理设备的结构图;图2为本发明的方法示例性流程图;图3为本发明的装置示例性流程图;图4为本发明实施例的网络处理设备结构图;图5为本发明实施例的方法流程图;图6为本发明实施例的业务板的结构图。
具体实施例方式
本发明的技术方案,主要通过由装置中的业务板确定自身是否需要学习当前收到报文的MAC地址,并在学习该MAC地址后,通知装置中的其他业务板学习当前自身学到的MAC地址,从而将主控板从控制MAC地址的学习中解脱出来,进而提高MAC地址学习效率。这里,所描述的装置可以是网络处理设备、或者是包括多个业务板的处理系统。
参见图2,图2为本发明的方法示例性流程图。具体包括在步骤201中,业务板接收报文,确定自身需要学习当前收到报文的介质访问控制MAC地址时,学习当前收到报文的MAC地址。在步骤202中,业务板通知自身所在装置中的其他业务板学习当前收到报文的MAC地址。在步骤203中,收到通知的业务板在确定自身需要学习当前报文的MAC地址时,学习当前报文的MAC地址。
参见图3,图3为本发明的装置示例性结构图,该装置包括多个业务板。其中,在某一时刻,将接收到一个报文的业务板称为第一业务板,此时该装置内的其他业务板即为第二业务板,由此可见,第一业务板与第二业务板是相对于报文的接收而言的,并非一成不变。接收报文的第一业务板在确定自身需要学习当前收到报文的介质访问控制MAC地址后,学习当前收到报文的MAC地址,并通知所在装置内的第二业务务板学习当前收到报文的MAC地址。接收到所述第一业务板通知的第二业务板,在确定自身需要学习当前报文的MAC地址时,学习当前报文的MAC地址。在具体的应用中,第一业务板和第二业务板不仅可以处于同一装置中,还可以处于相互联动、受统一控制的多个网络处理设备。本发明中所提到的网络处理设备可以是L4~L7网络处理设备。
当业务板接收的报文为来自虚拟局域网(VLAN)的报文时,学习报文的MAC地址的操作包括将该报文的源MAC地址、VLAN标识以及该报文的入端口号之间的对应关系作为MAC表项,记录至业务板自身的转发表内。此时,MAC表项中记录的是MAC地址、VLAN标识以及端口号之间的对应关系。在转发报文的过程中,业务板根据待转发报文中携带的目的MAC地址和VLAN标识查找转发表,找到与该目的MAC地址和VLAN标识对应的端口号,将该端口号对应的端口作为该报文的出端口,转发该报文。
当业务板接收的报文不为来自VLAN的报文时,学习该报文的MAC地址包括将该报文的源MAC地址与该报文的入端口号之间的对应关系作为MAC表项,记录至该业务板自身的转发表内。此时,MAC表项中记录的是MAC地址与端口号之间的对应关系。在转发报文的过程,根据报文中携带的目的MAC地址查找转发表,找到与该目的MAC地址对应的端口号,将该端口号对应的端口作为该报文的出端口,转发该报文。
这里,根据图1所示的结构可知,目前的端口主要设置在业务板上。在将端口设置于业务板时,由于各端口上的流量不同会造成业务板的负载不同,尤其当网络流量集中于一块业务板上时,此板的处理能力即成为系统性能的瓶颈,不利提高设备的整体性能。因此在本发明的技术方案中,可以进一步将位于业务板上的端口设置在主控板上,由主控板接收报文并均匀的将收到的报文发送至各业务板处理。进而,本发明的技术方案除了可以实现由业务板直接接收报文,对自身收到的报文执行是否需要进行MAC学习地址的操作;还可以通过由装置中的主控板接收报文并发送给业务板,由业务板对自身从主控板收到的报文执行是否需要进行MAC地址学习的操作,实现设备整体处理能力的目的。
业务板接收从主控板发送来的报文,由该业务板自主进行报文的MAC地址学习、转发、以及四层以上的业务处理。主控板由于不需要处理报文的MAC地址学习、转发、以及四层以上的业务处理,这样主控板就有更多的资源处理系统管理等工作。同时,由于使该网络处理设备的所有流量平均分摊到每块业务板,因此不但进一步提高的转发报文的效率,而且进一步提高了该设备的整体处理能力、以及整个设备的吞吐量。
以下针对如上的应用环境,以接收到的报文来自VLAN为例,列举实施例对本发明的技术方案进行详细描述。
参见图4,图4为本发明实施例中一个具体网络处理设备的结构图。该网络处理设备包括N个业务板和1个主控板。这里,主控板上包括N个端口,用来接收发送给所在网络处理设备的报文,并按照负载均衡原则向网络处理设备内的业务板发送收到的报文。各业务板各自保存自身的转发表,对从主控板收到的报文进行转发处理。这里,主控板与各业务板之间的交互还可以通过位于主控板与业务板之间的交换网板进行。主控板上的这N个端口可以如图4所示的的方式设置在主控板上,也可以分别作为独立的功能单元设置于当前网络处理设备内。当端口作为独立的功能单元位于网络处理设备内时,端口接收报文并将所接收的报文发送给主控板,主控板按照负载均衡原则向网络处理设备内的各业务板发送所收到的报文。
从主控板接收到报文的业务板在确定自身需要学习当前接收报文的MAC地址时,学习当前收到报文的MAC地址,并通知所在网络处理设备中的其他业务板学习所述业务板收到的报文的MAC地址。例如,假设当前收到报文的业务板为业务板1,在业务板1确定需要学习当前收到报文的MAC地址时,业务板1学习该报文的MAC地址并通知业务板2~N也学习业务板当前学习的报文的MAC地址。业务板1不仅可以通知其他业务板学习所述业务板1确定需要学习的报文的MAC地址,还可以进一步通知主控板学习所述业务板1确定需要学习的报文的MAC地址。主控板学习所述报文的MAC地址,根据学习到的MAC地址管理所在网络处理设备中的MAC表项。这里的主控板具体可以包括控制单元和多个端口。端口用于接收发送给所在装置的报文,并将接收到的报文发送至控制单元。控制单元按照负载均衡原则将收到的报文发送至所在装置内的业务板。另外,在本实施例中各业务板对自身MAC表项的维护还包括对各自MAC表项的老化处理,即在超出预设的老化时间时仍未收到将MAC表项中的MAC地址作为目的MAC,与该MAC地址对应的端口作为出端口的报文时,则删除自身转发表中的该MAC表项。。
由以上的描述可知,这里的业务板1等同于示例性结构图中描述的第一业务板,业务板2~N等同于示例性结构图中描述的第二业务板。在完成一次MAC地址学习后,当上述业务板2~N中的一块业务板接收到一条新的报文,并确定需要学习该报文的MAC地址时,则需要学习MAC地址的该业务板等同于第一业务板,其他的N-1块业务板等同于第二业务板。这里,主控板可以位于与第一业务板或第二业务板相同的网络处理设备中,也可以位于与第一业务板或第二业务板不同的网络处理设备中。当端口成为独立的功能单元时,主控板、端口、第一业务板以及第二业务板也可以位于相同的网络处理设备,也可以各自位于不同的网络处理设备中。
另外参见图5,图5为本发明实施例的方法流程图,具体包括以下步骤在步骤501中,主控板接收发送给网络处理设备的报文。
在步骤502中,主控板按照负载均衡原则发送当前收到的报文。
这里,主控板可以根据接收报文的五元组将不同五元组的报文平均分配至各业务板进行处理。具体可以是,首先设置负载均衡算法和流表。其中负载均衡算法可以是HASH算法,用于在首次收到新五元组对应的报文,计算该五元组对应的报文应该分配具体那个业务板中。流表用于记录五元组与处理该五元组对应报文的业务板,用于匹配非首次收到五元组对应的报文。这里的五元组可以是报文的源、目的IP地址,源、目的端口号,以及协议号。
这里,主控板对接收报文的负载均衡可以采用下面介绍的方法。首先,主控板获得收到报文的五元组,在流表中匹配该五元组判定是否存在相应的表项,如果存在,则根据该表项将当前收到的报文发送至该表项对应的业务板;否则,根据当前报文对应五元组利用HASH算法计算其对应的业务板,发送至该业务板进行处理。在主控板利用HASH计算得到报文对应的业务板时,可以在该报文上进行标记。在业务板收到带有标记的报文时,则将该报文的五元组以及自身的板卡号返回给主控板。主控板将业务板返回的五元组以及对应的板卡号记录在流表中,用于匹配下次该五元组对应的报文。
在步骤503中,接收到当前报文的业务板判断自身是否需要学习当前收到报文的MAC地址,如果是,则执行步骤504;否则,结束当前学习MAC地址的处理流程。
其中,业务板判断自身是否需要学习当前报文的MAC地址可以是该业务板首先获得该报文的源MAC地址、VLAN标识和该报文的入端口号,判断自身保存的转发表内是否记录有与当前获得的源MAC地址、VLAN标识和入端口号对应的MAC表项,如果不存在则需要学习当前报文的MAC地址;如果存在,则不需要学习当前报文的MAC地址。这里,所指的与源MAC地址、VLAN标识以及入端口号对应的MAC表项是指,MAC表项中的MAC地址和VLAN标识以及端口号与上述报文的要完全相同。有些情况下,如果收到MAC地址和VLAN标识相同、而端口号不同的报文,则表明当前MAC表项需要更新,此时可以用当前获得的入端口号代替转发表中保存的端口号,对该MAC进行更新。
这里,业务板判断自身是否需要学习当前收到的报文,还可以在判断转发表是否存在相应的表项之前,进一步判断该报文对应的源MAC地址、以及VLAN标识、入端口是否为设置的不被学习的MAC表项,如果是,则不需要学习当前报文的MAC地址;否则,再判断自身的转发表中是否存在相应的表项。
在步骤504中,接收到当前报文的业务板学习当前收到报文的MAC地址,并通知自身所在网络处理设备中的其他业务板也学习所述当前收到报文的MAC地址。
其中,接收到当前报文的业务板学习当前收到报文的MAC地址的具体处理方法可以是将该报文的源MAC地址、VLAN标识以及该报文的入端口号之间的对应关系作为MAC表项,记录至业务板自身的转发表内。此时,MAC表项中记录的是MAC地址和VLAN标识、与端口号之间的对应关系。
这里,当前业务板通知其他业务板学习当前收到报文的MAC地址的方式可以是将当前报文的源MAC地址、VLAN标识和该报文的入端口号发送给自身所在网络处理设备中的其他业务板。另外,在发送给其他业务板的同时,还可以将所述当前报文的源MAC地址、VLAN标识和该报文的入端口号发送给主控板,用于主控板对所在网络处理设备内所有表项的管理。
在步骤505中,接收到通知消息的业务板判断自身是否需要学习当前报文的MAC地址,如果是,执行步骤506;否则,结束当前学习MAC地址的处理流程。
本步骤中业务判断自身是否需要学习当前报文的MAC地址的具体方式,可以参见步骤503中的相关介绍,在此不再详述。
在步骤506中,接收到通知消息的业务板在确定自身需要学习当前报文的MAC时,学习当前报文的MAC地址。这里,学习当前报文的MAC地址的方法可以具体参见步骤504中的相关介绍,在此不再详述。
由于一台设备会发送不同五元组对应的报文,而一台设备通常对应一个MAC地址,同时由于主控板按照五元组根据负载均衡原则分配收到的报文,因此主控板会将一个MAC地址对应的报文发送至不同的业务板。进而,即使一些业务板当前MAC地址学习不成功,也还有其他的学习该MAC地址机会。
另外,由于每个业务板均有机会收到同一个MAC发送的报文,进而在本发明的技术方案中,各业务板能够根据自身接收报文的情况,执行老化MAC地址操作,因此能够实现各业务板各自老化MAC地址的操作。
在本发明的技术方案中,具体老化的方法可以是预先设置老化时间,在大于或者等于老化时间内,业务板未收到将MAC表项中的MAC地址作为源MAC、端口号作为入端口、以及携带该MAC表项中VLAN标识的报文,或者将MAC表项中的MAC地址作为目的MAC、端口号作为出端口、以及携带该MAC表项中VLAN标识的报文时,则删除自身转发表中的该MAC表项。
以上描述的是主控板接收的报文来自于VLAN的情况,以下介绍接收的报文不来自于VLAN的情况。当然,下面介绍的技术方案同样适用于业务板直接从端口接收报文的情况。对于判断报文是否来自于VLAN可以通过检测报文中是否携带VLAN标签来实现,具体为对所接收到地报文进行VLAN标签检测,当收到的报文内携带VLAN标签时,则判定该报文来自VLAN;当收到的报文内不携带VLAN标签时,则该报文不来自VLAN。
当接收报文不为来自VLAN的报文时,业务板判断自身是否需要学习当前收到报文的MAC地址的过程包括业务板解析所述当前收到的报文,获得报文的源MAC地址和入端口号;业务板判断自身保存的转发表内是否记录有与当前获得的源MAC地址和入端口号对应的MAC表项,如果业务板中尚未有保存,则判定为需要学习当前收到报文的MAC地址,如果业务板中已有保存,则不需要学习当前收到报文的MAC地址。
当业务板确定需要学习当前收到报文的MAC地址,业务板还通知自身所在网络处理设备中的其他业务板学习当前收到报文的MAC地址,所述其他业务板学习当前收到报文的MAC地址的具体过程为接收报文的业务板将获得的当前报文的源MAC地址和入端口号,并将其发送给自身所在网络处理设备中的其他业务板;收到通知的其他业务板确定自身是否需要学习当前报文的MAC地址,其过程包括收到通知的其他业务板判断自身保存的转发表内是否记录有与当前获得的源MAC地址和入端口号对应的MAC表项,在没有的情况下判定需要学习当前报文的MAC地址。
另外,对于各业务板中记录的MAC地址与端口号之间对应关系的MAC表项,在大于或者等于预设的老化时间内,若未收到将MAC表项中的MAC地址作为源MAC、该端口号作为入端口的报文,或者未收到将MAC表项中的MAC地址作为目的MAC、该端口号作为出端口的报文时,则删除自身转发表中的该MAC表项,将其老化。这里,各业务板在自己删除自身的MAC表项时,还可以进一步通知主控板,用于主控板对网络处理设备的MAC表项进行管理。
另外,参见图6,图6为本实施例中业务板的结构图。具体包括控制单元、获取单元、学习单元。其中,控制单元接收报文,并将当前接收报文发送至获取单元;或者接收来自所在网络处理设备中其他业务板发送的源MAC地址、VLAN标识和入端口号,或者源MAC地址和入端口号,将收到的该信息发送至学习单元。获取单元接收控制单元发送的报文,获取当前收到报文的源MAC地址、VLAN标识和入端口号,或者当前收到报文的MAC地址和入端口号,并将该获得的信息发送至学习单元、以及自身所在网络处理设备中的其他业务板。学习单元根据收到的信息,在确定自身需要学习当前收到报文的MAC地址时,学习当前收到报文的MAC地址。
其中,学习单元包括处理单元和存储单元。存储单元保存所在业务板使用的转发表。处理单元在收到源MAC地址、VLAN标识和该报文的入端口号时,判断存储单元中存储的转发表内,是否保存有与当前源MAC地址、VLAN标识和入端口号对应的MAC表项,在没有的情况下将当前源MAC地址、VLAN标识,与入端口号之间的对应关系保存至存储单元;或者在收到源MAC地址和入端口号时,判断存储单元中存储的转发表内,是否保存有与当前源MAC地址和入端口号对应的MAC表项,在没有的情况下将该源MAC地址,与入端口号之间的对应关系保存至存储单元。
另外,处理单元对于记录MAC地址和VLAN标识、与端口号之间对应关系的MAC表项,在大于或者等于老化时间内,未收到将MAC表项中的MAC地址作为源MAC、端口号作为入端口、以及携带该MAC表项中VLAN标识的报文,或者将MAC表项中的MAC地址作为目的MAC、端口号作为出端口、以及携带该MAC表项中VLAN标识的报文时,删除自身转发表中的该MAC表项。对于记录MAC地址与端口号之间对应关系的MAC表项,在大于或者等于老化时间内,未收到将MAC表项中的MAC地址作为源MAC、端口号作为入端口的报文,或者将MAC表项中的MAC地址作为目的MAC、端口号作为出端口的报文时,删除自身转发表中的该MAC表项。
另外,在现有技术中用源MAC命中作为MAC表项刷新条件的老化机制,在只存在业务板外发报文的单向流的情况,由于目的MAC无法命中导致找不到对应的出端口的情况,可能会引起VLAN内长时间的广播报文,具有安全隐患。进而,在本发明的技术方案中,如果该报文的目的MAC地址没有被处理该报文的业务板中转发表命中时,业务板还可以触发ARP报文进行对该目的MAC地址的学习。这样可以避免现有技术由于老化删除MAC表项而在VLAN中出现的大量广播报文,避免安全隐患。
这里,需要注意的是本发明的技术方案并不限于上面描述的实施例。本发明的技术方案同样可以应用在端口自身接收报文的应用场景。
综上所述,本发明提供的技术方案通过各业务板共同学习、各自老化的MAC管理模式,即业务板在自身学习MAC地址后通知其他业务板学习当前MAC地址,并各自老化自身的MAC表项的管理模式,极大的减轻了主控板的处理负担,提高了网络处理设备学习MAC的效率,有利于整个网络处理设备的高效运行。
其次,在使用主控板接收发送给网络处理设备报文的技术方案的情况下,减轻了主控板的工作负荷和板间通信的流量;同时,由于每个业务板都有机会收到一个MAC地址发送来的报文,因此一个业务板在学习MAC地址失败后,还有机会在后续处理报文的过程中对该MAC地址再次进行学习。保证了各业务板上转发表的完整性,保障了网络处理设备的可靠性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种学习介质访问控制地址的方法,其特征在于,该方法包括业务板接收报文,确定自身需要学习当前收到报文的介质访问控制MAC地址时,学习当前收到报文的MAC地址;所述业务板通知自身所在装置中其他业务板学习当前收到报文的MAC地址;收到所述通知的业务板在确定自身需要学习当前报文的MAC地址时,学习当前报文的MAC地址。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括由业务板所在装置中的主控板接收报文,并按照负载均衡原则向业务板发送收到的报文;所述业务板接收报文为业务板接收主控板发送的报文。
3.根据权利要求1或2所述的方法,其特征在于,当接收报文为来自虚拟局域网VLAN的报文时,所述学习报文的MAC地址包括将该报文的源MAC地址、VLAN标识以及该报文的入端口号之间的对应关系作为MAC表项,记录至学习该报文MAC地址的业务板的转发表内;当接收报文不为来自VLAN的报文时,所述学习报文的MAC地址包括将该报文的源MAC地址以及所述源MAC地址与该报文的入端口号之间的对应关系作为MAC表项,记录至学习该报文MAC地址的业务板的转发表内。
4.根据权利要求1或2所述的方法,其特征在于,当接收报文为来自VLAN的报文时,所述接收到报文的业务板确定自身需要学习当前收到报文的MAC地址包括所述业务板获得当前报文的源MAC地址、VLAN标识和该报文的入端口号,判断自身保存的转发表内是否记录有与当前获得的源MAC地址、VLAN标识和入端口号对应的MAC表项,在没有的情况下判定需要学习当前收到报文的MAC地址;当接收报文不为来自VLAN的报文时,所述接收到报文的业务板确定自身需要学习当前收到报文的MAC地址包括所述业务板获得当前报文的源MAC地址和入端口号,判断自身保存的转发表内是否记录有与当前获得的源MAC地址和入端口号对应的MAC表项,在没有的情况下判定需要学习当前收到报文的MAC地址。
5.根据权利要求1或2所述的方法,其特征在于,当接收报文为来自VLAN的报文时,所述业务板通知其他业务板学习当前收到报文的MAC地址包括接收报文的业务板将获得的当前报文的源MAC地址、VLAN标识和该报文的入端口号,发送给自身所在装置中的其他业务板;收到所述通知的业务板确定自身需要学习当前报文的MAC地址包括收到所述通知的业务板判断自身保存转发表内,是否记录有与当前获得的源MAC地址、VLAN标识和入端口号对应的MAC表项,在没有的情况下判定需要学习当前报文的MAC地址;当接收报文不为来自VLAN的报文时,所述业务板通知其他业务板学习当前收到报文的MAC地址包括接收报文的业务板将获得的当前报文的源MAC地址和入端口号,发送给自身所在装置中的其他业务板;收到所述通知的业务板确定自身需要学习当前报文的MAC地址包括收到所述通知的业务板判断自身保存的转发表内,是否记录有与当前获得的源MAC地址和入端口号对应的MAC表项,在没有的情况下判定需要学习当前报文的MAC地址。
6.根据权利要求3所述的方法,其特征在于,该方法进一步包括设置老化时间;业务板对于记录MAC地址和VLAN标识、与端口号之间对应关系的MAC表项,在大于或者等于老化时间内,未收到将MAC表项中的MAC地址作为源MAC、端口号作为入端口、以及携带该MAC表项中VLAN标识的报文,或者将MAC表项中的MAC地址作为目的MAC、端口号作为出端口、以及携带该MAC表项中VLAN标识的报文时,删除自身转发表中的该MAC表项;业务板对于记录MAC地址与端口号之间对应关系的MAC表项,在大于或者等于老化时间内,未收到将MAC表项中的MAC地址作为源MAC、该端口号作为入端口的报文,或者将MAC表项中的MAC地址作为目的MAC、该端口号作为出端口的报文时,删除自身转发表中的该MAC表项。
7.一种学习介质访问控制地址的装置,其特征在于,该装置包括多个业务板;接收报文的第一业务板,确定自身需要学习当前收到报文的介质访问控制MAC地址时,学习当前收到报文的MAC地址;并通知所在装置内的其他业务板学习当前收到报文的MAC地址;接收到所述第一业务板通知的第二业务板,在确定自身需要学习当前报文的MAC地址时,学习当前报文的MAC地址。
8.根据权利要求7所述的装置,其特征在于,该装置进一步包括主控板;所述主控板接收发送给该装置的报文;并按照负载均衡原则发送收到的报文;所述第一业务板接收主控板发送的报文。
9.根据权利要求8所述的装置,其特征在于,所述主控板包括控制单元和多个端口;所述端口用于接收发送给所在装置的报文,并将接收到的报文发送至控制单元;所述控制单元按照负载均衡原则将收到的报文发送至所在装置内的业务板。
10.根据权利要求7、8或9所述的装置,其特征在于,所述业务板自身老化MAC表项。
11.一种业务板,其特征在于,包括控制单元、获取单元、学习单元;所述控制单元接收报文,并将当前接收报文发送至获取单元;或者接收来自所在装置中其他业务板发送的源MAC地址、VLAN标识和入端口号,或者源MAC地址和入端口号,将收到的该信息发送至学习单元;所述获取单元接收所述控制单元发送的报文,获取当前收到报文的源MAC地址、VLAN标识和入端口号,或者当前收到报文的MAC地址和入端口号,并将该获得的信息发送至学习单元、以及自身所在装置中的其他业务板;所述学习单元根据收到的信息,在确定自身需要学习当前收到报文的MAC地址时,学习当前收到报文的MAC地址。
12.根据权利要求11所述的业务板,其特征在于,所述学习单元包括处理单元和存储单元;所述存储单元保存所在业务板使用的转发表;所述处理单元在收到源MAC地址、VLAN标识和该报文的入端口号时,判断存储单元中存储的转发表内,是否保存有与当前源MAC地址、VLAN标识和入端口号对应的MAC表项,在没有的情况下将当前源MAC地址、VLAN标识,与入端口号之间的对应关系保存至存储单元;或者在收到源MAC地址和入端口号时,判断存储单元中存储的转发表内,是否保存有与当前源MAC地址和入端口号对应的MAC表项,在没有的情况下将该源MAC地址,与入端口号之间的对应关系保存至存储单元。
13.根据权利要求12所述的业务板,其特征在于,所述处理单元对于记录MAC地址和VLAN标识、与端口号之间对应关系的MAC表项,在大于或者等于老化时间内,未收到将MAC表项中的MAC地址作为源MAC、端口号作为入端口、以及携带该MAC表项中VLAN标识的报文,或者将MAC表项中的MAC地址作为目的MAC、端口号作为出端口、以及携带该MAC表项中VLAN标识的报文时,删除自身转发表中的该MAC表项;对于记录MAC地址与端口号之间对应关系的MAC表项,在大于或者等于老化时间内,未收到将MAC表项中的MAC地址作为源MAC、端口号作为入端口的报文,或者将MAC表项中的MAC地址作为目的MAC、端口号作为出端口的报文时,删除自身转发表中的该MAC表项。
全文摘要
本发明公开了一种学习介质访问控制(MAC)地址的方法,包括业务板接收报文,确定自身需要学习当前收到报文的介质访问控制MAC地址时,学习当前收到报文的MAC地址;所述业务板通知自身所在装置中的其他业务板学习当前收到报文的MAC地址;收到所述通知的业务板在确定自身需要学习当前报文的MAC地址时,学习当前报文的MAC地址。另外,本发明还提供了一种学习MAC地址的装置、以及业务板。本发明提供的技术方案由于是业务板在自身学习MAC地址后通知其他业务板学习当前MAC地址,提高了网络处理设备学习MAC地址的效率。
文档编号H04L29/02GK101094187SQ200710119690
公开日2007年12月26日 申请日期2007年7月30日 优先权日2007年7月30日
发明者常向青, 陈荻 申请人:杭州华三通信技术有限公司