一种数据报文的转发方法及装置与流程

文档序号:14216619阅读:131来源:国知局

本发明实施例涉及计算机网络技术领域,尤其涉及一种数据报文的转发方法及装置。



背景技术:

随着虚拟局域网的发展,采用虚拟可扩展局域网(virtualextensiblelocalareanetwork,简称vxlan)技术通过vxlan隧道转发数据报文的方法越来越受到关注。

如图1所示,目前在数据报文的转发过程中,网络中的起点交换设备(即图1中的交换设备1)通过该交换设备1的输入端口接收到业务服务器1发送的数据报文之后,该交换设备1根据该交换设备1中的vxlan隧道表、vxlan接口表、路由表、媒体接入控制(mediaaccesscontrol,mac)表,确定vxlan隧道头部,该vxlan隧道头部包括vxlan头部、用户数据报协议(userdatagramprotocol,简称udp)头部、互联网协议(internetprotocol,简称ip)头部以及mac头部,然后交换设备1根据其确定的vxlan隧道头部,封装该交换设备1接收到的数据报文,即给该数据报文添加上述vxlan隧道头部,交换设备1再将该数据报文通过vxlan隧道发送给终点交换设备(即图1中的交换设备2),交换设备2接收到交换设备1通过vxlan隧道发送的经封装后的数据报文之后,解封装该封装后的数据报文,即删除数据报文的vxlan隧道头部,然后将该解封装后的数据报文通过该交换设备2的输出端口发送给业务服务器2,从而完成数据报文在vxlan中的转发。

然而,上述方法中,由于转发数据报文的过程中,起点交换设备需确定vxlan隧道头部,因此上述起点交换设备需要配置vxlan隧道表、vxlan接口表、路由表以及mac表等硬件资源,并且还需配置vxlan协议和路由协议,网络的配置和管理比较复杂,从而也使得数据报文的转发过程比较复杂。



技术实现要素:

本申请提供一种数据报文的转发方法及装置,能够简化网络的配置和管理,降低交换设备转发数据报文的复杂度,同时能够降低交换设备的成本。

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

第一方面,提供一种数据报文的转发方法,该方法可以包括:sdn控制器确定第一流表和第二流表;并且该sdn控制器向第一交换设备发送第一流表,并且向第二交换设备发送第二流表,第一流表包括至少一个数据报文的地址信息与至少一个数据报文的封装信息之间的对应关系,第二流表包括至少一个数据报文的地址信息与至少一个数据报文的解封装信息之间的对应关系,该第一流表用于指示第一交换设备接收到第一数据报文之后,封装第一数据报文,该第二流表用于指示第二交换设备接收到封装后的第一数据报文之后,解封装封装后的第一数据报文,第一交换设备为vxlan隧道中的起点交换设备,第二交换设备为vxlan隧道中的终点交换设备。

第二方面,提供一种数据报文的转发方法,该方法可以包括:第一交换设备接收sdn控制器发送的流表,该流表包括至少一个数据报文的地址信息与至少一个数据报文的封装信息之间的对应关系,该第一交换设备为vxlan隧道中的起点交换设备;并且第一交换设备接收第一数据报文;以及第一交换设备根据第一数据报文的地址信息,在流表中确定第一数据报文的封装信息;并且第一交换设备根据第一数据报文的封装信息,封装第一数据报文。

第三方面,提供一种数据报文的转发方法,该方法可以包括:第二交换设备接收sdn控制器发送的流表,该流表包括至少一个数据报文的地址信息与至少一个数据报文的解封装信息之间的对应关系,第二交换设备为vxlan隧道中的终点交换设备;并且第二交换设备接收第一交换设备通过vxlan隧道发送的经第一交换设备封装后的第一数据报文;以及第二交换设备根据封装后的第一数据报文的地址信息,在流表中确定第一数据报文的解封装信息;并且第二交换设备根据第一数据报文的解封装信息,解封上述装封装后的第一数据报文。

第四方面,提供一种sdn控制器,包括确定模块和发送模块。其中,确定模块,用于确定第一流表和第二流表,第一流表包括至少一个数据报文的地址信息与至少一个数据报文的封装信息之间的对应关系,第二流表包括至少一个数据报文的地址信息与至少一个数据报文的解封装信息之间的对应关系;发送模块,用于向第一交换设备发送第一流表,并且向第二交换设备发送第二流表,第一流表用于指示第一交换设备接收到第一数据报文之后,封装第一数据报文,第二流表用于指示第二交换设备接收到封装后的第一数据报文之后,解封上述装封装后的第一数据报文,第一交换设备为vxlan隧道中的起点交换设备,第二交换设备为vxlan隧道中的终点交换设备。

第五方面,提供一种第一交换设备,包括接收模块、确定模块和封装模块。其中,接收模块,用于接收sdn控制器发送的流表,并且接收第一数据报文,该流表包括至少一个数据报文的地址信息与至少一个数据报文的封装信息之间的对应关系,第一交换设备为vxlan隧道中的起点交换设备;确定模块,用于根据第一数据报文的地址信息,在流表中确定第一数据报文的封装信息;封装模块,用于根据第一数据报文的封装信息,封装第一数据报文。

