一种报文处理方法、相关装置及NVO3网络系统与流程

文档序号:12829350阅读:344来源:国知局
一种报文处理方法、相关装置及NVO3网络系统与流程

本发明涉及通信技术领域,具体涉及一种报文处理方法、相关装置及nvo3网络系统。



背景技术:

目前,通过基于三层网络的网络虚拟化(英文:networkvirtualizationoverlayer3,缩写:nvo3)可以将一个物理网络进行虚拟化,从而实现同一个物理网络可以被不同租户共同使用,并且租户之间的流量能够隔离,网络协议(英文:internetprotocol,缩写:ip)地址能够重叠。每个租户一般可以使用一个或多个虚拟网络,每个虚拟网络内的用户边缘(英文:customeredge,缩写:ce)通过二层网络互通,不同虚拟子网的ce之间通过三层网络互通。

在nvo3网络中,远端网络虚拟边缘(英文:networkvirtualizationedge,缩写:nve)一般通过控制层面学习本端nve连接的ce的介质访问控制(英文:mediaaccesscontrol,缩写:mac)地址,nve之间运行以太网虚拟专用网(英文:ethernetvirtualprivatenetwork,缩写:evpn)协议,每个nve通过数据层面学习本地连接的ce的mac地址。本端nve可以通过边界网关协议(英文:bordergatewayprotocol,缩写:bgp)将本地学习到的ce的mac地址通告给远端nve,远端nve从nvo3网络侧学习到所述本端nve发送的ce的mac地址之后,在mac转发表中建立mac地址与接口的对应关系。而对于多归接入,即同时接入多个本端nve,的ce,远端nve需要将所述ce的mac地址分别对应多个接口。然而,在远端nve是虚拟交换机(英文:vswitch)时,很多情况下不支持这种负载分担方式。此外,在所述ce接入的本端nve发生变化时,例如所述ce与一个本端nve的接入链路出现故障,则远端nve需要修改mac转发表中所述ce的mac地址与接口的对应关系,在远端nve的数量较多时,会导致mac转发表的修改负担很重,严重影响网络的可扩展性。



技术实现要素:

本发明实施例提供了一种报文处理方法、相关装置及nvo3网络系统,可以降低远端nve维护mac转发表的负担,增强网络的可扩展性。

本发明实施例第一方面提供了一种报文处理方法,应用在nvo3网络系统,该nvo3网络系统包括第一nve、第二nve、远端nve和第一ce,该第一ce通过多归接入的方式接入该第一nve和该第二nve,该第一nve和该第二nve设有各自整网唯一的vtepip地址以及共用的第一共享vtepip地址,该方法包括:

该第一ce向该第一nve发送第一报文,该第一报文携带有该第一ce的mac地址和vlanid,该第一nve根据该第一报文的入接口和该vlanid确定出该第一ce的vni,并对该第一报文进行nvo3封装得到nvo3封装的第一报文,该nvo3封装的第一报文包括该vni,并且源ip地址为该第一共享vtepip地址。

该第一nve向该远端nve转发该nvo3封装的第一报文,该远端nve对该nvo3封装的第一报文解封装后在mac转发表中建立该第一ce的mac地址、vni和该第一共享vtepip地址之间的映射关系,由于远端nve只能接收到与该ce对应的一个ip地址,可以实现该远端nve不感知该ce的多归接入,从而降低远端nve维护mac转发表的负担,增强网络的可扩展性。

可选的,该nvo3网络系统还包括第三nve,该第二nve和该第三nve共用第二共享vtepip地址,该方法还包括:

该第一ce向该第一nve发送第二报文,该第二报文为bum报文。

该第一nve复制该第二报文,对所述第二报文进行nvo3封装得到nvo3封装的第二报文,并向该第二nve和该第三nve转发该nvo3封装的第二报文,其nvo3头中的源ip地址为该第一共享vtepip地址,接收该nvo3封装的第二报文的nve根据存储的接口表项对比该第一共享vtepip地址和该nve连接ce的接口对应的vtepip地址,并向第一接口转发解封装得到的该第二报文,以及不向第二接口转发解封装得到的该第二报文,其中,该第一接口对应的vtepip地址与该第一共享vtepip地址不同,并且该第一接口为指定转发者df状态,该第二接口对应的vtepip地址与该第一共享vtepip地址相同,其中,每个接口表项包括连接ce的接口、该接口对应的vtepip地址、以及该 接口的状态,该状态包括df状态或者非df状态;其中,连接多归接入nve的ce的接口对应的vtepip地址为该ce多归接入的多个nve的共享vtepip地址,连接单归接入nve的ce的接口对应的vtepip地址为该ce单归接入的nve的整网唯一的vtepip地址,从而可以防止本端nve之间转发bum报文时产生环路。

可选的,如果该第一nve还连接第二ce,并且连接该第二ce的接口对应的vtepip地址为该第一共享vtepip地址,则该第一nve向该第二ce直接转发该第二报文。

本发明实施例第二方面提供了一种报文处理装置,应用在nvo3网络系统,该nvo3网络系统包括该报文处理装置、第二nve、远端nve和第一ce,该第一ce多归接入该报文处理装置和该第二nve,该报文处理装置和该第二nve设有各自整网唯一的vtepip地址以及共用的第一共享vtepip地址,该装置包括:

接收模块,用于接收该第一ce发送的第一报文,该第一报文包括该第一ce的mac地址和vlanid。

确定模块,用于根据该第一报文的入接口和该vlanid确定该第一ce的vni。

封装模块,用于对该第一报文进行nvo3封装得到nvo3封装的第一报文,该nvo3封装的第一报文包括该第一ce的vni,并且源ip地址为该第一共享vtepip地址。

转发模块,用于向该远端nve转发该nvo3封装的第一报文,该nvo3封装的第一报文用于指示该远端nve在mac转发表中建立该第一ce的mac地址、vni和该第一共享vtepip地址之间的映射关系,可以降低远端nve维护mac转发表的负担,增强网络的可扩展性。

可选的,该接收模块,还用于接收该第一ce发送的第二报文,该第二报文为bum报文。

该封装模块,还用于复制该第二报文,对该第二报文进行nvo3封装得到nvo3封装的第二报文;

所述转发模块,还用于向该第二nve和所述第三nve转发该nvo3封装的第二报文,该nvo3封装的第二报文的nvo3头中的源ip地址为该第一共享 vtepip地址,该nvo3封装的第二报文用于指示接收该nvo3封装的第二报文的nve根据存储的接口表项对比该第一共享vtepip地址和该nve连接ce的接口对应的vtepip地址,并向对应的vtepip地址与该第一共享vtepip地址不同,并且为df状态的接口转发解封装得到的该第二报文,以及不向对应的vtepip地址与该第一共享vtepip地址相同的接口转发解封装得到的该第二报文,从而可以防止本端nve之间转发bum报文时产生环路。

