一种报文发送方法及二三层网络设备与流程

文档序号:14391962阅读:354来源:国知局
一种报文发送方法及二三层网络设备与流程

本发明涉及有线通信领域,尤其涉及一种报文发送方法及二三层网络设备。



背景技术:

对于企业网络来说,随着使用人数和业务的增加,其对网络带宽和网络可扩展性的要求会越来越高,因此需要根据实际情况,对网络进行升级或者扩展。根据需求,需要提升网速、增加网络可靠性或因业务需要接入不同网络的这些场景下,需要使用到多个对外的三层口。在网络内部,需要根据相应的应用,划分多个相互独立的子网,子网之间的通信需求可灵活配置。

如图1所示,网络设备上有多个端口,与对外网络连接的端口是三层口,连接用户和内部子网的端口是二层口。比如,图1中端口1、2、3、4是二层口,端口5、6是三层口。

目前在低成本交换芯片+网络处理器的硬件方案上,进行二三层端口隔离方案主要有两种:port-based(基于端口的)vlan(virtuallocalareanetwork,虚拟局域网)隔离和利用802.1q协议进行固定隔离。其中,采用交换芯片的port-basevlan功能进行隔离的主要实现原理为,将各端口都设置为trunk口(中继端口),并且为每个端口分配一个bitmap(位图),bitmap中的每一位表示该端口是否可以投递报文到目的端口的开关。进行三层隔离时,只需将要设置为三层口的bitmap从其他端口中去除,使其只和cpu(centralprocessingunit,中央处理器)口通信。但是二层口之间由于各端口都是trunk口,且不受802.1q协议的控制,使二层口之间无法灵活的划分子网。因此,该方案可以灵活的划分出三层口,但是,在二层口的配置上存在极大的限制。并且在二层转发过程中,如果两个端口加入了不同的vlan,硬件层面无法互通,两个端口的所有报文转发都需要上送到cpu,而cpu的处理能力有限,无法达到硬件线速,影响报文收发速率。

利用802.1q协议进行固定隔离的方法,其模型即为经典路由器的配置模型,主要原理是将网络设备中的cpu口和二层口划分到同一个vlan,将cpu口和三层口划分到同一个vlan。二层口之间转发由交换芯片根据vlan表和mac地址表进行,二层口到三层口之间的流量转发由cpu进行转发。但是,该模型下由于二层口和三层口下都无法处理带vlantag的报文或三层口需要和cpu口进行配置强绑定,在网络应用中会受到极大的限制,无法满足下述网络扩展需求:无法在三层口下进行二层拓展,无法在二层口下进行扩展,二层口和三层口之间无法进行动态切换。



技术实现要素:

本申请提供一种报文发送方法及二三层网络设备,能够动态配置二三层网络设备中二层口和三层口的数量,并且可以自由扩展二层口、三层口网络拓扑,同时保证报文正确收发和报文收发速率。

为达到上述目的,本申请采用如下技术方案:

第一方面,本申请提供一种报文发送方法,应用于二三层网络设备,所述二三层网络设备包括交换芯片和中央处理器cpu,所述交换芯片包括n个端口,n大于等于三,每个端口被设置为中继端口trunk口模式,且每个端口具有各自的虚拟局域网标识vlanid;该方法可以包括:

所述交换芯片从端口接收报文,其中包括目的媒体访问控制地址mac地址;所述交换芯片若确定所述报文没有携带虚拟局域网标签vlantag,则为所述报文添加vlantag,其中,所述vlantag中包括vlanid;所述交换芯片根据所述报文的vlantag和目的mac地址查询地址表确定所述报文的目的端口,若所述目的端口为所述cpu口,则将所述报文发送至所述cpu的驱动模块;所述cpu的驱动模块接收所述交换芯片发送的报文;所述cpu的驱动模块若确定接收的报文中的vlantag的vlanid为专属vlanid,则剥掉所述报文的vlantag,并将剥掉vlantag后的报文发送至所述cpu的上层模块。

第二方面,本申请提供一种报文发送方法,应用于二三层网络设备,所述二三层网络设备包括交换芯片和中央处理器cpu,所述交换芯片包括n个端口,n大于等于三,每个端口被设置为中继端口trunk口模式,且每个端口具有各自的vlanid;该方法可以包括:

所述cpu的驱动模块接收所述cpu的上层模块发送的报文,其中包括目的mac地址;所述cpu的驱动模块若确定所述报文没有携带vlantag,则为所述报文添加vlantag,其中,所述vlantag中包括vlanid;所述交换芯片接收所述cpu的驱动模块发送的报文,根据所述报文的vlantag和目的mac地址查询地址表确定所述报文的目的端口,将所述报文发送至所述报文的目的端口。

第三方面,本申请提供一种二三层网络设备,该二三层网络设备包括:交换芯片和中央处理器cpu,所述交换芯片包括n个端口,n大于等于三,每个端口被设置为中继端口trunk口模式,且每个端口具有各自的vlanid;

所述交换芯片,用于从端口接收报文,所述报文中包括目的mac地址;所述交换芯片,还用于确定接收的报文是否携带vlantag;所述交换芯片,还用于若确定所述报文没有携带vlantag,则为所述报文添加vlantag,其中,所述vlantag中包括vlanid;所述交换芯片,还用于根据所述报文的vlantag和目的mac地址查询地址表确定所述报文的目的端口,若所述目的端口为所述cpu口,则将所述报文发送至所述cpu;所述cpu的驱动模块,用于接收所述交换芯片发送的报文;所述cpu的驱动模块,还用于确定接收的报文中的vlantag的vlanid是否为专属vlanid;所述cpu的驱动模块,还用于若确定接收的报文中的vlantag的vlanid为专属vlanid,则剥掉所述报文的vlantag,并将剥掉vlantag后的报文发送至所述cpu的上层模块。

第四方面,本申请提供一种二三层网络设备,该二三层网络设备包括:交换芯片和中央处理器cpu,所述交换芯片包括n个端口,n大于等于三,每个端口被设置为中继端口trunk口模式,且每个端口具有各自的vlanid;

所述cpu的驱动模块,用于接收所述cpu的上层模块发送的报文,其中包括目的mac地址;所述cpu的驱动模块,还用于确定所述报文是否携带vlantag;所述cpu的驱动模块,还用于若确定所述报文没有携带vlantag,则为所述报文添加vlantag,其中,所述vlantag中包括vlanid;所述交换芯片,用于接收所述cpu的驱动模块发送的报文,根据所述报文的vlantag和目的mac地址查询地址表确定所述报文的目的端口,将所述报文发送至所述报文的目的端口。

第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括计算机执行指令,当该二三层网络设备的处理单元执行该计算机执行指令时,该二三层网络设备执行上述第一方面及其各种可选的实现方式中任意之一所述的报文发送方法。

第六方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括计算机执行指令,当该二三层网络设备的处理单元执行该计算机执行指令时,该二三层网络设备执行上述第二方面及其各种可选的实现方式中任意之一所述的报文发送方法。

第七方面,本申请提供一种有线通信网络,该有线通信网络包括用户、对外网络和第三方面或第四方面及其各种可选的实现方式中任意之一所述的二三层网络设备。

本申请提供的报文发送方法及二三层网络设备,通过设置不用于vlan配置的专属vlanid,将三层口隔离,并在报文收发过程中根据报文是否携带vlantag对于报文特殊处理,能够动态配置二三层网络设备中二层口和三层口的数量,并且可以自由扩展二层口、三层口网络拓扑,同时保证报文正确收发和报文收发速率。

附图说明

图1为一种有线通信网络示意图;

图2为一种二三层网络设备示意图;

图3为本发明实施例提供的报文发送方法示意图一;

图4为本发明实施例提供的报文发送方法示意图二;

图5为本发明实施例提供的二三层网络设备的结构示意图一;

图6为本发明实施例提供的二三层网络设备的结构示意图二;

图7为本发明实施例提供的二三层网络设备的结构示意图三。

具体实施方式

下面结合附图对本发明实施例提供的报文发送方法及二三层网络设备进行详细地描述。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。

本发明的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。

此外,本发明的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。在本发明的描述中,除非另有说明,“多个”的含义是指两个或两个以上。

本发明实施例提供的报文发送方法,可以应用于图2所示的二三层网络设备中。如图2所示,二三层网络设备包括交换芯片和cpu,交换芯片包括6个端口p0-p5,其中端口p0为cpu口,负责交换芯片和cpu的通信。需要说明的是,图2中二三层网络设备包括6个端口,在实际应用中,二三层网络设备当然也可以包括其它个数的端口,只要大于等于3个,本发明实施例对此不进行限定。