第六方面,提供一种第二交换设备,包括接收模块、确定模块和解封装模块。其中,接收模块,用于接收sdn控制器发送的流表,并且接收第一交换设备通过vxlan隧道发送的经第一交换设备封装后的第一数据报文,该流表包括至少一个数据报文的地址信息与至少一个数据报文的解封装信息之间的对应关系,第二交换设备为vxlan隧道中的终点交换设备;确定模块,用于根据封装后的第一数据报文的地址信息,在流表中确定第一数据报文的解封装信息;解封装模块,用于根据第一数据报文的解封装信息,解封装上述封装后的第一数据报文。

第七方面,提供一种sdn控制器,该sdn控制器包括处理器、收发器和存储器。其中,存储器用于存储计算机指令,当该sdn控制器运行时,处理器执行该存储器存储的该计算机指令,以使该sdn控制器执行第一方面所述的数据报文的转发方法。

第八方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括计算机指令,当sdn控制器的处理器执行该计算机指令时,该sdn控制器执行上述第一方面所述的数据报文的转发方法。

第九方面,提供一种包括计算机指令的计算机程序产品,当该计算机程序产品在sdn控制器上运行时,使得该sdn控制器执行上述第一方面所述的数据报文的转发方法。

第十方面,提供一种第一交换设备,该第一交换设备包括处理器、收发器和存储器。其中,存储器用于存储计算机指令,当该第一交换设备运行时,处理器执行该存储器存储的该计算机指令,以使该第一交换设备执行第二方面所述的数据报文的转发方法。

第十一方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括计算机指令,当第一交换设备的处理器执行该计算机指令时,该第一交换设备执行上述第二方面所述的数据报文的转发方法。

第十二方面,提供一种包括计算机指令的计算机程序产品,当该计算机程序产品在第一交换设备的上运行时,使得该第一交换设备的执行上述第二方面所述的数据报文的转发方法。

第十三方面,提供一种第二交换设备,该第二交换设备包括处理器、收发器和存储器。其中,存储器用于存储计算机指令,当该第二交换设备运行时,处理器执行该存储器存储的该计算机指令,以使该第二交换设备执行第三方面所述的数据报文的转发方法。

第十四方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括计算机指令,当第二交换设备的处理器执行该计算机指令时,该第二交换设备执行上述第三方面所述的数据报文的转发方法。

第十五方面,提供一种包括计算机指令的计算机程序产品,当该计算机程序产品在第二交换设备的上运行时,使得该第二交换设备的执行上述第三方面所述的数据报文的转发方法。

本申请提供的数据报文的转发方法及装置,sdn控制器可以在不同的场景中确定第一流表和第二流表,并且将该第一流表发送第一交换设备,将第二流表发送给第二交换设备,从而第一交换设备可以根据第一流表直接封装其接收到的数据报文,第二交换设备可以根据第二流表直接解封装其接收到的数据报文。与现有技术相比,由于sdn控制器可以确定用于封装数据报文或者解封装数据报文的流表,并且向对应的交换设备发送流表,从而交换设备上无需再配置vxlan隧道表、vxlan接口表、路由表以及mac表等硬件资源,也无需运行vxlan协议和路由协议,如此,能够简化网络的配置和管理,降低交换设备转发数据报文的复杂度,同时能够降低交换设备的成本。

附图说明

图1为本发明实施例提供的一种通信系统的架构示意图一;

图2为本发明实施例提供的一种通信系统的架构示意图二;

图3为本发明实施例提供的一种服务器的硬件示意图;

图4为本发明实施例提供的一种交换机的硬件示意图;

图5为本发明实施例提供的一种数据报文的转发方法示意图一;

图6为本发明实施例提供的vxlan隧道头部结构示意图;

图7为本发明实施例提供的一种数据报文的转发方法示意图二;

图8为本发明实施例提供的一种数据报文的转发方法示意图三;

图9为本发明实施例提供的一种通信系统的架构示意图三;

图10为本发明实施例提供的一种数据报文的转发方法示意图四;

图11为本发明实施例提供的一种数据报文的转发方法示意图五;

图12为本发明实施例提供的一种sdn控制器的结构示意图一;

图13为本发明实施例提供的一种sdn控制器的结构示意图二;

图14为本发明实施例提供的一种第一交换设备的结构示意图一;

图15为本发明实施例提供的一种第一交换设备的结构示意图二;

图16为本发明实施例提供的一种第二交换设备的结构示意图一;

图17为本发明实施例提供的一种第二交换设备的结构示意图二。

具体实施方式

下面结合附图对本发明实施例提供的数据报文的转发方法及装置进行详细描述。

本发明实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一流表和第二流表等是用于区别不同的流表,而不是用于描述流表的特定顺序。

在本发明实施例中,“示例性的”或者“例如”等词用于表示例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

在本发明实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。

此外,本发明的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