可选的,该转发模块,还用于在该报文处理装置还连接第二ce,并且连接该第二ce的接口对应的vtepip地址为该第一共享vtepip地址时,向该第二ce转发该第二报文。

本发明实施例第三方面提供了一种报文处理方法,应用在nvo3网络系统,该nvo3网络系统包括第一nve、第二nve、远端nve和第一ce,该第一ce通过多归接入的方式接入该第一nve和该第二nve,该第一nve和该第二nve设有各自整网唯一的vtepip地址以及共用的第一共享vtepip地址,该方法包括:

该远端nve接收该第一nve转发的nvo3封装的第一报文,该nvo3封装的第一报文包括该第一ce的vni,该nvo3封装的第一报文的nvo3头中的源ip地址为该第一共享vtepip地址,该第一报文由该第一ce向该第一nve发送,该第一报文包括该第一ce的mac地址和vlanid,该第一ce的vni由该第一nve根据该第一报文的入接口和该vlanid确定。

该远端nve对该nvo3封装的第一报文进行解封装,并在mac转发表中建立该第一ce的mac地址、vni和该第一共享vtepip地址之间的映射关系,由于远端nve只能接收到与该ce对应的一个ip地址,可以实现该远端nve不感知该ce的多归接入,从而降低远端nve维护mac转发表的负担,增强网络的可扩展性。

可选的,该远端nve和该第二nve共用第二共享vtepip地址,该方法还包括:

该远端nve接收本地侧连接的ce发送的bum报文,并对该bum报文进行nvo3封装,得到nvo3封装的bum报文,该nvo3封装的bum报文的nvo3头中的源ip地址为该第二共享vtepip地址。

该远端nve向该第一nve和该第二nve转发该nvo3封装的bum报文, 该nvo3封装的bum报文用于指示接收该nvo3封装的bum报文的nve根据存储的接口表项对比该第一共享vtepip地址和该nve连接ce的接口对应的vtepip地址,并向对应的vtepip地址与该第一共享vtepip地址不同,并且为df状态的接口转发解封装得到的该bum报文,以及不向对应的vtepip地址与该第一共享vtepip地址相同的接口转发解封装得到的该bum报文,从而可以防止本端nve连接的ce重复接收到远端nve转发的bum报文。

本发明实施例第四方面提供了一种报文处理装置,应用在nvo3网络系统,该nvo3网络系统包括第一nve、第二nve、该报文处理装置和第一ce,该第一ce多归接入该第一nve和该第二nve,该第一nve和该第二nve共用第一共享vtepip地址,该装置包括:

接收模块,用于接收该第一nve转发的nvo3封装的第一报文,该nvo3封装的第一报文包括该第一ce的vni,该nvo3封装的第一报文的nvo3头中的源ip地址为该第一共享vtepip地址,该第一报文由该第一ce向该第一nve发送,该第一报文包括该第一ce的mac地址和vlanid,该第一ce的vni由该第一nve根据该第一报文的入接口和该vlanid确定。

处理模块,用于对该nvo3封装的第一报文进行解封装。

建立模块,用于在mac转发表中建立该第一ce的mac地址、vni和该第一共享vtepip地址之间的映射关系,从而该远端nve可以不感知该ce的多归接入,在该ce多归接入的链路发生故障时该远端nve不需要修改mac转发表,大大降低了远端nve在维护mac转发表时的负担,增强了网络的可扩展性。

可选的,该报文处理装置和该第二nve共用第二共享vtepip地址,

该接收模块,还用于接收与该报文处理装置连接的ce发送的bum报文。

该处理模块,还用于对该bum报文进行nvo3封装,得到nvo3封装的bum报文,该nvo3封装的bum报文的nvo3头中的源ip地址为该第二共享vtepip地址。

其中,该报文处理装置还包括:

转发模块,用于向该第一nve和该第二nve转发该nvo3封装的bum报文,该nvo3封装的bum报文用于指示接收该nvo3封装的bum报文的nve根据存储的接口表项对比该第一共享vtepip地址和该nve连接ce的接 口对应的vtepip地址,并向对应的vtepip地址与该第一共享vtepip地址不同,并且为df状态的接口转发解封装得到的该bum报文,以及不向对应的vtepip地址与该第一共享vtepip地址相同的接口转发解封装得到的该bum报文,从而可以防止本端nve连接的ce重复接收到远端nve转发的bum报文。

本发明实施例第五方面提供了一种nvo3网络系统,包括第一nve、第二nve、远端nve和第一ce,该第一ce多归接入该第一nve和该第二nve,该第一nve和该第二nve共用第一共享vtepip地址,其中:

该第一nve,用于接收该第一ce发送的第一报文,该第一报文包括该第一ce的mac地址和vlanid。

该第一nve,还用于根据该第一报文的入接口和该vlanid确定该第一ce的vni,并对该第一报文进行nvo3封装得到nvo3封装的第一报文,该nvo3封装的第一报文包括该第一ce的vni,该nvo3封装的第一报文的nvo3头中的源ip地址为该第一共享vtepip地址。

该第一nve,还用于向该远端nve转发该nvo3封装的第一报文。

该远端nve,用于对接收到的该nvo3封装的第一报文进行解封装,并在mac转发表中建立该第一ce的mac地址、vni和该第一共享vtepip地址之间的映射关系,从而ce的mac地址在远端nve上不会发生跳变,在ce多归接入的链路发生故障时远端nve也不需要修改mac转发表,大大降低了远端nve在维护mac转发表时的负担,增强了网络的可扩展性。。

可选的,该第一报文为bum报文,该系统还包括第三nve,该第二nve和该第三nve共用第二共享vtepip地址,其中:

该第一nve,还用于接收该第一ce发送的第二报文,该第二报文为bum报文。

该第一nve,还用于复制该第二报文,对该第二报文进行nvo3封装得到nvo3封装的第二报文,并向该第二nve和该第三nve转发该nvo3封装的第二报文,该nvo3封装的第二报文的nvo3头中源ip地址为该第一共享vtepip地址。

其中,该nvo3封装的第二报文用于指示接收该nvo3封装的第二报文的nve根据存储的接口表项对比该第一共享vtepip地址和该nve连接ce的接 口对应的vtepip地址,并向对应的vtepip地址与该第一共享vtepip地址不同,并且为df状态的接口转发解封装得到的该第二报文,以及不向对应的vtepip地址与该第一共享vtepip地址相同的接口转发解封装得到的该第二报文,从而可以防止本端nve之间转发bum报文时产生环路。

可选的,该第一nve,还用于在该第一nve还连接第二ce,并且连接该第二ce的接口对应的vtepip地址为该第一共享vtepip地址时,向该第二ce转发该第二报文。

