一种报文转发装置、网络设备及方法

文档序号:7739655阅读:135来源:国知局
专利名称:一种报文转发装置、网络设备及方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种可以扩展介质访问控制地址表容量
的报文转发装置、网络设备及方法。
背景技术
在以太网中传输的报文都按照以太网帧格式进行传输,采用以太网帧格式的报文 中包括源介质访问控制MAC(MediaAccess Control)地址和目的MAC地址。交换机本身存 储有MAC地址表,也称地址转发表,交换机采用如下方式建立MAC地址表当交换机从某个 端口接收到报文时,读取报文中的源MAC地址,可以获得源MAC地址对应的设备是连在哪个 端口上的,在报文中的源MAC地址未在MAC地址表中时,将包括源MAC地址与接收报文的端 口的表项添加到MAC地址表中。交换机利用MAC地址表进行报文转发,具体为读取报文中 的目的MAC地址,并在MAC地址表中查找是否有该目的MAC地址匹配的表项;若有,利用匹 配表项中与该目的MAC地址对应的端口 ,将报文直接转发到该端口上;若无,将报文广播到 交换机所连接的所有端口上。 交换机通过对接收报文不断地址学习,可以实现对全网MAC地址信息的学习。 如图1所示,设备1和设备4的通信过程为设备1向设备4发送报文,设备1发出报文 的源MAC地址为00:d0:f8:0A:fC:6A,目的MAC地址为00:d0:f8:OA:fC:6D,报文从交换 机的端口 1进入,交换机接收到该报文后,从报文获得源MAC地址,并将包括源MAC地址 00: dO: f8: OA: fC: 6A及其对应的端口 1的表项添加到MAC地址表;交换机获得报文的目的 MAC地址为00: dO: f8: OA: fC: 6D,查找MAC地址表,没有找到匹配的表项,将报文广播到端 口 2、3和4 ;设备2和设备3接收到源MAC地址为00:dO:f8:OA:fC:6A、目的MAC地址为 00:d0:f8:0A:fC:6D的报文,发现报文目的MAC地址不是本设备,直接丢弃;设备4接收到 该报文,并发现报文目的MAC地址是本设备,对报文进行处理。设备4要向设备1发送数 据,它发出报文的源MAC地址为00: dO: f8: OA: fC: 6D,目的MAC地址为00: dO: f8: OA: fC: 6A, 报文从交换机的端口 4进入,交换机接收到该报文后,从报文获得源MAC地址,并将包括源 MAC地址00: dO: f8: OA: fC: 6D及其对应的端口 4的表项添加到MAC地址表中;交换机获得 报文的目的MAC地址00: dO: f 8: OA: f C: 6A,查找MAC地址表,找到匹配表项(前面已经学习 到),该目的MAC地址对应的端口为l,因此报文不需要广播到端口 1、2和3,而是直接从端 口 l发送出去。此时,因为已经学习到设备4的MAC地址对应的端口,后续由设备1到设备 4的报文就不需要广播,交换机就可以直接发送到端口 4。 可见,随着交换机利用接收报文不断进行地址学习,MAC地址表占据的存储空间会 越来越大。然而,交换机中预留的MAC地址表容量是有限的,目前主流高端交换芯片MAC地 址表容量为16K 32K,如果和交换机连接的设备超过交换机MAC地址表容量,先学习到的 地址把内部MAC地址表表项占满,后学习到的地址就无法加入到交换芯片的MAC地址表中, 导致发往这些地址的报文都无法找到匹配表项而被广播到各个端口 。如果交换机连接的设 备较多,在实现全部设备MAC地址添加到MAC地址表所需的MAC地址表容量,大大超过交换
5机预留的MAC地址表容量时,大量设备的MAC地址无法记录在交换机内的MAC地址表中,会 导致网络存在大量的广播风暴,整个网络的带宽都被广播占用。 为了解决广播风暴的问题,新的交换机引入虚拟局域网VLAN的概念,把端口划分 成不同VLAN,广播报文只发送到同一个VLAN下所有端口 ,不会发往交换机的所有端口 。如 图2所示,端口 1、端口 4和端口 5属于同一个VLAN1,端口 2和端口 3属于同一个VLAN2。 当设备1发往设备4的报文在MAC地址表中未找到匹配表项时,报文只会在VLAN1下广播, 报文广播到端口 4和端口 5,不会广播到端口 2和3。 采用VLAN对端口进行划分,在一定情况下降低了广播风暴,但还是无法解决交换 机中MAC地址表容量不足,导致在同一个VLAN下报文广播所造成的带宽浪费的问题。
为了解决交换机中MAC地址表容量不足的问题,目前采用的方法主要有
1)采用支持更大MAC地址表容量的交换芯片,例如支持8KMAC地址表容量的交换 芯片换成更加高端支持16K的MAC地址表容量的交换芯片。但是目前业界主流高端的交换 芯片也只支持32K的MAC地址表容量,无法进一步扩展; 2)采用外接存储器有些交换芯片允许外接三态内容关联存储器TCAM(ternary content addressable memory),交换芯片学习到的MAC地址不仅可以放在交换芯片内部 MAC地址表中,也可以放在外部TCAM的MAC地址表中,交换机转发报文不仅根据目的地址 查找内部MAC地址表,还会查找外部TCAM的MAC地址表,因此可以通过外接TCAM起到扩展 MAC地址表容量的作用。但是这种方式要求交换芯片本身可以外接TCAM的功能,另外TCAM 的价格高昂而且容量也有限,不适于广泛应用; 3)采用分布式多交换芯片互联结构,将多个交换芯片互联,可以起到整机支持更 高密度的端口以及更高的性能的目的,目前业界的交换芯片都支持这种互联模式(例如 BroadCom的HiGig方案,以及Marvell的DSA方案)。如图3所示,交换芯片支持24个端口 24Gbps的传输能力,可以将4个交换芯片互联,整机形成96个端口 96Gbps的传输能力。同 时交换芯片各自保存自己学习到的地址,假设每个交换芯片可以保存16K的MAC地址表,逻 辑上整机可以支持64K的MAC地址表,但是实际上各个交换芯片学习到的MAC地址不能各 自独立,例如交换芯片1和2连接的设备相互传输报文,他们之间学习到的MAC地址需要共 享,否则从交换芯片1进入的报文根据目的地址找不到匹配表项,虽然该地址在交换芯片2 中学习到,但是因为没有和交换芯片1共享,因此交换芯片1会广播到目的端口在交换芯片 2的报文。 由于该方案需要MAC地址共享,使得整机的MAC地址表容量无法达到64K,而只有 16 64K之间,而且MAC地址共享控制非常复杂,最终可能的结果是所有交换芯片学习到 MAC地址都共享,整机也只有16K的MAC地址容量。同时该方案还存在一种问题,例如交换 芯片1学习到MAC地址,但是该MAC地址同步到交换芯片2时,交换芯片2内部地址已经满 了 (因为交换芯片2也会自动学习,交换芯片2的MAC表可能已经全部被自己学习到的地 址占满),导致交换芯片1学习到MAC地址无法同步到交换芯片2,而交换芯片2没有交换 芯片1学习到的MAC地址,当报文从交换芯片2进入,要发往交换芯片1时,交换芯片2由 于没有相应的地址,需要广播报文。 针对第三种方案所存在的问题,在多芯片互联下,为了让MAC地址表容量最大,需 要让各个交换芯片学习到的MAC地址各自独立,采取的方法是让各个交换芯片所有端口所属的VLAN不能重合,每个交换芯片只管理自己VLAN的MAC地址,例如交换芯片1管理 VLANl-10,交换芯片管理VLANll-20,由于同一 VLAN只存在一个交换芯片中,这样各个交换 芯片学习到的MAC地址就不需要同步,整机MAC地址容量是各个交换芯片MAC地址容量之 和。但是该方案带来一个问题要求各个交换芯片管理的VLAN不能重合,也就是一个VLAN 的成员口只能是同一个交换芯片连接的端口, VLAN成员口不能来自两个交换芯片,这样大 大限制了产品的应用。