基于背景技术存在的问题,本发明实施例提供过一种数据报文的转发方法及装置,软件定义网络(softwaredefinednetwork,简称sdn)控制器可以向起点交换设备发送用于封装数据报文的流表,向终点交换设备发送解封装数据报文的流表,从而起点交换设备可以根据封装报文的流表封装数据报文,并将封装后的数据报文发送给终点交换设备,然后终点交换设备根据解封装数据报文的流表解封装数据报文,与现有技术相比,交换设备上无需再配置vxlan隧道表、vxlan接口表、路由表以及mac表等硬件资源,也无需运行vxlan协议和路由协议,如此,能够简化网络的配置和管理,降低交换设备转发数据报文的复杂度,同时能够降低交换设备的成本。

本发明实施例提供的数据报文的转发方法可以应用于通信系统中,图2所示为本发明实施例提供的一种通信系统的架构示意图,在图2中,该通信系统包括第一交换设备10、第二交换设备11和sdn控制器12,sdn控制器12可以控制管理第一交换设备10和第二交换设备11,第一交换设备通过构建vxlan隧道穿越ip网络向第二交换设备11传输数据。

本发明实施例提供的sdn控制器为基于开放流(openflow)等协议,规定了灵活的数据包处理规范,可以控制管理与其连接的交换设备或路由设备,例如控制交换设备按照转发规则转发数据包或数据报文等。sdn控制器为一种软件应用,其可以承载在服务器中,以实现该sdn控制器的功能。下面结合图3具体介绍本发明实施例提供的承载有sdn控制器的服务器的各个构成部件。如图3所示,该服务器可以包括:处理器20、存储器21和通信接口22等。

处理器20:是服务器的核心部件,用于运行服务器的操作系统与服务器上的应用程序(包括系统应用程序和第三方应用程序,例如sdn控制器)。

本发明实施例中,处理器20具体可以为中央处理器(centralprocessingunit,简称cpu),通用处理器,数字信号处理器(digitalsignalprocessor,简称dsp),专用集成电路(application-specificintegratedcircuit,简称asic),现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合,其可以实现或执行结合本发明实施例公开的内容所描述的各种示例性的逻辑方框,模块和电路;处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。

存储器21:可用于存储软件程序以及模块,处理器20通过运行存储在存储器21里的软件程序以及模块,从而执行服务器的各种功能应用以及数据处理。存储器21可包含一个或多个计算机可读存储介质。存储器21包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等,存储数据区可存储服务器创建的数据等,本发明实施例中,存储器21中可以包括sdn控制器的应用程序,通过运行sdn控制器的应用程序以控制服务链拓扑结构中的其他设备。

本发明实施例中,存储器21具体可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,简称ram);该存储器也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,简称rom),快闪存储器(flashmemory),硬盘(harddiskdrive,简称hdd)或固态硬盘(solid-statedrive,简称ssd);该存储器还可以包括上述种类的存储器的组合。

通信接口22:用于服务器与其他设备进行通信的接口电路,通信接口可以为收发器、收发电路等具有收发功能的结构,通信接口包括串行通信接口、并行通信接口以及网络接口等。

本发明实施例中的交换设备可以为交换机,图4为本发明实施例提供的交换机的硬件示意图,如图4所示,如图4所示的交换机可以包括:处理器30、存储器31和接口32等部件。下面对交换机的各个构成部件进行示例性的说明。

处理器30:用于通过接口32转发数据报文,交换机的处理器30中通常使用asic芯片,以实现数据报文的高速转发。

存储器31:用于存储交换机的配置、操作系统、转发协议软件等。交换机中可以有多种存储器,如ram、rom、快闪存储器等。

接口32:也称为端口,交换机中的端口可以包括转发端口和控制端口。转发端口用于交换机发送和接收数据报文;控制端口用于用户或管理员利用终端与交换机进行通信,完成对交换机的配置。

结合上述如图2所示的通信系统,基于vxlan,在不同的场景中,sdn控制器均可以向第一交换设备和第二交换设备发送流表。具体的,场景一为vxlan中的交换设备的部署方式为二层部署(第一交换设备与第二交换设备为二层交换设备,并且与第一交换设备连接的第一业务服务器和与第二交换设备连接的第二业务服务器之间的数据转发模式为二层转发模式);场景二为vxlan中的交换设备的部署方式为三层部署(第一交换设备与第二交换设备仍为二层交换设备,但给用户实现或呈现的是三层vxlan网关功能,即与第一交换设备连接的第一业务服务器和与第二交换设备连接的第二业务服务器之间的数据转发模式为三层转发模式);场景三为vxlan中的交换设备的部署方式为三层桥接部署,即通信系统中的交换设备仍为二层交换设备,但给业务服务器呈现的是三层vxlan网关功能或三层vxlan桥接功能,即与第一交换设备连接的第一业务服务器、与第二交换设备连接的第二业务服务器以及与第三交换设备连接的第三业务服务器之间的数据转发模式为三层转发模式,并且存在至少一个交换设备可以作为其他交换设备之间通信的桥接设备。

以下实施例中分别从不同的场景的角度,对本发明实施例提出的数据报文的转发方法进行详细的描述。

结合图2,如图5所示,在场景一和场景二中,本发明实施例提供的数据报文的转发方法可以包括s101-s112:

s101、sdn控制器确定第一流表和第二流表。