本发明实施例中,ce通过多归接入的多个本端nve中的任意一个向远端nve发送报文,该任意一个本端nve对该报文进行nvo3封装时,均使用该多个本端nve之间共用的共享vtepip地址作为nvo3头中的源ip地址,从而使远端nve在mac转发表中建立该ce的mac地址、vni与该共用的共享vtepip地址之间的映射关系。由于远端nve只能接收到与所述ce对应的一个ip地址,因此,该远端nve不感知该ce的多归接入,该ce的mac地址在该远端nve上不会发生跳变,在该ce多归接入的链路发生故障时该远端nve也不需要修改mac转发表,从而大大降低了远端nve在维护mac转发表时的负担,增强了网络的可扩展性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。

图1是本发明实施例提供的一种nvo3网络架构示意图;

图2是本发明实施例提供的一种报文处理方法的流程示意图;

图3是本发明实施例提供的另一种报文处理方法的流程示意图;

图4是本发明实施例提供的另一种nvo3网络架构示意图;

图5是本发明实施例提供的一种报文处理装置的结构示意图;

图6是本发明实施例提供的又一种报文处理方法的流程示意图;

图7是本发明实施例提供的又一种报文处理方法的流程示意图;

图8是本发明实施例提供的另一种报文处理装置的结构示意图;

图9是本发明实施例提供的一种nvo3网络系统的结构示意图;

图10是本发明实施例提供的一种报文处理设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

请参阅图1,为本发明实施例提供的一种nvo3网络架构示意图,本实施例中所描述的nvo3网络,包括:第一ce、第一nve、第二nve和远端nve,第一nve和第二nve作为本端nve,第一ce多归接入第一nve和第二nve,第一ce与第一nve、第二nve之间的两条链路捆绑为一个链路聚合组(英文:linkaggregationgroup,缩写:lag),第一ce发送报文时通过lag选择其中一条链路将报文发送至第一nve或第二nve,第一nve、第二nve和远端nve两两之间通过三层网络连接,第一ce与第一nve、第一ce与第二nve之间通过二层网络连接。其中,图1中的ce具体可以是虚拟机(英文:virtualmachine,缩写:vm),租户终端系统(英文:tenantendsystem,缩写:tes),还可以是物理服务器、交换机、防火墙等,nve可以位于服务器或物理网络设备上,负责报文转发,包括报文的封装和解封装。

需要说明的是,实际的nvo3网络中nve和ce的数量并不以图1所示的数量为限。

其中,针对每个nve可以设置多个vtepip地址,包括整网唯一的vtepip地址,以及与其它nve共用的vtepip地址,本文称为共享(英文:shared)vtepip地址。每个nve可以通过路由协议将自身整网唯一的vtepip地址以及共享vtepip地址通告给其它nve,其它nve便可以访问这些vtepip地址。如果其它nve到达第一nve和第二nve具有相同的链路开销(英文:linkcost),则从其它nve到达第一nve和第二nve的报文便可以进行负载分担。针对图1中的第一nve和第二nve可以设置为:第一nve和第二nve共用第一共享vtepip地址。

其中,每个nve连接ce的接口分别对应有接口表项,每个接口表项包括连接ce的接口、接口对应的vtepip地址、以及接口的状态,该状态包括指定转发者(英文:designatedforwarder,缩写:df)状态或者非df状态;其中,连接多归接入nve的ce的接口对应的vtepip地址为该ce多归接入的多个 nve的共享vtepip地址,连接单归接入nve的ce的接口对应的vtepip地址为该ce单归接入的nve的整网唯一的vtepip地址,且该接口为df状态。对于df状态的接口,nve转发通过该接口接收的报文,对于非df状态的接口,nve则丢弃通过该接口接收的报文。

需要说明的是,对于单归接入的ce,在连接该ce的接口的接口表项中也可以不设置其对应的vtepip地址,默认使用接入的nve整网唯一的vtepip地址作为其对应的vtepip地址。

请参阅图2,为本发明实施例提供的一种报文处理方法的流程示意图。本实施例中所描述的报文处理方法应用于图1所示的nvo3网络架构,其中,第一nve和第二nve作为本端nve,第一ce多归接入第一nve和第二nve,第一nve和第二nve共用第一共享vtepip地址,该报文处理方法包括以下步骤:

s201、第一nve接收第一ce发送的第一报文,所述第一报文包括所述第一ce的介质访问控制mac地址和虚拟局域网标识vlanid。

其中,该第一报文具体可以是已知单播报文,或者广播、未知单播和组播(英文:broadcast、unknownunicastandmulticast,缩写:bum)报文,该第一nve可以根据该第一报文的目的mac判断该第一报文是已知单播报文还是bum报文。

具体的,该第一ce在发送该第一报文时,通过等价多路径(英文:equalcostmultipath,缩写:ecmp)算法从lag中选择发送链路,假设该第一ce选择与该第一nve之间的链路作为发送链路,则该第一nve接收到该第一报文。

其中,ce的ecmp算法一般会基于报文的五元组实现负载分担,即根据报文的源mac地址、目的mac地址、源ip地址、目的ip地址和udp/tcp协议端口号进行散列(英文:hash)运算,进而选择其中一个物理链路发送报文。

s202、所述第一nve根据所述第一报文的入接口和所述vlanid确定所述第一ce的虚拟网络标识vni。

具体的,该第一nve可以根据接口、vlanid和vni之间的对应关系确定该第一ce的vni,或者根据mac地址和vni的对应关系确定该第一ce的vni,或者根据vlanid和vni的对应关系确定该第一ce的vni,或者接口 和vni之间的对应关系确定该第一ce的vni。

s203、所述第一nve对所述第一报文进行nvo3封装得到nvo3封装的第一报文,所述nvo3封装的第一报文包括所述第一ce的vni,所述nvo3封装的第一报文的nvo3头中的源ip地址为所述第一共享vtepip地址。

其中,nvo3封装具体可以包括vxlan封装、基于通用路由封装的网络虚拟化(英文:networkvirtualizationovergenericroutingencapsulation,缩写:nvgre)封装等。

具体的,在该第一nve确定该第一报文为已知单播报文时,该第一nve通过查找mac转发表获取该第一报文的出接口,如果出接口是本地接口,则该第一nve直接从本地接口转发该第一报文。如果出接口不是本地接口,或者,该第一nve确定该第一报文为bum报文时,对该第一报文进行nvo3封装得到nvo3报文,该nvo3报文包括该第一ce的vni,且该nvo3报文的nvo3头中的源ip地址为该第一nve和第二nve共用的该第一共享vtepip地址。

其中,对该第一报文进行nvo3封装时,该第一报文中的vlanid可以选择保留或者剥去。

