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

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

Info

Publication number
CN101719877B
CN101719877B CN2010100012547A CN201010001254A CN101719877B CN 101719877 B CN101719877 B CN 101719877B CN 2010100012547 A CN2010100012547 A CN 2010100012547A CN 201010001254 A CN201010001254 A CN 201010001254A CN 101719877 B CN101719877 B CN 101719877B
Authority
CN
China
Prior art keywords
message
exchange chip
access control
port
medium access
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
Application number
CN2010100012547A
Other languages
English (en)
Other versions
CN101719877A (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.)
Beijing Zhigu Tech Co Ltd
Original Assignee
Fujian Star Net Communication 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 Fujian Star Net Communication Co Ltd filed Critical Fujian Star Net Communication Co Ltd
Priority to CN2010100012547A priority Critical patent/CN101719877B/zh
Publication of CN101719877A publication Critical patent/CN101719877A/zh
Application granted granted Critical
Publication of CN101719877B publication Critical patent/CN101719877B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种报文转发装置、网络设备及方法,该装置包括:交换芯片,用于对从设定VLAN中设备接收的报文,不进行地址学习,在第一介质访问控制地址表中未查到报文目的地址对应的端口时,将包括报文的源地址、目的地址及交换芯片接收报文的端口的信息发送到网络处理器,并根据返回的查询结果转发报文;网络处理器,用于根据从交换芯片接收的信息,在第二介质访问控制地址表中查询与报文的目的地址对应的端口,将查询结果返回给交换芯片,并在报文的源地址未在第二介质访问控制地址表时进行地址学习。本发明通过采用网络处理器协助交换芯片进行部分报文的地址学习及查表处理,扩展了MAC地址表容量,同时不影响报文转发装置转发性能和功能。

Description