本发明实施例中,结合如图2所示的通信系统,第一交换设备与第二交换设备可以通过二者之间建立的vxlan隧道通信,通过vxlan隧道传输的数据报文具有特定的报文格式,即第一交换设备接收到来自业务服务器的数据报文之后,第一交换设备需将该数据报文封装为特定格式的报文,第二交换设备接收到第一交换设备发送的封装后的数据报文之后,第二交换设备需将该封装后的数据报文解封装。而通信系统中的sdn控制器可以控制管理系统中的第一交换设备和第二交换设备。具体的,sdn控制器可以确定用于第一交换设备封装数据报文的流表和用于第二交换设备解封装数据报文的流表。

上述通过vxlan隧道传输的数据报文的格式为:在原始报文的基础上再封装vxlan隧道头部,vxlan隧道头部包括vxlan头部、用户数据报协议udp头部、ip头部以及mac头部,如图6所示为vxlan隧道头部结构示意图。

本发明实施例中,第一流表包括至少一个数据报文的地址信息与至少一个数据报文的封装信息之间的对应关系,第二流表包括至少一个数据报文的地址信息与至少一个数据报文的解封装信息之间的对应关系。

可选的,在上述场景一中,sdn控制器可以根据至少一个数据报文的mac地址,确定第一流表和第二流表,其中,第一流表中的数据报文的封装信息包括数据报文的vxlan隧道头部的内容和第一交换设备上的第一端口信息,该第一端口信息指示的第一端口用于发送经第一交换设备封装后的数据报文(即封装后的第一数据报文);第二流表中的数据报文的解封装信息包括第二交换设备上的第二端口信息,该第二端口信息指示的第二端口用于发送经第二交换设备解封装后的数据报文(即第一数据报文)。

可选的,在场景二中,sdn控制器根据至少一个数据报文的ip地址,确定第一流表和第二流表,其中,第一流表中的数据报文的封装信息包括数据报文的mac地址的修改值、数据报文的vxlan隧道头部的内容以及第一交换设备上的第一端口信息,该第一端口信息指示的第一端口用于发送经第一交换设备封装后的数据报文(即封装后的第一数据报文);第二流表中的数据报文的解封装信息包括数据报文的mac地址的修改值和第二交换设备上的第二端口信息,该第二端口信息指示的第二端口用于发送经第二交换设备解封装后的数据报文(即第一数据报文)。

s102、sdn控制器向第一交换设备发送第一流表。

s103、第一交换设备接收sdn控制器发送的第一流表。

s104、sdn控制器向第二交换设备发送第二流表。

s105、第二交换设备接收sdn控制器发送的第二流表。

需要说明的是,本发明实施例可以不限定s102-s103和s104-s105的执行顺序。即本发明实施例可以先执行s102-s103,后执行s104-s105;也可以先执行s104-s105,后执行s102-s103;还可以同时执行s102-s103和s104-s105。

s106、第一交换设备接收第一数据报文。

本发明实施例中,与第一交换设备连接的第一业务服务器向与第二交换设备连接的第二业务服务器发送二层数据报文(以下将该二层数据报文均称为第一数据报文)时,第一业务服务器将该第一数据报文发送给发送的第一交换设备,再经第一交换设备和第二交换设备发送给第二业务服务器。

s107、第一交换设备根据第一数据报文的地址信息,在第一流表中确定第一数据报文的封装信息。

s108、第一交换设备根据第一数据报文的封装信息,封装第一数据报文。

本发明实施例中,由于第一流表中包括至少一个数据报文的地址信息,并且包括与该至少一个数据报文的地址信息对应的该至少一个数据报文的封装信息,第一交换设备接收到第一数据报文之后,第一交换设备可以根据第一数据报文的地址信息,从第一流表中确定与该第一数据报文的地址信息对应的封装信息,即为第一数据报文的封装信息,然后第一交换设备根据该第一数据报文的封装信息,封装第一数据报,最后第一交换设备从该第一交换设备的第一端口将该封装后的第一数据报文发送给第二交换设备。

可选的,在场景一中,第一交换设备根据第一数据报文的mac地址,从第一流表中确定第一数据报文的封装信息;在场景二中,第一交换设备根据第一数据报文的ip地址,从第一流表中确定第一数据报文的封装信息。

s109、第一交换设备通过vxlan隧道向第二交换设备发送封装后的第一数据报文。

s110、第二交换设备接收第一交换设备通过vxlan隧道发送的封装后的第一数据报文。

s111、第二交换设备根据封装后的第一数据报文的地址信息,在第二流表中确定第一数据报文的解封装信息。

s112、第二交换设备根据第一数据报文的解封装信息,解封装该封装后的第一数据报文。

同上述s108,由于第二流表中包括至少一个数据报文的地址信息,并且包括与该至少一个数据报文的地址信息对应的该至少一个数据报文的解封装信息,第二交换设备接收到第一交换设备发送的封装后的第一数据报文之后,第二交换设备可以根据封装后的第一数据报文的地址信息(该封装后的第一数据报文的地址信息与上述s108中的第一数据报文的地址信息的含义相同),从第二流表中确定与该第一数据报文的地址信息对应的解封装信息,即为第一数据报文的解封装信息,然后第二交换设备根据该第一数据报文的解封装信息,解封装该封装后的第一数据报文,最后第二交换设备从该第二交换设备的第二端口将该解封装后的第一数据报文发送给第二业务服务器。