s204、所述第一nve向所述远端nve转发所述nvo3封装的第一报文,所述nvo3封装的第一报文用于指示所述远端nve在mac转发表中建立所述第一ce的mac地址、所述第一ce的vni和所述第一共享vtepip地址之间的映射关系。

具体的,该第一nve向该远端nve转发该nvo3报文。该远端nve对该nvo3报文进行解封装,获取该第一ce的mac地址、vni和该第一共享vtepip地址,并在mac转发表中建立该第一ce的mac地址、vni和该第一共享vtepip地址之间的映射关系,从而该远端nve完成从数据层面上对该第一ce的mac地址的学习。

进一步的,如果该第一ce选择与该第二nve之间的链路作为发送链路,则该第二nve接收到该第一报文,同样的,该第二nve在出接口不是本地接口,或者,该第二nve确定该第一报文为bum报文时,对该第一报文进行nvo3封装得到nvo3报文,其nvo3头中的源ip地址也为该第一nve和该第二nve共用的该第一共享vtepip地址,在该第一ce通过该第二nve发送报文时,该远端nve也是在mac转发表中建立该第一ce的mac地址、vni和该第一 共享vtepip地址之间的映射关系,从而可以实现该远端nve不感知该第一ce多归接入到不同的nve上。因此,该第一ce多归接入的链路发生故障时该远端nve不需要修改mac转发表,同时该第一ce的mac地址在该远端nve上也不会发生跳变。

本发明实施例中,ce通过多归接入的多个本端nve中的任意一个向远端nve发送报文,该任意一个本端nve对该报文进行nvo3封装时,使用该多个本端nve之间共用的共享vtepip地址作为nvo3头中的源ip地址,从而使远端nve在mac转发表中建立该ce的mac地址、vni与该共用的共享vtepip地址之间的映射关系。由于远端nve只能接收到与该ce对应的一个ip地址,因此,该远端nve不感知该ce的多归接入,该ce的mac地址在该远端nve上不会发生跳变,并且在该ce多归接入的链路发生故障时该远端nve也不需要修改mac转发表,从而大大降低了远端nve在维护mac转发表时的负担,增强了网络的可扩展性。

请参阅图3,为本发明实施例提供的另一种报文处理方法的流程示意图。本实施例中所描述的报文处理方法应用于图4所示的nvo3网络架构,其中,第一nve、第二nve和第三nve作为本端nve,第一ce和第二ce均多归接入第一nve和第二nve,第三ce单归接入第二nve,第四ce多归接入第二nve和第三nve,第一nve和第二nve共用第一共享vtepip地址,第二nve和第三nve共用第二共享vtepip地址,该报文处理方法包括以下步骤:

其中,步骤s301~步骤s304与前面实施例中的步骤s201~步骤s204相同,本发明实施例此处不再赘述。

s305、所述第一nve接收所述第一ce发送的第二报文,在所述第二报文为bum报文时,若所述第一nve还连接第二ce,并且连接所述第二ce的接口对应的vtepip地址为所述第一共享vtepip地址,则所述第一nve复制所述第二报文,并向所述第二ce转发所述第二报文。

具体的,该第一nve根据该第二报文的目的mac地址判断出该第二报文为bum报文时,根据存储的接口表项判断本地是否还连接有与该第一ce对应同一个共享vtepip地址(即该第一共享vtepip地址)的ce,在确定存在对应该第一共享vtepip地址的第二ce时,该第一nve直接向该第二ce复制 并转发该第二报文。

s306、在所述第二报文为bum报文时,所述第一nve复制所述第二报文,对所述第二报文进行nvo3封装得到nvo3封装的第二报文,并向所述第二nve和所述第三nve转发所述nvo3封装的第二报文。

所述nvo3封装的第二报文的nvo3头中的源ip地址为所述第一共享vtepip地址,所述nvo3封装的第二报文用于指示接收所述nvo3封装的第二报文的nve根据存储的接口表项对比所述第一共享vtepip地址和所述nve连接ce的接口对应的vtepip地址,并向第一接口转发解封装得到的所述第二报文,以及不向第二接口转发解封装得到的所述第二报文,其中,所述第一接口对应的vtepip地址与所述第一共享vtepip地址不同,并且所述第一接口为指定转发者df状态,所述第二接口对应的vtepip地址与所述第一共享vtepip地址相同。

其中,该第一nve、该第二nve和该第三nve的vni相同。

具体的,该第一nve根据该第二报文的目的mac地址判断出该第二报文为bum报文时,对该第二报文进行nvo3封装得到nvo3报文,向该第二nve和该第三nve转发的nvo3报文的nvo3头中的源ip地址均为该第一共享vtepip地址,目的ip地址分别为该第二nve和该第三nve整网唯一的vtepip地址,该第二nve对接收到的nvo3报文进行解封装得到该第二报文,并从各个连接ce的接口对应的接口表项获取对应的vtepip地址,其中,连接该第二ce的接口对应该第一共享vtepip地址,连接该第三ce的接口对应该第二nve整网唯一的vtepip地址,连接该第四ce的接口对应该第二共享vtepip地址。该第二nve将连接该第二ce的接口、连接该第三ce的接口和连接该第四ce的接口对应的vtepip地址分别与该第一共享vtepip地址进行对比,确定连接该第二ce的接口对应的vtepip地址与该第一共享vtepip地址相同,则不向该第二ce转发该第二报文。对于单归接入的该第三ce,该第二nve确定连接该第三ce的接口对应的vtepip地址与该第一共享vtepip地址不相同,则向该第三ce转发该第二报文。

进一步的,该第二nve确定连接该第四ce的接口对应的vtepip地址与该第一共享vtepip地址不相同,则可以通过边界网关协议(英文:bordergatewayprotocol,缩写:bgp)与该第三nve根据存储的接口表项确定出为df 状态的接口,假设该第二nve与该第三nve确定出该第三nve上的接口为df状态,则该第三nve向该第四ce转发该第二报文,而该第二nve不向该第四ce转发该第二报文。

需要说明的是,对于单归接入的ce对应的接口,nve也可以不设置接口表项,从而不进行vtepip地址的对比而直接向单归接入的ce转发报文。

本发明实施例中,ce通过多归接入的多个本端nve中的任意一个向远端nve发送报文,该任意一个本端nve对该报文进行nvo3封装时,使用该多个本端nve之间共用的共享vtepip地址作为nvo3头中的源ip地址,从而使远端nve在mac转发表中建立该ce的mac地址、vni与该共用的共享vtepip地址之间的映射关系。由于远端nve只能接收到与该ce对应的一个ip地址,因此,该远端nve不感知该ce的多归接入,该ce的mac地址在该远端nve上不会发生跳变,并且在该ce多归接入的链路发生故障时该远端nve也不需要修改mac转发表,从而大大降低了远端nve在维护mac转发表时的负担,增强了网络的可扩展性。