一种报文转发装置、网络设备及方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种可以扩展介质访问控制地址表容量的报文转发装置、网络设备及方法。
背景技术
在以太网中传输的报文都按照以太网帧格式进行传输,采用以太网帧格式的报文中包括源介质访问控制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:0A:fC:6D,报文从交换机的端口1进入,交换机接收到该报文后,从报文获得源MAC地址,并将包括源MAC地址00:d0:f8:0A:fC:6A及其对应的端口1的表项添加到MAC地址表;交换机获得报文的目的MAC地址为00:d0:f8:0A:fC:6D,查找MAC地址表,没有找到匹配的表项,将报文广播到端口2、3和4;设备2和设备3接收到源MAC地址为00:d0:f8:0A:fC:6A、目的MAC地址为00:d0:f8:0A:fC:6D的报文,发现报文目的MAC地址不是本设备,直接丢弃;设备4接收到该报文,并发现报文目的MAC地址是本设备,对报文进行处理。设备4要向设备1发送数据,它发出报文的源MAC地址为00:d0:f8:0A:fC:6D,目的MAC地址为00:d0:f8:0A:fC:6A,报文从交换机的端口4进入,交换机接收到该报文后,从报文获得源MAC地址,并将包括源MAC地址00:d0:f8:0A:fC:6D及其对应的端口4的表项添加到MAC地址表中;交换机获得报文的目的MAC地址:00:d0:f8:0A:fC:6A,查找MAC地址表,找到匹配表项(前面已经学习到),该目的MAC地址对应的端口为1,因此报文不需要广播到端口1、2和3,而是直接从端口1发送出去。此时,因为已经学习到设备4的MAC地址对应的端口,后续由设备1到设备4的报文就不需要广播,交换机就可以直接发送到端口4。
可见,随着交换机利用接收报文不断进行地址学习,MAC地址表占据的存储空间会越来越大。然而,交换机中预留的MAC地址表容量是有限的,目前主流高端交换芯片MAC地址表容量为16K~32K,如果和交换机连接的设备超过交换机MAC地址表容量,先学习到的地址把内部MAC地址表表项占满,后学习到的地址就无法加入到交换芯片的MAC地址表中,导致发往这些地址的报文都无法找到匹配表项而被广播到各个端口。如果交换机连接的设备较多,在实现全部设备MAC地址添加到MAC地址表所需的MAC地址表容量,大大超过交换机预留的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管理VLAN1-10,交换芯片管理VLAN11-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所示,本实施例中交换芯片具体包括:第一转发单元,用于对从设定虚拟局域网中设备接收的报文,不进行报文的源地址及交换芯片接收报文的端口学习,在第一介质访问控制地址表中未查到报文目的地址对应的端口时,将包括报文的源地址、目的地址及交换芯片接收报文的端口的信息发送到网络处理器;第二转发单元,用于根据网络处理器返回的查询结果转发报文;第三转发单元,用于对从设定虚拟局域网中设备接收的报文,在所述第一介质访问控制地址表中查到报文目的地址对应的端口时,将报文从所查找到的端口转发;第四转发单元,用于对不是从设定虚拟局域网中设备接收的报文,在所述第一介质访问控制地址表中查询与报文目的地址对应的端口,根据查询结果进行报文转发;学习单元,用于对不是从设定虚拟局域网中设备接收的报文,在报文的源地址未在所述第一介质访问控制地址表中时,将报文的源地址及交换机接收报文的端口学习到所述第一介质访问控制地址表。所述第二转发单元,具体用于在所述网络处理器返回的查询结果为与报文目的地址对应的端口时,将报文从所述对应的端口转发出去,在所述网络处理器返回的查询结果为未查询到报文目的地址对应的端口时,将报文广播到报文所属的虚拟局域网下的所有端口。
如图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地址,因此设定VLAN中流量最大的报文传输在交换芯片内完成,不需要网络处理器处理。
可见,本发明通过动态发现网络处理器管理的VLAN流量最大的前几个MAC地址(可以多个),把报文流量最大的前几个MAC地址及对应端口添加到交换芯片中,让报文流量最大设备传输的报文在交换芯片内完成查表转发,不需要经过网络处理器处理,保证让尽可能少的报文在网络处理器处理,从而进一步提升了交换机整机的性能。
本实施例中所采用的交换芯片为一个交换芯片或多个互联的交换芯片,采用一个交换芯片时,其与网络处理器的连接如图6a所示,采用多个互联的交换芯片时,其与网络处理的连接如图6b和图6c,图6b中,实际上网络处理只和交换芯片1直接连接,交换芯片1又和所有交换芯片2~4连接,图6c中,网络处理器和所有的交换芯片1~4连接,本实施例中,对于多个交换芯片互联的情况,指定其中交换芯片与网络处理器进行通信,每个交换芯片内部具有其本身的介质访问控制地址表,其中,
每个交换芯片对从设定虚拟局域网中设备接收的报文,在其本身的介质访问控制地址表中未查到报文目的地址对应的端口时,通过指定的交换芯片将包括报文及交换芯片接收报文的端口信息发送到网络处理器的,所述信息还可以包括交换芯片转发报文需要的其它原始信息;
网络处理器根据从指定交换芯片接收的信息,在第二介质访问控制地址表中查询与报文的目的地址对应的端口,将查询结果返回给指定交换芯片,并在报文的源地址未在第二介质访问控制地址表时,将报文的源地址及交换芯片接收报文的端口学习到所述第二介质访问控制地址表;
指定的交换芯片接收网络处理器返回的查询结果后,进行查询结果转发及自身的报文转发;其它交换芯片根据从所述指定交换芯片接收的查询结果进行报文转发。具体为,指定的交换芯片在从网络处理器接收的查询结果为与报文目的地址对应的端口时,将查询结果转发给所述对应的端口所在的交换芯片,在所述端口所在交换芯片为指定的交换芯片时,将报文从指定的交换芯片对应的端口转发。指定的交换芯片在从网络处理器接收的查询结果为未查到报文目的地址对应的端口时,将该查询结果广播到报文所属虚拟局域网下端口所在的交换芯片,在所述报文所属虚拟局域网下端口所在交换芯片包括指定的交换芯片时,将报文广播到指定的交换芯片的属于报文所属虚拟局域网的所有端口;报文所属虚拟局域网下端口所在的交换芯片,在接收未查到报文目的地址对应的端口查询结果时,将报文广播到该交换芯片的属于报文所属虚拟局域网的所有端口,使报文广播转发。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (11)