可选的,二三层网络设备的每个端口设置为中继端口trunk口模式,且每个端口具有各自的vlanid;其中,除cpu口外的5个端口中,包括第一类端口和/或第二类端口和/或第三类端口。

通常在划分vlan时,vlanid可以为1-4094其中任意一个。vlanid就代表设备属于的vlan。可以将n个vlanid设定为专属vlanid,所述n个vlanid不参与虚拟局域网的网络配置,n等于交换芯片的端口数。示例性的,将4094开始往下占用6个vlanid(4094、4093、4092、4091、4090、4089)作为专属vlanid,在为二层口进行vlan隔离进行虚拟局域网的网络配置时,不使用这6个vlanid。p0端口是cpu口,固定不变。p1-p5可以根据需要配置为第一类端口、第二类端口或第三类端口。第一类端口的vlanid为专属vlanid,第二类端口包括主接口和子接口,在一种配置方式下,第二类端口的主接口配置为二层口,根据配置的vlanid划分所属vlan;在另一种配置方式下,第三类端口包括主接口和子接口,第三类端口的主接口的vlanid配置为专属vlanid,第三类端口的子接口配置为二层口,根据配置的vlanid划分所属vlan。

进一步的,二三层网络设备上维护一个vlan表,所述vlan表包含交换芯片上所有端口中每个端口的标识,以及与每个端口对应的属性信息;其中,属性信息用于指示每个端口的种类,每个端口可以被配置为第一类端口、第二类端口或第三类端口。

可选的,以图2中二三层网络设备为例,将交换芯片的端口配置为第一类端口、第二类端口或第三类端口的方法可以包括:接收用户输入的配置信息,所述配置信息包括至少一个端口的至少一个属性信息;根据配置信息配置对应端口的属性信息。需要说明的是,cpu口是固定功能的端口,用户下发的配置信息不包括修改cpu口的端口类型。

可选的,在二三层网络设备初始化时,cpu中的驱动为交换芯片的每个端口分配专属vlanid,填入各端口的portvlan寄存器中,并下发只允许转发各端口专属vlan内报文的vlan表,使得各端口之间相互隔离。示例性的,驱动下发如表1所示的vlan表。其中,p0端口的vlanid为4094,只能转发vlan4094内的报文;p1端口的vlanid为4093,只能转发vlan4093内的报文;p2端口的vlanid为4092,只能转发vlan4092内的报文;p3端口的vlanid为4091,只能转发vlan4091内的报文;p4端口的vlanid为4090,只能转发vlan4090内的报文;p5端口的vlanid为4089,只能转发vlan4089内的报文。

表1

可选的,在二三层网络设备初始化成功后,可以通过下发vlan表将所有非cpu口设置为第一类端口;当然也可以根据用户输入的配置信息来生成vlan表,如果配置信息中包括的端口对应的属性信息为第一类端口,则将配置信息中包括的端口配置为第一类端口。示例性的,将除cpu口之外的所有端口都设置为第一类端口,可以下发如表2所示的vlan表。表2中p0、p1、p2、p3、p4、p5分配不同的vlanid,每个vlanid都属于专属vlanid的范围,p1、p2、p3、p4、p5互相隔离,并且p1、p2、p3、p4、p5每个端口都可以与p0通信,所有非p0专属vlan内的报文在通过p0发送给cpu时,都需要添加vlantag后再发送。

表2

可选的,可以根据用户输入的配置信息来生成vlan表,如果配置信息中包括的端口对应的属性信息为第二类端口,则将配置信息中包括的端口配置为第二类端口。可选的,第二类端口的主接口为二层口,可以在生成vlan表的同时将主接口封装的vlanid填入portvlan寄存器中。示例性的,将除cpu口之外的所有端口配置为第二类端口,所有第二类端口配置到vlan1,vlan表如表3所示。

表3

需要说明的是,表3中以所有第二类端口配置到vlan1为例,实际应用中,也可以将第二类端口配置到不同的vlan,比如,p1、p2配置到vlan1,p3、p4、p5配置到vlan2,实现二层隔离,本发明实施例对此不进行限定。

可选的,可以根据用户输入的配置信息来生成vlan表,如果配置信息中包括的端口对应的属性信息为第三类端口,则将配置信息中包括的端口配置为第三类端口。第三类端口的主接口分配专属vlanid,子接口进行二层转发。示例性的,将p1、p2、p3、p4、p5配置为第三类端口,p1、p2、p3、p4、p5的主接口分配专属vlanid,p1、p2、p3、p4、p5的子接口在vlan1进行二层转发,可以保持portvlan寄存器的值不变,在相应的vlan下发vlan表,如表4所示。