进一步的,本端nve对于接收到的本地ce发送的bum报文,在该本端nve还连接与该本地ce对应同一个共享vtepip地址的ce时,该本端nve直接向该ce转发该bum报文,对该bum报文进行nvo3封装得到nvo3报文,并向其它本端nve转发该nvo3报文,其nvo3头中的源ip地址为该共用的共享vtepip地址,使接收该nvo3报文的nve根据存储的接口表项对比该共用的共享vtepip地址和该nve连接ce的接口对应的vtepip地址,并向对应的vtepip地址与该共用的共享vtepip地址不同,并且为df状态的接口转发解封装得到的该bum报文,以及不向对应的vtepip地址与该共用的共享vtepip地址相同的接口转发解封装得到的该bum报文,从而可以防止本端nve之间转发bum报文时产生环路。

请参阅图5,本发明实施例提供的一种报文处理装置的结构示意图。本实施例中所描述的报文处理装置应用于图4所示的nvo3网络架构,其中,报文处理装置作为第一nve,第一nve、第二nve和第三nve作为本端nve,第一ce和第二ce均多归接入第一nve和第二nve,第三ce单归接入第二nve,第四ce多归接入第二nve和第三nve,第一nve和第二nve共用第一共享 vtepip地址,第二nve和第三nve共用第二共享vtepip地址,该报文处理装置包括:

接收模块501,用于接收第一ce发送的第一报文,所述第一报文包括所述第一ce的mac地址和vlanid。

确定模块502,用于根据所述第一报文的入接口和所述vlanid确定所述第一ce的vni。

具体的,确定模块502可以根据接口、vlanid和vni之间的对应关系确定该第一ce的vni,或者根据mac地址和vni的对应关系确定该第一ce的vni,或者根据vlanid和vni的对应关系确定该第一ce的vni,或者接口和vni之间的对应关系确定该第一ce的vni。

封装模块503,用于对所述第一报文进行nvo3封装得到nvo3封装的第一报文,所述nvo3封装的第一报文包括所述第一ce的vni,所述nvo3封装的第一报文的nvo3头中的源ip地址为所述第一共享vtepip地址。

转发模块504,用于向所述远端nve转发所述nvo3封装的第一报文,所述nvo3封装的第一报文用于指示所述远端nve在mac转发表中建立所述第一ce的mac地址、所述第一ce的vni和所述第一共享vtepip地址之间的映射关系。

具体的,封装模块503在确定该第一报文为已知单播报文时,通过查找mac转发表获取该第一报文的出接口,如果出接口是本地接口,则通知转发模块504直接从本地接口转发该第一报文。如果出接口不是本地接口,或者,确定该第一报文为bum报文时,封装模块503对该第一报文进行nvo3封装得到nvo3报文,该nvo3报文包括该第一ce的vni,且该nvo3报文的nvo3头中的源ip地址为该第一nve和第二nve共用的该第一共享vtepip地址。

其中,封装模块503对该第一报文进行nvo3封装时,该第一报文中的vlanid可以选择保留或者剥去。

进一步的,转发模块504向该远端nve转发该nvo3报文。该远端nve对该nvo3报文进行解封装,获取该第一ce的mac地址、vni和该第一共享vtepip地址,并在mac转发表中建立该第一ce的mac地址、vni和该第一共享vtepip地址之间的映射关系,从而该远端nve完成从数据层面上对该第一ce的mac地址的学习。

进一步的,如果该第一ce选择与该第二nve之间的链路作为发送链路,则该第二nve接收到该第一报文,同样的,该第二nve在出接口不是本地接口,或者,该第二nve确定该第一报文为bum报文时,对该第一报文进行nvo3封装得到nvo3报文,其nvo3头中的源ip地址也为该第一nve和该第二nve共用的该第一共享vtepip地址,从而在该第一ce通过该第二nve发送报文时,该远端nve也是在mac转发表中建立该第一ce的mac地址、vni和该第一共享vtepip地址之间的映射关系,从而可以实现该远端nve不感知该第一ce多归接入到不同的nve上。因此,该第一ce多归接入的链路发生故障时该远端nve不需要修改mac转发表,同时该第一ce的mac地址在该远端nve上也不会发生跳变。

本发明实施例中,ce通过多归接入的多个本端nve中的任意一个向远端nve发送报文,该任意一个本端nve对该报文进行nvo3封装时,使用该多个本端nve之间共用的共享vtepip地址作为nvo3头中的源ip地址,从而使远端nve在mac转发表中建立该ce的mac地址、vni与该共用的共享vtepip地址之间的映射关系。由于远端nve只能接收到与该ce对应的一个ip地址,因此,该远端nve不感知该ce的多归接入,该ce的mac地址在该远端nve上不会发生跳变,并且在该ce多归接入的链路发生故障时该远端nve也不需要修改mac转发表,从而大大降低了远端nve在维护mac转发表时的负担,增强了网络的可扩展性。

在一些可行的实施方式中,

所述接收模块501,还用于接收所述第一ce发送的第二报文,所述第二报文为bum报文。

若所述报文处理装置还连接第二ce,并且连接所述第二ce的接口对应的vtepip地址为所述第一共享vtepip地址,则:

所述转发模块504,还用于向所述第二ce复制并转发所述第二报文。

具体的,封装模块503根据该第二报文的目的mac地址判断出该第二报文为bum报文时,转发模块504根据存储的接口表项判断该报文处理装置本地是否还连接有与该第一ce对应同一个共享vtepip地址(即该第一共享vtepip地址)的ce,在确定存在对应该第一共享vtepip地址的第二ce时,该第一nve直接向该第二ce复制并转发该第二报文。

所述封装模块503,还用于复制所述第二报文,对所述第二报文进行nvo3封装得到nvo3封装的第二报文;

所述转发模块504,还用于向所述第二nve和所述第三nve转发所述nvo3封装的第二报文,所述nvo3封装的第二报文的nvo3头中的源ip地址为所述第一共享vtepip地址。

其中,所述nvo3封装的第二报文用于指示接收所述nvo3封装的第二报文的nve根据存储的接口表项对比所述第一共享vtepip地址和所述nve连接ce的接口对应的vtepip地址,并向第一接口转发解封装得到的所述第二报文,以及不向第二接口转发解封装得到的所述第二报文,其中,所述第一接口对应的vtepip地址与所述第一共享vtepip地址不同,并且所述第一接口为df状态,所述第二接口对应的vtepip地址与所述第一共享vtepip地址相同。