1.一种报文转发装置,其特征在于,包括:
交换芯片,用于对从设定虚拟局域网中设备接收的报文,不进行报文的源地址及交换芯片接收报文的端口学习,在第一介质访问控制地址表中未查到报文目的地址对应的端口时,将包括报文的源地址、目的地址及交换芯片接收报文的端口的信息发送到网络处理器,并根据所述网络处理器返回的查询结果转发报文;
所述网络处理器,用于根据从所述交换芯片接收的信息,在第二介质访问控制地址表中查询与报文的目的地址对应的端口,将查询结果返回给所述交换芯片,并在报文的源地址未在第二介质访问控制地址表时,将报文的源地址及交换芯片接收报文的端口学习到所述第二介质访问控制地址表。
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所述的方法,其特征在于,所述交换芯片为一个交换芯片或多个互联的交换芯片,在为多个互联的交换芯片时,其中一个指定的交换芯片与网络处理器进行通信,每个交换芯片具有各自的介质访问控制地址表,其中,
每个交换芯片查询的第一介质访问控制地址表为其自身的介质访问控制地址表;
每个交换芯片通过所述指定的交换芯片将包括报文的源地址、目的地址及交换芯片接收报文的端口的信息发送到网络处理器;
所述网络处理器将查询结果返回给交换芯片,具体为返回给所述指定的交换芯片;
所述交换芯片根据网络处理器返回的查询结果转发报文,具体包括:
所述指定的交换芯片,根据从网络处理器接收的查询结果进行查询结果转发及自身的报文转发;其它交换芯片根据从所述指定交换芯片接收的查询结果进行报文转发。
CN2010100012547A 2010-01-15 2010-01-15 一种报文转发装置、网络设备及方法 Active CN101719877B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010100012547A CN101719877B (zh) 2010-01-15 2010-01-15 一种报文转发装置、网络设备及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010100012547A CN101719877B (zh) 2010-01-15 2010-01-15 一种报文转发装置、网络设备及方法

Publications (2)

Publication Number Publication Date
CN101719877A CN101719877A (zh) 2010-06-02
CN101719877B true CN101719877B (zh) 2011-11-09

Family

ID=42434396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010100012547A Active CN101719877B (zh) 2010-01-15 2010-01-15 一种报文转发装置、网络设备及方法

Country Status (1)

Country Link
CN (1) CN101719877B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102694714B (zh) * 2011-03-21 2015-01-21 华为技术有限公司 Trill网络中发送报文的方法、装置、系统以及非转发网桥
WO2012106905A1 (zh) * 2011-07-20 2012-08-16 华为技术有限公司 报文处理方法及装置
CN102394825B (zh) * 2011-11-04 2014-11-05 华为技术有限公司 报文的处理方法及装置
CN102413061B (zh) * 2011-12-31 2015-04-15 杭州华三通信技术有限公司 一种报文传输方法及设备
CN102904803B (zh) * 2012-09-27 2016-11-16 杭州华三通信技术有限公司 一种报文传输方法和设备
CN104079478B (zh) 2013-03-25 2017-06-16 新华三技术有限公司 报文转发方法和装置
CN103532850B (zh) * 2013-09-29 2017-05-24 福建星网锐捷网络有限公司 一种上行报文转发方法、装置及接入点ap设备
CN104702477B (zh) * 2013-12-06 2019-04-05 中兴通讯股份有限公司 一种实现隧道保护的方法及装置、网络设备
CN104113479B (zh) * 2014-07-02 2018-01-23 福建三元达网络技术有限公司 一种扩展mac地址表容量的方法及其装置
CN104125150A (zh) * 2014-07-22 2014-10-29 福建星网锐捷网络有限公司 一种协议报文处理方法、装置及系统
CN104601463B (zh) * 2015-02-28 2018-03-06 新华三技术有限公司 一种vxlan网络中报文转发方法及装置
CN104780089B (zh) * 2015-04-17 2018-07-24 新华三技术有限公司 报文隔离方法以及装置
CN107493234B (zh) * 2016-06-12 2021-01-29 阿里巴巴集团控股有限公司 一种基于虚拟网桥的报文处理方法以及装置
CN109286564B (zh) * 2017-07-20 2022-06-07 迈普通信技术股份有限公司 一种报文转发方法及装置
CN107483371B (zh) * 2017-09-21 2019-11-05 迈普通信技术股份有限公司 一种mac地址管理方法及业务板卡
CN111224964A (zh) * 2019-12-30 2020-06-02 北京三快在线科技有限公司 访问控制方法及设备
CN112217670A (zh) * 2020-09-29 2021-01-12 北京东土军悦科技有限公司 网络设备及网络设备的报文处理方法
CN112769701A (zh) * 2020-12-30 2021-05-07 杭州迪普信息技术有限公司 一种转发报文的方法及装置
CN112996077B (zh) * 2021-02-23 2022-07-12 新华三技术有限公司 报文处理方法及装置
CN113595909A (zh) * 2021-07-05 2021-11-02 杭州迪普科技股份有限公司 报文处理方法、网络认证设备及网卡芯片
CN115297069A (zh) * 2022-07-29 2022-11-04 中国电信股份有限公司 Evpn网络设备及mac地址学习方法、通信系统

