书签 分享 收藏 举报 版权申诉 / 21

一种媒体访问控制MAC地址表项学习方法和装置.pdf

  • 上传人:54
  • 文档编号:1114126
  • 上传时间:2018-03-31
  • 格式:PDF
  • 页数:21
  • 大小:1.03MB
  • 摘要
    申请专利号:

    CN200910174222.4

    申请日:

    2009.09.23

    公开号:

    CN101651627A

    公开日:

    2010.02.17

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    专利权人的姓名或者名称、地址的变更IPC(主分类):H04L 12/741变更事项:专利权人变更前:杭州华三通信技术有限公司变更后:新华三技术有限公司变更事项:地址变更前:310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地变更后:310052 浙江省杭州市滨江区长河路466号|||授权|||实质审查的生效IPC(主分类):H04L 12/56申请日:20090923|||公开

    IPC分类号:

    H04L12/56

    主分类号:

    H04L12/56

    申请人:

    杭州华三通信技术有限公司

    发明人:

    方 帆

    地址:

    310053浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地

    优先权:

    专利代理机构:

    北京鑫媛睿博知识产权代理有限公司

    代理人:

    龚家骅

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开了一种MAC地址表项学习方法,应用于包括转发芯片和CPU的网络设备中,所述方法包括以下步骤:所述转发芯片接收单播报文,记录所述单播报文的源MAC地址和入端口信息;所述转发芯片查找转发数据库FDB表中是否存在所述单播报文的源MAC地址,如果所述FDB表中不存在所述单播报文的源MAC地址,则将所述单播报文的源MAC地址和入端口信息添加到所述FDB表中,所述单播报文包括来自业务端口的上行单播报文和来自交换网的下行单播报文。本发明能够自动、高效地维护转发芯片中的FDB表。本发明同样公开了一

    权利要求书

    1: 一种媒体访问控制MAC地址表项学习方法,应用于包括转发芯片和中央处理单元CPU的网络设备中,其特征在于,所述方法包括以下步骤: 所述转发芯片接收单播报文,记录所述单播报文的源MAC地址和入端口信息; 所述转发芯片查找转发数据库FDB表中是否存在所述单播报文的源MAC地址,如果所述FDB表中不存在所述单播报文的源MAC地址,则将所述单播报文的源MAC地址和入端口信息添加到所述FDB表中,所述单播报文包括来自业务端口的上行单播报文和来自交换网的下行单播报文; 当所述单播报文为上行单播报文时,所述转发芯片查找所述FDB表中是否存在所述上行单播报文的目的MAC地址;如果所述FDB表中不存在所述上行单播报文的目的MAC地址,则向所述CPU发送目的地址DA消息,所述CPU分析接收到的DA消息,查找所述网络设备的其他转发芯片中是否存在所述上行单播报文的目的MAC地址对应的出端口信息;如果存在,所述CPU将所述上行单播报文的目的MAC地址和出端口信息添加到所述转发芯片的FDB表中,使所述转发芯片停止向所述CPU发送DA消息,并根据所述CPU添加的目的MAC地址和出端口信息,将对应的上行单播报文进行单播发送。
    2: 如权利要求1所述的方法,其特征在于,所述转发芯片查找FDB表中是否存在单播报文的源MAC地址之后,还包括: 如果所述FDB表中存在所述单播报文的源MAC地址,所述转发芯片判断所述FDB表中所述源MAC地址对应的端口信息和所述单播报文的入端口信息是否一致,如果判断结果为不一致,所述转发芯片将所述单播报文的源MAC地址和所述单播报文的入端口信息更新到所述FDB表中。
    3: 如权利要求1所述的方法,其特征在于,当所述单播报文为下行单播报文时,所述转发芯片查找所述FDB表中是否存在所述下行单播报文的目的MAC地址,如果所述FDB表中不存在所述下行单播报文的目的MAC地址,则将所述下行单播报文发送到虚拟局域网VLAN的所有出端口。
    4: 如权利要求1所述的方法,其特征在于,如果所述CPU查找所述网络设备的其他转发芯片中不存在所述上行单播报文的目的MAC地址对应的出端口信息,则所述CPU向所述转发芯片下发伪MAC地址表项,使所述转发芯片停止向所述CPU发送DA消息,并根据所述CPU下发的伪MAC地址表项,将对应的上行单播报文进行单播发送。
    5: 如权利要求1所述的方法,其特征在于,还包括: 所述转发芯片对自身保存的MAC地址表项进行老化,并向所述CPU发送老化地址消息。
    6: 一种网络设备,包括转发芯片和CPU,其特征在于,所述转发芯片包括:收发模块、记录模块、存储模块、查找模块、添加模块,其中: 记录模块,与所述收发模块连接,用于记录所述收发模块接收到的单播报文的源MAC地址和入端口信息; 存储模块,用于存储FDB表; 查找模块,与所述记录模块和所述存储模块连接,用于查找所述存储模块存储的FDB表中是否存在所述记录模块记录的单播报文的源MAC地址;还用于查找所述FDB表中是否存在所述单播报文的目的MAC地址; 添加模块,与所述查找模块和所述存储模块连接,用于在所述查找模块查找到所述FDB表中不存在所述单播报文的源MAC地址时,将所述单播报文的源MAC地址和入端口信息添加到所述存储模块存储的FDB表中,所述单播报文包括来自业务端口的上行单播报文和来自交换网的下行单播报文; 收发模块,与所述查找模块连接,用于接收单播报文;以及,当所述单播报文为上行单播报文时,用于在所述查找模块查找到所述FDB表中不存在所述上行单播报文的目的MAC地址时,向所述CPU发送DA消息,接收来自所述CPU的目的MAC地址和出端口信息,根据所述出端口信息发送所述上行单播报文,并停止向所述CPU发送DA消息; 所述CPU,用于接收并分析来自所述转发芯片的DA消息,查找所述网络设备的其他转发芯片中是否存在所述上行单播报文的目的MAC地址对应的出端口信息;如果存在,则将所述上行单播报文的目的MAC地址和出端口信息添加到所述转发芯片的FDB表中。
    7: 如权利要求6所述网络设备,其特征在于,所述转发芯片还包括: 判断模块,与查找模块连接,用于在所述查找模块查找到所述FDB表中存在所述单播报文的源MAC地址时,判断所述FDB表中所述源MAC地址对应的端口信息和所述单播报文的入端口信息是否一致; 所述添加模块,与所述判断模块连接,还用于在所述判断模块的判断结果为不一致时,将所述单播报文的源MAC地址和所述单播报文的入端口信息更新到所述FDB表中。
    8: 如权利要求6所述网络设备,其特征在于,当所述单播报文为下行单播报文时, 所述查找模块,还用于查找所述FDB表中是否存在所述下行单播报文的目的MAC地址; 所述收发模块,与所述查找模块连接,还用于在所述查找模块查找到所述FDB表中不存在所述下行单播报文的目的MAC地址时,将所述下行单播报文发送到VLAN的所有出端口。
    9: 如权利要求8所述网络设备,其特征在于,所述单播报文为上行单播报文时, 所述收发模块,还用于接收来自所述CPU的伪MAC地址表项,根据所述伪MAC地址表项发送所述上行单播报文,并停止向所述CPU发送DA消息; 所述CPU,还用于当查找所述网络设备的其他转发芯片中不存在所述上行单播报文的目的MAC地址对应的出端口信息时,向所述转发芯片下发伪MAC地址表项。
    10: 如权利要求6所述网络设备,其特征在于,所述转发芯片还包括: 老化模块,与所述存储模块连接,用于对所述存储模块存储的MAC地址表项进行老化; 所述收发模块,与所述老化模块连接,还用于向所述CPU发送老化地址消息。

    说明书


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

        【技术领域】

        本发明涉及通信技术领域,尤其涉及一种媒体访问控制地址表项学习方法和装置。 

        背景技术

        目前,主流网络设备的架构一般为交换网框式架构,如图1所示,该网络设备包含多个转发芯片,每个转发芯片上携带32K~1M的MAC(MediaAccess 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表,再通过控制通道将该地址消息传输到同一网络设备上的所有其他物理槽 位的CPU,其他物理槽位上的CPU解析该地址消息,然后将该地址信息中的MAC地址表项写入本槽位上的所有转发芯片的FDB表。所有转发芯片的MAC地址表项都是通过CPU维护更新的,在CPU无法知道流量的情况下,为了芯片上的流量的广播,可以在存在VLAN的转发芯片上都保存有整框的所有VLAN的Mac地址,一旦有单播流量进入转发芯片,直接对该单播流量进行转发,减少交换网的负担。 

        发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷: 

        对于转发芯片内自动学习、芯片间CPU干预同步的学习方式,由于同步需要软件干预,所以同步速度比较慢,导致广播时间长,且在端口切换过程中丢包时间长;同步时占用控制通道带宽,容易引起控制通道问题;软件设计比较复杂,在框式设备上应用会出现很多MAC地址学习的时序问题,包括存在不该有的MAC地址,即在每个转发芯片内存中存在大量的MAC地址垃圾表项,以及应该有的MAC地址却不存在。 

        对于转发芯片内和芯片间都由CPU干预的学习方式,不仅同步速度比较慢,广播时间长,且本芯片学习速度慢。 

        【发明内容】

        本发明提供了一种MAC地址表项学习方法和装置,用于自动、高效地维护转发芯片中的FDB表。 

        本发明提供了一种媒体访问控制MAC地址表项学习方法,应用于包括转发芯片和中央处理单元CPU的网络设备中,所述方法包括以下步骤: 

        所述转发芯片接收单播报文,记录所述单播报文的源MAC地址和入端口信息; 

        所述转发芯片查找转发数据库FDB表中是否存在所述单播报文的源MAC地址,如果所述FDB表中不存在所述单播报文的源MAC地址,则将所述单播报文的源MAC地址和入端口信息添加到所述FDB表中,所述单播报文包括来自业务端口的上行单播报文和来自交换网的下行单播报文。 

        优选地,所述转发芯片查找FDB表中是否存在单播报文的源MAC地址之后,还包括:

        如果所述FDB表中存在所述单播报文的源MAC地址,所述转发芯片判断所述FDB表中所述源MAC地址对应的端口信息和所述单播报文的入端口信息是否一致,如果判断结果为不一致,所述转发芯片将所述单播报文的源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,所述转发芯片包括: 

        收发模块,用于接收单播报文; 

        记录模块,与所述收发模块连接,用于记录所述收发模块接收到的单播报文的源MAC地址和入端口信息; 

        存储模块,用于存储FDB表; 

        查找模块,与所述记录模块和所述存储模块连接,用于查找所述存储模块存储的FDB表中是否存在所述记录模块记录的单播报文的源MAC地址; 

        添加模块,与所述查找模块和所述存储模块连接,用于在所述查找模块查找到所述FDB表中不存在所述单播报文的源MAC地址时,将所述单播报文的源MAC地址和入端口信息添加到所述存储模块存储的FDB表中,所述单播报文包括来自业务端口的上行单播报文和来自交换网的下行单播报文。 

        优选地,所述转发芯片还包括: 

        判断模块,与查找模块连接,用于在所述查找模块查找到所述FDB表中存在所述单播报文的源MAC地址时,判断所述FDB表中所述源MAC地址对应的端口信息和所述单播报文的入端口信息是否一致; 

        所述添加模块,与所述判断模块连接,还用于在所述判断模块的判断结果为不一致时,将所述单播报文的源MAC地址和所述单播报文的入端口信息更新到所述FDB表中。 

        优选地,所述查找模块,还用于查找所述FDB表中是否存在所述单播报文的目的MAC地址; 

        所述收发模块,与所述查找模块连接,还用于在所述查找模块查找到所述FDB表中不存在所述单播报文的目的MAC地址时,将所述单播报文发送到VLAN的所有出端口。 

        优选地,所述单播报文为上行单播报文时, 

        所述收发模块,还用于在所述查找模块查找到所述FDB表中不存在所述单播报文的目的MAC地址时,向所述CPU发送DA消息,并接收来自所述CPU的出端口信息或伪MAC地址表项,根据所述出端口信息或伪MAC地址表项发送所述上行单播报文,并停止向所述CPU发送DA消息; 

        所述CPU,还用于接收并分析来自所述转发芯片的DA消息,查找所述网络设备的其他转发芯片中是否存在所述上行单播报文的目的MAC地址对应的出端口信息;如果存在,将所述上行单播报文的目的MAC地址和出端口信息添加到所述转发芯片的FDB表中;如果不存在,向所述转发芯片下发伪MAC地址表项。 

        优选地,所述转发芯片,还包括: 

        老化模块,与所述存储模块连接,用于对所述存储模块存储的MAC地址表项进行老化; 

        所述收发模块,与所述老化模块连接,还用于向所述CPU发送老化地址消息。 

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

        【附图说明】

        为了更清楚地说明本发明或现有技术中的技术方案,下面将对本发明或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 

        图1为网络设备的架构示意图; 

        图2为本发明中的一种MAC地址表项学习方法流程图; 

        图3为本发明应用场景中的MAC地址表项学习系统结构示意图; 

        图4为本发明应用场景中通过上行单播报文学习MAC地址表项的流程图; 

        图5为本发明应用场景中通过下行单播报文学习MAC地址表项的流程图; 

        图6为本发明应用场景中的一种网络设备结构示意图。 

        【具体实施方式】

        本发明提供的技术方案中,其核心思想为在不影响交换网的前提下,利用交换网的未知单播报文进行广播的特点,实现MAC地址表项的跨芯片、高效率自动学习。 

        下面将结合本发明中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 

        如图2所示,为本发明中的一种MAC地址表项学习方法流程图,应用于包括转发芯片和CPU的网络设备中,该方法包括以下步骤: 

        步骤201,转发芯片接收单播报文,记录单播报文的源MAC地址和入端口信息。 

        其中,单播报文包括来自业务端口的上行单播报文和来自交换网的下行单播报文。本发明中的转发芯片可以为FPGA(Field‑Programmable Gate Array,现场可编程门阵列),可以通过编程对2层的未知单播可以做到上行、下行的MAC地址学习;而现有的转发芯片对于下行的MAC地址学习功能比较欠缺。 

        步骤202,转发芯片查找FDB表中是否存在单播报文的源MAC地址,如果FDB表中不存在所述单播报文的源MAC地址,则执行步骤203;如果存在则结束流程。 

        具体地,如果FDB表中存在单播报文的源MAC地址,转发芯片判断FDB表中源MAC地址对应的出端口信息和单播报文的出端口信息是否一致,如果判断结果为不一致,即转发芯片的端口出现迁移现象,转发芯片将单播报文的源MAC地址和出端口信息更新到FDB表中。 

        步骤203,转发芯片将单播报文的源MAC地址和入端口信息添加到FDB表中。 

        其中,转发芯片中还保存一份硬件计数表和VLAN、PORT(端口)限制表,上述表项用于控制和统计转发芯片对MAC地址表项的学习,便于CPU的查询使用。 

        转发芯片还可以查找FDB表中是否存在单播报文的目的MAC地址,如果FDB表中不存在该单播报文的目的MAC地址,则将该单播报文发送到VLAN的所有出端口。 

        当单播报文为上行单播报文时,转发芯片查找到FDB表中不存在单播报文 的目的MAC地址后,还可以向CPU发送DA(Destination Address,目的地址)消息;随后,接收来自CPU的出端口信息或伪MAC地址表项,根据出端口信息或伪MAC地址表项发送上述上行单播报文,并停止向CPU发送DA消息。 

        转发芯片还可以对自身保存的MAC地址表项进行老化,并向CPU发送AA(Aged Address,老化地址)消息,以便于后续管理。具体地,各个芯片内存自身记录并管理所有MAC地址表项,包括自身端口学习的MAC地址和通过其他芯片学习的MAC地址,将MAC地址表项统一配置成可老化的MAC地址,老化时间可配置,且整框转发芯片的老化时间一致。而在现有技术中,对于跨芯片的MAC地址不做老化,需要接收来自最先学习该MAC地址的转发芯片的老化消息。 

        本发明中的转发芯片能够自动、高效地维护FDB表,包括多个转发芯片之间的自动学习和老化,而不需要借助CPU的干预,能够最大化地利用硬件资源。 

        如图3所示,为本发明应用场景中的MAC地址表项学习系统结构示意图,包括交换网以及与交换网连接的转发芯片0、转发芯片1和转发芯片2,上述转发芯片均与各自的CPU连接。各转发芯片既可以接收来自业务端口的上行单播报文,也可以接收来自交换网的下行单播报文。 

        以下结合上述应用场景,对本发明中的MAC地址表项学习方法进行详细、具体的描述。 

        如图4所示,为本发明应用场景中通过上行单播报文学习MAC地址表项的流程图,具体包括以下步骤: 

        步骤401,转发芯片0接收来自业务端口的上行单播报文,记录该上行单播报文的源MAC地址和入端口信息。 

        步骤402,转发芯片0查找FDB表中是否存在上行单播报文的源MAC地址,如果FDB表中不存在该上行单播报文的源MAC地址,则执行步骤403;如果存在,则执行步骤404。 

        步骤403,转发芯片0将上行单播报文的源MAC地址和入端口信息添加到 FDB表中,向CPU发送AU(Address Update,地址更新)消息,并向交换网广播包含上行单播报文的源MAC地址的报文。 

        其中,转发芯片0需要执行以下保护功能,对于同一份的流量,在一定时间内只送一份AU消息给CPU,防止向CPU的上送量过大。 

        步骤404,转发芯片0查找FDB表中是否存在上行单播报文的目的MAC地址,如果FDB表中不存在该上行单播报文的目的MAC地址,则执行步骤406;如果存在,则执行步骤405。 

        步骤405,转发芯片0根据FDB表,将上行单播报文发送到出端口。 

        步骤406,转发芯片0将上行单播报文发送到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向转发芯片0下发伪MAC地址表项,并记录该伪MAC地址表项。 

        步骤411,转发芯片0接收来自CPU的伪MAC地址表项,停止向CPU发送DA消息,并根据CPU下发的伪MAC地址表项,将对应的上行单播报文进行单播发送。 

        其中,伪MAC地址表项为网络设备中不存在的MAC地址表项,用于使处于广播状态的转发芯片停止广播报文和发送DA消息。 

        需要说明的是,本发明方法可以根据实际需要对各个步骤顺序进行调整。 

        本发明中的转发芯片能够自动、高效地维护FDB表,包括多个转发芯片之间的自动学习和老化,能够最大化地利用硬件资源。 

        如图5所示,为本发明应用场景中通过下行单播报文学习MAC地址表项的流程图,具体包括以下步骤: 

        步骤501,转发芯片0接收来自交换网的下行单播报文,记录该下行单播报文的源MAC地址和入端口信息。 

        步骤502,转发芯片0查找FDB表中是否存在下行单播报文的源MAC地址,如果FDB表中不存在该下行单播报文的源MAC地址,则执行步骤503;如果存在,则执行步骤504。 

        步骤503,转发芯片0将下行单播报文的源MAC地址和入端口信息添加到FDB表中,向CPU发送AU消息。 

        步骤504,转发芯片0查找FDB表中是否存在下行单播报文的目的MAC地址,如果FDB表中不存在该下行单播报文的目的MAC地址,则执行步骤506;如果存在,则执行步骤505。 

        步骤505,转发芯片0根据FDB表,将下行单播报文发送到出端口。 

        步骤506,转发芯片0将下行单播报文发送到VLAN的所有出端口。 

        需要说明的是,本发明方法可以根据实际需要对各个步骤顺序进行调整。 

        本发明中的转发芯片能够自动、高效地维护FDB表,包括多个转发芯片之间的自动学习和老化,而不需要借助CPU的干预,能够最大化地利用硬件资源。 

        本发明在上述实施方式中提供了MAC地址表项学习方法和多种应用场景,相应地,本发明还提供了应用上述MAC地址表项学习方法的装置。 

        如图6所示,如本发明应用场景中的一种网络设备结构示意图,包括转发芯片610和CPU 620,该转发芯片610包括收发模块611、记录模块612、存储模块613、查找模块614、判断模块615、添加模块616和老化模块617,其中, 

        收发模块611,用于接收单播报文。 

        上述收发模块611,与查找模块614连接,还用于在查找模块614查找到FDB表中不存在单播报文的目的MAC地址时,将该单播报文发送到VLAN的所有出端口。 

        上述单播报文为上行单播报文时,上述收发模块611,还用于在查找模块614查找到FDB表中不存在单播报文的目的MAC地址时,向CPU 620发送DA消息,并接收来自CPU 620的出端口信息或伪MAC地址表项,根据该出端口信息或伪MAC地址表项发送上行单播报文,并停止向CPU 620发送DA消息。 

        具体地,当转发芯片610没有上行单播报文的目的MAC地址时,会一直处于广播状态,网络设备中的其他转发芯片均会接收到来自交换网的单播报文,而只有保存有该单播报文的目的MAC地址的转发芯片才能将该单播报文以单播方式发送出去。因此,当存在上行单播报文时,为了控制没有保存该上行单播报文的目的MAC地址的转发芯片对该上行单播报文的广播,需要由接收到该上行单播报文的转发芯片610向对应的CPU 620发送DA消息,由CPU 620根据该DA消息指示转发芯片610处理上述上行单播报文。 

        另外,转发芯片610还需要执行以下保护功能,对于同一份的流量,在一定时间内只送一份DA消息给CPU 620,防止向CPU 620的上送量过大。 

        所述CPU 620,还用于接收并分析来自转发芯片610的DA消息,查找所述网络设备的其他转发芯片中是否存在所述上行单播报文的目的MAC地址对应的出端口信息;如果存在,将所述上行单播报文的目的MAC地址和出端口信息添加到转发芯片610的FDB表中;如果不存在,向转发芯片610下发伪MAC地址表项。 

        具体地,CPU 620中可以保存一份软件FDB表,该软件FDB表用于查找MAC地址表项,并根据查找结果判断上行单播报文是否为单向流量;如果CPU 620查找硬件FDB表方便且速率很快,也可以不保存软件FDB表。 

        其中,伪MAC地址表项为网络设备中不存在的MAC地址表项,用于使处于广播状态的转发芯片停止广播报文和发送DA消息。 

        上述收发模块611,与老化模块617连接,还用于向CPU发送老化地址消息。 

        记录模块612,与收发模块611连接,用于记录收发模块611接收到的单播报文的源MAC地址和入端口信息。 

        存储模块613,用于存储FDB表。 

        查找模块614,与记录模块612和存储模块613连接,用于查找存储模块613存储的FDB表中是否存在记录模块612记录的单播报文的源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的干预,能够最大化地利用硬件资源。 

        通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。 

        以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。 

        本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以集成于一体,也可以分离部署;可以合并为一个模块,也可以进一步拆分成多个子模块。 

        上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。 

        以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。 

        

    关 键  词:
    一种 媒体 访问 控制 MAC 地址 学习方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种媒体访问控制MAC地址表项学习方法和装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1114126.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1