本发明实施例中,本端nve对于接收到的本地ce发送的bum报文,在该本端nve还连接与该本地ce对应同一个共享vtepip地址的ce时,该本端nve直接向该ce转发该bum报文,对该bum报文进行nvo3封装得到nvo3报文,并向其它本端nve转发该nvo3报文,其nvo3头中的源ip地址为该共用的共享vtepip地址,使接收该nvo3报文的nve根据存储的接口表项对比该共用的共享vtepip地址和该nve连接ce的接口对应的vtepip地址,并向对应的vtepip地址与该共用的共享vtepip地址不同,并且为df状态的接口转发解封装得到的该bum报文,以及不向对应的vtepip地址与该共用的共享vtepip地址相同的接口转发解封装得到的该bum报文,从而可以防止本端nve之间转发bum报文时产生环路。

请参阅图6,为本发明实施例提供的又一种报文处理方法的流程示意图。本实施例中所描述的报文处理方法应用于图1所示的nvo3网络架构,其中,第一nve和第二nve作为本端nve,第一ce多归接入第一nve和第二nve,第一nve和第二nve共用第一共享vtepip地址,该报文处理方法包括以下步骤:

s601、远端nve接收第一nve转发的nvo3封装的第一报文,所述nvo3封装的第一报文包括第一ce的vni,所述nvo3封装的第一报文的nvo3头中的源ip地址为所述第一共享vtepip地址,所述第一报文由所述第一ce向 所述第一nve发送,所述第一报文包括所述第一ce的mac地址和vlanid,所述第一ce的vni由所述第一nve根据所述第一报文的入接口和所述vlanid确定。

s602、所述远端nve对所述nvo3封装的第一报文进行解封装,并在mac转发表中建立所述第一ce的mac地址、所述第一ce的vni和所述第一共享vtepip地址之间的映射关系。

具体的,该第一ce选择与该第一nve之间的链路作为发送链路,则在该第一报文为已知单播报文,并且该第一报文对应的出接口不是本地接口时,或者,在该第一报文为bum报文时,该第一nve对该第一报文进行nvo3封装得到nvo3报文,其nvo3头中的源ip地址为该第一共享vtepip地址,并向该远端nve转发该nvo3报文。该远端nve对该nvo3报文进行解封装,获取该第一ce的mac地址、vni和该第一共享vtepip地址,并在mac转发表中建立该第一ce的mac地址、vni和该第一共享vtepip地址之间的映射关系,从而该远端nve完成从数据层面上对该第一ce的mac地址的学习。

进一步的,如果该第一ce选择与该第二nve之间的链路作为发送链路,则该第二nve接收到该第一报文,同样的,该第二nve在出接口不是本地接口,或者,该第二nve确定该第一报文为bum报文时,对该第一报文进行nvo3封装得到的nvo3报文,其nvo3头中的源ip地址也为该第一nve和该第二nve共用的该第一共享vtepip地址,在该第一ce通过该第二nve发送报文时,该远端nve也是在mac转发表中建立该第一ce的mac地址、vni和该第一共享vtepip地址之间的映射关系,从而可以实现该远端nve不感知该第一ce的多归接入到不同的nve上。因此,在该第一ce多归接入的链路发生故障时该远端nve不需要修改mac转发表,同时该第一ce的mac地址在该远端nve上也不会发生跳变。

在一些可行的实施方式中,远端nve接收到连接该远端nve的ce发往该第一ce的单播报文时,查询mac转发表后确定该第一ce的mac地址与该第一共享vtepip地址对应,则对该单播报文进行nvo3封装,将得到的nvo3封装的单播报文的nvo3头中的目的ip地址设为该第一共享vtepip地址,进而经过ecmp算法之后,共用该第一共享vtepip地址的该第一nve和该第二nve中的其中一个接收到该nvo3封装的单播报文,并在解封装后将该单播报 文转发给该第一ce。

本发明实施例中,远端nve接收ce通过多归接入的多个本端nve中的任意一个本端nve发送的报文,该任意一个本端nve对该报文进行nvo3封装时,使用该多个本端nve之间共用的共享vtepip地址作为nvo3头中的源ip地址,从而远端nve在mac转发表中建立该ce的mac地址、vni与该共用的共享vtepip地址之间的映射关系。由于远端nve只能接收到与该ce对应的一个ip地址,因此,该远端nve不感知该ce的多归接入,该ce的mac地址在该远端nve上不会发生跳变,并且在该ce多归接入的链路发生故障时该远端nve也不需要修改mac转发表,从而大大降低了远端nve在维护mac转发表时的负担,增强了网络的可扩展性。

请参阅图7,为本发明实施例提供的又一种报文处理方法的流程示意图。本实施例中所描述的报文处理方法应用于图1所示的nvo3网络架构,其中,第一nve和第二nve作为本端nve,第一ce多归接入第一nve和第二nve,第一nve和第二nve共用第一共享vtepip地址,所述远端nve和所述第二nve共用第二共享vtepip地址,该报文处理方法包括以下步骤:

其中,步骤s701和步骤s702与前面实施例中的步骤s601和步骤s602相同,本发明实施例此处不再赘述。

s703、所述远端nve接收与所述远端nve连接的ce发送的bum报文,并对所述bum报文进行nvo3封装,得到nvo3封装的bum报文,所述nvo3封装的bum报文的nvo3头中的源ip地址为所述第二共享vtepip地址。

s704、所述远端nve向所述第一nve和第二nve转发所述nvo3封装的bum报文,所述nvo3封装的bum报文用于指示接收所述nvo3封装的bum报文的nve根据存储的接口表项对比所述第二共享vtepip地址和所述nve连接ce的接口对应的vtepip地址,并向第一接口转发解封装得到的所述bum报文,以及不向第二接口转发解封装得到的所述bum报文,其中,所述第一接口对应的vtepip地址与所述第二共享vtepip地址不同,并且所述第一接口为df状态,所述第二接口对应的vtepip地址与所述第二共享vtepip地址相同。

具体的,该远端nve接收到该远端nve本地侧发送的bum报文时,对该 bum报文进行nvo3封装得到nvo3封装的bum报文,分别向该第一nve和该第二nve转发该nvo3封装的bum报文,其nvo3头中的源ip地址为该第二共享vtepip地址,其nvo3头中目的ip地址分别为该第一nve和该第二nve整网唯一的vtepip地址。该第一nve和该第二nve接收到该nvo3封装的bum报文之后,分别根据存储的接口表项对比该第二共享vtepip地址和各自连接ce的接口对应的vtepip地址,并向对应的vtepip地址与该第二共享vtepip地址不同,并且为df状态的接口转发解封装得到的该bum报文,以及不向对应的vtepip地址与该第二共享vtepip地址相同的接口转发解封装得到的该bum报文。