发明内容
本发明提供一种报文转发装置、网络设备及方法,以扩展以太网中交换节点的介 质访问控制地址表容量,使交换节点能够学习和管理更多的MAC地址,适应更大的网络环 境。
本发明提供一种报文转发装置,包括 交换芯片,用于对从设定虚拟局域网中设备接收的报文,不进行报文的源地址及 交换芯片接收报文的端口学习,在第一介质访问控制地址表中未查到报文目的地址对应的 端口时,将包括报文的源地址、目的地址及交换芯片接收报文的端口的信息发送到网络处 理器,并根据所述网络处理器返回的查询结果转发报文; 所述网络处理器,用于根据从所述交换芯片接收的信息,在第二介质访问控制地 址表中查询与报文的目的地址对应的端口,将查询结果返回给所述交换芯片,并在报文的 源地址未在第二介质访问控制地址表时,将报文的源地址及交换芯片接收报文的端口学习 到所述第二介质访问控制地址表。 本发明还提供了一种网络设备,该网络设备包括上述任一所述的报文转发装置。
本发明还提供一种基于上述报文转发装置的报文转发方法,包括 交换芯片对从设定虚拟局域网中设备接收的报文,不进行报文的源地址及交换
芯片接收报文的端口学习,在第一介质访问控制地址表中未查到报文目的地址对应的端
口时,将包括报文的源地址、目的地址及交换芯片接收报文的端口的信息发送到网络处理
器; 所述网络处理器根据从所述交换芯片接收的信息,在第二介质访问控制地址表中 查询与报文目的地址对应的端口 ,将查询结果返回给所述交换芯片,并在报文的源地址未 在第二介质访问控制地址表时,将报文的源地址及交换芯片接收报文的端口学习到所述第 二介质访问控制地址表; 所述交换芯片根据网络处理器返回的查询结果进行报文转发。 利用本发明提供的报文转发装置、网络设备及方法,具有以下有益效果 由于交换芯片对从设定虚拟局域网VLAN中设备接收的报文不进行地址学习,交
由网络处理器进行地址学习,因而使得网络处理器能够集中管理设定VLAN中设备地址对
应的介质访问控制MAC地址表,这样, 一方面由于网络处理器的协助存储而扩大了整个报
文转发装置的MAC地址表容量,另一方面在扩大MAC地址表容量的基础上,特别对于存在多
个交换芯片时,由于网络处理器集中管理设定VLAN中设备地址对应的MAC地址表,不存在
交换芯片内MAC地址到其他交换芯片的同步,因此不会引起共享地址表的浪费。