可选的,结合图5,如图7所示,在场景一中,上述s108具体可以通过s108a实现:

s108a、第一交换设备在第一数据报文中添加第一数据报文的vxlan隧道头部。

本发明实施例中,第一交换设备封装第一数据报文具体为在第一数据报文中添加从第一数据报文的封装信息中获取的第一数据报文的vxlan隧道头部的内容,从而得到封装后的第一数据报文。

如图7所示,在场景一中,上述s112具体可以通过s112a实现:

s112a、第二交换设备删除封装后的第一数据报文的vxlan隧道头部。

本发明实施例中,第一交换设备解封装经第一交换设备封装后的第一数据报文具体为:将封装后的第一数据报文中的vxlan删除,得到解封装后的第一数据报文。

可选的,结合图5,如图8所示,在场景二中,上述s108具体可以通过s108b实现:

s108b、第一交换设备根据第一数据报文的mac地址的修改值,修改第一数据报文的mac地址,并且在第一数据报文中添加第一数据报文的vxlan隧道头部。

需要说明的是,本发明实施例中,由于在场景一中,第一业务服务器与第二业务服务器之间的数据转发模式为二层转发模式(即基于mac地址转发数据报文),第一交换设备接收到第一数据报文,该第一数据报文的源mac地址即为第一业务服务器的mac地址,该第一数据报文的目的mac地址即为第二业务服务器的mac地址,因此,第一交换设备在封装第一数据报文时,无需修改该第一数据报文的mac地址。

本发明实施例中,在场景二中,第一业务服务器与第二业务服务器之间的数据转发模式为三层转发模式(基于ip地址转发数据报文),第一交换设备接收到第一数据报文,在第一交换设备封装该第一数据报文时,该第一交换设备需将该第一数据报文的源mac地址由第一业务服务器的mac地址修改为第一交换设备的mac地址,将第一数据报文的目标mac地址由第一交换设备的mac地址修改为第二交换设备的mac地址,然后再添加第一数据报文的vxlan隧道头部,得到封装后的第一数据报文。

如图8所示,在场景二中,上述s112具体可以通过s112b实现:

s112b、第二交换设备删除封装后的第一数据报文的vxlan隧道头部,并且根据第一数据报文的mac地址的修改值,修改第一数据报文的mac地址。

本发明实施例中,第二交换设备解封装上述封装后的第一数据报文具体为:将封装后的第一数据报文中的vxlan删除,然后将第一数据报文的源mac地址由第一交换设备的mac地址修改为第二交换设备的mac地址,将第一数据报文的目的mac地址由第二交换设备的mac地址修改为第二业务服务器的mac地址。

如图9所示,为场景三的通信系统的架构示意图,在图9中,第一交换设备是第二交换设备与第三交换设备之间的桥接设备,第二交换设备与第三交换设备之间无法直接通信,而第一交换设备可以与第二交换设备通信,第一交换设备也可以与第三交换设备通信,如此第一交换设备可以作为第二交换设备与第三交换设备之间的桥接设备,第三交换设备向第二交换设备发送数据报文时,第三交换设备先将数据报文发送给第一交换设备,由第一交换设备再将数据报文发送给第二交换设备。

结合图9,如图10所示,在场景三中,本发明实施例提供的数据报文的转发方法可以包括s201-s218:

s201、sdn控制器确定第一流表、第二流表和第三流表。

本发明实施例中,第一交换设备为第二交换设备与第三交换设备的桥接设备,该第一流表包括至少一个数据报文的地址信息与至少一个数据报文的封装信息之间的对应关系;第二流表包括至少一个数据报文的地址信息与至少一个数据报文的解封装信息之间的对应关系;该第三流表包括至少一个数据报文的地址信息与至少一个数据报文的封装信息之间的对应关系。

对于s201的其他描述可以参见上述实施例中对于s101的相关描述,此处不再赘述。

s202、sdn控制器向第一交换设备发送第一流表。

s203、第一交换设备接收sdn控制器发送的第一流表。

s204、sdn控制器向第二交换设备发送第二流表。

s205、第二交换设备接收sdn控制器发送的第二流表。

s206、sdn控制器向第三交换设备发送第三流表。

s207、第三交换设备接收sdn控制器发送的第三流表。

需要说明的是,本发明实施例可以不限定s202-s203、s204-s205以及s206-s207的执行顺序。

需要说明的是,在场景三中,第一交换设备、第二交换设备与第三交换设备均为二层交换设备,第一业务服务器、第二业务服务器以及第三业务服务器之间的数据转发模式为三层转发模式(即基于ip地址转发数据报文),其中,第一交换设备是第二交换设备与第三交换设备之间的桥接设备。

s208、第三交换设备接收第一数据报文。

s209、第三交换设备根据第一数据报文的ip地址,在第三流表中确定第一数据报文的封装信息。

本发明实施例中,第三流表中的数据报文的封装信息包括数据报文的mac地址的修改值、数据报文的vxlan隧道头部的内容以及第三交换设备上的第三端口信息。第三端口信息指示的第三端口用于发送经该第三交换设备封装后的数据报文。