本发明实施例中,远端nve接收ce通过多归接入的多个本端nve中的任意一个本端nve发送的报文,该任意一个本端nve对该报文进行nvo3封装时,使用该多个本端nve之间共用的共享vtepip地址作为nvo3头中的源ip地址,从而远端nve在mac转发表中建立该ce的mac地址、vni与该共用的共享vtepip地址之间的映射关系。由于远端nve只能接收到与该ce对应的一个ip地址,因此,该远端nve不感知该ce的多归接入,该ce的mac地址在该远端nve上不会发生跳变,并且在该ce多归接入的链路发生故障时该远端nve也不需要修改mac转发表,从而大大降低了远端nve在维护mac转发表时的负担,增强了网络的可扩展性。

进一步的,该远端nve向该多个本端nve转发nvo3封装的bum报文,使得接收该nvo3封装的bum报文的本端nve,根据存储的接口表项对比该远端nve的共享vtepip地址和该本端nve连接ce的接口对应的vtepip地址,并向对应的vtepip地址与该远端nve的共享vtepip地址不同,并且为df状态的接口转发解封装得到的该bum报文,以及不向对应的vtepip地址与该远端nve的共享vtepip地址相同的接口转发解封装得到的该bum报文。对于该远端nve转发的bum报文,只由该多个本端nve中的一个向本地ce转发,从而可以防止本端nve连接的ce重复接收到远端nve转发的bum报文。

请参阅图8,为本发明实施例提供的另一种报文处理装置的结构示意图。本实施例中所描述的报文处理装置应用于图1所示的nvo3网络架构,其中,报 文处理装置作为远端nve,第一nve和第二nve作为本端nve,第一ce多归接入第一nve和第二nve,第一nve和第二nve共用第一共享vtepip地址,该报文处理装置包括:

接收模块801,用于接收第一nve转发的nvo3封装的第一报文,所述nvo3封装的第一报文包括第一ce的vni,所述nvo3封装的第一报文的nvo3头中的源ip地址为所述第一共享vtepip地址,所述第一报文由所述第一ce向所述第一nve发送,所述第一报文包括所述第一ce的mac地址和vlanid,所述第一ce的vni由所述第一nve根据所述第一报文的入接口和所述vlanid确定。

处理模块802,用于对所述nvo3封装的第一报文进行解封装。

建立模块803,用于在mac转发表中建立所述第一ce的mac地址、所述第一ce的vni和所述第一共享vtepip地址之间的映射关系。

具体的,处理模块802对接收模块801接收到的该nvo3封装的第一报文进行解封装,获取该第一ce的mac地址、vni和该第一共享vtepip地址,建立模块803在mac转发表中建立该第一ce的mac地址、vni和该第一共享vtepip地址之间的映射关系,从而该报文处理装置(即远端nve)完成从数据层面上对该第一ce的mac地址的学习。

本发明实施例中,远端nve接收ce通过多归接入的多个本端nve中的任意一个本端nve发送的报文,该任意一个本端nve对该报文进行nvo3封装时,使用该多个本端nve之间共用的共享vtepip地址作为nvo3头中的源ip地址,从而远端nve在mac转发表中建立该ce的mac地址、vni与该共用的共享vtepip地址之间的映射关系。由于远端nve只能接收到与该ce对应的一个ip地址,因此,该远端nve不感知该ce的多归接入,该ce的mac地址在该远端nve上不会发生跳变,并且在该ce多归接入的链路发生故障时该远端nve也不需要修改mac转发表,从而大大降低了远端nve在维护mac转发表时的负担,增强了网络的可扩展性。

在一些可行的实施方式中,所述报文处理装置和所述第二nve共用第二共享vtepip地址,

所述接收模块801,还用于接收与所述报文处理装置连接的ce发送的bum报文。

所述处理模块802,还用于对所述bum报文进行nvo3封装,得到nvo3封装的bum报文,所述nvo3封装的bum报文的nvo3头中的源ip地址为所述第二共享vtepip地址。

其中,所述报文处理装置还包括:

转发模块804,用于向所述第一nve和所述第二nve转发所述nvo3封装的bum报文,所述nvo3封装的bum报文用于指示接收所述nvo3封装的bum报文的nve根据存储的接口表项对比所述第二共享vtepip地址和所述nve连接ce的接口对应的vtepip地址,并向第一接口转发解封装得到的所述bum报文,以及不向第二接口转发解封装得到的所述bum报文,其中,所述第一接口对应的vtepip地址与所述第二共享vtepip地址不同,并且所述第一接口为df状态,所述第二接口对应的vtepip地址与所述第二共享vtepip地址相同。

具体的,接收模块801接收到该报文处理装置本地侧发送的bum报文时,处理模块802对该bum报文进行nvo3封装得到nvo3封装的bum报文,转发模块804分别向该第一nve和该第二nve转发该nvo3封装的bum报文,其nvo3头中的源ip地址为该第二共享vtepip地址,其nvo3头中目的ip地址分别为该第一nve和该第二nve整网唯一的vtepip地址。该第一nve和该第二nve接收到该nvo3封装的bum报文之后,分别根据存储的接口表项对比该第二共享vtepip地址和各自连接ce的接口对应的vtepip地址,并向对应的vtepip地址与该第二共享vtepip地址不同,并且为df状态的接口转发解封装得到的该bum报文,以及不向对应的vtepip地址与该第二共享vtepip地址相同的接口转发解封装得到的该bum报文。

本发明实施例中,该远端nve向该多个本端nve转发nvo3封装的bum报文,使得接收该nvo3封装的bum报文的本端nve,根据存储的接口表项对比该远端nve的共享vtepip地址和该本端nve连接ce的接口对应的vtepip地址,并向对应的vtepip地址与该远端nve的共享vtepip地址不同,并且为df状态的接口转发解封装得到的该bum报文,以及不向对应的vtepip地址与该远端nve的共享vtepip地址相同的接口转发解封装得到的该bum报文。对于该远端nve转发的bum报文,只由该多个本端nve中的一个向本地ce转发,从而可以防止本端nve连接的ce重复接收到远端nve 转发的bum报文。

请参阅图9,为本发明实施例提供的一种nvo3网络系统的结构示意图。本实施例中所描述的nvo3网络系统,包括第一ce、第二ce、第一nve、第二nve、第三nve和远端nve,第一nve、第二nve和第三nve作为本端nve,第一ce和第二ce均多归接入第一nve和第二nve,第一nve和第二nve共用第一共享vtepip地址,第二nve和第三nve共用第二共享vtepip地址,其中:

所述第一nve,用于接收所述第一ce发送的第一报文,所述第一报文包括所述第一ce的mac地址和vlanid。

所述第一nve,还用于根据所述第一报文的入接口和所述vlanid确定所述第一ce的vni,并对所述第一报文进行nvo3封装得到nvo3封装的第一报文,所述nvo3封装的第一报文包括所述第一ce的vni,所述nvo3封装的第一报文的nvo3头中源ip地址为所述第一共享vtepip地址。