Also Published As

Publication number Publication date
CN101719877A (zh) 2010-06-02

Similar Documents

Publication Publication Date Title
CN101719877B (zh) 一种报文转发装置、网络设备及方法
CN101577722B (zh) 实现强制mac转发功能的方法和装置
CN102413061B (zh) 一种报文传输方法及设备
CN102394819B (zh) 一种trill网络中指定vlan转发者的选举方法和装置
CN102263704B (zh) 一种支持数据中心二层互联的拓扑构建方法和装置
CN101160902B (zh) 数据转发方法及交换设备
CN101616014B (zh) 一种实现跨虚拟专用局域网组播的方法
CN104954265B (zh) 发送组播报文的方法及交换机
CN102457386B (zh) 一种通信设备的双向pim中组播报文转发方法和通信设备
CN102413060B (zh) Vpls网络中用户专线通信方法及设备
CN101094155B (zh) 建立IPv6隧道的方法、IPv6隧道通信方法及IPv4边缘设备
CN103841037B (zh) 组播报文转发的方法及设备
CN103685006A (zh) 一种在边缘设备上的报文转发方法和边缘设备
CN105812259A (zh) 一种报文转发方法和设备
CN102859973A (zh) 一种地址解析的方法,装置和系统
CN100563215C (zh) 一种报文路由交换装置及其方法
CN102984070B (zh) 一种以太网无编号接口实现数据转发的方法
CN101808004A (zh) 一种实现任意播汇聚点机制的方法和系统
WO2022121466A1 (zh) 以太虚拟专用网的数据处理方法、设备及存储介质
WO2020220459A1 (zh) 基于VXLAN和OpenFlow的虚拟家庭网络共享方法及系统
CN102318290B (zh) 报文转发方法和装置
CN102064999B (zh) 实现组播报文转发的方法和组播报文转发设备
CN100484055C (zh) 跨虚拟局域网组播的实现方法
CN101924698B (zh) 基于ip单播路由的二层域负载均衡方法、系统和设备
CN103354567B (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
ASS Succession or assignment of patent right

Owner name: BEIJING Z-GOOD TECHNOLOGY SERVICE CO., LTD.

Free format text: FORMER OWNER: FUJIAN XINGWANGRUIJIE NETWORK CO., LTD.

Effective date: 20141028

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 350002 FUZHOU, FUJIAN PROVINCE TO: 100085 HAIDIAN, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20141028

Address after: 100085 Beijing city Haidian District No. 33 Xiaoying Road 1 1F06 room

Patentee after: BEIJING ZHIGU TECHNOLOGY SERVICES CO., LTD.

Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park building 19#

Patentee before: Fujian Xingwangruijie Network Co., Ltd.

EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20100602

Assignee: Fujian Xingwangruijie Network Co., Ltd.

Assignor: BEIJING ZHIGU TECHNOLOGY SERVICES CO., LTD.

Contract record no.: 2014990000855

Denomination of invention: Message forwarding device, network equipment and method

Granted publication date: 20111109

License type: Common License

Record date: 20141105

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model