s210、第三交换设备根据第三流表中的第一数据报文的封装信息,封装第一数据报文。

可以理解的是,第三交换设备接收到与该第三交换设备连接的业务服务器发送的第一数据报文之后,第三交换设备封装第一数据报文的方法与上述s108b中第一交换设备封装第一数据报文的方法类似(该第三交换设备需将该第一数据报文的源mac地址由第一业务服务器的mac地址修改为第三交换设备的mac地址),与上述s108b不同的是,第三交换设备将第一数据报文的目的mac地址修改为第一交换设备的mac地址,对于s210的其他描述可以参见上述s108b的相关描述,此处不再赘述。

s211、第三交换设备通过该第三交换设备与第一交换设备之间的vxlan隧道,向第一交换设备发送封装后的第一数据报文。

本发明实施例中,第三交换设备可以从该第三交换设备上的第三端口将封装后的第一数据报文发送给第一交换设备。

s212、第一交换设备接收第三交换设备发送的封装后的第一数据报文。

s213、第一交换设备根据封装后的第一数据报文的ip地址,在第一流表中确定第一数据报文的封装信息。

本发明实施例中,在场景三中,第一流表中的数据报文的封装信息(可以理解为替换封装信息)包括经第三交换设备封装后的数据报文的mac地址的修改值、数据报文的vxlan隧道头部的修改内容以及第一交换设备上的第一端口信息。

s214、第一交换设备根据第一流表中的第一数据报文的封装信息,替换封装该第一数据报文。

s215、第一交换设备通过该第一交换设备与第二交换设备之间的vxlan隧道,向第二交换设备发送替换封装后的第一数据报文。

本发明实施例中,第一交换设备可以从该第一交换设备上的第一端口将替换封装后的第一数据报文发送给第二交换设备。

s216、第二交换设备接收第一交换设备发送的替换封装后的第一数据报文。

s217、第二交换设备根据该替换封装后的第一数据报文的ip地址,在第二流表中确定第一数据报文的解封装信息。

本发明实施例中,第二流表中的数据报文的解封装信息包括数据报文的mac地址的修改值和第二交换设备上的第二端口信息。

s218、第二交换设备根据第二流表中的第一数据报文的解封装信息,解封装替换封装后的第一数据报文。

可以理解的是,第二设备接收到第一交换设备发送的替换封装后的第一数据报文之后,第二交换设备解封装该替换封装后第一数据报文的方法与上述s112b中第二交换设备解封装第一数据报文的方法类似,对于s218的具体描述可以参见上述s112b的相关描述,此处不再赘述。

本发明实施例中,第二交换设备解封装上述经第一交换设备替换封装后的第一数据报文,得到解封装后的第一数据报文之后,第二交换设备可以从该第二交换设备的第二端口将该解封装后的第一数据报文发送给与该第二交换设备连接的业务服务器。

可选的,结合图10,如图11所示,上述s214可以通过s214a实现:

s214a、第一交换设备根据第一数据报文的mac地址的修改值,修改第一数据报文的mac地址,并且根据第一数据报文的vxlan隧道头部的修改内容,修改第一数据报文的vxlan隧道头部。

本发明实施例中,第一交换设备接收到经第三交换设备封装后的第一数据报文,该第一交换设备需将该第一数据报文的源mac地址由第三交换设备的mac地址修改为第一交换设备的mac地址,将第一数据报文的目标mac地址由第一交换设备的mac地址修改为第二交换设备的mac地址,然后再根据第一数据报文的vxlan隧道头部的修改内容,修改第一数据报文的vxlan隧道头部,得到替换封装后的第一数据报文,最后第一交换设备将该替换封装后的数据报文发送给第二交换设备。

上述vxlan隧道头部的修改内容包括mac头部的修改值、ip头部的修改值以及vxlan头部的修改值。

本发明实施例提供的数据报文的转发方法,sdn控制器可以在不同的场景中确定第一流表和第二流表,并且将该第一流表发送第一交换设备,将第二流表发送给第二交换设备,从而第一交换设备可以根据第一流表直接封装其接收到的数据报文,第二交换设备可以根据第二流表直接解封装其接收到的数据报文。与现有技术相比,由于sdn控制器可以确定用于封装数据报文或者解封装数据报文的流表,并且向对应的交换设备发送流表,从而交换设备上无需再配置vxlan隧道表、vxlan接口表、路由表以及mac表等硬件资源,也无需运行vxlan协议和路由协议,如此,能够简化网络的配置和管理,降低交换设备转发数据报文的复杂度,同时能够降低交换设备的成本。

在采用对应各个功能划分各个功能模块的情况下,图12示出了上述实施例中所涉及的sdn控制器的一种可能的结构示意图,如图12所示,该sdn控制器可以包括:确定模块40和发送模块41。