所述第一nve,还用于向所述远端nve转发所述nvo3封装的第一报文。

所述远端nve,用于对接收到的所述nvo3封装的第一报文进行解封装,并在mac转发表中建立所述第一ce的mac地址、所述第一ce的vni和所述第一共享vtepip地址之间的映射关系。

进一步的,所述第一nve,还用于接收所述第一ce发送的第二报文,所述第二报文为bum报文。

所述第一nve,还用于复制所述第二报文,对所述第二报文进行nvo3封装得到nvo3封装的第二报文,并向所述第二nve和所述第三nve转发所述nvo3封装的第二报文,所述nvo3封装的第二报文的nvo3头中源ip地址为所述第一共享vtepip地址。

所述第二nve,用于在接收到所述nvo3封装的第二报文之后,根据存储的接口表项对比所述第一共享vtepip地址和所述第二nve连接ce的接口对应的vtepip地址,并向第一接口转发解封装得到的所述第二报文,以及不向第二接口转发解封装得到的所述第二报文,其中,所述第一接口对应的vtepip地址与所述第一共享vtepip地址不同,并且所述第一接口为df状态,所述第二接口对应的vtepip地址与所述第一共享vtepip地址相同。

所述第三nve,用于在接收到所述nvo3封装的第二报文之后,根据存储的接口表项对比所述第一共享vtepip地址和所述第三nve连接ce的接口对应的vtepip地址,并向第三接口转发解封装得到的所述第二报文,以及不向第四接口转发解封装得到的所述第二报文,其中,所述第三接口对应的vtepip地址与所述第一共享vtepip地址不同,并且所述第三接口为df状态,所述第四接口对应的vtepip地址与所述第一共享vtepip地址相同。

其中,每个接口表项包括连接ce的接口、所述接口对应的vtepip地址、以及所述接口的状态,所述状态包括df状态或者非df状态;其中,连接多归接入nve的ce的接口对应的vtepip地址为所述ce多归接入的多个nve的共享vtepip地址,连接单归接入nve的ce的接口对应的vtepip地址为所述ce单归接入的nve的整网唯一的vtepip地址。

进一步的,若所述第一nve还连接第二ce,并且连接所述第二ce的接口对应的vtepip地址为所述第一共享vtepip地址,则:

所述第一nve,还用于向所述第二ce复制并转发所述第二报文。

本发明实施例中,ce通过多归接入的多个本端nve中的任意一个向远端nve发送报文,该任意一个本端nve对该报文进行nvo3封装时,使用该多个本端nve之间共用的共享vtepip地址作为nvo3头中的源ip地址,从而使远端nve在mac转发表中建立该ce的mac地址、vni与该共用的共享vtepip地址之间的映射关系。由于远端nve只能接收到与该ce对应的一个ip地址,因此,该远端nve不感知该ce的多归接入,该ce的mac地址在该远端nve上不会发生跳变,并且在该ce多归接入的链路发生故障时该远端nve也不需要修改mac转发表,从而大大降低了远端nve在维护mac转发表时的负担,增强了网络的可扩展性。

进一步的,本端nve对于接收到的本地ce发送的bum报文,在该本端nve还连接与该本地ce对应同一个共享vtepip地址的ce时,该本端nve直接向该ce转发该bum报文,对该bum报文进行nvo3封装得到nvo3报文,并向其它本端nve转发该nvo3报文,其nvo3头中的源ip地址为该共用的共享vtepip地址,使接收该nvo3报文的nve根据存储的接口表项对比该共用的共享vtepip地址和该nve连接ce的接口对应的vtepip地址,并向对应的vtepip地址与该共用的共享vtepip地址不同,并且为df状态的 接口转发解封装得到的该bum报文,以及不向对应的vtepip地址与该共用的共享vtepip地址相同的接口转发解封装得到的该bum报文,从而可以防止本端nve之间转发bum报文时产生环路。

请参阅图10,为本发明实施例提供的一种报文处理设备的结构示意图。本实施例中所描述的报文处理设备,包括:发射器1000、接收器2000、处理器3000和存储器4000,上述发射器1000、接收器2000、处理器3000和存储器4000可以通过总线5000连接,也可以以其它方式连接,上述存储器4000可以存储程序代码,上述处理器3000可以调用存储器4000中的程序代码执行相应的操作,该报文处理设备可以应用于图1所示的nvo3网络架构,其中,该报文处理设备作为第一nve,第一nve和第二nve作为本端nve,第一ce多归接入第一nve和第二nve,第一nve和第二nve共用第一共享vtepip地址,其中:

上述接收器2000,用于接收所述第一ce发送的第一报文,所述第一报文包括所述第一ce的mac地址和vlanid。

上述处理器3000,用于根据所述第一报文的入接口和所述vlanid确定所述第一ce的vni。

上述处理器3000,还用于对所述第一报文进行nvo3封装得到nvo3封装的第一报文,所述nvo3封装的第一报文包括所述第一ce的vni,所述nvo3封装的第一报文的nvo3头中的源ip地址为所述第一共享vtepip地址。

上述发射器1000,用于向所述远端nve转发所述nvo3封装的第一报文,所述nvo3封装的第一报文用于指示所述远端nve在mac转发表中建立所述第一ce的mac地址、所述第一ce的vni和所述第一共享vtepip地址之间的映射关系。

在一些可行的实施方式中,所述nvo3网络系统还包括第三nve,所述第二nve和所述第三nve共用第二共享vtepip地址,

上述接收器2000,还用于接收所述第一ce发送的第二报文。

上述处理器3000,还用于在所述第二报文为bum报文时,复制所述第二报文,对所述第二报文进行nvo3封装得到nvo3封装的第二报文。

上述发射器1000,还用于向所述第二nve和所述第三nve转发所述nvo3 封装的第二报文。

其中,所述nvo3封装的第二报文的nvo3头中的源ip地址为所述第一共享vtepip地址,所述nvo3封装的第二报文用于指示接收所述nvo3封装的第二报文的nve根据存储的接口表项对比所述第一共享vtepip地址和所述nve连接ce的接口对应的vtepip地址,并向第一接口转发解封装得到的所述第二报文,以及不向第二接口转发解封装得到的所述第二报文,其中,所述第一接口对应的vtepip地址与所述第一共享vtepip地址不同,并且所述第一接口为指定转发者df状态,所述第二接口对应的vtepip地址与所述第一共享vtepip地址相同。

在一些可行的实施方式中,上述发射器1000,还用于在所述第二报文为bum报文,所述报文处理设备还连接第二ce,并且连接所述第二ce的接口对应的vtepip地址为所述第一共享vtepip地址时,向所述第二ce转发所述复制的第二报文。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存取存储器(randomaccessmemory,简称ram)等。

以上对本发明实施例所提供的一种报文处理方法、相关装置及nvo3网络系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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