表4

需要说明的是,表4中以所有第三类端口的子接口配置到vlan1为例,实际应用中,也可以将第三类端口的子接口配置到不同的vlan,比如,p1、p2的子接口配置到vlan1,p3、p4、p5的子接口配置到vlan2,实现二层隔离,本发明实施例对此不进行限定。

需要说明的是,上述表2、表3、表4是以将除cpu口之外的所有端口配置为同一类端口为例,实际应用中,可以将除cpu口之外的端口设置为不同类的端口,本发明实施例对交换芯片中具体每种种类的端口个数不限定;用户每次输入的配置信息中可以包括任意n-1个端口(不包括cpu口),本发明实施例对次不进行限定。

根据上述方法,用户可以根据需要下发配置信息,将端口设置为第一类端口、第二类端口或第三类端口,实现对二三层网络设备的动态配置,使端口自由的切换为二层口或三层口,在所述二三层网络设备下,可以自由扩展网络拓扑,降低组网成本。

本发明实施例提供一种报文发送方法,应用于图2所示的二三层网络设备中,如图3所示,该方法可以包括s301-s309:

s301、交换芯片从端口接收报文。

具体的,交换芯片从端口接收到报文,其中包括报文需要发送的目的mac(mediumaccesscontrol,媒体访问控制)地址。需要说明的是,由于交换芯片的所有端口设置为trunk口模式,每个端口都可以接收所有类型的报文(比如,taged报文或untaged报文)。

s302、交换芯片判断所述报文是否携带vlantag。

具体的,taged报文为携带vlantag的报文,untaged报文为不携带vlantag的报文。vlantag中包括vlanid。

示例性的,当交换芯片的端口配置为如表2所示的端口类型,p0为cpu口,p1-p5为互相隔离的三层口;交换芯片从p1-p5端口接收的报文是untaged报文。当交换芯片的端口配置为如表3所示的端口类型,p1-p5为属于vlan1的二层口;交换芯片从p1-p5端口接收的报文是untaged报文。当交换芯片的端口配置为如表4所示的端口类型,p1-p5为三层口,每个三层口下包括二层转发子网;交换芯片从p1-p5端口接收的报文可能包含untaged报文或taged报文,其中taged报文的vlantag中的vlanid为vlan1。

s303、交换芯片若确定所述报文没有携带vlantag,则为所述报文添加vlantag。

具体的,若所述报文的接收端口为第一类端口,则为所述报文添加的vlantag中的vlanid为所述专属vlanid;或者,

若所述报文的接收端口为第二类端口或第三类端口,则为所述报文添加的vlantag中的vlanid为所述第二类端口或第三类端口的主端口的vlanid。

示例性的,当二三层网络设备中的vlan表如表2中配置,从p1-p5端口接收的报文不包括vlantag,则为报文添加vlantag,其中vlantag中的vlanid为专属vlanid,比如p1端口接收的报文添加的vlantag中的vlanid为4093。当二三层网络设备中的vlan表如表3中配置,从p1-p5端口接收的报文不包括vlantag,则为报文添加vlantag,其中vlantag中的vlanid为给端口所配置的vlanid。当二三层网络设备中的vlan表如表4中配置,从p1-p5端口接收的报文可能包括vlantag,也可能不包括vlantag。如果从p1-p5端口接收的报文包括vlantag,则保持vlantag不变。如果从p1-p5端口接收的报文不包括vlantag,则为报文添加vlantag,其中vlantag中的vlanid为主接口的vlanid,比如p1端口接收的报文添加的vlantag中的vlanid为4093。

s304、交换芯片根据报文的vlantag和目的mac地址查询地址表确定报文的目的端口。

具体的,如果交换芯片根据报文的vlantag和目的mac地址查询地址表确定报文的目的端口为非cpu口,则说明为二层转发,执行s305;如果交换芯片根据报文的vlantag和目的mac地址查询地址表确定报文的目的端口为cpu口,则说明为三层转发,执行s306。

s305、交换芯片直接将报文发送至目的端口。

s306、交换芯片将报文经过cpu口发送至cpu的驱动模块。

s307、cpu的驱动模块判断交换芯片发送的报文中的vlantag的vlanid。

