CN101656676B - 一种媒体访问控制mac地址表项更新方法和装置 - Google Patents
一种媒体访问控制mac地址表项更新方法和装置 Download PDFInfo
- Publication number
- CN101656676B CN101656676B CN2009101767240A CN200910176724A CN101656676B CN 101656676 B CN101656676 B CN 101656676B CN 2009101767240 A CN2009101767240 A CN 2009101767240A CN 200910176724 A CN200910176724 A CN 200910176724A CN 101656676 B CN101656676 B CN 101656676B
- Authority
- CN
- China
- Prior art keywords
- mac address
- list item
- address list
- message
- mac
- 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.)
- Active
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种MAC地址表项更新方法,应用于包括多个转发芯片的网络设备中,所述网络设备还包括可编程器件,所述转发芯片上开放MAC地址消息接口,所有转发芯片的MAC地址消息接口连接到所述可编程器件,网络设备中的转发芯片将所述MAC地址表项更新消息通过自身的MAC地址消息接口发送到所述可编程器件,使所述可编程器件将所述MAC地址表项更新消息广播到其他转发芯片的MAC地址消息接口;所述网络设备中的其他转发芯片接收并解析来自所述可编程器件的MAC地址表项更新消息,并根据MAC地址表项更新消息更新FDB表中的MAC地址表项。本发明能够使网络设备能够自动、高效地维护FDB表。本发明同样公开了一种应用上述方法的网络设备。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种媒体访问控制MAC地址表项更新方法和装置。
背景技术
目前,主流网络设备的架构一般为交换网框式架构,如图1所示,该网络设备包含多个转发芯片,每个转发芯片上携带32K~1M的MAC(MediaAccess Control,媒体访问控制)地址表项。由于网络设备中的MAC地址表项容量非常大,对MAC地址学习和同步速度提出了更高的要求,如果MAC地址学习和同步速度太慢,则MAC地址广播的时间会比较长,甚至会出现长时间转发出错的现象。
现有技术中,MAC地址学习技术分为两种方式,即转发芯片内自动学习、转发芯片间CPU(Central Processing Unit,中央处理单元)干预同步,以及转发芯片内和芯片间都由CPU干预学习。其中,在转发芯片内自动学习、芯片间CPU干预同步的学习方式中,单个转发芯片内自动学习后,产生一个新地址消息,并将该地址信息发送给CPU,CPU通过控制通道将该地址消息传输到同一网络设备上的所有其他物理槽位的CPU,其他物理槽位上的CPU解析该地址消息,然后将该地址信息中的MAC地址表项写入本槽位上的所有转发芯片的FDB(Forward Database,转发数据库)表。
在转发芯片内和芯片间都由CPU干预的学习方式中,转发芯片上发现有新MAC地址产生,则产生一个新地址消息,并将该地址消息发送给CPU,CPU先将该地址消息中的MAC地址表项写入本槽位上所有转发芯片的FDB表,再通过控制通道将该地址消息传输到同一网络设备上的所有其他物理槽位的CPU,其他物理槽位上的CPU解析该地址消息,然后将该地址信息中的MAC地址表项写入本槽位上的所有转发芯片的FDB表。所有转发芯片的 MAC地址表项都是通过CPU维护更新的。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
对于转发芯片内自动学习、芯片间CPU干预同步的学习方式,由于同步需要软件干预,所以同步速度比较慢,导致广播时间长,且在端口切换过程中丢包时间长;同步时占用控制通道带宽,容易引起控制通道问题;软件设计比较复杂,在框式设备上应用会出现很多MAC地址学习的时序问题,包括存在不该有的MAC地址和应该有的MAC地址却不存在。
对于转发芯片内和芯片间都由CPU干预的学习方式,不仅同步速度比较慢,广播时间长,且本芯片学习速度慢。
发明内容
本发明提供了一种MAC地址表项更新方法和装置,使网络设备能够自动、高效地维护FDB表。
本发明提供了一种MAC地址表项更新方法,应用于包括多个转发芯片的网络设备中,所述网络设备还包括可编程器件,所述转发芯片上开放MAC地址消息接口,所有转发芯片的MAC地址消息接口连接到所述可编程器件,所述方法包括以下步骤:
所述网络设备中的转发芯片根据MAC地址表项更新结果或MAC地址表项扫描结果,生成MAC地址表项更新消息,并将所述MAC地址表项更新消息通过自身的MAC地址消息接口发送到所述可编程器件,使所述可编程器件将所述MAC地址表项更新消息广播到其他转发芯片的MAC地址消息接口;
所述网络设备中的其他转发芯片接收并解析来自所述可编程器件的MAC地址表项更新消息,在转发数据库FDB表查找所述MAC地址表项更新消息对应的MAC地址表项,并根据所述查找结果更新所述FDB表中的MAC地址表项;
其中,当所述MAC地址表项更新消息为同步消息时,所述根据所述查找结果更新所述FDB表中的MAC地址表项,具体包括:
当所述网络设备中的其他转发芯片查找不到所述同步消息对应的MAC地 址表项时,所述转发芯片将所述同步消息对应的MAC地址表项添加到所述FDB表中,并初始化所述MAC地址表项的核查位;
当所述网络设备中的其他转发芯片查找到所述同步消息对应的MAC地址表项时,所述转发芯片比较所述同步消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致;
如果比较结果为不一致,所述转发芯片将所述查找到的MAC地址表项对应的出接口信息更新为所述同步消息对应的出接口信息,并将所述更新后的MAC地址表项对应的核查位复位;
如果比较结果为一致,所述转发芯片检查所述查找到的MAC地址表项对应的核查位是否已经被置位,如果所述核查位已经被置位,则将所述核查位复位。
优选的,当所述MAC地址表项更新消息为同步消息时,所述网络设备中的转发芯片生成MAC地址表项更新消息之前,还包括:
在MAC地址表项中定义核查位;
所述转发芯片扫描MAC地址表项,并获知所述MAC地址表项的出接口在本芯片且所述MAC地址表项没有被老化掉。
优选地,所述MAC地址表项更新消息为MAC新地址NA消息时,所述网络设备中的其他转发芯片根据查找结果更新FDB表中的MAC地址表项,具体包括:
当所述网络设备中的其他转发芯片查找不到所述MAC NA消息对应的MAC地址表项时,所述转发芯片将所述MAC NA消息对应的MAC地址表项添加到所述FDB表中;
当所述网络设备中的其他转发芯片查找到所述MAC NA消息对应的MAC地址表项时,所述转发芯片比较所述MAC NA消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致,如果比较结果为不一致,则将所述查找到的MAC表项对应的出接口信息更新为所述MAC NA消息对应的出接口信息。
优选地,所述网络设备中的转发芯片生成MAC地址表项更新消息之前,还包括:
所述转发芯片接收到报文后,在自身的FDB表查找不到所述报文的源MAC地址,或者所述报文的出接口信息与查找到的源MAC地址对应的出接口信息不一致;
所述转发芯片启动MAC地址学习。
优选地,所述MAC地址表项更新消息为MAC老化地址AA消息时,所述网络设备中的其他转发芯片根据查找结果更新FDB表中的MAC地址表项,具体包括:
当所述网络设备中的其他转发芯片查找到所述MAC NA消息对应的MAC地址表项时,所述转发芯片从所述FDB表中的清除所述查找到的MAC地址表项。
优选地,所述网络设备中的转发芯片生成MAC地址表项更新消息之前,还包括:
在MAC地址表项中定义老化位;
所述转发芯片定时读取每条MAC地址表项的老化位,判断MAC地址表项是否满足老化条件;
如果MAC地址表项满足老化条件,所述转发芯片从自身对应的FDB表中删除所述MAC地址表项。
本发明提供了一种网络设备,包括多个转发芯片,还包括可编程器件,所述转发芯片上开放MAC地址消息接口,所有转发芯片的MAC地址消息接口连接到所述可编程器件,
所述转发芯片,用于根据MAC地址表项更新结果或MAC地址表项扫描结果,生成MAC地址表项更新消息,并将所述MAC地址表项更新消息通过自身的MAC地址消息接口发送到所述可编程器件;
所述可编程器件,与所有转发芯片连接,用于接收来自所述转发芯片的MAC地址表项更新消息,将所述MAC地址表项更新消息广播到其他转发芯片的MAC地址消息接口;
所述其他转发芯片,用于接收并解析来自所述可编程器件的MAC地址表项 更新消息,在FDB表查找所述MAC地址表项更新消息对应的MAC地址表项,根据所述查找结果更新所述FDB表中的MAC地址表项;
其中,当所述MAC地址表项更新消息为同步消息时,所述其他转发芯片,具体用于接收并解析来自所述可编程器件的同步消息,在FDB表查找所述同步消息对应的MAC地址表项;在查找不到所述同步消息对应的MAC地址表项时,将所述同步消息对应的MAC地址表项添加到所述FDB表中,并初始化所述MAC地址表项的核查位;在查找到所述同步消息对应的MAC地址表项时,比较所述同步消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致;在比较结果为不一致时,将所述查找到的MAC地址表项对应的出接口信息更新为所述同步消息对应的出接口信息,并将所述更新后的MAC地址表项对应的核查位复位;在比较结果为一致时,检查所述查找到的MAC地址表项对应的核查位是否已经被置位,如果所述核查位已经被置位,则将所述核查位复位;
所述转发芯片,还用于扫描MAC地址表项,并获知所述MAC地址表项的出接口在本芯片且所述MAC地址表项没有被老化掉。
优选地,所述MAC地址表项更新消息为MAC NA消息时,
所述转发芯片,具体用于接收并解析来自所述可编程器件的MAC NA消息,在FDB表查找所述MAC NA消息对应的MAC地址表项;在查找不到所述MACNA消息对应的MAC地址表项时,将所述MAC NA消息对应的MAC地址表项添加到所述FDB表中;在查找到所述MAC NA消息对应的MAC地址表项时,比较所述MAC NA消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致,如果比较结果为不一致,则将所述查找到的MAC表项对应的出接口信息更新为所述MAC NA消息对应的出接口信息;
所述转发芯片,还用于接收报文,在自身的FDB表查找所述报文的源MAC地址,当查找不到所述报文的源MAC地址或者所述报文的出接口信息与查找到的源MAC地址对应的出接口信息不一致时,启动MAC地址学习。
优选地,所述MAC地址表项更新消息为MACAA消息时,
所述转发芯片,具体用于接收并解析来自所述可编程器件的MACAA消息, 在FDB表查找所述MACAA消息对应的MAC地址表项;在查找到所述MACAA消息对应的MAC地址表项时,从所述FDB表中的清除所述查找到的MAC地址表项;
所述转发芯片,还用于定时读取每条MAC地址表项的老化位,判断MAC地址表项是否满足老化条件;在MAC地址表项满足老化条件,从自身对应的FDB表中删除所述MAC地址表项。
附图说明
图1为网络设备的架构示意图;
图2为本发明中的一种MAC地址表项更新方法流程图;
图3为本发明应用场景中的MAC地址表项更新***结构示意图;
图4为本发明应用场景中的MAC地址表项学习流程图;
图5为本发明应用场景中的MAC地址表项老化流程图;
图6为本发明应用场景中的转发芯片端口结构示意图;
图7为本发明应用场景中的MAC地址表项核查流程图;
图8为本发明中的一种网络设备结构示意图。
具体实施方式
下面将结合本发明中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
如图2所示,为本发明中的一种MAC地址表项更新方法流程图,应用于包括多个转发芯片的网络设备中,该网络设备还包括可编程器件,转发芯片上开放MAC地址消息接口,所有转发芯片的MAC地址消息接口连接到可编程器件,该方法包括以下步骤:
步骤201,网络设备中的转发芯片根据MAC地址表项更新结果或MAC地址表项扫描结果,生成MAC地址表项更新消息,并将该MAC地址表项更新消息通过自身的MAC地址消息接口发送到可编程器件。
具体地,本发明中的可编程器件可以为FPGA(Field Programmable GateArray,现场可编程门阵列)芯片、NP(Network Processor,网络处理器)、GAL(Generic Array Logic,通用阵列逻辑)器件和CPLD(Complex ProgrammableLogic Device,复杂可编程逻辑器件)等具有编程功能的元器件,本发明中的转发芯片均满足MAC地址跨芯片自动学习、老化等要求。
步骤202,可编程器件将MAC地址表项更新消息广播到其他转发芯片的MAC地址消息接口。
步骤203,网络设备中的其他转发芯片接收并解析来自可编程器件的MAC地址表项更新消息,在FDB表查找MAC地址表项更新消息对应的MAC地址表项,并根据查找结果更新FDB表中的MAC地址表项。
其中,MAC地址表项更新消息包括MAC NA(New Address,新地址)消息、MAC AA(Aged Address,老化地址)消息和同步消息中的任意一种。
具体地,MAC地址表项更新消息为MAC NA消息时,当转发芯片查找不到MAC NA消息对应的MAC地址表项时,转发芯片将MAC NA消息对应的MAC地址表项添加到FDB表中;当转发芯片查找到MAC NA消息对应的MAC地址表项时,转发芯片比较MAC NA消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致,如果比较结果为不一致,则将查找到的MAC表项对应的出接口信息更新为MAC NA消息对应的出接口信息。
MAC地址表项更新消息为MAC AA消息时,当转发芯片查找到MAC NA消息对应的MAC地址表项时,转发芯片从FDB表中的清除查找到的MAC地址表项。
MAC地址表项更新消息为同步消息时,当转发芯片查找不到同步消息对应的MAC地址表项时,转发芯片将同步消息对应的MAC地址表项添加到FDB表中,并初始化MAC地址表项的核查位;当转发芯片查找到同步消息对应的MAC地址表项时,转发芯片比较同步消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致;如果比较结果为不一致,转发芯片将查找到的MAC地址表项对应的出接口信息更新为同步消息对应的出 接口信息,并将更新后的MAC地址表项对应的核查位复位;如果比较结果为一致,转发芯片检查查找到的MAC地址表项对应的核查位是否已经被置位,如果该核查位已经被置位,则将该核查位复位。
如图3所示,为本发明应用场景中的MAC地址表项更新***结构示意图,包括多个转发芯片、CPU和FPGA芯片,所有转发芯片的MAC地址消息接口连接到FPGA芯片上。
以下结合上述应用场景,对本发明中的MAC地址表项更新进行详细、具体的描述。
如图4所示,为本发明应用场景中的MAC地址表项学习流程图,具体包括以下步骤:
步骤401,在每个转发芯片上开放一个特定接口,作为MAC地址消息接口。
其中,MAC地址消息接口专门用于接收和发送MAC AU消息,可以为3.125Gbps SERDES(SERializer/DESerializer,并串行与串并行转换器)接口。网络设备中的所有转发芯片的MAC地址消息接口连接到同一个FPGA芯片上,该FPGA芯片可以实现消息复制逻辑,用于从SERDES接口接收MAC地址消息,将该MAC地址消息复制到所有其他的SERDES接口上。MAC地址消息格式表和MAC地址表项内容表,分别如表1和表2所示。
表1 MAC地址消息格式表
Bits | Field | Description |
0:1 | Message Type | 消息类型: 0表示NA消息; 1表示AA消息; 2和3表示Reserved |
7:2 | Reserved | 预留位 |
135:8 | MAC Entry | MAC地址表项内容 |
[0071] 表2 MAC地址表项内容表
Bits | Field | Description |
0 | Valid | 是否合法: 0,非法 1,合法 |
1 | Age | 激活位: 0表示一段时间内没有使用; 1表示最近匹配过 |
2 | Sync | 同步位: 0表示一段时间内没有进行核查过; 1表示一段时间内核查过; 如果该MAC地址是别的单板同步过 来的,该bit位有效,否则无效。 |
18:3 | VLAN ID | 用户所在VLAN |
66:19 | MAC Address | 48bit的MAC地址 |
82:67 | QoS Info | 表项的QoS信息 |
127:83 | Forward Info | 转发信息 |
步骤402,转发芯片1接收到报文后,在FDB表查找该报文的源MAC地址,如果查找到该报文的源MAC地址,则执行步骤403;如果查找不到该报文的源MAC地址,则执行步骤404。
步骤403,转发芯片1比较报文的出接口信息与查找到的源MAC地址对应的出接口信息是否一致,如果比较结果为一致,则结束流程;如果比较结果为不一致,则执行步骤404。
其中,当比较结果为不一致时,说明FDB表中的MAC地址表项发生了迁移,需要重新学习MAC地址;当比较结果为一致时,说明MAC地址表项在FDB表中正确存在,转发芯片1可以继续其他处理。
步骤404,转发芯片1启动MAC地址学习,根据学习结果生成MAC NA消息,并将该MAC NA消息通过MAC地址消息接口发送到FPGA芯片。
具体地,转发芯片1将本芯片上的MAC地址表项的出接口更新成最新的MAC地址,生成的MAC NA消息中包含学习到的MAC地址表项。
步骤405,FPGA芯片通过MAC地址消息接口接收MAC NA消息,并将MAC NA消息广播到其他MAC地址消息接口。
步骤406,转发芯片2接收并解析MAC NA消息,在FDB表查找该MACNA消息对应的MAC地址表项,如果查找到该MAC NA消息对应的MAC地址表项,则执行步骤407;如果查找不到该MAC NA消息对应的MAC地址表项,则执行步骤408。
具体地,转发芯片2从MAC NA消息中提取FDB表查找Key,即VLAN(Virtual Local Area Network,虚拟局域网)和MAC地址,并通过Key查找MAC NA消息对应的MAC地址表项。
步骤407,转发芯片2比较MAC NA消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致,如果比较结果为一致,则结束流程;如果比较结果为不一致,则执行步骤408。
其中,当比较结果为不一致时,说明转发芯片2原有的MAC地址表项发生了迁移,需要重新学习MAC地址;当比较结果为一致时,说明转发芯片2的MAC地址表项已经存在,转发芯片2可以忽略接收到的MAC NA消息。
步骤408,转发芯片2启动MAC地址学习。
具体地,转发芯片2可以将MAC NA消息对应的MAC地址表项添加到FDB表,也可以更新原有MAC地址表项的出接口信息,将查找到的MAC表项对应的出接口信息更新为MAC NA消息对应的出接口信息。
如图5所示,为本发明应用场景中的MAC地址表项老化流程图,具体包括以下步骤:
步骤501,在MAC地址表项中定义老化位Age bit。
具体地,当学习到MAC地址表项时,将该MAC地址表项对应的老化位 置为1;报文进入转发芯片进行源匹配查找时,如果匹配到该MAC地址表项且该MAC地址表项对应的老化位为0,则将该老化位置为1。
需要说明的是本发明应用场景中的置位和复位,可以分别是将老化位置为1和置为0,也可以是其他置位和复位方式,置位和复位方式的变换不影响本发明的保护范围。
步骤502,转发芯片1定时读取每条MAC地址表项的老化位,判断MAC地址表项是否满足老化条件,如果满足老化条件,则执行步骤503;如果不满足老化条件,则结束流程。
具体地,转发芯片专门有一个老化扫描任务,定时读取每一条表项的Agebit,如果读到该Age bit为1,则将其置为0;如果读到该Age bit为0,则判断该Age bit对应的MAC地址表项满足老化条件。
需要说明的是,本发明中的各个转发芯片根据端口信息,对MAC地址表项进行独立老化。参见图6,转发芯片的每个端口都具有一个该网络设备的全局编号,例如,转发芯片1的两个端口的全局编号分别为1-1和1-2。每个转发芯片仅能够根据端口信息对自身的MAC地址表项进行老化,而无法老化其他转发芯片的MAC地址表项。转发芯片的端口信息,即转发芯片的各个端口的全局编号,包含在如表2所示的MAC地址表项内容的Forward Info域中。
步骤503,转发芯片1从自身对应的FDB表中删除MAC地址表项,并根据该MAC地址表项生成MAC AA消息,将该MAC AA消息通过MAC地址消息接口发送到FPGA芯片。
步骤504,FPGA芯片将MAC AA消息广播到其他MAC地址消息接口。
步骤505,转发芯片2接收并解析MAC AA消息,在FDB表查找该MACAA消息对应的MAC地址表项,如果查找到该MAC AA消息对应的MAC地址表项,则执行步骤506;如果查找不到该MAC AA消息对应的MAC地址表项,则结束流程,忽略接收到的MAC AA消息。
具体地,转发芯片2从MAC AA消息中提取FDB表查找Key,即VLAN和MAC地址,并通过Key查找MAC AA消息对应的MAC地址表项。
步骤506,转发芯片2清除查找到的MAC地址表项。
本发明通过定时老化,将一段时间内没有源匹配的MAC地址表项从FDB表中清除,提高了MAC地址表项利用率。
另外,由于转发芯片的带宽较高,产生的MAC NA消息和MAC AA消息比较多,在FPGA上均会广播,容易造成消息丢失,因此有必要对MAC地址表项进行定时核查。
如图7所示,为本发明应用场景中的MAC地址表项核查流程图,具体包括以下步骤:
步骤601,在MAC地址表项中定义一个核查位。
其中,核查位可以置位为1,表示已经核查过。
需要说明的是本发明应用场景中的置位和复位,可以分别是将核查位置为1和置为0,也可以是其他置位和复位方式,置位和复位方式的变换不影响本发明的保护范围。
步骤602,转发芯片1扫描本芯片对应的MAC地址表项,判断该MAC地址表项对应的出接口是否在本芯片上,如果判断结果为是,则执行步骤606;如果判读结果为否,则执行步骤603。
步骤603,转发芯片1判断MAC地址表项对应的核查位是否已经被置位;如果核查位已经被置位,则执行步骤604;如果核查位没有被置位,则执行步骤605。
具体地,当核查位已经被置位,则为1;如果核查位没有被置位,则为0。
步骤604,转发芯片1确认该MAC地址表项为垃圾表项,将该MAC地址表项删除。
步骤605,转发芯片1将MAC地址表项对应的核查位置位。
具体地,转发芯片1可以将MAC地址表项对应的核查位置为1。
步骤606,如果MAC地址表项没有被老化掉,转发芯片1根据扫描结果生成同步消息,并将该同步消息通过MAC地址消息接口发送到FPGA芯片。
步骤607,FPGA芯片将同步消息广播到其他MAC地址消息接口。
步骤608,转发芯片2接收并解析同步消息,在FDB表查找该同步消息 对应的MAC地址表项,如果查找到该同步消息对应的MAC地址表项,则执行步骤609;如果查找不到该同步消息对应的MAC地址表项,则执行步骤612。
具体地,转发芯片2从同步消息中提取FDB表查找Key,即VLAN和MAC地址,并通过Key查找同步消息对应的MAC地址表项。
步骤609,转发芯片2比较同步消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致,如果比较结果为一致,则执行步骤610;如果比较结果为不一致,则执行步骤611。
步骤610,转发芯片2核查MAC地址表项的核查位是否已经被置位,如果该核查位已经被置位为1,则将该核查位复位为0;如果该核查位没有被置位,则结束流程。
步骤611,转发芯片2查找到的MAC地址表项对应的出接口信息,将更新后的MAC地址表项的核查位置0。
步骤612,转发芯片2将同步消息对应的MAC地址表项添加到FDB表,并将该MAC地址表项对应的核查位置0。
本发明通过转发芯片间的信息交互,使网络设备能够自动、高效地维护FDB表,而不需要CPU参与维护。
本发明在上述实施方式中提供了MAC地址表项更新方法和应用场景,相应地,本发明还提供了应用上述MAC地址表项更新方法的装置。
如图8所示,为本发明中的一种网络设备结构示意图,包括第一转发芯片710和第二转发芯片720在内的多个转发芯片,以及可编程器件730,其中,转发芯片上开放MAC地址消息接口,所有转发芯片的MAC地址消息接口连接到可编程器件730,
第一转发芯片710,用于根据MAC地址表项更新结果或MAC地址表项扫描结果,生成MAC地址表项更新消息,并将该MAC地址表项更新消息通过自身的MAC地址消息接口发送到可编程器件730。
其中,MAC地址表项更新消息为MAC NA消息时,第一转发芯片710,还用于接收报文,在自身的FDB表查找所述报文的源MAC地址,当查找不到所 述报文的源MAC地址或者所述报文的出接口信息与查找到的源MAC地址对应的出接口信息不一致时,启动MAC地址学习。
MAC地址表项更新消息为MAC AA消息时,第一转发芯片710,还用于定时读取每条MAC地址表项的老化位,判断MAC地址表项是否满足老化条件;在MAC地址表项满足老化条件,从自身对应的FDB表中删除所述MAC地址表项。
MAC地址表项更新消息为同步消息时,第一转发芯片710,还用于扫描MAC地址表项,并获知所述MAC地址表项的出接口在本芯片且所述MAC地址表项没有被老化掉。
可编程器件730,与所有转发芯片连接,用于接收来自转发芯片的MAC地址表项更新消息,将该MAC地址表项更新消息广播到其他转发芯片的MAC地址消息接口。
本发明中的可编程器件730可以为FPGA芯片、NP(Network Processor,网络处理器)、GAL器件和CPLD等具有编程功能的元器件,本发明中的转发芯片均满足MAC地址跨芯片自动学习、老化等要求。
第二转发芯片720,用于接收并解析来自可编程器件730的MAC地址表项更新消息,在FDB表查找所述MAC地址表项更新消息对应的MAC地址表项,根据所述查找结果更新所述FDB表中的MAC地址表项。
具体地,MAC地址表项更新消息为MAC NA消息时,第二转发芯片720,具体用于接收并解析来自可编程器件730的MAC NA消息,在FDB表查找所述MAC NA消息对应的MAC地址表项;在查找不到所述MAC NA消息对应的MAC地址表项时,将所述MAC NA消息对应的MAC地址表项添加到所述FDB表中;在查找到所述MAC NA消息对应的MAC地址表项时,比较所述MAC NA消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致,如果比较结果为不一致,则将所述查找到的MAC表项对应的出接口信息更新为所述MAC NA消息对应的出接口信息。
MAC地址表项更新消息为MAC AA消息时,第二转发芯片720,具体用于接收并解析来自可编程器件730的MAC AA消息,在FDB表查找所述MAC AA 消息对应的MAC地址表项;在查找到所述MAC AA消息对应的MAC地址表项时,从所述FDB表中的清除所述查找到的MAC地址表项。
MAC地址表项更新消息为同步消息时,第二转发芯片720,具体用于接收并解析来自可编程器件730的同步消息,在FDB表查找所述同步消息对应的MAC地址表项;在查找不到所述同步消息对应的MAC地址表项时,将所述同步消息对应的MAC地址表项添加到所述FDB表中,并初始化所述MAC地址表项的核查位;在查找到所述同步消息对应的MAC地址表项时,比较所述同步消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致;在比较结果为不一致时,将所述查找到的MAC地址表项对应的出接口信息更新为所述同步消息对应的出接口信息,并将所述更新后的MAC地址表项对应的核查位复位;在比较结果为一致时,检查所述查找到的MAC地址表项对应的核查位是否已经被置位,如果所述核查位已经被置位,则将所述核查位复位。
本发明通过转发芯片间的信息交互,使网络设备能够自动、高效地维护FDB表,而不需要CPU参与维护。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以集成于一体,也可以分离部署;可 以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (8)
1.一种媒体访问控制MAC地址表项更新方法,应用于包括多个转发芯片的网络设备中,其特征在于,所述网络设备还包括可编程器件,所述转发芯片上开放MAC地址消息接口,所有转发芯片的MAC地址消息接口连接到所述可编程器件,所述方法包括以下步骤:
所述网络设备中的转发芯片根据MAC地址表项更新结果或MAC地址表项扫描结果,生成MAC地址表项更新消息,并将所述MAC地址表项更新消息通过自身的MAC地址消息接口发送到所述可编程器件,使所述可编程器件将所述MAC地址表项更新消息广播到其他转发芯片的MAC地址消息接口;
所述网络设备中的其他转发芯片接收并解析来自所述可编程器件的MAC地址表项更新消息,在转发数据库FDB表查找所述MAC地址表项更新消息对应的MAC地址表项,并根据所述查找结果更新所述FDB表中的MAC地址表项;
其中,当所述MAC地址表项更新消息为同步消息时,所述根据所述查找结果更新所述FDB表中的MAC地址表项,具体包括:
当所述网络设备中的其他转发芯片查找不到所述同步消息对应的MAC地址表项时,所述其他转发芯片将所述同步消息对应的MAC地址表项添加到所述FDB表中,并初始化所述MAC地址表项的核查位;
当所述网络设备中的其他转发芯片查找到所述同步消息对应的MAC地址表项时,所述其他转发芯片比较所述同步消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致;
如果比较结果为不一致,所述其他转发芯片将所述查找到的MAC地址表项对应的出接口信息更新为所述同步消息对应的出接口信息,并将所述更新后的MAC地址表项对应的核查位复位;
如果比较结果为一致,所述其他转发芯片检查所述查找到的MAC地址表项对应的核查位是否已经被置位,如果所述核查位已经被置位,则将所述核查位复位。
2.如权利要求1所述的方法,其特征在于,当所述MAC地址表项更新消 息为同步消息时,所述网络设备中的转发芯片生成MAC地址表项更新消息之前,还包括:
在MAC地址表项中定义核查位;
所述转发芯片扫描MAC地址表项,并获知所述MAC地址表项的出接口在本芯片且所述MAC地址表项没有被老化掉。
3.一种媒体访问控制MAC地址表项更新方法,应用于包括多个转发芯片的网络设备中,其特征在于,所述网络设备还包括可编程器件,所述转发芯片上开放MAC地址消息接口,所有转发芯片的MAC地址消息接口连接到所述可编程器件,所述方法包括以下步骤:
所述网络设备中的转发芯片根据MAC地址表项更新结果或MAC地址表项扫描结果,生成MAC地址表项更新消息,并将所述MAC地址表项更新消息通过自身的MAC地址消息接口发送到所述可编程器件,使所述可编程器件将所述MAC地址表项更新消息广播到其他转发芯片的MAC地址消息接口;
所述网络设备中的其他转发芯片接收并解析来自所述可编程器件的MAC地址表项更新消息,在转发数据库FDB表查找所述MAC地址表项更新消息对应的MAC地址表项,并根据所述查找结果更新所述FDB表中的MAC地址表项;
其中,当所述MAC地址表项更新消息为MAC新地址NA消息时,所述网络设备中的其他转发芯片根据查找结果更新FDB表中的MAC地址表项,具体包括:
当所述网络设备中的其他转发芯片查找不到所述MAC NA消息对应的MAC地址表项时,所述其他转发芯片将所述MACNA消息对应的MAC地址表项添加到所述FDB表中;
当所述网络设备中的其他转发芯片查找到所述MAC NA消息对应的MAC地址表项时,所述其他转发芯片比较所述MAC NA消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致,如果比较结果为不一致,则将所述查找到的MAC表项对应的出接口信息更新为所述MAC NA消息对应的出接口信息。
4.如权利要求3所述的方法,其特征在于,所述网络设备中的转发芯片生成MAC地址表项更新消息之前,还包括:
所述转发芯片接收到报文后,在自身的FDB表查找不到所述报文的源MAC地址或者所述报文的出接口信息与查找到的源MAC地址对应的出接口信息不一致时,
所述转发芯片启动MAC地址学习。
5.一种媒体访问控制MAC地址表项更新方法,应用于包括多个转发芯片的网络设备中,其特征在于,所述网络设备还包括可编程器件,所述转发芯片上开放MAC地址消息接口,所有转发芯片的MAC地址消息接口连接到所述可编程器件,所述方法包括以下步骤:
所述网络设备中的转发芯片在MAC地址表项中定义老化位,并定时读取每条MAC地址表项的老化位,判断MAC地址表项是否满足老化条件,如果MAC地址表项满足老化条件,则从自身对应的FDB表中删除所述MAC地址表项;
所述网络设备中的转发芯片根据MAC地址表项更新结果或MAC地址表项扫描结果,生成MAC地址表项更新消息,并将所述MAC地址表项更新消息通过自身的MAC地址消息接口发送到所述可编程器件,使所述可编程器件将所述MAC地址表项更新消息广播到其他转发芯片的MAC地址消息接口;
所述网络设备中的其他转发芯片接收并解析来自所述可编程器件的MAC地址表项更新消息,在转发数据库FDB表查找所述MAC地址表项更新消息对应的MAC地址表项,并根据所述查找结果更新所述FDB表中的MAC地址表项;
当所述MAC地址表项更新消息为MAC老化地址AA消息时,所述网络设备中的其他转发芯片根据查找结果更新FDB表中的MAC地址表项,具体包括:
当所述网络设备中的其他转发芯片查找到所述MAC AA消息对应的MAC地址表项时,所述其他转发芯片从所述FDB表中的清除所述查找到的MAC地址表项。
6.一种网络设备,包括多个转发芯片,其特征在于,还包括可编程器件, 所述转发芯片上开放MAC地址消息接口,所有转发芯片的MAC地址消息接口连接到所述可编程器件;
所述转发芯片,用于根据MAC地址表项更新结果或MAC地址表项扫描结果,生成MAC地址表项更新消息,并将所述MAC地址表项更新消息通过自身的MAC地址消息接口发送到所述可编程器件;
所述可编程器件,与所有转发芯片连接,用于接收来自所述转发芯片的MAC地址表项更新消息,将所述MAC地址表项更新消息广播到其他转发芯片的MAC地址消息接口;
所述其他转发芯片,用于接收并解析来自所述可编程器件的MAC地址表项更新消息,在转发数据库FDB表查找所述MAC地址表项更新消息对应的MAC地址表项,根据所述查找结果更新所述FDB表中的MAC地址表项;
其中,当所述MAC地址表项更新消息为同步消息时:
所述其他转发芯片,具体用于接收并解析来自所述可编程器件的同步消息,在FDB表查找所述同步消息对应的MAC地址表项;在查找不到所述同步消息对应的MAC地址表项时,将所述同步消息对应的MAC地址表项添加到所述FDB表中,并初始化所述MAC地址表项的核查位;在查找到所述同步消息对应的MAC地址表项时,比较所述同步消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致;在比较结果为不一致时,将所述查找到的MAC地址表项对应的出接口信息更新为所述同步消息对应的出接口信息,并将所述更新后的MAC地址表项对应的核查位复位;在比较结果为一致时,检查所述查找到的MAC地址表项对应的核查位是否已经被置位,如果所述核查位已经被置位,则将所述核查位复位;
所述转发芯片,还用于在生成MAC地址表项更新消息之前,在MAC地址表项中定义核查位,扫描MAC地址表项,并获知所述MAC地址表项的出接口在本芯片且所述MAC地址表项没有被老化掉。
7.一种网络设备,包括多个转发芯片,其特征在于,还包括可编程器件,所述转发芯片上开放MAC地址消息接口,所有转发芯片的MAC地址消息接口连接到所述可编程器件;
所述转发芯片,用于根据MAC地址表项更新结果或MAC地址表项扫描结果,生成MAC地址表项更新消息,并将所述MAC地址表项更新消息通过自身的MAC地址消息接口发送到所述可编程器件;
所述可编程器件,与所有转发芯片连接,用于接收来自所述转发芯片的MAC地址表项更新消息,将所述MAC地址表项更新消息广播到其他转发芯片的MAC地址消息接口;
所述其他转发芯片,用于接收并解析来自所述可编程器件的MAC地址表项更新消息,在转发数据库FDB表查找所述MAC地址表项更新消息对应的MAC地址表项,根据所述查找结果更新所述FDB表中的MAC地址表项;
其中,当所述MAC地址表项更新消息为MAC新地址NA消息时;
所述其他转发芯片,具体用于接收并解析来自所述可编程器件的MAC NA消息,在FDB表查找所述MAC NA消息对应的MAC地址表项;在查找不到所述MAC NA消息对应的MAC地址表项时,将所述MAC NA消息对应的MAC地址表项添加到所述FDB表中;在查找到所述MAC NA消息对应的MAC地址表项时,比较所述MAC NA消息对应的出接口信息与查找到的MAC地址表项对应的出接口信息是否一致,如果比较结果为不一致,则将所述查找到的MAC表项对应的出接口信息更新为所述MAC NA消息对应的出接口信息;
所述转发芯片,还用于在生成MAC地址表项更新消息之前,接收报文,在自身的FDB表查找所述报文的源MAC地址,当查找不到所述报文的源MAC地址或者所述报文的出接口信息与查找到的源MAC地址对应的出接口信息不一致时,启动MAC地址学习。
8.一种网络设备,包括多个转发芯片,其特征在于,还包括可编程器件,所述转发芯片上开放MAC地址消息接口,所有转发芯片的MAC地址消息接口连接到所述可编程器件;
所述转发芯片,用于根据MAC地址表项更新结果或MAC地址表项扫描结果,生成MAC地址表项更新消息,并将所述MAC地址表项更新消息通过自身的MAC地址消息接口发送到所述可编程器件;
所述可编程器件,与所有转发芯片连接,用于接收来自所述转发芯片的 MAC地址表项更新消息,将所述MAC地址表项更新消息广播到其他转发芯片的MAC地址消息接口;
所述其他转发芯片,用于接收并解析来自所述可编程器件的MAC地址表项更新消息,在转发数据库FDB表查找所述MAC地址表项更新消息对应的MAC地址表项,根据所述查找结果更新所述FDB表中的MAC地址表项;
其中,当所述MAC地址表项更新消息为MAC老化地址AA消息时:
所述其他转发芯片,具体用于接收并解析来自所述可编程器件的MAC AA消息,在FDB表查找所述MAC AA消息对应的MAC地址表项;在查找到所述MAC AA消息对应的MAC地址表项时,从所述FDB表中的清除所述查找到的MAC地址表项;
所述转发芯片,还用于在生成MAC地址表项更新消息之前,在MAC地址表项中定义老化位,并定时读取每条MAC地址表项的老化位,判断MAC地址表项是否满足老化条件;在MAC地址表项满足老化条件,从自身对应的FDB表中删除所述MAC地址表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101767240A CN101656676B (zh) | 2009-09-18 | 2009-09-18 | 一种媒体访问控制mac地址表项更新方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101767240A CN101656676B (zh) | 2009-09-18 | 2009-09-18 | 一种媒体访问控制mac地址表项更新方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101656676A CN101656676A (zh) | 2010-02-24 |
CN101656676B true CN101656676B (zh) | 2013-03-20 |
Family
ID=41710773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101767240A Active CN101656676B (zh) | 2009-09-18 | 2009-09-18 | 一种媒体访问控制mac地址表项更新方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101656676B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841473B (zh) * | 2010-04-09 | 2011-12-28 | 北京星网锐捷网络技术有限公司 | Mac地址表更新方法及装置 |
CN101969398A (zh) * | 2010-09-17 | 2011-02-09 | 中兴通讯股份有限公司 | Mac地址的老化方法及*** |
CN102209043B (zh) * | 2011-07-22 | 2015-09-30 | 杭州华三通信技术有限公司 | 一种媒质访问控制地址表项更新方法和网络设备 |
CN102404215B (zh) * | 2011-11-21 | 2014-06-04 | 北京星网锐捷网络技术有限公司 | 过滤数据库表项同步方法、装置及网络设备 |
CN102932227B (zh) * | 2012-10-29 | 2015-07-01 | 烽火通信科技股份有限公司 | 一种实现vlan网桥桥接技术的方法 |
WO2014101066A1 (zh) * | 2012-12-27 | 2014-07-03 | 华为技术有限公司 | 介质访问控制信息的同步方法和装置 |
CN103209130A (zh) * | 2013-04-22 | 2013-07-17 | 杭州华三通信技术有限公司 | 一种同步mac地址表项的方法及转发芯片 |
CN104038566B (zh) * | 2014-06-12 | 2017-11-03 | 福建星网锐捷网络有限公司 | 一种虚拟交换设备地址学习的方法、装置及*** |
CN104410575A (zh) * | 2014-12-05 | 2015-03-11 | 盛科网络(苏州)有限公司 | 多芯片堆叠模式下mac地址硬件学习装置及方法 |
CN104601470B (zh) * | 2015-01-21 | 2018-09-04 | 新华三技术有限公司 | 一种流表处理方法及装置 |
CN105721315B (zh) * | 2016-04-06 | 2018-11-23 | 烽火通信科技股份有限公司 | 一种集中式mac地址学习的控制方法 |
CN106507228B (zh) * | 2016-11-25 | 2019-08-16 | 成都广达新网科技股份有限公司 | 一种olt pon业务卡实现fdb软表更新的方法 |
CN107171952B (zh) * | 2017-04-06 | 2019-10-11 | 烽火通信科技股份有限公司 | 一种在vpls中实现防环的方法及设备 |
CN108011958B (zh) * | 2017-12-06 | 2021-05-07 | 新华三技术有限公司 | 网络设备及mac地址表同步方法 |
CN109274592B (zh) * | 2018-11-22 | 2021-03-09 | 新华三技术有限公司 | Mac地址表项处理方法、装置以及计算机可读介质 |
CN109905495A (zh) * | 2019-02-22 | 2019-06-18 | 盛科网络(苏州)有限公司 | 一种降低cpu负载的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217492A (zh) * | 2008-01-04 | 2008-07-09 | 福建星网锐捷网络有限公司 | 地址信息处理方法和装置及*** |
CN101296186A (zh) * | 2008-06-13 | 2008-10-29 | 杭州华三通信技术有限公司 | 一种路由交换设备、方法和交换线卡板 |
CN101488862A (zh) * | 2009-02-23 | 2009-07-22 | 中兴通讯股份有限公司 | 分布式以太网交换机及其内部的mac地址维护方法 |
-
2009
- 2009-09-18 CN CN2009101767240A patent/CN101656676B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217492A (zh) * | 2008-01-04 | 2008-07-09 | 福建星网锐捷网络有限公司 | 地址信息处理方法和装置及*** |
CN101296186A (zh) * | 2008-06-13 | 2008-10-29 | 杭州华三通信技术有限公司 | 一种路由交换设备、方法和交换线卡板 |
CN101488862A (zh) * | 2009-02-23 | 2009-07-22 | 中兴通讯股份有限公司 | 分布式以太网交换机及其内部的mac地址维护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101656676A (zh) | 2010-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101656676B (zh) | 一种媒体访问控制mac地址表项更新方法和装置 | |
US8611361B2 (en) | Switching hub, line card and frame relay method | |
CN108173691B (zh) | 一种跨设备聚合的方法及装置 | |
CN1855873B (zh) | 用于实现高可用性虚拟局域网的方法和*** | |
CN101119324B (zh) | 网络地址转换属性自适应方法及装置 | |
CN101820435B (zh) | 分布式网络处理***的mac地址表项信息同步方法及装置 | |
CN108199967B (zh) | 路由处理方法及装置 | |
JP2008288880A (ja) | ノード、通信方法およびノード用プログラム | |
US20130272112A1 (en) | Network switch | |
CN104704779A (zh) | 用于加速软件定义网络中的转发的方法和设备 | |
CN101820397A (zh) | 虚拟专用局域网网络收敛的方法及设备 | |
CN101729425B (zh) | Vrrp组网中流量发送的方法及设备 | |
CN105721315A (zh) | 一种集中式mac地址学习的控制方法 | |
CN102711234A (zh) | 主备vrrp设备间同步arp表的方法及vrrp设备 | |
CN108540386B (zh) | 一种防止业务流中断方法及装置 | |
CN103167464A (zh) | 触发更新移动节点映射信息的方法、ms和mn | |
CN102946356A (zh) | 一种基于cb-pe网络的组播报文传输方法和设备 | |
CN110636393B (zh) | 一种olt设备双主控1+1并发工作方法及*** | |
CN102209043B (zh) | 一种媒质访问控制地址表项更新方法和网络设备 | |
US8964526B2 (en) | Method and device for classifying media access control address based on ethernet ring network | |
CN105306368A (zh) | 一种数据报文的传输方法和装置 | |
CN101595689A (zh) | 在多机架网络接入环境中改变用户信息 | |
CN106656714A (zh) | 一种基于EtherCAT总线的通信协议方法及*** | |
CN105207950A (zh) | 一种基于sdn技术的通信数据保护方法 | |
CN101442465A (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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |