一种媒体访问控制mac地址表项学习方法和装置的制作方法

文档序号:7713318阅读:110来源:国知局
专利名称:一种媒体访问控制mac地址表项学习方法和装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种媒体访问控制地址表项学习方法 和装置。
背景技术
目前,主流网络设备的架构一般为交换网框式架构,如图1所示,该网 络设备包含多个转发芯片,每个转发芯片上携带32K-1M的MAC (Media Access Control,媒体访问控制)地址表项。由于网络设备中的MAC地址表 项容量非常大,对MAC地址学习和同步速度提出了更高的要求,如果MAC 地址学习和同步速度太慢,则MAC地址广播的时间会比较长,甚至会出现长 时间转发出错的现象。另外,为了转发报文的方便,会在每个转发芯片上保 存全局的VLAN ( Virtual Local Area Network,虚拟局域网)下的MAC地址 信息,而很多MAC地址的硬件表项根本起不到作用,却浪费了硬件资源。
现有技术中,MAC地址学习技术分为两种方式,即转发芯片内自动学习、 转发芯片间CPU ( Central Processing Unit,中央处理单元)干预同步,以及转 发芯片内和芯片间都由CPU千预学习。其中,在转发芯片内自动学习、芯片 间CPU干预同步的学习方式中,单个转发芯片内自动学习后,产生一个新地 址消息,并将该地址信息发送给CPU, CPU通过控制通道将该地址消息传输 到同一网络设备上的所有其他物理槽位的CPU,其他物理槽位上的CPU解析 该地址消息,然后将该地址信息中的MAC地址表项写入本槽位上的所有转发 芯片的FDB ( Forward Database,转发数据库)表。
在转发芯片内和芯片间都由CPU干预的学习方式中,转发芯片上发现有 新MAC地址产生,则产生一个新地址消息,并将该地址消息发送给CPU, CPU先将该地址消息中的MAC地址表项写入本槽位上所有转发芯片的FDB 表,再通过控制通道将该地址消息传输到同一网络设备上的所有其他物理槽
5位的CPU,其他物理槽位上的CPU解析该地址消息,然后将该地址信息中的 MAC地址表项写入本槽位上的所有转发芯片的FDB表。所有转发芯片的 MAC地址表项都是通过CPU维护更新的,在CPU无法知道流量的情况下, 为了芯片上的流量的广播,可以在存在VLAN的转发芯片上都保存有整框的 所有VLAN的Mac地址, 一旦有单播流量进入转发芯片,直接对该单播流量 进行转发,减少交换网的负担。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷 对于转发芯片内自动学习、芯片间CPU干预同步的学习方式,由于同步 需要软件干预,所以同步速度比较慢,导致广播时间长,且在端口切换过程 中丟包时间长;同步时占用控制通道带宽,容易引起控制通道问题;软件设 计比较复杂,在框式设备上应用会出现很多MAC地址学习的时序问题,包括 存在不该有的MAC地址,即在每个转发芯片内存中存在大量的MAC地址垃 圾表项,以及应该有的MAC地址却不存在。
慢,广播时间长,且本芯片学习速度慢。