具体的,cpu的驱动模块若确定接收的报文中的vlantag的vlanid为专属vlanid,则执行s308;否则,执行s309。

s308、cpu的驱动模块剥掉报文的vlantag。

具体的,cpu的驱动模块剥掉报文的vlantag之后,执行s309。

s309、cpu的驱动模块将报文发送至cpu的上层模块。

本发明实施例提供的报文发送方法,应用在一种二三层网络设备中,在报文接收过程中根据报文是否携带vlantag对于报文特殊处理,能够支持二三层网络设备动态配置二层口和三层口的数量,并且支持自由扩展二三层网络设备中二层口、三层口网络拓扑,同时保证报文正确收发和报文收发速率。

本发明实施例提供一种报文发送方法,应用于图2所示的二三层网络设备中,如图4所示,该方法可以包括s401-s406:

s401、cpu的驱动模块从cpu的上层模块接收报文。

具体的,cpu的驱动模块从cpu的上层模块接收的报文中包括报文需要发送的目的mac地址。

s402、cpu的驱动模块判断报文是否携带vlantag。

具体的,如果报文没有携带vlantag,则执行s403,否则执行s404。

s403、cpu的驱动模块为报文添加vlantag。

具体的,vlantag中包括vlanid。

可选的,若确定报文的目的端口为第一类端口,则为报文添加的vlantag中的vlanid为所述目的端口的专属vlanid;或者,若确定报文的目的端口为第二类端口或第三类端口,则为报文添加的vlantag中的vlanid为目的端口的主接口的vlanid。

示例性的,cpu的驱动模块对报文的处理方式如表5所示。

表5

在cpu的驱动模块为报文添加vlantag之后,执行s404。

s404、cpu的驱动模块将包含vlantag的报文发送至交换芯片。

s405、交换芯片根据报文的vlantag和目的mac地址查询地址表确定报文的目的端口。

s406、交换芯片将报文发送至目的端口。

本发明实施例提供的报文发送方法,应用在一种二三层网络设备中,在报文发送过程中根据报文是否携带vlantag对于报文特殊处理,能够支持二三层网络设备动态配置二层口和三层口的数量,并且支持自由扩展二三层网络设备中二层口、三层口网络拓扑,同时保证报文正确收发和报文收发速率。

上述主要从二三层网络设备的角度对本发明实施例提供的方案进行了介绍。可以理解的是,二三层网络设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的二三层网络设备及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本发明实施例可以根据上述方法示例对二三层网络设备进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本发明实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

本发明实施例提供一种二三层网络设备,在采用对应各个功能划分各个功能模块的情况下,图5示出了上述实施例中所涉及的二三层网络设备的一种可能的结构示意图。该二三层网络设备包括交换芯片501、cpu502,所述交换芯片501包括n个端口,n大于等于三,每个端口被设置为中继端口trunk口模式,且每个端口具有各自的vlanid;

所述交换芯片501,用于从端口接收报文,所述报文中包括目的mac地址;

所述交换芯片501,还用于确定接收的报文是否携带vlantag;

所述交换芯片501,还用于若确定所述报文没有携带vlantag,则为所述报文添加vlantag,其中,所述vlantag中包括vlanid;

所述交换芯片501,还用于根据所述报文的vlantag和目的mac地址查询地址表确定所述报文的目的端口,若所述目的端口为所述cpu口,则将所述报文发送至所述cpu;

所述cpu502的驱动模块,用于接收所述交换芯片发送的报文;

所述cpu502的驱动模块,还用于确定接收的报文中的vlantag的vlanid是否为专属vlanid;

所述cpu502的驱动模块,还用于若确定接收的报文中的vlantag的vlanid为专属vlanid,则剥掉所述报文的vlantag,并将剥掉vlantag后的报文发送至所述cpu的上层模块。

可选的,所述n个端口中包括一个cpu口,所述cpu口为所述交换芯片和所述cpu的通信端口,除所述cpu口外的n-1个端口中,被配置为以下任意一种端口:第一类端口、第二类端口和第三类端口;所述第一类端口的vlanid为专属vlanid;所述第二类端口包括主接口和子接口,所述第二类端口的主接口配置为二层口,根据配置的vlanid划分所属vlan;所述第三类端口包括主接口和子接口,所述第三类端口的主接口的vlanid为专属vlanid,所述第三类端口的子接口配置为二层口,根据配置的vlanid划分所属vlan。