图1为现有交换机与终端连接的示意图; 图2为现有采用VLAN技术的交换机与终端连接的示意图; 图3为现有采用多个互联的交换芯片的交换机结构示意图; 图4为依照本发明实施例的一种报文转发装置结构; 图5为依照本发明实施例的另一种报文转发装置结构; 图6a为本发明实施例中采用一个交换芯片与网络处理器的连接示意图; 图6b、图6c为本发明实施例中采用多个互联的交换芯片与网络处理器采用两种
连接方式连接的示意图; 图7为本发明实施例中报文转发方法流程图。
具体实施例方式
下面结合附图和实施例对本发明提出的报文转发装置、网络设备及方法进行更详 细的说明。 本发明利用现有以太网中交换芯片可以互联的特点,本发明所提供的报文转发装 置,包括交换芯片,用于对从设定虚拟局域网中设备接收的报文,不进行报文的源地址及 交换芯片接收报文的端口学习,在第一介质访问控制地址表中未查到报文目的地址对应的 端口时,将包括报文的源地址、目的地址及交换芯片接收报文的端口的信息发送到网络处 理器,并根据网络处理器返回的查询结果转发报文;网络处理器,用于根据从所述交换芯片 接收的信息,在第二介质访问控制地址表中查询与报文的目的地址对应的端口,将查询结 果返回给所述交换芯片,并在报文的源地址未在第二介质访问控制地址表时,将报文的源 地址及交换芯片接收报文的端口学习到所述第二介质访问控制地址表。 优选的,本实施例中第一介质访问控制地址表预留设定数量个设备的地址及其对 应的端口的存储位置,用于存储动态获取的设定虚拟局域网中报文流量最大的设定数量个 设备的地址及其对应的端口,如图4所示,该报文转发装置还包括报文流量获取单元,用 于通过第一介质访问控制地址表及第二介质访问控制地址表获得所述设定虚拟局域网中 设备的报文流量;设备查询单元,用于在所述第一介质访问控制地址表及第二介质访问控 制地址表,查询报文流量从大到小的设定数量个设备的地址及其对应的端口 ;更新单元,用 于将所述设备查询单元查询到的内容更新到所述第一介质访问控制地址表预留的存储位 置。这样,交换芯片内部的第一介质访问控制地址表中还包括根据设定虚拟局域网中报文 流量最大的设定数量个设备的地址及其对应的端口。 如图5所示,本实施例中交换芯片具体包括第一转发单元,用于对从设定虚拟局 域网中设备接收的报文,不进行报文的源地址及交换芯片接收报文的端口学习,在第一介 质访问控制地址表中未查到报文目的地址对应的端口时,将包括报文的源地址、目的地址 及交换芯片接收报文的端口的信息发送到网络处理器;第二转发单元,用于根据网络处理 器返回的查询结果转发报文;第三转发单元,用于对从设定虚拟局域网中设备接收的报文, 在所述第一介质访问控制地址表中查到报文目的地址对应的端口时,将报文从所查找到的 端口转发;第四转发单元,用于对不是从设定虚拟局域网中设备接收的报文,在所述第一介 质访问控制地址表中查询与报文目的地址对应的端口,根据查询结果进行报文转发;学习
8单元,用于对不是从设定虚拟局域网中设备接收的报文,在报文的源地址未在所述第一介 质访问控制地址表中时,将报文的源地址及交换机接收报文的端口学习到所述第一介质访 问控制地址表。所述第二转发单元,具体用于在所述网络处理器返回的查询结果为与报文 目的地址对应的端口时,将报文从所述对应的端口转发出去,在所述网络处理器返回的查 询结果为未查询到报文目的地址对应的端口时,将报文广播到报文所属的虚拟局域网下的 所有端口。 如图6a 6c所示,本实施例中交换芯片为一个交换芯片或多个互联的交换芯片, 在为多个互联的交换芯片时,其中一个指定的交换芯片与网络处理器进行通信,每个交换 芯片具有各自的介质访问控制地址表,本实施例中指定的交换芯片具体为多个交换芯片中 可以与网络处理器通信及与其它交换芯片芯片通信的一个交换芯片,具体可以根据交换芯 片的连接情况灵活设定,如图6b所示,在网络处理器与某个交换芯片(交换芯片1)直连的 情况下,直连的交换芯片1即为指定的交换芯片,如图6c,在网络处理器与多个交换芯片互 联的情况下,可以选择其中一个交换芯片作为指定的交换芯片,其中, 指定的交换芯片外的每个交换芯片,具体用于将所述包括报文的源地址、目的地 址及交换芯片接收报文的端口的信息,经所述指定的交换芯片发送到网络处理器,并根据 所述指定的交换芯片返回的查询结果转发报文;; 所述网络处理器,具体用于将所述查询结果返回给所述指定的交换芯片;
所述指定的交换芯片,用于将自身及从其他交换芯片接收的包括报文的源地址、 目的地址及交换芯片接收报文的端口的信息,发送给网络处理器,根据从网络处理器接收 的查询结果进行查询结果转发及自身的报文转发。 如图6b所示,本实施例中指定的交换芯片包括第五转发单元,用于在从网络处 理器接收的查询结果为与报文目的地址对应的端口时,将查询结果转发给所述对应的端口 所在交换芯片,在所述端口所在交换芯片为指定的交换芯片时,将报文从指定的交换芯片 对应的端口转发;第六转发单元,用于在从网络处理器接收的查询结果为未查到报文目的 地址对应的端口时,将该查询结果广播到报文所属虚拟局域网下端口所在的交换芯片,在 所述报文所属虚拟局域网下端口所在交换芯片包括指定的交换芯片时,将报文广播到指定 的交换芯片的属于报文所属虚拟局域网的所有端口 ;报文所属虚拟局域网下端口所在的交 换芯片,在接收未查到报文目的地址对应的端口查询结果时,将报文广播到该交换芯片的 属于报文所属虚拟局域网的所有端口。 本实施例中报文转发装置由于交换芯片对从设定VLAN中设备接收的报文不进行 地址学习,交由网络处理器进行地址学习,因而使得网络处理器能够集中管理设定VLAN中 设备地址对应的MAC地址表,这样, 一方面由于网络处理器的协助存储而扩大了整个报文 转发装置的MAC地址表容量,如网络处理器可以外接普通双倍速率DDR(Double Data Rate) 内存来存储其内部的第二介质访问控制地址表;另一方面在扩大MAC地址表容量的基础 上,特别对于存在多个交换芯片时,由于网络处理器集中管理设定VLAN中设备地址对应的 MAC地址表,不存在交换芯片内MAC地址到其他交换芯片的同步,因此不会引起共享地址表 的浪费。同时,本发明采用在网络处理器集中管理设定VLAN中设备地址对应的MAC地址表 情况下,各交换芯片内需要存储的MAC地址大大减少,因此本发明不会受各交换芯片管理 的VLAN不能重合的限制。
本实施例中各交换芯片的介质访问控制地址表内统一预留有用于存储设定VLAN
中报文流量从大到小的设定数量个设备的地址及其对应的端口的存储位置,并且各交换芯 片在其本身的介质访问控制地址表中未查到对应端口时,按照交换芯片互联的格式(如
Marvel的DSA格式,BroadCom的Higig格式)转发给指定的交换芯片,由指定的交换芯片 转发给网络处理器处理,可以实现整机MAC地址表容量的扩展。 本发明还提供一种网络设备,包括本发明实施例中上述报文转发装置,实现在网 络中进行报文转发,如该网络设备可以为交换机或其他具有报文转发功能的网络交换节点 设备。 本发明提出的报文转发方法,包括交换芯片对从设定虚拟局域网中设备接收的 报文,不进行报文的源地址及交换芯片接收报文的端口学习,在第一介质访问控制地址表 中未查到报文目的地址对应的端口时,将包括报文的源地址、目的地址及交换芯片接收报 文的端口的信息发送到网络处理器;所述网络处理器根据从所述交换芯片接收的信息,在 第二介质访问控制地址表中查询与报文目的地址对应的端口 ,将查询结果返回给所述交换 芯片,并在报文的源地址未在第二介质访问控制地址表时,将报文的源地址及交换芯片接 收报文的端口学习到所述第二介质访问控制地址表;所述交换芯片根据网络处理器返回的 查询结果进行报文转发。通过采用网络处理器协助交换芯片处理设定VLAN中设备的MAC 地址表及从VLAN中设备传输过来的报文的查表处理,使整个报文转发装置支持更大的MAC 地址表容量。 采用本发明的上述方法,因为交换芯片没有对设定VLAN进行源MAC地址学习,因 此对该设定VLAN的报文,交换芯片都找不到MAC地址对应的表项,报文都会转发给网络处 理器进一步处理;而网络处理器有进行设定VLAN的MAC地址学习,因此该设定VLAN的MAC 地址都会在网络处理器中学习到,网络处理器也能够根据目的MAC地址找到MAC地址表项 从而查到对应端口。 采用本发明的优选实施方式,所述第一介质访问控制地址表预留设定数量个设备 的地址及其对应的端口的存储位置,用于存储动态获取的设定虚拟局域网中报文流量最大 的设定数量个设备的地址及其对应的端口 ,该方法还包括通过第一介质访问控制地址表 及第二介质访问控制地址表获得所述设定虚拟局域网中设备的报文流量;在所述第一介质 访问控制地址表及第二介质访问控制地址表,查询报文流量从大到小的设定数量个设备的 地址及其对应的端口 ;将所述查询到的内容更新到所述第一介质访问控制地址表预留的存 储位置。优选地,所述交换芯片对从设定VLAN中设备接收的报文,在所述第一介质访问控 制地址表中查到报文目的地址对应的端口时,将报文从所查找的端口转发。这样,设定VLAN 中会有一部分报文流量较大的报文直接在交换芯片中查表转发,而无需交由网络处理器进 行地址学习及查表处理。这样兼顾了网络处理器处理复杂度越高时处理性能越低、交换芯 片处理性能高两个因素,使报文转发的效果更好。 优选地,交换芯片对不是从设定虚拟局域网中设备接收的报文,在所述第一介质 访问控制地址表中查询与报文目的地址对应的端口 ,根据查询结果进行报文转发,并在报 文的源地址未在所述第一介质访问控制地址表中时,将报文的源地址及交换芯片接收报文 的端口学习到所述第一介质访问控制地址表。即对从非设定VLAN中设备接收的报文按现 有流程进行报文转发。
本发明中的交换芯片与网络处理器连接,而网络处理器可以外接普通双倍速率 DDR (Double Data Rate)内存来存储其内部的第二介质访问控制地址表,从而扩展整机MAC 地址容量。例如采用EZCHIP公司的NP3网络处理器,该处理器可以支持30Gpbs的处理能 力,可以外接1GByte的DDR内存,理论上可以容纳16M以上的MAC地址表。本发明通过合 理分配交换芯片和网络处理器各自管理的MAC地址表,以及合理分配交换芯片和网络处理 器在整个报文转发处理过程的工作分工,使得报文转发的整个报文转发装置即交换机支持 更大的MAC地址表容量,同时不影响原有交换机的功能和性能。 交换芯片一般采用一个交换芯片或互联的多个交换芯片,性能很高,可以支持线
性处理,而网络处理器处理复杂度越高,处理性能越低,而且开发周期越长,因此在整个报
文转发流程处理中,尽可能让交换芯片做更多的工作,而让网络处理器工作尽可能简单,这
样才能够保证网络处理器处理足够快速,不会影响整机的转发性能。 依照本发明的实施例中,如图7所示,报文转发方法包括以下步骤 步骤S70,交换芯片接收报文; 步骤S71,交换芯片首先对所接收的报文进行预处理,具体包括 步骤S711,根据报文源地址及其所属虚拟局域网VLAN,对报文进行合法性检查,
如报文的源MAC地址必须是单播地址,报文源地址对应的设备所属的VLAN是否合法等。 步骤S712,根据预先配置的安全目的地址列表及报文目的地址,对报文进行接收
安全过滤,例如有些安全功能要求只有发往用户预先配置的安全MAC地址列表中MAC地址
对应的设备的报文,才能进行转发。 步骤S713,根据报文的信息类型,在所述报文为协议报文时送协议栈进行相应处 理。协议报文为特殊报文,如地址解析协议报文ARP报文,这些报文应发送协议栈进行相应 处理而不进行转发。 上述预处理的各个步骤的顺序不受限制,且可以采用其中的任一个或多个步骤进 行报文预处理。 步骤S72,判断该报文是否是从设定VLAN中的设备传输过来的,即判断报文是否 是在设定VLAN中传输的报文,若是,执行步骤S73,否则执行步骤S74。
步骤S73,在交换芯片内部的第一介质访问控制地址表(MAC地址表1)中查询是否 存在报文目的MAC地址对应的端口 ,若存在,执行步骤S77,若不存在,执行步骤S76 ;
步骤S74,交换芯片对不是从设定虚拟局域网中设备接收的报文,将报文源地址及 交换芯片接收报文的端口学习到所述第一介质访问控制地址表; 步骤S75,并在该第一介质访问控制地址表中查询与报文目的地址对应的端口 ,根 据查询结果进行报文转发前,执行步骤S77 ; 步骤S76,将包括所接收的报文及交换芯片接收报文的端口的信息,发送到网络处 理器进行地址学习及查表处理; 步骤S761,网络处理器接收所述交换芯片发送过来的包括报文及对应的端口的信 息; 步骤S762,网络处理器根据从交换芯片接收的信息,将报文源地址及对应端口学 习到网络处理器内部的第二介质访问控制地址表; 步骤S763,在网络处理器内部的第二介质访问控制地址表(MAC地址表2)中查询与报文目的地址对应的端口; 步骤S764,网络处理器将报文及相应查询结果返回给交换芯片; 交换芯片接收网络处理器返回的该报文及查表后得到的相应的查询结果,根据查
询结果进行报文转发前,执行步骤S77 ; 步骤S77,交换芯片对其转发的报文,在转发前首先进行发送预处理,具体包括
步骤S771,根据预先配置的安全源地址列表及报文源地址,对报文进行转发过滤, 有些配置不允许从某个端口进来的报文发送到特定的端口 ,报文需要丢弃
步骤S772,根据预先设置的转发要求,在需对报文中数据修改时,例如有些报文的 VLAN标识需要删除,对进行报文修改。 步骤S78,根据该报文对应的查询结果对报文进行转发。 在步骤S78中,对步骤S73,在交换芯片内部的第一介质访问控制地址表(MAC地址 表1)中查询是否存在报文目的MAC地址对应的端口 ,在查询到时将报文从对应的端口转发 出去,从而实现从设定VLAN中终端接收的报文不经网络处理器而直接转发。对步骤S764 返回的报文及相应查询结果,在查询结果为与报文目的地址对应的端口时,交换芯片将报 文从所述对应的端口转发出去;查询结果为未查询到报文目的地址对应的端口时,所述交 换芯片将报文广播到属于所述设定虚拟局域网下的所有端口 。从而实现对从设定VLAN中 终端接收的报文,在网络处理器协助查表下进行报文转发。对于步骤S75中的查询结果实 现非设定VLAN中设备传输过来的报文。按现有流程处理,在查询结果为与报文目的地址对 应的端口转发,否则在报文所属VLAN下端口广播。 本发明通过交换芯片对预先设置的设定VLAN中设备传输过来的报文进行特殊处 理,达到设定VLAN下设备的MAC地址在网络处理器中第二介质访问控制地址表管理,而且 只有该设定VLAN下设备的报文需要网络处理器处理。对于非设定VLAN中终端对应的MAC 地址在交换芯片中管理,该非设定VLAN中终端按现有流程处理,需要进行源MAC地址学习, 根据目的MAC查找交换芯片内部的MAC地址表项,如果找不到在VLAN下广播,因此这些 VLAN的报文不会到达网络处理器。因此本发明达到既提高MAC地址表容量,又让尽可能少 的报文在网络处理器处理,从而不会影响交换机的性能的目的。 另外,由于设定VLAN中设备传输过来的报文接收预处理以及发送预处理都在交 换芯片内完成,而原交换机很多增强的功能都是这两个步骤完成,因此不会影响原有交换 机的功能,而网络处理器只处理设定VLAN中设备的源MAC地址学习,以及根据目的MAC地 址查找MAC地址表2,网络处理器处理非常简单,因此不会影响原交换机的转发性能。
本发明中设定VLAN优选采用具有最多的终端的一个或多个VLAN,这样,可以充分 利用网络处理器支持大容量MAC地址表的优点。 本发明为了避免如果网络处理器管理的VLAN报文传输量很大,超过网络处理器 的带宽和处理性能,导致该VLAN报文丢包的情况,可以采用如下方法缓解
1)交换芯片的第一介质访问控制地址表中预留多个MAC地址存储空间,用于存放 网络处理器管理的设定VLAN流量最大的前几个MAC地址; 2)交换芯片通过动态获取网络处理管理的设定VLAN流量最大的前几个MAC地址,
把这几个MAC地址添加到交换芯片的第一介质访问控制地址表中预留存储空间; 这样,由于交换芯片的第一介质访问控制地址表中存在流量最大的MAC地址,因
12此设定VLAN中流量最大的报文传输在交换芯片内完成,不需要网络处理器处理。 可见,本发明通过动态发现网络处理器管理的VLAN流量最大的前几个MAC地址
(可以多个),把报文流量最大的前几个MAC地址及对应端口添加到交换芯片中,让报文流
量最大设备传输的报文在交换芯片内完成查表转发,不需要经过网络处理器处理,保证让
尽可能少的报文在网络处理器处理,从而进一步提升了交换机整机的性能。 本实施例中所采用的交换芯片为一个交换芯片或多个互联的交换芯片,采用一个
交换芯片时,其与网络处理器的连接如图6a所示,采用多个互联的交换芯片时,其与网络
处理的连接如图6b和图6c,图6b中,实际上网络处理只和交换芯片1直接连接,交换芯片
1又和所有交换芯片2 4连接,图6c中,网络处理器和所有的交换芯片1 4连接,本实
施例中,对于多个交换芯片互联的情况,指定其中交换芯片与网络处理器进行通信,每个交
换芯片内部具有其本身的介质访问控制地址表,其中, 每个交换芯片对从设定虚拟局域网中设备接收的报文,在其本身的介质访问控制 地址表中未查到报文目的地址对应的端口时,通过指定的交换芯片将包括报文及交换芯片 接收报文的端口信息发送到网络处理器的,所述信息还可以包括交换芯片转发报文需要的 其它原始信息; 网络处理器根据从指定交换芯片接收的信息,在第二介质访问控制地址表中查询 与报文的目的地址对应的端口 ,将查询结果返回给指定交换芯片,并在报文的源地址未在 第二介质访问控制地址表时,将报文的源地址及交换芯片接收报文的端口学习到所述第二 介质访问控制地址表; 指定的交换芯片接收网络处理器返回的查询结果后,进行查询结果转发及自身的 报文转发;其它交换芯片根据从所述指定交换芯片接收的查询结果进行报文转发。具体为, 指定的交换芯片在从网络处理器接收的查询结果为与报文目的地址对应的端口时,将查询 结果转发给所述对应的端口所在的交换芯片,在所述端口所在交换芯片为指定的交换芯片 时,将报文从指定的交换芯片对应的端口转发。指定的交换芯片在从网络处理器接收的查 询结果为未查到报文目的地址对应的端口时,将该查询结果广播到报文所属虚拟局域网下 端口所在的交换芯片,在所述报文所属虚拟局域网下端口所在交换芯片包括指定的交换芯 片时,将报文广播到指定的交换芯片的属于报文所属虚拟局域网的所有端口 ;报文所属虚 拟局域网下端口所在的交换芯片,在接收未查到报文目的地址对应的端口查询结果时,将 报文广播到该交换芯片的属于报文所属虚拟局域网的所有端口,使报文广播转发。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
一种报文转发装置,其特征在于,包括交换芯片,用于对从设定虚拟局域网中设备接收的报文,不进行报文的源地址及交换芯片接收报文的端口学习,在第一介质访问控制地址表中未查到报文目的地址对应的端口时,将包括报文的源地址、目的地址及交换芯片接收报文的端口的信息发送到网络处理器,并根据所述网络处理器返回的查询结果转发报文;所述网络处理器,用于根据从所述交换芯片接收的信息,在第二介质访问控制地址表中查询与报文的目的地址对应的端口,将查询结果返回给所述交换芯片,并在报文的源地址未在第二介质访问控制地址表时,将报文的源地址及交换芯片接收报文的端口学习到所述第二介质访问控制地址表。
2. 如权利要求1所述的装置,其特征在于,该装置还包括报文流量获取单元,用于通过第一介质访问控制地址表及第二介质访问控制地址表获 得所述设定虚拟局域网中设备的报文流量;设备查询单元,用于在所述第一介质访问控制地址表及第二介质访问控制地址表,查 询报文流量从大到小的设定数量个设备的地址及其对应的端口;更新单元,用于将所述设备查询单元查询到的内容更新到所述第一介质访问控制地址 表预留的存储位置。
3. 如权利要求1或2所述的装置,其特征在于,所述交换芯片具体包括 第一转发单元,用于对从设定虚拟局域网中设备接收的报文,不进行报文的源地址及交换芯片接收报文的端口学习,在第一介质访问控制地址表中未查到报文目的地址对应的 端口时,将包括报文的源地址、目的地址及交换芯片接收报文的端口的信息发送到网络处 理器;第二转发单元,用于根据网络处理器返回的查询结果转发报文;第三转发单元,用于对从设定虚拟局域网中设备接收的报文,在所述第一介质访问控 制地址表中查到报文目的地址对应的端口时,将报文从所查找到的端口转发;第四转发单元,用于对不是从设定虚拟局域网中设备接收的报文,在所述第一介质访 问控制地址表中查询与报文目的地址对应的端口 ,根据查询结果进行报文转发;学习单元,用于对不是从设定虚拟局域网中设备接收的报文,在报文的源地址未在所 述第一介质访问控制地址表中时,将报文的源地址及交换机接收报文的端口学习到所述第 一介质访问控制地址表。
4. 如权利要求3所述的装置,其特征在于,所述第二转发单元,具体用于在所述网络处理器返回的查询结果为与报文目的地址对 应的端口时,将报文从所述对应的端口转发出去,在所述网络处理器返回的查询结果为未 查询到报文目的地址对应的端口时,将报文广播到报文所属的虚拟局域网下的所有端口 。
5. 如权利要求1或2所述的装置,其特征在于,所述交换芯片为一个交换芯片或多个互联的交换芯片,在交换芯片为多个互联的交换 芯片时,每个交换芯片具有各自的介质访问控制地址表,其中,指定的交换芯片外的每个交换芯片,具体用于将所述包括报文的源地址、目的地址及 交换芯片接收报文的端口的信息,经所述指定的交换芯片发送到网络处理器,并根据所述 指定的交换芯片返回的查询结果转发报文;所述网络处理器,具体用于将所述查询结果返回给所述指定的交换芯片; 所述指定的交换芯片,用于将自身及从其他交换芯片接收的包括报文的源地址、目的地址及交换芯片接收报文的端口的信息,发送给网络处理器,根据从网络处理器接收的查询结果进行查询结果转发及自身的报文转发。
6. 如权利要求5所述的装置,其特征在于,所述指定的交换芯片包括 第五转发单元,用于在从网络处理器接收的查询结果为与报文目的地址对应的端口时,将查询结果转发给所述对应的端口所在交换芯片,在所述端口所在交换芯片为指定的 交换芯片时,将报文从指定的交换芯片对应的端口转发;第六转发单元,用于在从网络处理器接收的查询结果为未查到报文目的地址对应的端 口时,将该查询结果广播到报文所属虚拟局域网下端口所在的交换芯片,在所述报文所属 虚拟局域网下端口所在交换芯片包括指定的交换芯片时,将报文广播到指定的交换芯片的 属于报文所属虚拟局域网的所有端口;报文所属虚拟局域网下端口所在的交换芯片,在接收未查到报文目的地址对应的端口 查询结果时,将报文广播到该交换芯片的属于报文所属虚拟局域网的所有端口。
7. —种网络设备,其特征在于 包括权利要求1 6任一所述的报文转发装置。
8. —种基于权利要求1所述装置的报文转发方法,其特征在于,包括 交换芯片对从设定虚拟局域网中设备接收的报文,不进行报文的源地址及交换芯片接收报文的端口学习,在第一介质访问控制地址表中未查到报文目的地址对应的端口时,将 包括报文的源地址、目的地址及交换芯片接收报文的端口的信息发送到网络处理器;所述网络处理器根据从所述交换芯片接收的信息,在第二介质访问控制地址表中查询 与报文目的地址对应的端口 ,将查询结果返回给所述交换芯片,并在报文的源地址未在第 二介质访问控制地址表时,将报文的源地址及交换芯片接收报文的端口学习到所述第二介 质访问控制地址表;所述交换芯片根据网络处理器返回的查询结果进行报文转发。
9. 如权利要求8所述的方法,其特征在于,该方法还包括通过第一介质访问控制地址表及第二介质访问控制地址表获得所述设定虚拟局域网 中设备的报文流量;在所述第一介质访问控制地址表及第二介质访问控制地址表,查询报文流量从大到小 的设定数量个设备的地址及其对应的端口;将所述查询到的内容更新到第一介质访问控制地址表预留的存储位置。
10. 如权利要求8或9所述的方法,其特征在于,还包括所述交换芯片对从设定虚拟局域网中设备接收的报文,在第一介质访问控制地址表中 查到报文目的地址对应的端口时,将报文从所查找到的端口转发;所述交换芯片对不是从设定虚拟局域网中设备接收的报文,在所述第一介质访问控制 地址表中查询与报文目的地址对应的端口 ,根据查询结果进行报文转发,并在报文的源地 址未在所述第一介质访问控制地址表中时,将报文的源地址及交换芯片接收报文的端口学 习到所述第一介质访问控制地址表。
11. 如权利要求8或9所述的方法,其特征在于,所述交换芯片为一个交换芯片或多个互联的交换芯片,在为多个互联的交换芯片时,其中一个指定的交换芯片与网络处理器进行通信,每个交换芯片具有各自的介质访问控制地址表,其中,每个交换芯片查询的第一介质访问控制地址表为其自身的介质访问控制地址表; 每个交换芯片通过所述指定的交换芯片将信息发送到网络处理器; 所述网络处理器将查询结果返回给交换芯片,具体为返回给所述指定的交换芯片; 所述交换芯片根据网络处理器返回的查询结果转发报文,具体包括 所述指定的交换芯片,根据从网络处理器接收的查询结果进行查询结果转发及自身的报文转发;其它交换芯片根据从所述指定交换芯片接收的查询结果进行报文转发。
全文摘要
本发明公开了一种报文转发装置、网络设备及方法,该装置包括交换芯片,用于对从设定VLAN中设备接收的报文,不进行地址学习,在第一介质访问控制地址表中未查到报文目的地址对应的端口时,将包括报文的源地址、目的地址及交换芯片接收报文的端口的信息发送到网络处理器,并根据返回的查询结果转发报文;网络处理器,用于根据从交换芯片接收的信息,在第二介质访问控制地址表中查询与报文的目的地址对应的端口,将查询结果返回给交换芯片,并在报文的源地址未在第二介质访问控制地址表时进行地址学习。本发明通过采用网络处理器协助交换芯片进行部分报文的地址学习及查表处理,扩展了MAC地址表容量,同时不影响报文转发装置转发性能和功能。
文档编号H04L12/46GK101719877SQ20101000125
公开日2010年6月2日 申请日期2010年1月15日 优先权日2010年1月15日
发明者王龙顺 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1