发明内容
本发明提供了一种MAC地址表项学习方法和装置,用于自动、高效地维 护转发芯片中的FDB表。
本发明提供了一种媒体访问控制MAC地址表项学习方法,应用于包括转 发芯片和中央处理单元CPU的网络设备中,所述方法包括以下步骤
所述转发芯片接收单播报文,记录所述单播报文的源MAC地址和入端口信
息;
所述转发芯片查找转发数据库FDB表中是否存在所述单播报文的源MAC 地址,如果所述FDB表中不存在所述单播报文的源MAC地址,则将所述单播 报文的源MAC地址和入端口信息添加到所述FDB表中,所迷单播报文包括来 自业务端口的上行单播报文和来自交换网的下行单播报文。
优选地,所述转发芯片查找FDB表中是否存在单播报文的源MAC地址之后,还包括
如果所述FDB表中存在所述单播报文的源MAC地址,所述转发芯片判断 所述FDB表中所述源MAC地址对应的出端口信息和所述单播报文的出端口信 息是否一致,如果判断结果为不一致,所述转发芯片将所述单4番才艮文的源MAC 地址和出端口信息更新到所述FDB表中。
优选地,所述的方法,还包括
所述转发芯片查找所述FDB表中是否存在所述单播报文的目的MAC地址, 如果所述FDB表中不存在所述单播报文的目的MAC地址,则将所述单播报文 发送到虛拟局域网VLAN的所有出端口。
优选地,所述单播报文为上行单播冲良文时,所述转发芯片查找到所述FDB 表中不存在所述单播报文的目的MAC地址之后,还包括
所述转发芯片向所述CPU发送目的地址DA消息,所述CPU分析接收到的 DA消息,查找所述网络设备的其他转发芯片中是否存在所述上行单播报文的目 的MAC地址对应的出端口信息;
如果存在,所述CPU将所述上行单播报文的目的MAC地址和出端口信息 添加到所述转发芯片的FDB表中,使所述转发芯片停止向所述CPU发送DA消 息,并根据所述CPU添加的目的MAC地址和出端口信息,将对应的上行单播 报文进行单播发送;
如果不存在,所述CPU向所述转发芯片下发伪MAC地址表项,使所述转 发芯片停止向所述CPU发送DA消息,并根据所述CPU下发的伪MAC地址表 项,将对应的上行单播报文进行单播发送。
优选地,所述的方法,还包括
所述转发芯片对自身保存的MAC地址表项进行老化,并向所述CPU发送 老化地址消息。
本发明提供了一种网络设备,包括转发芯片和CPU,所述转发芯片包括 ^J^模块,用于接收单播报文;
记录模块,与所述收发模块连接,用于记录所述收发模块接收到的单播报 文的源MAC地址和入端口信息;
7存储模块,用于存储FDB表;
查找;漠块,与所述记录模块和所述存储模块连接,用于查找所述存储模块
存储的FDB表中是否存在所述记录模块记录的单播4艮文的源MAC地址;
添加模块,与所述查找模块和所述存储模块连接,用于在所述查找才莫块查 找到所述FDB表中不存在所述单播报文的源MAC地址时,将所述单播报文的 源MAC地址和入端口信息添加到所述存储模块存储的FDB表中,所述单播报 文包括来自业务端口的上行单播报文和来自交换网的下行单纟番才艮文。 优选地,所述转发芯片还包括
判断模块,与查找模块连接,用于在所述查找冲莫块查找到所述FDB表中存 在所述单播报文的源MAC地址时,判断所述FDB表中所述源MAC地址对应 的出端口信息和所述单播"t良文的出端口信息是否一致;
所述添加模块,与所述判断模块连接,还用于在所述判断模块的判断结果 为不一致时,将所述单播报文的源MAC地址和出端口信息更新到所述FDB表 中。
优选地,所述查找模块,还用于查找所述FDB表中是否存在所述单播报文 的目的MAC i也址;
所述收发模块,与所述查找模块连接,还用于在所述查找模块查找到所述 FDB表中不存在所述单播报文的目的MAC地址时,将所述单播报文发送到 VLAN的所有出端口。
优选地,所述单播报文为上行单播报文时,
所述收发模块,还用于在所述查找模块查找到所述FDB表中不存在所述单 播报文的目的MAC地址时,向所述CPU发送DA消息,并接收来自所述CPU 的出端口信息或伪MAC地址表项,根据所述出端口信息或伪MAC地址表项发 送所述上行单播报文,并停止向所述CPU发送DA消息;
所述CPU,还用于接收并分析来自所述转发芯片的DA消息,查找所述网 络设备的其他转发芯片中是否存在所述上行单播报文的目的MAC地址对应的 出端口信息;如果存在,将所述上行单播报文的目的MAC地址和出端口信息添 加到所述转发芯片的FDB表中;如果不存在,向所述转发芯片下发伪MAC地
8址表项。
优选地,所述转发芯片,还包括
老化模块,与所述存储模块连接,用于对所述存储模块存储的MAC地址表 项进行老化;
所述收发模块,与所述老化模块连接,还用于向所述CPU发送老化地址消

与现有技术相比,本发明具有以下优点本发明通过单播报文的广播, 能够自动、高效地维护FDB表,包括多个转发芯片之间的自动学习和老化, 而不需要借助CPU的干预,能够最大化地利用硬件资源。


为了更清楚地说明本发明或现有技术中的技术方案,下面将对本发明或 现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中 的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为网络设备的架构示意图2为本发明中的一种MAC地址表项学习方法流程图3为本发明应用场景中的MAC地址表项学习系统结构示意图4为本发明应用场景中通过上行单播^J:学习MAC地址表项的流程
图5为本发明应用场景中通过下行单播"^良文学习MAC地址表项的流程
图6为本发明应用场景中的一种网络设备结构示意图。
具体实施例方式
本发明提供的技术方案中,其核心思想为在不影响交换网的前提下,利 用交换网的未知单播报文进行广播的特点,实现MAC地址表项的跨芯片、高 效率自动学习。下面将结合本发明中的附图,对本发明的技术方案进行清楚、完整地描 述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。 基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下 所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,为本发明中的一种MAC地址表项学习方法流程图,应用于 包括转发芯片和CPU的网络设备中,该方法包括以下步骤
步骤201,转发芯片接收单播报文,记录单播报文的源MAC地址和入端口々息。
其中,单播报文包括来自业务端口的上行单播报文和来自交换网的下行单 播报文。本发明中的转发芯片可以为FPGA (Field-ProgrammableGateArray,现 场可编程门阵列),可以通过编程对2层的未知单播可以做到上行、下行的MAC 地址学习;而现有的转发芯片对于下行的MAC地址学习功能比较欠缺。
步骤202,转发芯片查找FDB表中是否存在单播报文的源MAC地址,如 果FDB表中不存在所述单播报文的源MAC地址,则执行步骤203;如果存在 则结束流程。
具体地,如果FDB表中存在单播报文的源MAC地址,转发芯片判断FDB 表中源MAC地址对应的出端口信息和单播报文的出端口信息是否一致,如果判 断结果为不一致,即转发芯片的端口出现迁移现象,转发芯片将单播报文的源 MAC地址和出端口信息更新到FDB表中。
步骤203,转发芯片将单播报文的源MAC地址和入端口信息添加到FDB 表中。
其中,转发芯片中还保存一份硬件计数表和VLAN、 PORT (端口 )限制表, 上it4项用于控制和统计转发芯片对MAC地址表项的学习,便于CPU的查询 使用。
转发芯片还可以查找FDB表中是否存在单4番报文的目的MAC地址,如果 FDB表中不存在该单播报文的目的MAC地址,则将该单播报文发送到VLAN 的所有出端口。
当单播报文为上行单播报文时,转发芯片查找到FDB表中不存在单播报文的目的MAC地址后,还可以向CPU发送DA (Destination Address,目的地址) 消息;随后,接收来自CPU的出端口信息或伪MAC地址表项,根据出端口信 息或伪MAC地址表项发送上述上行单4番净良文,并停止向CPU发送DA消息。
(AgedAddress,老化地址)消息,以便于后续管理。具体地,各个芯片内存自 身记录并管理所有MAC地址表项,包括自身端口学习的MAC地址和通过其他 芯片学习的MAC地址,将MAC地址表项统一配置成可老化的MAC地址,老 化时间可配置,且整框转发芯片的老化时间一致。而在现有技术中,对于跨芯 片的MAC地址不做老化,需要接收来自最先学习该MAC地址的转发芯片的老 化消息。
本发明中的转发芯片能够自动、高效地维护FDB表,包括多个转发芯片 之间的自动学习和老化,而不需要借助CPU的干预,能够最大化地利用硬件 资源。
如图3所示,为本发明应用场景中的MAC地址表项学习系统结构示意图, 包括交换网以及与交换网连接的转发芯片0、转发芯片l和转发芯片2,上述转 发芯片均与各自的CPU连接。各转发芯片既可以接收来自业务端口的上行单播 报文,也可以接收来自交换网的下行单播报文。
以下结合上述应用场景,对本发明中的MAC地址表项学习方法进行详 细、具体的描述。
如图4所示,为本发明应用场景中通过上行单播才艮文学习MAC地址表项 的流程图,具体包括以下步骤
步骤401,转发芯片O接收来自业务端口的上行单播报文,记录该上行单 播报文的源MAC地址和入端口信息。
步骤402,转发芯片0查找FDB表中是否存在上行单播报文的源MAC地 址,如果FDB表中不存在该上行单播报文的源MAC地址,则执行步骤403; 如果存在,则执行步骤404。
步骤403,转发芯片0将上行单播报文的源MAC地址和入端口信息添加到FDB表中,向CPU发送AU (AddressUpdate,地址更新)消息,并向交换网广 播包含上行单播报文的源MAC地址的报文。
其中,转发芯片0需要执行以下保护功能,对于同一份的流量,在一定时 间内只送一份AU消息给CPU,防止向CPU的上送量过大。
步骤404,转发芯片0查找FDB表中是否存在上行单播报文的目的MAC 地址,如果FDB表中不存在该上行单播报文的目的MAC地址,则执行步骤406; 如果存在,则执行步骤405。
步骤405,转发芯片O根据FDB表,将上行单播报文发送到出端口。
步骤406,转发芯片O将上行单播报文发送到VLAN的所有出端口,并 向CPU发送DA消息。
具体地,由于转发芯片0没有上行单播报文的目的MAC地址,会一直处 于广播状态,网络设备中的其他转发芯片均会接收到来自交换网的单播报文, 而只有保存有该单播报文的目的MAC地址的转发芯片才能将该单播报文以 单播方式发送出去。因此,当存在上行单播报文时,为了控制没有保存该上 行单播报文的目的MAC地址的转发芯片对该上行单播报文的广播,需要由接 收到该上行单播报文的转发芯片向对应的CPU发送DA消息,由CPU根据该 DA消息指示转发芯片处理上述上行单播报文。
另外,转发芯片0还需要执行以下保护功能,对于同一份的流量,在一 定时间内只送一份DA消息给CPU,防止向CPU的上送量过大。
步骤407, CPU分析接收到的DA消息,查找网络设备的其他转发芯片中 是否存在上行单播报文的目的MAC地址对应的出端口信息,如果存在,则执 行步骤408;如果不存在,则执行步骤410。
具体地,CPU中可以保存一份软件FDB表,该软件FDB表用于查找MAC 地址表项,并根据查找结果判断上行单播报文是否为单向流量;如果CPU查 找硬件FDB表方便且速率很快,也可以不保存软件FDB表。
步骤408, CPU将上行单播报文的目的MAC地址和出端口信息添加到转 发芯片0的FDB表中,并记录上述信息。
另外,如果CPU发现其他芯片存在上述上行单播报文的目的MAC地址对应的AU消息,则表示该上行单播报文的出端口信息发生了迁移,相应地,
CPU修改转发芯片0的FDB表项中的出端口信息。
步骤409,转发芯片0停止向CPU发送DA消息,并根据CPU添加的目 的MAC地址和出端口信息,将对应的上行单播报文进行单播发送。
步骤410, CPU向转发芯片O下发伪MAC地址表项,并记录该伪MAC :地址表项。
步骤411,转发芯片0接收来自CPU的伪MAC地址表项,停止向CPU 发送DA消息,并根据CPU下发的伪MAC地址表项,将对应的上行单播报 文进行单播发送。
其中,伪MAC地址表项为网络设备中不存在的MAC地址表项,用于使
处于广播状态的转发芯片停止广播报文和发送DA消息。
需要说明的是,本发明方法可以根据实际需要对各个步骤顺序进行调整。 本发明中的转发芯片能够自动、高效地维护FDB表,包括多个转发芯片
之间的自动学习和老化,能够最大化地利用硬件资源。
如图5所示,为本发明应用场景中通过下行单播报文学习MAC地址表项 的流程图,具体包括以下步骤
步骤501,转发芯片O接收来自交换网的下行单播"R文,记录该下行单播 报文的源MAC地址和入端口信息。
步骤502,转发芯片0查找FDB表中是否存在下行单播报文的源MAC 地址,如果FDB表中不存在该下行单播报文的源MAC地址,则执行步骤503; 如果存在,则执行步骤504。
步骤503,转发芯片0将下行单播报文的源MAC地址和入端口信息添加 到FDB表中,向CPU发送AU消息。
步骤504,转发芯片0查找FDB表中是否存在下行单播报文的目的MAC 地址,如果FDB表中不存在该下行单播报文的目的MAC地址,则执行步骤 506;如果存在,则执行步骤505。
步骤505,转发芯片O根据FDB表,将下行单播报文发送到出端口。
13步骤506,转发芯片0将下行单播报文发送到VLAN的所有出端口 。 需要说明的是,本发明方法可以根据实际需要对各个步骤顺序进行调整。 本发明中的转发芯片能够自动、高效地维护FDB表,包括多个转发芯片
之间的自动学习和老化,而不需要借助CPU的干预,能够最大化地利用硬件资源。
本发明在上述实施方式中提供了 MAC地址表项学习方法和多种应用场
如图6所示,如本发明应用场景中的一种网络设备结构示意图,包括转 发芯片610和CPU620,该转发芯片610包括收发模块611、记录模块612、 存储模块613、查找模块614、判断模块615、添加模块616和老化模块617, 其中,
收发模块611 ,用于接收单播报文。
上述收发模块611,与查找模块614连接,还用于在查找模块614查找到 FDB表中不存在单播报文的目的MAC地址时,将该单播报文发送到VLAN 的所有出端口。
上述单播报文为上行单播报文时,上述收发模块611,还用于在查找模块 614查找到FDB表中不存在单播报文的目的MAC地址时,向CPU 620发送 DA消息,并接收来自CPU620的出端口信息或伪MAC地址表项,根据该出 端口信息或伪MAC地址表项发送上行单播报文,并停止向CPU 620发送DA 消息。
具体地,当转发芯片610没有上行单播报文的目的MAC地址时,会一直 处于广播状态,网络设备中的其他转发芯片均会接收到来自交换网的单播报 文,而只有保存有该单播报文的目的MAC地址的转发芯片才能将该单播报文 以单播方式发送出去。因此,当存在上行单播报文时,为了控制没有保存该 上行单播报文的目的MAC地址的转发芯片对该上行单播报文的广播,需要由 接收到该上行单播报文的转发芯片610向对应的CPU 620发送DA消息,由 CPU 620根据该DA消息指示转发芯片610处理上述上行单播报文。
14另外,转发芯片610还需要执行以下保护功能,对于同一份的流量,在一定时间内只送一份DA消息给CPU620,防止向CPU 620的上送量过大。
所述CPU 620,还用于接收并分析来自转发芯片610的DA消息,查找所述网络设备的其他转发芯片中是否存在所述上行单播报文的目的MAC地址对应的出端口信息;如果存在,将所述上行单播报文的目的MAC地址和出端口信息添加到转发芯片610的FDB表中;如果不存在,向转发芯片610下发伪MAC ;也址表项。
具体地,CPU 620中可以保存一份软件FDB表,该软件FDB表用于查找MAC地址表项,并根据查找结果判断上行单播报文是否为单向流量;如果CPU 620查找硬件FDB表方便且速率很快,也可以不保存软件FDB表。
处于广播状态的转发芯片停止广播4艮文和发送DA消息。
上述收发模块611,与老化模块617连接,还用于向CPU发送老化地址消息。
记录模块612,与收发模块611连接,用于记录收发模块611接收到的单播报文的源MAC地址和入端口信息。存储模块613,用于存储FDB表。
查找模块614,与记录模块612和存储模块613连接,用于查找存储模块613存储的FDB表中是否存在记录模块612记录的单播l艮文的源MAC地址。
上述查找模块614,还用于查找FDB表中是否存在单播报文的目的MAC地址。
判断模块615,与查找模块614连接,用于在查找模块614查找到FDB表中存在单播报文的源MAC地址时,判断FDB表中源MAC地址对应的出端口信息和单播报文的出端口信息是否一致。
添加模块616,与查找模块614和存储模块613连接,用于在查找模块614查找到FDB表中不存在单播报文的源MAC地址时,将该单播报文的源MAC地址和入端口信息添加到存储模块613存储的FDB表中,该单播报文包括来自业务端口的上行单播报文和来自交换网的下行单播报文。上述添加模块616,与判断模块615连接,还用于在判断模块615的判断结果为不一致时,将单播报文的源MAC地址和出端口信息更新到FDB表中。
老化模块617,与存储模块613连接,用于对存储模块613存储的MAC地址表项进行老化。
本发明中的转发芯片能够自动、高效地维护FDB表,包括多个转发芯片之间的自动学习和老化,而不需要借助CPU的干预,能够最大化地利用硬件资源。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以集成于一体,也可以分离部署;可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1、一种媒体访问控制MAC地址表项学习方法,应用于包括转发芯片和中央处理单元CPU的网络设备中,其特征在于,所述方法包括以下步骤所述转发芯片接收单播报文,记录所述单播报文的源MAC地址和入端口信息;所述转发芯片查找转发数据库FDB表中是否存在所述单播报文的源MAC地址,如果所述FDB表中不存在所述单播报文的源MAC地址,则将所述单播报文的源MAC地址和入端口信息添加到所述FDB表中,所述单播报文包括来自业务端口的上行单播报文和来自交换网的下行单播报文。
2、 如权利要求1所述的方法,其特征在于,所述转发芯片查找FDB表中 是否存在单播报文的源MAC地址之后,还包括如果所述FDB表中存在所述单播报文的源MAC地址,所述转发芯片判断 所述FDB表中所述源MAC地址对应的出端口信息和所述单播报文的出端口信 息是否一致,如果判断结果为不一致,所述转发芯片将所述单4番报文的源MAC 地址和出端口信息更新到所述FDB表中。
3、 如权利要求l所述的方法,其特征在于,还包括所述转发芯片查找所述FDB表中是否存在所述单播才艮文的目的MAC地址, 如果所述FDB表中不存在所迷单播报文的目的MAC地址,则将所述单播报文 发送到虚拟局域网VLAN的所有出端口 。
4、 如权利要求1或3所述的方法,其特征在于,所述单播报文为上行单播 报文时,所述转发芯片查找到所述FDB表中不存在所述单播报文的目的MAC 地址之后,还包括所述转发芯片向所述CPU发送目的地址DA消息,所述CPU分析接收到的 DA消息,查找所述网络设备的其他转发芯片中是否存在所述上行单播报文的目 的MAC地址对应的出端口信息;如果存在,所述CPU将所述上行单播才艮文的目的MAC地址和出端口信息 添加到所述转发芯片的FDB表中,使所述转发芯片停止向所述CPU发送DA消 息,并根据所述CPU添加的目的MAC地址和出端口信息,将对应的上行单播报文进行单播发送;如果不存在,所述CPU向所述转发芯片下发伪MAC地址表项,使所述转 发芯片停止向所述CPU发送DA消息,并根据所述CPU下发的伪MAC地址表 项,将对应的上行单播报文进行单播发送。
5、 如权利要求l所述的方法,其特征在于,还包括 所述转发芯片对自身保存的MAC地址表项进行老化,并向所述CPU发送老化地址消息。
6、 一种网络设备,包括转发芯片和CPU,其特征在于,所述转发芯片包括 4嫂模块,用于接收单播报文;记录模块,与所述收发模块连接,用于记录所述收发模块接收到的单播报 文的源MAC地址和入端口信息; 存储模块,用于存储FDB表;查找模块,与所述记录模块和所述存储模块连接,用于查找所述存储模块 存储的FDB表中是否存在所述记录模块记录的单播报文的源MAC地址;添加模块,与所述查找模块和所述存储模块连接,用于在所述查找模块查 找到所述FDB表中不存在所述单播报文的源MAC地址时,将所述单播才艮文的 源MAC地址和入端口信息添加到所述存储模块存储的FDB表中,所述单播报 文包括来自业务端口的上行单播报文和来自交换网的下行单播报文。
7、 如权利要求6所述网络设备,其特征在于,所述转发芯片还包括 判断模块,与查找模块连接,用于在所述查找模块查找到所述FDB表中存在所述单播报文的源MAC地址时,判断所述FDB表中所述源MAC地址对应 的出端口信息和所述单播报文的出端口信息是否一致;所述添加模块,与所述判断模块连接,还用于在所述判断模块的判断结果 为不一致时,将所述单播报文的源MAC地址和出端口信息更新到所述FDB表 中。
8、 如权利要求6所述网络设备,其特征在于,所述查找模块,还用于查找所述FDB表中是否存在所述单播报文的目的MAC地址;所述收发模块,与所述查找模块连接,还用于在所述查找模块查找到所述FDB表中不存在所述单4番才艮文的目的MAC地址时,将所述单播^^艮文发送到 VLAN的所有出端口。
9、 如权利要求8所述网络设备,其特征在于,所述单播才艮文为上行单播报 文时,所述收发模块,还用于在所述查找模块查找到所述FDB表中不存在所述单 播报文的目的MAC地址时,向所述CPU发送DA消息,并接收来自所述CPU 的出端口信息或伪MAC地址表项,根据所述出端口信息或伪MAC地址表项发 送所述上行单播报文,并停止向所述CPU发送DA消息;所述CPU,还用于接收并分析来自所述转发芯片的DA消息,查找所述网 络设备的其他转发芯片中是否存在所述上行单播报文的目的MAC地址对应的 出端口信息;如果存在,将所述上行单播报文的目的MAC地址和出端口信息添 加到所述转发芯片的FDB表中;如果不存在,向所述转发芯片下发伪MAC地 址表项。
10、 如权利要求6所述网络设备,其特征在于,所述转发芯片还包括 老化模块,与所述存储模块连接,用于对所述存储模块存储的MAC地址表项进行老化;所述4嫂;漢块,与所述老化模块连接,还用于向所述CPU发送老化地址消白
全文摘要
本发明公开了一种MAC地址表项学习方法,应用于包括转发芯片和CPU的网络设备中,所述方法包括以下步骤所述转发芯片接收单播报文,记录所述单播报文的源MAC地址和入端口信息;所述转发芯片查找转发数据库FDB表中是否存在所述单播报文的源MAC地址,如果所述FDB表中不存在所述单播报文的源MAC地址,则将所述单播报文的源MAC地址和入端口信息添加到所述FDB表中,所述单播报文包括来自业务端口的上行单播报文和来自交换网的下行单播报文。本发明能够自动、高效地维护转发芯片中的FDB表。本发明同样公开了一种应用上述方法的装置。
文档编号H04L12/56GK101651627SQ20091017422
公开日2010年2月17日 申请日期2009年9月23日 优先权日2009年9月23日
发明者帆 方 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1