可选的,所述交换芯片501若确定所述报文没有携带vlantag,则为所述报文添加vlantag,包括:

所述交换芯片501若确定所述报文的接收端口为第一类端口,则为所述报文添加的vlantag中的vlanid为所述专属vlanid;或者,

所述交换芯片501若确定所述报文的接收端口为第二类端口或第三类端口,则为所述报文添加的vlantag中的vlanid为所述第二类端口或第三类端口的主接口的vlanid。

可选的,结合图5,如图6所示,所述二三层网络设备还包括维护模块503、接收模块504和配置模块505:

所述维护模块503,用于维护vlan表,所述vlan表包含所述n个端口中每个端口的标识,以及与每个端口对应的属性信息;所述属性信息用于指示所述端口的种类;

所述接收模块504,用于接收用户输入的配置信息,所述配置信息包括至少一个端口的至少一个属性信息;

所述配置模块505,用于根据所述接收模块接收的配置信息配置对应端口的属性信息。

可选的,所述专属vlanid属于第一数值范围,所述第一数值范围内的vlanid不参与网络的vlan配置。

本发明实施例提供的二三层网络设备,在报文接收过程中根据报文是否携带vlantag对于报文特殊处理,能够支持动态配置二三层网络设备的二层口和三层口的数量,并且支持自由扩展二三层网络设备中二层口、三层口网络拓扑,同时保证报文正确收发和报文收发速率。

本发明实施例提供一种二三层网络设备,在采用对应各个功能划分各个功能模块的情况下,图7示出了上述实施例中所涉及的二三层网络设备的一种可能的结构示意图。包括:交换芯片701和cpu702,所述交换芯片701包括n个端口,n大于等于三,每个端口被设置为中继端口trunk口模式,且每个端口具有各自的vlanid;

所述cpu702的驱动模块,用于接收所述cpu的上层模块发送的报文,其中包括目的mac地址;

所述cpu702的驱动模块,还用于确定所述报文是否携带vlantag;

所述cpu702的驱动模块,还用于若确定所述报文没有携带vlantag,则为所述报文添加vlantag,其中,所述vlantag中包括vlanid;

所述交换芯片701,用于接收所述cpu702的驱动模块发送的报文,根据所述报文的vlantag和目的mac地址查询地址表确定所述报文的目的端口,将所述报文发送至所述报文的目的端口。

可选的,所述n个端口中包括一个cpu口,所述cpu口为所述交换芯片和所述cpu的通信端口,除所述cpu口外的n-1个端口中,被配置为以下任意一种端口:第一类端口、第二类端口和第三类端口;所述第一类端口的vlanid为专属vlanid;所述第二类端口包括主接口和子接口,所述第二类端口的主接口配置为二层口,根据配置的vlanid划分所属vlan;所述第三类端口包括主接口和子接口,所述第三类端口的主接口的vlanid为专属vlanid,所述第三类端口的子接口配置为二层口,根据配置的vlanid划分所属vlan。

可选的,所述cpu702的驱动模块若确定所述报文没有携带vlantag,则为所述报文添加vlantag,包括:

所述cpu702的驱动模块若确定所述报文的目的端口为第一类端口,则为所述报文添加的vlantag中的vlanid为所述专属vlanid;或者,

所述cpu702的驱动模块若确定所述报文的目的端口为第二类端口或第三类端口,则为所述报文添加的vlantag中的vlanid为所述第二类端口或第三类端口的主接口的vlanid。

本发明实施例提供的二三层网络设备,在报文发送过程中根据报文是否携带vlantag对于报文特殊处理,能够支持动态配置二三层网络设备的二层口和三层口的数量,并且支持自由扩展二三层网络设备中二层口、三层口网络拓扑,同时保证报文正确收发和报文收发速率。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括指令,当上述二三层网络设备的处理器执行该指令时,该二三层网络设备执行上述方法实施例所示的方法流程中二三层网络设备执行的各个步骤。

本发明实施例提供一种有线通信网络,该有线通信网络可以包括用户、对外网络和二三层网络设备,该二三层网络设备用于执行本发明实施例提供的报文发送方法。对于用户、对外网络和二三层网络设备的描述具体可以参见上述方法实施例和装置实施例中的相关描述,此处不再赘述。

结合本发明公开内容所描述的方法或者算法的步骤可以由硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于ram、闪存、rom、可擦除可编程只读存储器(easableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1