CN101068178B - 使用、管理mac地址表的方法、系统、及搜索引擎 - Google Patents

使用、管理mac地址表的方法、系统、及搜索引擎 Download PDF

Info

Publication number
CN101068178B
CN101068178B CN2007101109020A CN200710110902A CN101068178B CN 101068178 B CN101068178 B CN 101068178B CN 2007101109020 A CN2007101109020 A CN 2007101109020A CN 200710110902 A CN200710110902 A CN 200710110902A CN 101068178 B CN101068178 B CN 101068178B
Authority
CN
China
Prior art keywords
list item
client
access control
media access
control address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2007101109020A
Other languages
English (en)
Other versions
CN101068178A (zh
Inventor
谭学飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2007101109020A priority Critical patent/CN101068178B/zh
Publication of CN101068178A publication Critical patent/CN101068178A/zh
Application granted granted Critical
Publication of CN101068178B publication Critical patent/CN101068178B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明实施例公开了一种使用MAC地址表的方法:在收到客户中的新用户发送的报文时,查找MAC地址表,若命中空闲表项,则将新用户的源MAC地址填入空闲表项。本发明实施例还公开了一种管理MAC地址表的方法:初始化可三态查找的搜索引擎上的MAC地址表,为客户分配表项。本发明实施例还公开了一种管理MAC地址表的系统,包括:可三态查找的搜索引擎,包括存储单元,用于存放MAC地址表;控制平面,包括初始化单元,用于对存储单元上的MAC地址表的表项进行初始化,为客户分配表项,被分配表项的数目不大于客户MAC地址上限。本发明实施例还公开了一种可三态查找的搜索引擎,包括:存储单元,及查找单元。通过应用本发明可以有效节省以太网接入设备的内存空间。

Description

使用、管理MAC地址表的方法、系统、及搜索引擎 
技术领域
本发明涉及通信技术领域,尤其涉及一种使用媒体接入控制地址表的方法、管理媒体接入控制地址表的方法、管理媒体接入控制地址表的系统、及可三态查找的搜索引擎。 
背景技术
由于以太网在局域网中表现出的种种优势,以太网正在逐渐成为城域网甚至广域网中的主要承载网络,其中城域以太网(Metro Ether)的应用也越来广泛了。 
在城域以太网中,从同一个端口、或同一个虚拟局域网(VLAN,VirtualLAN)、或同一个虚拟交换机实例(VSI,Virtual Switch Instance)、或这三者的任意组合上,接入网络设备的所有用户的一个集合,可以称为一个客户,一个客户可以理解为是一个企业或者一个虚拟专用网(VPN,Virtual privatenetwork),其内部会包含多个用户,每个客户都可以通过端口号/虚拟局域网用户标识(VLAN_ID)/VSI或这三者任意组合来唯一标识。 
一个用户通常只属于唯一的一个客户,一个客户里会包含多个用户,不同的用户之间可以通过源媒体接入控制(Media Access Control,MAC)地址唯一标识。 
在城域以太网中,会为每一个客户设定一个MAC地址上限,限制该客户最大可以接入的MAC地址数目,由于每个用户的MAC地址是唯一的,相应也就限制了该客户最大可以接入的用户数目。城域以太网通过为客户设定MAC地址上限,一方面可以对网络资源进行分配,一方面也可以防止一些攻击性报文非法占有网络资源。 
在城域以太网中,通常会在接入用户的以太设备上记录接入用户的信息,包括用户接入的入接口信息和用户的源MAC地址,当源MAC地址数目到达规定上限之后,将拒绝接受新的源MAC地址,而对应的报文也将被丢弃,从 而达到对每个客户的接入用户数目进行限制的目的。当前某客户在接入设备上已经占用的MAC地址表项的数目,也等于该客户中可以通过该接入设备访问外部网络的用户数目。 
现在业界通常使用MAC地址表来管理客户的MAC地址,并采用三态内容可寻址存储器(Ternary Content Addressable Memory,TCAM)来存放和查找MAC地址表。其具体做法参见下文: 
由接入设备的控制平面在TCAM中划出一个MAC地址表,用来存放已经接入的用户标识信息,包括用户报文的源MAC地址以及用户接入设备的接口信息,这个接口信息可以包括接入端口号、VLAN号、VSI索引、或这三者的任意组合,未被占用的表项一般用“0”或“1”表示。现举例说明该MAC地址表的结构,如表1所示: 
表1、MAC地址表 
  入接口信息    源MAC地址
  0     0
  端口1     3-3-3
  0     0
  端口1     6-6-6
  端口5     8-8-8
  端口7     2-2-2
表1中“入接口信息”一栏记录了用户接入的端口索引,“源MAC地址”一栏记录了用户的源MAC地址,填入端口索引及源MAC地址的表示表项已经被占用,两栏均为“0”的表示该表项空闲。 
接入设备的控制平面通过统计这个表的信息,就能够准确计算出从某个端口、VLAN、或VSI上接入用户的具体个数,只有准确掌握了这个信息,才能在新用户到来的时候确定是否接纳该新用户。 
每个客户的MAC地址上限及已接入的源MAC地址数目,都记录于接入 设备的内存空间中。 
由于MAC地址表无论是通过端口、VLAN、VSI还是这三者任意组合来实现的,其基本原理基本相同,所以下文都将以端口为例对现有技术管理MAC地址的方法进行描述。 
使用端口管理MAC地址的方法流程如图1所示: 
步骤101、提取报文的源端口信息和源MAC信息。 
当从某个端口上接收到报文时,首先要提取该报文的源端口信息和源MAC信息。 
步骤102、根据源端口信息和源MAC地址信息查找MAC地址表。 
步骤103、判断是否查找到,是则进入步骤111;否则进入步骤104。 
步骤104、获取该端口的MAC地址上限和该端口已经占用的MAC地址数目。 
读取接入设备内存空间中该报文源端口的端口描述表,获得该端口的MAC地址上限和该端口已经占用的MAC地址数目。 
步骤105、比较MAC地址上限和当前MAC地址数目。 
比较该端口的MAC地址上限和当前该端口已经占用的MAC地址数目。 
步骤106、判断该端口已经占用的MAC地址数目是否未到上限,是则进入步骤108;否则进入步骤107。 
步骤107、丢弃该报文或其他处理,流程结束。 
步骤108、将该源端口信息和源MAC地址记录到MAC地址表。 
步骤109、判断是否记录成功,是则进入步骤110;否则进入步骤111。 
步骤110、将媒体接入控制地址数目加一,并在接入设备的内存空间中的端口描述表中记录。 
步骤111、转发该报文,流程结束。 
当由于各种原因如老化或虚拟专用局域网段(Virtual Private LANSegment,VPLS)中MAC地址撤销命令等情况,需要删除MAC地址表项,则需要将当前MAC地址数目做相应减法,老化或删除多少个就需要减去多少个,以便当前MAC地址个数如实反映这个端口上接入的实际用户个数。 
在对现有技术的研究和实践过程中,发明人发现现有技术至少存在以下问题: 
保存客户的MAC地址上限和已记录的MAC地址数目会消耗大量接入设备的内存空间。 
由于仅保存一个客户的MAC地址上限和已记录的MAC地址数目,就需要消耗2位命令长度的内存空间,若需要保存4K客户的MAC地址上限和已记录的MAC地址数目,就需要占用8K命令长度的内存空间,大概相当于2Mbits的内存空间,而内存在接入设备的转发平面,是非常稀缺宝贵的,一般接入设备,如路由器接口板配置就仅有200Mbits左右的内存空间,加之当前城域以太网的快速发展,客户的数量也在飞速增长中,常常会超过4K,这样就会消耗更多的内存资源。 
发明内容
本发明要解决的技术问题是提供一种使用媒体接入控制地址表的方法、管理媒体接入控制地址表的方法、管理媒体接入控制地址表的系统、及可三态查找的搜索引擎,以节省以太网接入设备的内存空间。 
为解决上述技术问题,本发明的目的是通过以下技术方案实现的: 
本发明一方面,提供了一种使用媒体接入控制地址表的方法,所述方法包括: 
可三态查找的搜索引擎在收到客户中的新用户发送的报文时,查找可三态查找的搜索引擎上的媒体接入控制地址表,所述媒体接入控制地址表的源MAC地址一栏被控制平面预先初始化为显示的信息均为*,表示该表项尚未被占用,并为不允许抢占模式的客户分配过数目等于该客户MAC地址上限的表项,为允许抢占模式的客户分配过数目小于该客户MAC地址上限的表项; 
若命中预先通过初始化分配给所述客户的空闲表项,则将所述新用户的源媒体接入控制地址填入所述空闲表项。 
另一方面,提供了一种管理媒体接入控制地址表的方法:所述方法包括:初始化可三态查找的搜索引擎上的媒体接入控制地址表,为不允许抢占模式的客户分配数目等于所述客户媒体接入控制地址上限的表项,并根据系统运行状况,为允许抢占模式的客户分配数目小于所述客户媒体接入控制地址上限的表项; 
所述被分配表项的源媒体接入控制地址栏被标记为未被占用,查找时忽略匹配操作。 
另一方面,提供了一种管理媒体接入控制地址表的系统,所述系统包括: 
可三态查找的搜索引擎,包括存储单元,所述存储单元,用于存放媒体接入控制地址表; 
控制平面,包括初始化单元,所述初始化单元用于对所述存储单元上的媒体接入控制地址表的表项进行初始化,所述初始化单元包括不允许抢占模式的初始化单元和/或允许抢占模式的初始化单元; 
所述不允许抢占模式的初始化单元,用于为不允许抢占模式的客户分配数目等于所述客户媒体接入控制地址上限的表项; 
所述允许抢占模式的初始化单元,用于根据系统运行状况,为所述允许抢占模式的客户分配数目小于所述客户媒体接入控制地址上限的表项; 
所述被分配表项的源媒体接入控制地址栏被标记为未被占用,查找时忽略匹配操作。 
另一方面,提供了一种可三态查找的搜索引擎,所述可三态查找的搜索引擎包括: 
存储单元,用于存放通过初始化为客户分配表项的媒体接入控制地址表; 
查找单元,用于在收到所述客户中的新用户发送的报文时,查找所述存储单元上的媒体接入控制地址表,所述媒体接入控制地址表的源MAC地址一栏被控制平面预先初始化为显示的信息均为*,表示该表项尚未被占用,并为不允许抢占模式的客户分配过数目等于该客户MAC地址上限的表项,为允许抢占模式的客户分配过数目小于该客户MAC地址上限的表项,在命中已分配给所述客户的空闲表项时,将所述新用户的源媒体接入控制地址填入所述空闲表项。 
由以上技术方案可以看出,由于本发明通过初始化直接为客户分配媒体接入控制地址表中的表项,不再需要在以太网接入设备的内存空间记录客户的媒体接入控制地址上限、及客户当前已接入的媒体接入控制地址数目,有效节省了以太网接入设备的内存空间。 
附图说明
图1、现有技术管理MAC地址的方法流程图; 
图2、本发明实施例提供的管理媒体接入控制地址表的方法实施例流程图; 
图3、本发明实施例提供的管理媒体接入控制地址表的系统实施例结构图。 
具体实施方式
本发明实施例提供了一种使用媒体接入控制地址表的方法、一种管理媒体接入控制地址表的方法、一种管理媒体接入控制地址表的系统、及可三态查找的搜索引擎。 
常用的可三态查找的搜索引擎包括:TCAM、国际商用机器公司(IBM,International Business Machines)的软件管理树(SMT,Software Managed Tree) 以及一些涉及专利的查找算法,这些可三态查找的搜索引擎中又以TCAM的应用最为广泛,加之他们在本发明实施例中的应用方式基本相同,所以本文将以TCAM为例来对本发明实施例进行描述。 
TCAM是一种高速的三进制的专用于查表的硬件芯片,TCAM的每个存储单元除了“0”、“1”外,还有一种一般在业界被记为“*”的状态,当然这只是一种约定俗成的标记方法,记成其它符号,也是可以的,该状态表示此位既可以为“0”又可以为“1”,由于其具有查找速度快、操作简单的优点,被广泛应用。 
本发明实施例提供的管理媒体接入控制地址表的方法实施例如下文所述: 
首先,要在TCAM中预置一个MAC地址表,使用该MAC地址表来存放用户的标识信息,包括用户报文的源MAC地址以及用户接入设备的接口信息,这里接口信息可以包括接入端口号、VLAN号、VSI索引、或这三者的任意组合,而用户接入设备通常包括路由器、交换机之类。 
然后,根据客户的情况对该MAC地址表的表项进行初始化,为客户分配不大于所述客户MAC地址上限的表项数目,初始化后的MAC地址表如表2所示: 
表2、初始化后的MAC地址表 
  入接口信息   源MAC地址
  具体接口信息   *************
  具体接口信息   *************
  具体接口信息   *************
  具体接口信息   *************
  
Figure 071B09020_0
  
Figure 071B09020_1
  
Figure 071B09020_2
  
  具体接口信息   *************
[0057] 其中“入接口信息”一栏记录的即为用户接入设备的接口信息,举例来说:若管理员基于端口进行MAC地址限制,则具体接口信息就填入端口索引,如果要基于VLAN、VSI、或这三者的任意组合进行MAC地址限制,则具体接口信息填为VLAN索引、VSI索引、或VLAN+端口索引等等。 
以基于端口为例,若某用户端口的端口编号为X,MAC地址上限为N,则在系统开始运行,第一次进行初始化后,为该用户初始化n个表项,n不大于N,具体体现就是该MAC地址表将有n个表项的“入接口信息”一栏填入端口索引X。为每个端口初始化表项的数目,也就是分配给该端口的表项数目,也代表当前允许该端口接入用户的数目。 
而“源MAC地址”一栏在被初始化后,显示的信息均为“*”,表示该表项尚未被占用,即告诉TCAM在进行查找的时候,忽略对此表项的源MAC地址进行匹配操作。已经被占用的表项,此处填入相应源MAC地址即可。 
控制平面在对MAC地址表的表项进行初始化时,就会得知每个用户的MAC地址上限,及为每个客户初始化表项的数目。 
由于MAC地址表的表项数目是有限的,MAC地址表总的表项数目往往也代表着接入设备能够接入的用户数目,不同客户的所有用户共享MAC地址表的全部空间,通常根据客户的性质和要求不同,分为以下两类: 
不允许抢占模式的客户:对这种模式的客户,其MAC地址上限,也就是承诺其一定可以接入多少个用户。这种客户将独占MAC地址表的某一块固定大小的空间,即便其目前没有这么多用户接入,其MAC地址表的表项也不能被其它客户占用。 
允许抢占模式的客户:对这种模式的客户,只限制其最多接入的用户不能超过其MAC地址上限,但不承诺最坏情况下能够接入的用户数目,也就是说,在该客户有新的用户需要接入且已接入用户数目未达到上限时,MAC地址表有未被不允许抢占模式客户占用的空闲表项,就可以接入,没有就不能接入。 
在现有的技术方案下,某些允许抢占模式的客户经常会出现MAC地址空间严重被其它客户的MAC地址表项挤占,导致这些受害者客户大量在MAC 地址上限范围内的用户无法接入的现象。 
例如,全部MAC地址表的表项数目为100个,要接入A、B、C三个允许抢占模式的客户,对A、B、C三个客户都限制其MAC地址上限为50个,那么,很有可能其中某两个客户占用的MAC地址表项都为50,而导致另一个客户的用户完全无法接入,即可被分配的MAC地址表项为零。而且,控制平面对允许抢占模式的客户的接入用户,完全采用先到先接入的方式,给恶意的客户或客户内部恶意的用户提供了攻击设备的机会。 
本发明实施例针对上文描述的两种模式的客户,给出了为客户分配表项数目方法的具体实施方式,具体描述见下文。 
对于不允许抢占模式的客户,为客户分配数目等于该客户MAC地址上限的表项。 
对于允许抢占模式的客户,此时控制平面根据MAC地址表的实际情况,采取一定的策略来确定为客户分配的表项数目n,要求是n小于等于客户的MAC地址上限N。 
仍以上文所举实例来进行说明,假设全部MAC地址表的表项数目为100个,要接入A、B、C三个允许抢占模式的客户,A、B、C三个客户的MAC地址上限都为50个,此时为了防止出现有的客户无法接入用户的情况,再考虑到其他的一些经验数据,当为客户初始化MAC地址表表项时,并不是为其初始化50个MAC地址表表项,而是只初始化30个左右,以防止恶意客户或恶意用户在短时间内将资源耗光。 
当转发平面从某接口上接收到一个报文时,首先要从接口描述表中获得该MAC地址表上是否为接口分配了表项,若没有则将报文丢弃;若有则继续获取限制MAC地址的接口类型,即是基于端口、还是基于VLAN、还是基于VSI、或其它组合情况下的MAC地址表项限制。 
本实施例中将以获得的限制MAC地址的接口类型结果是基于端口为例,进行描述,若是其他结果,后续的流程也基本相同。 
本发明实施例提供的管理媒体接入控制地址表的方法实施例,在通过初始化为客户分配好表项后,对媒体接入控制地址表的使用方法和本发明实施 例提供的使用媒体接入控制地址表的方法实施例完全一致,详细可参考下文对本发明实施例提供的使用媒体接入控制地址表的方法实施例的描述。 
本发明实施例提供的使用媒体接入控制地址表的方法实施例如下文所述: 
当转发平面从某接口上接收到一个报文,MAC地址表已经为此接口分配了表项,且是基于端口限制MAC地址时,本发明实施例提供的使用媒体接入控制地址表的方法实施例运作流程如图2所示: 
步骤201、提取该报文的源端口信息和源MAC信息。 
步骤202、根据源端口信息和源MAC地址信息查找MAC地址表。 
步骤203、对查找的结果进行判断,查找结果有三:命中一个完全匹配的表项;命中一个源MAC地址栏为“*”的表项;没有查找到完全匹配的表项,也没有查找到源MAC地址栏为“*”的表项,这种情况可以称为不命中。 
若结果为命中一个完全匹配的表项,则说明MAC地址表中存在和该源端口信息和源MAC地址信息完全匹配的表项,说明发送该报文的用户已经接入,此时进入步骤211。 
若结果为命中一个源MAC地址栏为“*”的表项,则说明查找到了一个入接口地址和该源端口信息匹配,源MAC地址为“*”的表项。因为源MAC地址为“*”的表项只比较入接口信息,所以只要该报文的源端口信息与这个MAC地址限制表表项中的源端口信息相等,TCAM查找就命中且返回这个表项在MAC地址限制表中的索引,由于查找到的表项源MAC地址为“*”,说明这是一个已经分配给该用户所属客户的空闲表项,且该用户为一个未被记录的新用户,此时流程进入步骤204。 
若结果为不命中,说明MAC地址表中不存在与该源端口信息和源MAC地址信息完全匹配的表项,也不存在属于该端口的空闲表项,此时进入步骤206。 
步骤204、将该源MAC地址记录到媒体接入控制地址表。 
流程进入步骤204,说明该报文来自一个新的用户,而且MAC地址表中 存在属于该端口的空闲表项,此时只需将该源MAC地址记录到命中的表项,即完成了对该新用户的接入。 
现举例说明,初始化后的MAC地址表如表3所示: 
表3、初始化后的MAC地址表 
    入接口信息     源MAC地址
    X端口索引     *************
    X端口索引     *************
    X端口索引     *************
    X端口索引     *************
    X端口索引     *************
刚初始化好就从X端口来了一个源MAC地址为1-1-1的报文,将命中表3中的第一个表项,检查被命中表项的源MAC地址字段,发现是“*”号,则表明这个报文是一个新用户发出的,而且该端口上接入的用户数目还没有达到限制的上限,此时接纳该用户,并将该报文的源MAC地址填入命中的MAC地址表表项的源MAC地址字段,此时的MAC地址表如图4所示: 
表4、MAC地址表 
    入接口信息     源MAC地址
    X端口索引     1-1-1
    X端口索引     *************
    X端口索引     *************
    X端口索引     *************
    X端口索引     *************
步骤205、转发该报文,流程结束。 
由于本发明实施例采用了通过初始化,直接为每个客户分配MAC地址表表项的方式,在为客户分配的表项未用完前,需要加入该客户的新的用户时, 只要通过一次查找,一次记录,就可以完成。在现有技术中,需要比较MAC地址上限和当前MAC地址数目,在记录成功后,还要将客户MAC地址数目加一,并更新相应数据,在本发明实施例中这些动作都被省掉了,在端口有空闲表项时,直接就可以完成现有技术中需要这么多动作才能完成的事情。而且,直接查找命中的方式,使得不再需要在MAC地址表项中遍历寻找空闲表项,大大简化了转发流程。 
步骤206、判断是否为允许抢占模式客户的用户,是则进入步骤207;否则进入步骤210。 
流程进入步骤206,说明该报文来自一个新的用户,而且MAC地址表中为该端口分配的表项已经被用完了,此时不能将用户的源MAC地址信息直接加入MAC地址表。 
如果该用户属于一个不允许抢占模式的客户,则说明这个客户的MAC地址表项用完了,接入设备将不再接纳该客户的任何新用户,那么不命中的消息将被丢弃,流程进入步骤210。 
如果该用户属于一个允许抢占模式的客户,此时表明以前分配给这个客户的MAC地址表项用完了,但并不代表已经到了上限,因为控制平面在对MAC地址表初始化时,分配给允许抢占模式的客户的表项数目可能小于该客户的MAC地址上限。例如,三个客户其上限都是50但整个MAC地址限制表的空间大小为100,则初始化的时候对每个客户初始化了30个,因此当某个客户的用户数目达到31个的时候,查找MAC地址限制表项就将产生不命中的结果。此时流程进入步骤207。 
步骤207、将不命中消息发送到控制平面。 
步骤208、控制平面决定是否为该端口追加MAC地址表项,是则进入步骤209;否则进入步骤210。 
步骤209、为该端口追加表项,此时MAC地址表中就有分配给该端口的空闲表项了,流程转向步骤204,将该源MAC地址记录到MAC地址表为该端口追加的表项。 
步骤210、丢弃不命中消息,丢弃该报文,或其他处理,流程结束。 
控制平面接收到不命中消息,会根据实际情况来决定是否为该端口追加MAC地址表项,以及追加多少个表项。追加通常是通过把一些未被分配的表项初始化,分配给该客户,或者将一些老化的表项回收,然后初始化分配给该客户。 
通常在管理MAC地址表时,都会有一个老化机制,将一些长时间没有被使用的允许抢占模式的客户的表项,或使用频率极低的允许抢占模式的客户的表项进行回收,在本发明实施例中,有时允许抢占模式的客户的用户下线后,也会将其占用的表项回收。至于没有被使用时间的长短、及使用频率的高低,一般由系统进行规定,达到预定的条件即进行老化处理,进行回收。回收的办法是将那些可以回收的表项清“0”或置无效。 
由于控制平面上记录有对每个客户初始化了多少个表项的数目,以及追加了多少个表项,对每个客户目前分配了多少个表项完全了解,因此控制平面可以根据目前为客户分配的表项数目是否达到MAC地址上限,来决定是否为该客户追加一定量的表项。 
对于已经达到MAC地址上限的客户,将不再追加MAC地址表项,在有可用于追加的表项时,对于尚未达到MAC地址上限的客户,可以根据实际情况追加一定量的表项。 
同时,在为允许抢占模式客户分配的表项已经饱和,达到其MAC地址上限时,在其接口描述表上设置标识,禁止属于该客户的报文触发产生不命中消息,当有分配给该客户的表项被回收时,清除该禁止标识;在MAC地址表没有可供分配的表项时,为每个客户,在接口描述表上设置标识,禁止所有客户的报文触发产生不命中消息,当有表项被回收时,清除该禁止标识。 
为了防止恶意攻击,可以将不命中消息的上报频率采用一些限制措施来控制在可承受的范围之内,例如为客户上报不命中消息的频率设置上限,丢弃超过上限的不命中消息。 
在实际运行中,初始化时,管理员可以根据经验数据配置为每个客户分配的具体表项个数,例如,全部MAC地址表的表项数目为100个,要接入A、B、C三个允许抢占模式的客户,对A、B、C三个客户都限制其MAC地址 上限为50个,长期在线用户最多的是B,A比B略少,C最少,所以,为这三个用户分别分配40、45、15个表项数目,防止平均分配时,B的用户过多,表项资源很快被耗光,不断产生不命中消息,而分配给C的表项都还处于空闲状态,又要将C的表项回收分配给B。 
加之若每次只追加一个表项,那么该客户后续要加入的用户很多时就会产生许多的不命中消息,可能对控制平面的其它任务的处理带来冲击。因此,在接到不命中消息,并决定为该客户追加表项时,不是只给该客户分配一个空闲表项,而是可以保有一部分空闲表项供分配其它客户的情况下,尽量一次性分配给该客户达到其规定的上限的表项。同时,如果给饱和了,则在用户接入的接口描述表上,设立标志,禁止不命中消息的产生和上报,当通过老化或其它因素,回收了空闲表项后则将这个标志清除。 
现举例来说明追加的具体做法,以表4为例,X端口上继续有新的用户接入,分配给X的表项被用完了,此时的MAC地址表如表5所示: 
表5、MAC地址表 
    入接口信息    源MAC地址
    X端口索引     1-1-1
    X端口索引     3-3-3
    X端口索引     2-2-2
    X端口索引     4-4-4
    X端口索引     5-5-5
此时,如果再从X端口上来一个源MAC地址为6-6-6的报文,毫无疑问,这又是一个来自于新用户的报文,需要接入新的用户,此时查找MAC地址表的结果将是不命中,加之X端口是一个允许抢占模式用户,所以要上报不命中消息给控制平面,控制平面上记录的关于X端口的信息说明,分配给X端口的表项比X端口的MAC地址上限数目少2个,且MAC地址表可供分配的表项有15个,则控制平面决定为X端口追加2个表项,追加后的MAC地址表如表6所示: 
表6、MAC地址表 
    入接口信息     源MAC地址
    X端口索引     1-1-1
    X端口索引     3-3-3
    X端口索引     2-2-2
    X端口索引     4-4-4
    X端口索引     5-5-5
    X端口索引     ************
    X端口索引     ************
接着将源MAC地址6-6-6填入追加的表项,转发该报文。 
接着以表6为例来老化回收的具体做法,假设X端口源MAC地址为“1-1-1”和“2-2-2”的表项下线后,很久都没有再次使用,没有使用的时间达到了关于老化的规定时间,则需对其进行回收,回收后的MAC地址表如表7所示: 
表7、MAC地址表 
    入接口信息     源MAC地址
    0     0
    X端口索引     3-3-3
    0     0
    X端口索引     4-4-4
    X端口索引     5-5-5
    X端口索引     ************
    X端口索引     ************
以上即为对本发明实施例提供的使用媒体接入控制地址表的方法实施例、及管理媒体接入控制地址表的方法实施例的描述。 
本发明实施例提供的管理媒体接入控制地址表的系统实施例如下文所述: 
本发明实施例提供的管理媒体接入控制地址表的系统实施例结构如图3所示,包括控制平面310、及可三态查找的搜索引擎320。 
其中控制平面310包括:初始化单元311、回收单元312、控制单元313、频率设置单元314、客户标识设置单元315、系统标识设置单元316。 
可三态查找的搜索引擎320包括:存储单元321、查找单元322、发送单元323。 
存储单元321:用于存放MAC地址表; 
初始化单元311:用于对存储单元321上的MAC地址表的表项进行初始化,通过初始化为客户分配数目不大于该客户MAC地址上限的表项; 
初始化的具体方式和上文管理媒体接入控制地址表的方法实施例中描述的基本相同,在此不再重复描述。 
控制平面310的初始化单元311,在对MAC地址表的表项进行初始化时,就会得知每个用户的MAC地址上限,及为每个客户初始化表项的数目。 
初始化单元311内部包括:不允许抢占模式的初始化单元、和/或允许抢占模式的初始化单元。 
不允许抢占模式的初始化单元,用于为不允许抢占模式的客户分配数目等于所述客户MAC地址上限的表项; 
允许抢占模式的初始化单元,用于根据系统运行状况,为所述允许抢占模式的客户分配数目不大于所述客户MAC地址上限的表项。 
查找单元322:用于在收到用户发送的报文时,查找存储单元321上的MAC地址表。 
若命中一个完全匹配的表项,则说明MAC地址表中存在和该用户源端口信息和源MAC地址信息完全匹配的表项,说明发送该报文的用户已经接入,直接转发该报文。 
若结果为命中一个源MAC地址栏为“*”的表项,则说明查找到了一个入接口地址和该用户源端口信息匹配,源MAC地址为“*”的表项。因为源MAC地址为“*”的表项只比较入接口信息,所以只要该报文的源端口信息与这个MAC地址限制表表项中的源端口信息相等,TCAM查找就命中且返回这个表项在MAC地址限制表中的索引,由于查找到的表项源MAC地址为“*”,说明这是一个已经分配给该用户所属客户的空闲表项,且该用户为一个未被记录的新用户,则将该用户的源MAC地址填入查找到的空闲表项。 
若没有查找到完全匹配的表项,也没有命中源MAC地址栏为“*”的表项,说明该用户是一个未被记录的新用户,但是分配给该用户所属客户的表项已经用完,所以没有查找到属于该客户的空闲表项,这种情况可以称为不命中。 
发送单元323:在获知所述查找单元322查找结果为不命中时,发送表示未查找到的消息,如不命中消息至控制单元313; 
控制单元313:用于在收到不命中消息,决定并在存储单元321上的MAC地址表中为客户追加表项后,将新用户的源MAC地址填入所述追加表项;在决定不为客户追加表项时,丢弃该不命中消息。 
频率设置单元314:用于为客户上报不命中消息的频率设置上限,控制发送单元323丢弃超过上限的不命中消息。 
客户标识设置单元315:用于在为客户分配的表项已经达到上限时,在接口描述表上设置标识,禁止发送单元323为所述客户的报文触发产生所述不命中消息。在有分配给客户的表项被回收时,撤销标识。 
系统标识设置单元316:用于在MAC地址表没有表项可以分配时,为每个客户,在接口描述表上设置标识,禁止发送单元323为客户的报文触发产生不命中消息。在所述MAC地址表有表项被回收时,撤销标识。 
回收单元312:回收存储单元321上的,属于允许抢占模式客户的超过预定期限未被使用的,媒体接入控制地址表项;或者回收所述存储单元上的,下线的属于允许抢占模式客户的用户占用的表项。 
本发明实施例提供的管理媒体接入控制地址表的系统实施例的工作方 式,基本和上文描述的管理媒体接入控制地址表的方法实施例相同,在此不再重复描述。 
本发明实施例提供的可三态查找的搜索引擎实施例,和上文描述的管理媒体接入控制地址表的系统实施例中提到的可三态查找的搜索引擎,完全一致,在此不再详细描述。 
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,和上述的分布式虚拟环境的管理方法实施例基本相同。 
上述提到的存储介质可以是只读存储器,磁盘或光盘等。 
通过应用本发明实施例有效节省了接入设备的内存资源,本发明实施例利用对MAC地址表进行初始化,以为客户分配表项的方法,使得不再需要在以太网接入设备的内存空间记录客户的媒体接入控制地址上限、及客户当前已接入的媒体接入控制地址数目,有效节省了以太网接入设备的内存空间。 
而且还提高了MAC地址表的处理效率,在为客户分配的表项未用完前,需要加入该客户的新的用户时,只要通过一次查找,一次记录,就可以完成。在现有技术中,需要比较MAC地址上限和当前MAC地址数目,在记录成功后,还要将客户MAC地址数目加一,并更新相应数据,在本发明实施例中这些动作都被省掉了,在端口有空闲表项时,直接就可以完成现有技术中需要这么多动作才能完成的事情。而且,直接查找命中的方式,使得不再需要在MAC地址表项中遍历寻找空闲表项,大大简化了转发流程,提高了处理效率。 
改进了现有技术中,某些允许抢占模式的客户经常会出现MAC地址空间严重被其它客户的MAC地址表项挤占,导致这些受害者客户大量在MAC地址上限范围内的用户无法接入的现象。本发明实施例中通过控制平面结合实际情况为允许抢占模式的客户分配表项资源,客户间的抢占可以通过控制平面进行监控和管理,通常不会出现有的客户被完全没有可使用的表项资源的现象,也可以防止某些恶意的客户或客户内部恶意的用户攻击设备、恶意抢占资源。 
以上对本发明实施例所提供的一种使用媒体接入控制地址表的方法、管理媒体接入控制地址表的方法、管理媒体接入控制地址表的系统、及可三态查找的搜索引擎进行了详细介绍,本文中应用了具体个例对本发明实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。 

Claims (13)

1.一种使用媒体接入控制地址表的方法,其特征在于,所述方法包括:
可三态查找的搜索引擎在收到客户中的新用户发送的报文时,查找可三态查找的搜索引擎上的媒体接入控制地址表,所述媒体接入控制地址表的源MAC地址一栏被控制平面预先初始化为显示的信息均为*,表示该表项尚未被占用,并为不允许抢占模式的客户分配过数目等于该客户MAC地址上限的表项,为允许抢占模式的客户分配过数目小于该客户MAC地址上限的表项;
若命中预先通过初始化分配给所述客户的空闲表项,则将所述新用户的源媒体接入控制地址填入所述空闲表项。
2.如权利要求1所述的使用媒体接入控制地址表的方法,其特征在于,所述方法还包括:
若未查找到预先通过初始化分配给所述客户的空闲表项,则将表示未查找到的信息发送至控制平面;
若所述控制平面为所述客户追加表项,则将所述新用户的源媒体接入控制地址填入所述追加表项。
3.如权利要求2所述的使用媒体接入控制地址表的方法,其特征在于,所述方法还包括:
若所述控制平面不为所述客户追加表项,则丢弃所述表示未查找到的信息。
4.如权利要求2或3所述的使用媒体接入控制地址表的方法,其特征在于,所述方法还包括:为所述客户上报所述表示未查找到的信息的频率设置上限,丢弃超过上限的表示未查找到的信息;
和/或,在为所述客户分配的表项已经达到上限时,设置标识以禁止所述客户的报文触发产生所述表示未查找到的信息,当有分配给所述客户的表项被回收时,撤销所述标识;
和/或,在所述媒体接入控制地址表没有表项可以分配时,设置标识,禁止所有客户的报文触发产生所述表示未查找到的信息,在所述媒体接入控制地址表有表项被回收时,撤销所述标识。
5.如权利要求1、2或3所述的使用媒体接入控制地址表的方法,其特征在于,所述方法还包括:在属于允许抢占模式客户的表项超过预定期限未被使用,回收所述未被使用的表项,或者属于允许抢占模式客户的用户下线时,回收所述用户占用的表项。
6.一种管理媒体接入控制地址表的方法,其特征在于,所述方法包括:
初始化可三态查找的搜索引擎上的媒体接入控制地址表,为不允许抢占模式的客户分配数目等于所述客户媒体接入控制地址上限的表项,并根据系统运行状况,为允许抢占模式的客户分配数目小于所述客户媒体接入控制地址上限的表项;
被分配表项的源媒体接入控制地址栏被标记为未被占用,查找时忽略匹配操作。
7.一种管理媒体接入控制地址表的系统,其特征在于,所述系统包括:
可三态查找的搜索引擎,包括存储单元,所述存储单元,用于存放媒体接入控制地址表;
控制平面,包括初始化单元,所述初始化单元用于对所述存储单元上的媒体接入控制地址表的表项进行初始化,所述初始化单元包括不允许抢占模式的初始化单元和/或允许抢占模式的初始化单元;
所述不允许抢占模式的初始化单元,用于为不允许抢占模式的客户分配数目等于所述客户媒体接入控制地址上限的表项;
所述允许抢占模式的初始化单元,用于根据系统运行状况,为所述允许抢占模式的客户分配数目小于所述客户媒体接入控制地址上限的表项;
被分配表项的源媒体接入控制地址栏被标记为未被占用,查找时忽略匹配操作。
8.如权利要求7所述的管理媒体接入控制地址表的系统,其特征在于,所述可三态查找的搜索引擎还包括:
查找单元,用于在收到所述客户中的新用户发送的报文时,查找所述存储单元上的媒体接入控制地址表,在命中已分配给所述客户的空闲表项时,将所述新用户的源媒体接入控制地址填入所述空闲表项。
9.如权利要求8所述的管理媒体接入控制地址表的系统,其特征在于,所述可三态查找的搜索引擎还包括:
发送单元,在获知所述查找单元查找结果为未查找到属于所述客户的空闲表项时,发送表示未查找到的信息;
所述控制平面还包括:
控制单元,用于在收到所述表示未查找到的信息,在存储单元上的媒体接入控制地址表中为所述客户追加表项时,将所述新用户的源媒体接入控制地址填入所述追加表项;在不为所述客户追加表项时,丢弃所述表示未查找到的信息。
10.如权利要求8所述的管理媒体接入控制地址表的系统,其特征在于,所述控制平面还包括:
频率设置单元,用于为所述客户发送表示未查找到的信息的频率设置上限,控制发送单元丢弃超过上限的表示未查找到的信息;
和/或,客户标识设置单元,用于在为所述客户分配的表项达到上限时,设置标识,禁止所述发送单元为所述客户的报文触发产生表示未查找到的信息,有分配给所述客户的表项被回收时,撤销所述标识;
和/或,系统标识设置单元,用于在所述媒体接入控制地址表没有表项可以分配时,设置标识,禁止所述发送单元为所有客户的报文触发产生表示未查找到的信息,在所述媒体接入控制地址表有表项被回收时,撤销所述标识。
11.如权利要求7、8或9所述的管理媒体接入控制地址表的系统,其特征在于,所述控制平面还包括:
回收单元,用于回收所述存储单元上的媒体接入控制地址表的表项,所述表项为属于允许抢占模式客户的超过预定期限未被使用的表项;或者属于允许抢占模式客户的下线的用户占用的表项。
12.一种可三态查找的搜索引擎,其特征在于,所述可三态查找的搜索引擎包括:
存储单元,用于存放通过初始化为客户分配表项的媒体接入控制地址表;
查找单元,用于在收到所述客户中的新用户发送的报文时,查找所述存储单元上的媒体接入控制地址表,所述媒体接入控制地址表的源MAC地址一栏被控制平面预先初始化为显示的信息均为*,表示该表项尚未被占用,并为不允许抢占模式的客户分配过数目等于该客户MAC地址上限的表项,为允许抢占模式的客户分配过数目小于该客户MAC地址上限的表项,在命中已分配给所述客户的空闲表项时,将所述新用户的源媒体接入控制地址填入所述空闲表项。
13.如权利要求12所述的可三态查找的搜索引擎,其特征在于,所述可三态查找的搜索引擎还包括:
发送单元,在获知所述查找单元查找结果为未查找到属于所述客户的空闲表项时,发送表示未查找到的信息。
CN2007101109020A 2007-06-08 2007-06-08 使用、管理mac地址表的方法、系统、及搜索引擎 Expired - Fee Related CN101068178B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101109020A CN101068178B (zh) 2007-06-08 2007-06-08 使用、管理mac地址表的方法、系统、及搜索引擎

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101109020A CN101068178B (zh) 2007-06-08 2007-06-08 使用、管理mac地址表的方法、系统、及搜索引擎

Publications (2)

Publication Number Publication Date
CN101068178A CN101068178A (zh) 2007-11-07
CN101068178B true CN101068178B (zh) 2010-12-01

Family

ID=38880622

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101109020A Expired - Fee Related CN101068178B (zh) 2007-06-08 2007-06-08 使用、管理mac地址表的方法、系统、及搜索引擎

Country Status (1)

Country Link
CN (1) CN101068178B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667997A (zh) * 2008-09-02 2010-03-10 中兴通讯股份有限公司 一种在宽带接入系统中绑定mac地址的实现方法
CN101420439B (zh) * 2008-11-26 2012-01-11 北京航空航天大学 分布式虚拟环境中基于位移残差的区域匹配方法
CN102316028B (zh) * 2011-08-24 2014-06-04 华为技术有限公司 发送因特网协议分组的方法及装置
CN102413028A (zh) * 2011-11-22 2012-04-11 江苏亿通高科技股份有限公司 MoCA系统的用户终端设备接入数量限制方法
CN103957166B (zh) * 2014-05-06 2018-02-09 迈普通信技术股份有限公司 终端接入数量控制方法和系统
CN104283795B (zh) * 2014-10-11 2018-04-10 新华三技术有限公司 一种组播表项刷新的方法和设备
CN105991428B (zh) * 2015-03-05 2020-11-10 中兴通讯股份有限公司 交换机路由冲突的处理方法及装置
CN107484250B (zh) * 2016-06-07 2020-10-02 中国移动通信有限公司研究院 一种实体管理方法、快速控制媒介访问控制实体及系统
CN106059886B (zh) * 2016-06-27 2020-10-13 新华三技术有限公司 一种报文转发方法及装置
CN108306762A (zh) * 2018-01-03 2018-07-20 郑州云海信息技术有限公司 一种基于界面的mac地址管理系统和方法
CN112118185A (zh) * 2020-09-24 2020-12-22 盛科网络(苏州)有限公司 报文转发方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1606294A (zh) * 2003-10-07 2005-04-13 阿尔卡特公司 改进的用于路由器的访问控制列表机制
CN1929393A (zh) * 2005-09-07 2007-03-14 中兴通讯股份有限公司 一种网络优化系统中网元对象的三态树呈现和定位方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1606294A (zh) * 2003-10-07 2005-04-13 阿尔卡特公司 改进的用于路由器的访问控制列表机制
CN1929393A (zh) * 2005-09-07 2007-03-14 中兴通讯股份有限公司 一种网络优化系统中网元对象的三态树呈现和定位方法

Also Published As

Publication number Publication date
CN101068178A (zh) 2007-11-07

Similar Documents

Publication Publication Date Title
CN101068178B (zh) 使用、管理mac地址表的方法、系统、及搜索引擎
Huang et al. Green datapath for TCAM-based software-defined networks
CN108337172A (zh) 大规模OpenFlow流表分级存储架构与加速查找方法
CN105357322B (zh) 一种基于拓扑划分的虚拟机分配方法
CN104115472A (zh) 用于内容导向网络中可扩展路由的方法
CN107040393B (zh) 一种路由管理方法和设备
CN111726305B (zh) 一种面向虚拟机的多级流表管控方法及系统
CN101605097A (zh) IPv6/IPv4地址分级访问权限控制方法和访问控制网关
CN103797774A (zh) 一种网络地址转换设备及方法
CN101620623A (zh) 内容可寻址存储器表项管理方法和装置
CN102427428A (zh) 基于多域最长匹配的流识别方法及设备
CN111131084A (zh) 一种QoS感知的OpenFlow流表分级存储架构及应用
CN101222434B (zh) 存储策略控制列表、策略搜索方法和三态寻址存储器
CN111988231A (zh) 一种掩码五元组规则匹配的方法及装置
CN103001793A (zh) 一种acl管理方法及装置
CN107276916A (zh) 基于协议无感知转发技术的交换机流表管理方法
CN100362812C (zh) 一种用户组播权限的管理方法
CN102289453A (zh) 三态内容寻址存储器规则存储方法、装置及网络设备
CN102143151A (zh) 一种基于深度包检测的协议跨包检测方法和装置
CN115514579B (zh) 基于IPv6地址映射流标签实现业务标识的方法及系统
CN101471858A (zh) 一种业务识别与控制系统中内部协作的方法
CN102891902A (zh) 介质访问控制地址更新方法及网络设备
CN115834478A (zh) 一种利用tcam实现pbr高速转发的方法
CN104994186A (zh) 媒体访问控制地址的查询方法、处理器及装置
CN108259504A (zh) 一种基于组实现访问控制列表的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101201

Termination date: 20170608

CF01 Termination of patent right due to non-payment of annual fee