确定模块40,用于确定第一流表和第二流表,该第一流表包括至少一个数据报文的地址信息与至少一个数据报文的封装信息之间的对应关系,该第二流表包括至少一个数据报文的地址信息与至少一个数据报文的解封装信息之间的对应关系,例如上述确定模块40可以用于支持sdn控制器执行上述方法实施例中的s101和s201;发送模块41,用于向第一交换设备发送第一流表,并且向第二交换设备发送第二流表,该第一流表用于指示第一交换设备接收到第一数据报文之后,封装第一数据报文,该第二流表用于指示第二交换设备接收到封装后的第一数据报文之后,解封上述装封装后的第一数据报文,该第一交换设备为vxlan隧道中的起点交换设备,该第二交换设备为vxlan隧道中的终点交换设备,例如发送模块41可以用于支持sdn控制器执行上述方法实施例中的s102、s104、s202、s204以及s206。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

可选的,若vxlan中的交换设备的部署方式为二层部署,上述确定模块40,具体用于根据至少一个数据报文的mac地址,确定第一流表和第二流表,一个数据报文的封装信息包括数据报文的vxlan隧道头部的内容和第一交换设备上的第一端口信息,该第一端口信息指示的第一端口用于发送经第一交换设备封装后的数据报文,一个数据报文的解封装信息包括第二交换设备上的第二端口信息,第二端口信息指示的第二端口用于发送经第一交换设备封装后的数据报文。

可选的,若vxlan中的交换设备的部署方式为三层部署,上述确定模块40,具体用于根据至少一个数据报文的ip地址,确定第一流表和第二流表,一个数据报文的封装信息包括数据报文的mac地址的修改值、数据报文的vxlan隧道头部的内容以及第一交换设备上的第一端口信息,第一端口信息指示的第一端口用于发送经第一交换设备封装后的数据报文,一个数据报文的解封装信息包括数据报文的mac地址的修改值和第二交换设备上的第二端口信息,第二端口信息指示的第二端口用于发送经第二交换设备解封装后的数据报文。

可选的,若vxlan中的交换设备的部署方式为三层桥接部署,上述确定模块40,具体用于根据至少一个数据报文的ip地址,确定第一流表和第二流表,一个数据报文的封装信息包括数据报文的mac地址的修改值、数据报文的vxlan隧道头部的修改内容以及第一交换设备上的第一端口信息,第一端口信息指示的第一端口用于发送经第一交换设备封装后的数据报文,一个数据报文的解封装信息包括数据报文的mac地址的修改值和第二交换设备上的第二端口信息,第二端口信息指示的第二端口用于发送经第二交换设备解封装后的数据报文。

在采用集成的单元的情况下,图13示出了上述实施例中所涉及的sdn控制器的一种可能的结构示意图。如图13所示,sdn控制器可以包括:处理模块50和通信模块51。处理模块50可以用于对sdn控制器的动作进行控制管理,例如,处理模块50可以用于支持sdn控制器执行上述方法实施例中的s101和s201,和/或用于本文所描述的技术的其它过程。通信模块51可以用于支持sdn控制器与其他网络实体的通信,例如通信模块51可以用于支持sdn控制器执行上述方法实施例中的s102、s104、s202、s204以及s206。可选的,如图13所示,该sdn控制器还可以包括存储模块52,用于存储sdn控制器的程序代码和数据。

其中,处理模块50可以是处理器或控制器(例如可以是上述如图3所示的处理器20)。通信模块51可以是收发器、收发电路或通信接口等(例如可以是上述如图3所示的通信接口22)。存储模块52可以是存储器(例如可以是上述如图3所示的存储器21)。

当处理模块50为处理器,通信模块51为收发器,存储模块52为存储器时,处理器、收发器和存储器可以通过总线连接。总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。

在采用对应各个功能划分各个功能模块的情况下,图14示出了上述实施例中所涉及的第一交换设备的一种可能的结构示意图,如图14所示,该第一交换设备可以包括:接收模块60、确定模块61和封装模块62。

接收模块60,用于接收sdn控制器发送的流表,并且接收第一数据报文,该流表包括至少一个数据报文的地址信息与至少一个数据报文的封装信息之间的对应关系,该第一交换设备为vxlan隧道中的起点交换设备,例如接收模块60可以用于支持第一交换设备执行上述方法实施例中的s103、s106、s203以及s212;确定模块61,用于根据第一数据报文的地址信息,在流表中确定第一数据报文的封装信息,例如确定模块61可以用于支持第一交换设备执行上述方法实施例中的s107和s213;封装模块62,用于根据第一数据报文的封装信息,封装第一数据报文,例如封装模块62可以用于支持第一交换设备执行上述方法实施例中的s108(包括s108a或s108b)以及s214(包括s214a)。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

可选的,若vxlan中的交换设备的部署方式为二层部署,一个数据报文的封装信息包括数据报文的vxlan隧道头部的内容和第一交换设备上的第一端口信息,该第一端口信息指示的第一端口用于发送经第一交换设备封装后的数据报文;上述封装模块62,具体用于在第一数据报文中添加第一数据报文的vxlan隧道头部。

可选的,若vxlan中的交换设备的部署方式为三层部署,一个数据报文的封装信息包括数据报文的mac地址的修改值、数据报文的vxlan隧道头部的内容以及第一交换设备上的第一端口信息,该第一端口信息指示的第一端口用于发送经第一交换设备封装后的数据报文;上述封装模块62,具体用于根据第一数据报文的mac地址的修改值,修改第一数据报文的mac地址,并且在第一数据报文中添加第一数据报文的vxlan隧道头部。

可选的,若vxlan中的交换设备的部署方式为三层桥接部署,一个数据报文的封装信息包括数据报文的mac地址的修改值、数据报文的vxlan隧道头部的修改内容以及第一交换设备上的第一端口信息,该第一端口信息指示的第一端口用于发送经第一交换设备封装后的数据报文;上述封装模块62,具体用于根据第一数据报文的mac地址的修改值,修改第一数据报文的mac地址,并且根据第一数据报文的vxlan隧道头部的修改内容,修改第一数据报文的vxlan隧道头部。

在采用集成的单元的情况下,图15示出了上述实施例中所涉及的第一交换设备的一种可能的结构示意图。如图10所示,第一交换设备可以包括:处理模块70和通信模块71。处理模块70可以用于对第一交换设备的动作进行控制管理,例如,处理模块70可以用于支持第一交换设备执行上述方法实施例中的s107、s108(包括s108a或s108b)、s213以及s214(包括s214a),和/或用于本文所描述的技术的其它过程。通信模块71可以用于支持第一交换设备与其他网络实体的通信,例如通信模块71可以用于支持第一交换设备执行上述方法实施例中的s103、s106、s203以及s212。可选的,如图15所示,该第一交换设备还可以包括存储模块72,用于存储第一交换设备的程序代码和数据。

其中,处理模块70可以是处理器或控制器(例如可以是上述如图4所示的处理器30)。通信模块71可以是收发器、收发电路或通信接口等(例如可以是上述如图4所示的通信接口32)。存储模块72可以是存储器(例如可以是上述如图4所示的存储器41)。

当处理模块70为处理器,通信模块71为收发器,存储模块72为存储器时,处理器、收发器和存储器可以通过总线连接。总线可以是pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。

在采用对应各个功能划分各个功能模块的情况下,图16示出了上述实施例中所涉及的第二交换设备的一种可能的结构示意图,如图16所示,该第二交换设备可以包括:接收模块80、确定模块81和解封装模块82。

接收模块80,用于接收sdn控制器发送的流表,并且接收第一交换设备通过vxlan隧道发送的经第一交换设备封装后的第一数据报文,该流表包括至少一个数据报文的地址信息与至少一个数据报文的解封装信息之间的对应关系,该第二交换设备为第一vxlan隧道中的终点交换设备,例如接收模块80可以用于支持第二交换设备执行上述方法实施例中的s105、s110、s205以及s216;确定模块81,用于根据封装后的第一数据报文的地址信息,在流表中确定第一数据报文的解封装信息,例如确定模块81可以用于支持第二交换设备执行上述方法实施例中的s111和s217;解封装模块82,用于根据第一数据报文的解封装信息,解封上述装封装后的第一数据报文,例如解封装模块82可以用于支持第二交换设备执行上述方法实施例中的s112(包括s112a或s112b)以及s218。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

可选的,若vxlan中的交换设备的部署方式为二层部署,一个数据报文的解封装信息包括第二交换设备上的第二端口信息,第二端口信息指示的第二端口用于发送经第二交换设备解封装后的数据报文;上述解封装模块82,具体用于删除封装后的第一数据报文的vxlan隧道头部。

可选的,若vxlan中的交换设备的部署方式为三层部署或vxlan中的交换设备的部署方式为三层桥接部署,一个数据报文的解封装信息包括数据报文的mac地址的修改值和第二交换设备上的第二端口信息,第二端口信息指示的第二端口用于发送经第二交换设备解封装后的数据报文;上述解封装模块82,具体用于删除封装后的第一数据报文的vxlan隧道头部,并且根据第一数据报文的mac地址的修改值,修改第一数据报文的mac地址。

在采用集成的单元的情况下,图17示出了上述实施例中所涉及的第二交换设备的一种可能的结构示意图。如图17所示,第二交换设备可以包括:处理模块90和通信模块91。处理模块90可以用于对第二交换设备的动作进行控制管理,例如,处理模块70可以用于支持第二交换设备执行上述方法实施例中的s111、s112(包括s112a或s112b)、s217以及s218,和/或用于本文所描述的技术的其它过程。通信模块91可以用于支持第二交换设备与其他网络实体的通信,例如通信模块91可以用于支持第二交换设备执行上述方法实施例中的s105、s110、s205以及s216。可选的,如图17所示,该第二交换设备还可以包括存储模块92,用于存储第二交换设备的程序代码和数据。

其中,处理模块90可以是处理器或控制器(例如可以是上述如图4所示的处理器30)。通信模块91可以是收发器、收发电路或通信接口等(例如可以是上述如图4所示的通信接口32)。存储模块92可以是存储器(例如可以是上述如图4所示的存储器41)。

当处理模块90为处理器,通信模块91为收发器,存储模块92为存储器时,处理器、收发器和存储器可以通过总线连接。总线可以是pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本发明实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,简称dsl))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digitalvideodisc,简称dvd))、或者半导体介质(例如固态硬盘(solidstatedrives,简称ssd))等。

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

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