CN104506408A - 基于sdn的数据传输的方法及装置 - Google Patents

基于sdn的数据传输的方法及装置 Download PDF

Info

Publication number
CN104506408A
CN104506408A CN201410855987.5A CN201410855987A CN104506408A CN 104506408 A CN104506408 A CN 104506408A CN 201410855987 A CN201410855987 A CN 201410855987A CN 104506408 A CN104506408 A CN 104506408A
Authority
CN
China
Prior art keywords
outbound port
list item
virtual switch
address
port
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.)
Granted
Application number
CN201410855987.5A
Other languages
English (en)
Other versions
CN104506408B (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.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies 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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201410855987.5A priority Critical patent/CN104506408B/zh
Publication of CN104506408A publication Critical patent/CN104506408A/zh
Application granted granted Critical
Publication of CN104506408B publication Critical patent/CN104506408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请提供一种基于软件定义网络SDN的数据传输方法及装置,该方法包括:接收所述虚拟交换机发送的流表项请求报文;从所述虚拟交换机的出端口中选择一个出端口作为目标出端口;将所述目标出端口的端口标识添加到第一流表项中;向所述虚拟交换机下发所述第一流表项,以使所述虚拟交换机将所述虚拟机发送的数据报文通过与所述目标出端口相连的网卡以及对应的隧道终端设备传输。本申请可以实现多个数据传输通道的互相备份,实现数据传输过程中的负载分担,提高虚拟机与外界的通信效率。

Description

基于SDN的数据传输的方法及装置
技术领域
本申请涉及网络通信技术领域,尤其涉及基于SDN的数据传输的方法及装置。
背景技术
SDN(Software Defined Networks,软件定义网络)是一种新型的网络创新架构,通过将控制平面和数据平面分离,实现网络流量的灵活控制。
在采用虚拟化技术的SDN网络中,主要包括控制器、虚拟交换机以及虚拟机。通常在一台物理服务器中配置多台虚拟机和一台虚拟交换机,虚拟交换机通过网卡与隧道终端设备连接,再通过隧道终端设备与外界通信。现有技术中,每台物理服务器安装一块网卡,当该网卡或与其连接的隧道终端设备发生故障时,服务器中的虚拟机将无法与外界通信。
申请内容
有鉴于此,本申请提供了一种基于软件定义网络SDN的数据传输方法,所述SDN网络包括控制器、虚拟机以及虚拟交换机,所述虚拟机和所述虚拟交换机位于服务器上,所述服务器包括多块网卡,每块网卡分别与一台隧道终端设备相连,该方法应用于所述控制器上,包括:
接收所述虚拟交换机发送的流表项请求报文,所述流表项请求报文为所述虚拟交换机接收所述虚拟机向目的主机发送的数据报文时向所述控制器发送的请求报文,所述目的主机为非所述虚拟机所在的本地服务器中的主机;
从所述虚拟交换机的出端口中选择一个出端口作为目标出端口,所述出端口为与所述网卡连接的端口;
将所述目标出端口的端口标识添加到第一流表项中;
向所述虚拟交换机下发所述第一流表项,以使所述虚拟交换机将所述虚拟机发送的数据报文通过与所述目标出端口相连的网卡以及对应的隧道终端设备传输。
本申请还提供了一种基于软件定义网络SDN的数据传输装置,其特征在于,所述SDN网络包括控制器、虚拟机以及虚拟交换机,所述虚拟机和所述虚拟交换机位于服务器上,所述服务器包括多块网卡,每块网卡分别与一台隧道终端设备相连,该装置应用于所述控制器上,该装置包括:
接收单元,用于接收所述虚拟交换机发送的流表项请求报文,所述流表项请求报文为所述虚拟交换机接收所述虚拟机向目的主机发送的数据报文时向所述控制器发送的请求报文,所述目的主机为非所述虚拟机所在的本地服务器中的主机;
选择单元,用于从所述虚拟交换机的出端口中选择一个出端口作为目标出端口,所述出端口为与所述网卡连接的端口;
添加单元,用于将所述目标出端口的端口标识添加到第一流表项中;
下发单元,用于向所述虚拟交换机下发所述第一流表项,以使所述虚拟交换机将所述虚拟机发送的数据报文通过与所述目标出端口相连的网卡以及对应的隧道终端设备传输。
本申请在服务器中安装多块网卡,且每块网卡分别与一台隧道终端设备连接。当服务器中的虚拟机发送数据报文与外界通信时,由虚拟交换机向控制器请求该数据报文的流表项,控制器在下发的流表项中携带为该数据报文选择的出端口,通过与该出端口连接的网卡以及对应的隧道终端设备进行数据传输。通过本申请可以实现多个数据传输通道的互相备份,实现数据传输过程中的负载分担,提高虚拟机与外界的通信效率。
附图说明
图1是为现有技术中虚拟SDN网络示意图;
图2是本申请一种服务器与隧道终端设备的连接示意图;
图3是本申请一种实施例中基于SDN的数据传输方法的处理流程图;
图4是本申请一种实施例中虚拟SDN网络示意图;
图5是本申请一种实施例中基于SDN的数据传输装置的基础硬件示意图;
图6-1是本申请一种实施例中的基于SDN的数据传输装置的结构示意图;
图6-2是本申请另一种实施例中的基于SDN的数据传输装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案及优点更加清楚明白,以下参照附图对本申请所述方案作进一步地详细说明。
如图1所示,为现有技术中虚拟SDN网络的示意图。该SDN网络包括控制器、虚拟交换机(OVS1、OVS2)以及虚拟机(VM1~VM6),其中,VM1~VM3以及OVS1位于服务器1上,通过网卡1与隧道终端设备VTEP1连接;VM4~VM6以及OVS2位于服务器2上,通过网卡2与隧道终端设备VTEP2连接。隧道终端设备为VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)网络的边缘设备。通过VXLAN网络可以实现虚拟局域网的扩展,虚拟机发送的数据报文在VXLAN网络中通过隧道传输。虚拟机发送的数据报文在经过VXLAN网络后可以通过外网网关GW发送给外网主机(PC1)。从该示意图可以看出,服务器1和服务器2均通过单一网卡与外界相连,当服务器的网卡或隧道终端设备出现故障时,服务器内的虚拟机将无法与外界通信。
针对上述问题,本申请实施例提出一种基于SDN的数据传输方法,该方法在服务器中安装多块网卡,每块网卡分别与一台隧道终端设备连接。当服务器中的虚拟机发送数据报文与外界通信时,由虚拟交换机向控制器请求该数据报文的流表项,控制器在下发的流表项中携带为该数据报文选择的出端口,通过与该出端口连接的网卡以及对应的隧道终端设备进行数据传输。
参见图2,为本申请中服务器与隧道终端设备的连接示意图。通常在一台物理服务器中可以插入多块物理网卡,本申请利用该物理特性为每一块网卡配置了一台隧道终端设备,建立多条数据通道进行数据传输。例如,图2所示,服务器1的虚拟机可以通过三条数据通道与外界通信,分别为网卡11与VTEP11之间的数据通道,网卡12与VTEP12之间的数据通道,网卡13与VTEP13之间的数据通道。同时,将VTEP11、VTEP12以及VTEP13组成一个备份保护组,当某一个数据通道出现故障时,可通过其它数据通道进行数据传输。本申请实施例通过在每一个隧道终端设备上运行VRRP(VirtualRouter Redundancy Protocol,虚拟路由冗余协议)协议,生成隧道终端设备的备份保护组,该备份保护组对外表现为一台虚拟的隧道终端设备VTEP1,配置该虚拟隧道终端设备的IP地址,将该虚拟隧道终端设备作为服务器中多块物理网卡的网关。
参见图3,为本申请基于SDN的数据传输方法的一个实施例流程图,该实施例对基于SDN的数据传输的处理过程进行描述。
步骤310,接收所述虚拟交换机发送的流表项请求报文,所述流表项请求报文为所述虚拟交换机接收所述虚拟机向目的主机发送的数据报文时向所述控制器发送的请求报文,所述目的主机为非所述虚拟机所在的本地服务器中的主机。
当服务器内的虚拟机向非本服务器内的目的主机发送数据报文时,与该虚拟机相连的虚拟交换机接收该数据报文,并查询本地是否有该数据报文对应的流表项。虚拟交换机在未查询到对应流表项的情况下,向控制器发送流表项请求报文,请求控制器下发该数据报文的流表项,以指导虚拟交换机进行数据报文转发。控制器接收虚拟交换机上送的流表项请求报文进行后续处理。
步骤320,从所述虚拟交换机的出端口中选择一个出端口作为目标出端口,所述出端口为与所述网卡连接的端口。
控制器接收虚拟交换机上送的流表项请求报文后,为虚拟机发送的数据报文构建流表项,其中,该流表项中的一个重要信息为出端口标识,该出端口标识用于指导虚拟交换机将虚拟机的数据报文从该出端口进行转发。在前述描述中已提到,本申请在服务器中配置了多块网卡,并为每一块网卡配置了对应的隧道终端设备,从而形成了多条可以与外界通信的数据传输通道。其中,每一块网卡连接在虚拟交换机的一个端口上,本申请中将与网卡连接的端口称为出端口,例如,出端口S11、S12以及S13。控制器接收到虚拟交换机的流表项请求报文后,可以从虚拟交换机的所有出端口中选择一个出端口作为目标出端口,指导虚拟交换机将虚拟机发送的数据报文从该目标出端口转发,具体处理过程如下:
控制器从虚拟交换机上获取已下发的流表项,并根据每一个流表项的表项信息统计虚拟交换机的每一个出端口的流量,其中,该表项信息可以为报文统计信息。虚拟交换机在按照控制器下发的流表项进行数据报文转发时,会对转发的数据报文进行统计计数,不断更新流表项,因此,控制器可以通过从虚拟交换机上获取流表项,按照出端口进行数据报文统计,从而知道虚拟交换机的每一个出端口当前的流量情况。从多个出端口中选择统计的流量最少的出端口作为目标出端口,假设出端口S11的流表最小,则将S11作为目标出端口,指导虚拟交换机将数据报文从该流量最少的出端口进行转发。可见,本申请实施例中的目标出端口的选择方式可以实现负载分担,充分利用虚拟交换机的每一个出端口,可以提高数据传输的效率。
步骤330,将所述目标出端口的端口标识添加到第一流表项中。
控制器在确定了进行数据报文转发的目标出端口后,构建第一流表项,将目标出端口的端口标识添加到第一流表项中。
步骤340,向所述虚拟交换机下发所述第一流表项,以使所述虚拟交换机将所述虚拟机发送的数据报文通过与所述目标出端口相连的网卡以及对应的隧道终端设备传输。
控制器向虚拟交换机下发第一流表项,该第一流表项中的出端口标识为目标出端口的端口标识。虚拟交换机接收到该第一流表项后,从该第一流表项中获取出端口标识,将虚拟机发送的数据报文从该出端口转发,即通过与该出端口相连的网卡以及与该网卡对应的隧道终端设备进行数据报文传输,假设第一流表项中的出端口标识为S11,则虚拟交换机向S11端口转发数据报文,该数据报文通过网卡11和隧道终端设备VTEP11进行数据报文传输。
从前述描述可知,虚拟机发送的数据报文通过VXLAN网络进行传输,因此,需要对数据报文进行隧道封装,该隧道封装工作由虚拟交换机完成,具体为根据控制器下发的第一流表项中的表项信息进行隧道封装。控制器在向虚拟交换机下发第一流表项之前,将数据报文的隧道封装信息添加到第一流表项中,具体处理过程如下:
控制器从虚拟交换机发送的流表项请求报文中获取目的主机的IP地址,根据该IP地址判断目的主机的位置信息,例如,SDN网络内的虚拟机的IP地址段为60.10.1.1/16,假设控制器从流表项请求报文中获取的目的主机的IP地址为80.1.20.12,则控制器可以确认该目的主机为外网主机。控制器根据确认的目的主机的位置信息分以下两种情况向第一流表项中添加隧道封装信息。
当目的主机位于外网时,在第一流表项中添加第一隧道封装信息,该第一隧道封装信息的源IP地址为虚拟隧道终端设备的IP地址,第一隧道封装信息的目的IP地址为外网网关的IP地址,其中,虚拟隧道终端设备为与本地服务器网卡相连的多台隧道终端设备共同虚拟出来的一台隧道终端设备,例如,图2中的虚拟VTEP1。虚拟交换机接收控制器下发的第一流表项后,根据第一流表项中携带的第一隧道封装信息对虚拟机发送的数据报文进行隧道封装,并通过虚拟隧道终端设备与外网网关之间的隧道将数据报文发送给位于外网中的目的主机。
当目的主机位于其它服务器时,在第一流表项中添加第二隧道封装信息,该第二隧道封装信息的源IP地址为本地服务器中的虚拟交换机的环回口的IP地址,第二隧道封装信息的目的IP地址为其它服务器中的虚拟交换机的环回口的IP地址。由于不同的服务器可能共用同一个隧道终端设备备份保护组,即同一个虚拟隧道终端设备,当不同服务器之间进行数据报文传输时,无法通过虚拟隧道终端设备建立隧道进行数据报文传输,因此,本申请通过启动虚拟交换机的环回口,在不同服务器的虚拟交换机之间建立隧道,通过虚拟交换机之间的隧道进行数据报文传输。其中,该环回口的IP地址与网卡的IP地址以及虚拟隧道终端设备的IP地址属于同一网段。本地服务器中的虚拟交换机接收控制器下发的第一流表项后,根据第一流表项中携带的第二隧道封装信息对本地服务器中的虚拟机发送的数据报文进行隧道封装,并通过虚拟交换机之间的隧道将数据报文发送给位于其它服务器中的目的主机。
上述处理过程为本地服务器中的虚拟机向非本地服务器中的目的主机发送数据报文的处理过程,当上述目的主机向本地服务器中的虚拟机发送数据报文时,同样通过隧道传输,隧道的目的IP地址为本地服务器的虚拟交换机的环回口的IP地址,至于通过哪一个数据通道进行传输则由VXLAN网络根据等价路由选择。数据报文到达本地服务器的虚拟交换机后,由虚拟交换机进行隧道解封装后转发给本地虚拟机。
在服务器与外界通信的多个数据通道中,当某一数据通道发生故障时,例如,网卡故障或与网卡连接的隧道终端设备故障,该数据通道不可用。虚拟交换机通过对与该数据通道连接的出端口进行检测,获知该出端口发生故障,并向控制器上报出端口故障信息。
控制器接收虚拟交换机上报的出端口故障信息,从该出端口故障信息中获取发生故障的故障出端口标识。从虚拟交换机中获取已下发的流表项,如前所述,可以根据流表项中的报文统计信息统计虚拟交换机的每一个非故障出端口的流量,选择流量最少的非故障出端口作为新的目标出端口。将已下发的故障出端口标识对应的流表项的出端口标识更新为新的目标出端口的端口标识,并向虚拟交换机下发更新后的流表项。虚拟交换机接收新的流表项后,按照新的流表项进行数据报文转发,数据报文的出端口为更新后的目标出端口,即通过新的数据通道进行数据报文传输。可见,本申请不仅可以实现负载分担,当某一数据通道发生故障时,其它数据通道可以作为备份通道进行数据报文传输,以保证服务器中的虚拟机正常与外界通信。
现以图4所示虚拟SDN网络示意图为例,详细介绍基于SDN的数据传输方法的处理过程。
服务器1中包括虚拟机VM11~VM13、虚拟交换机OVS1以及网卡11~网卡13,服务器1通过虚拟隧道终端设备VTEP1接入VXLAN网络,其中,VTEP1由3台物理隧道终端设备VTEP11~VTEP13组成;服务器2中包括虚拟机VM21~VM23、虚拟交换机OVS2以及网卡21~网卡23,服务器2通过虚拟隧道终端设备VTEP2接入VXLAN网络,其中,VTEP2由3台物理隧道终端设备VTEP21~VTEP23组成。VXLAN网络通过外网网关GW与外网主机PC1连接。控制器负责向SDN网络中的虚拟交换机下发流表项,指导虚拟交换机对虚拟机发送的数据报文进行转发。
首先,在每一个物理隧道终端设备上启动VRRP协议,各物理隧道终端设备通过交互VRRP协议报文生成VTEP备份保护组,该VTEP备份保护组通过一个虚拟隧道终端设备表示,且为该虚拟隧道终端设备分配IP地址。假设虚拟VTEP1的IP地址为10.1.10.1,虚拟VTEP2的IP地址为10.1.20.1。
假设服务器1中的虚拟机VM11(IP地址为60.10.1.11)向外网主机PC1(IP地址为80.1.20.12)发送数据报文。OVS1接收该数据报文后,查询本地是否保存了该数据报文的转发流表项,当未找到对应的流表项时,向控制器发送流表项请求报文请求该数据报文的转发流表项。
控制器接收OVS1发送的流表项请求报文后,从OVS1上读取已下发的流表项,根据流表项中的报文统计信息(OVS1每次对数据报文进行转发时,都会更新对应流表项中的报文统计信息)分别统计出端口S11~S 13的流量,假设统计的S11~S 13的流量如表1所示。
出端口标识 报文转发数量(字节)
S11 123456
S12 234567
S13 345678
表1
由表1可知,出端口S11的报文转发数量最少,控制器选择S11作为VM11发送的数据报文的出端口。
由于VM11发送的数据报文需要通过VXLAN网络传输,因此,还需要对VM11发送的数据报文进行隧道封装。隧道封装信息携带在控制器向OVS1下发的流表项中,由OVS1对数据报文进行隧道封装。具体过程如下:
控制器从OVS1上送的流表项请求报文中获取PC1的IP地址80.1.20.12,假设SDN网络中虚拟机的IP地址段为60.10.1.1/16,控制器根据PC1的IP地址判断PC1为外网主机,则控制器在下发的流表项中添加隧道封装信息,该隧道封装的源IP地址为虚拟VTEP1的IP地址10.1.10.1,隧道封装的目的IP地址为外网网关GW的IP地址10.1.30.1,控制器向OVS1下发的流表项见表2。
源主机IP地址 目的主机IP地址 隧道源IP地址 隧道目的IP地址 出端口标识
60.10.1.11 80.1.20.12 10.1.10.1 10.1.30.1 S11
表2
表2仅为示例性说明,并不用于限定流表项中包含的信息。OVS1接收到控制器下发的流表项后,对VM11发送给PC1的数据报文进行隧道封装(源IP地址为10.1.10.1,目的IP地址为10.1.30.1),再通过OVS1的出端口S11转发,则该数据报文会经过网卡11、VTEP 11、VXLAN网络、外网网关GW,到达目的主机PC1。
上述过程为服务器中的虚拟机向外网主机发送数据报文时的处理过程。当服务器1中的VM11向服务器2中的VM21发送数据报文时,即跨服务器的数据报文传输,处理过程与访问外网主机的过程大致相同。控制器也是根据统计的OVS1的各个出端口的流量选择流量最少的出端口发送数据报文,假设OVS1中流量最少的出端口仍然为S11,则控制器将S11作为VM11发送给VM21的数据报文的出端口。
控制器为VM11发送给VM21的数据报文添加隧道封装信息,具体过程为:控制器从OVS1上送的流表项请求报文中获取VM21的IP地址60.10.2.21,判断VM21为SDN网络内的虚拟机,且该虚拟机与VM11(60.10.1.11)位于不同的服务器(不同服务器中的虚拟机属于不同子网)上。在OVS1和OVS2上启动环回口,假设OVS1环回口的IP地址为10.1.10.2,OVS2环回口的IP地址为10.1.20.2,则控制器在下发的流表项中添加隧道封装信息,该隧道封装的源IP地址为OVS1环回口的IP地址10.1.10.2,隧道封装的目的IP地址为OVS2环回口的IP地址10.1.20.2,控制器向OVS1下发的流表项见表3。
源主机IP地址 目的主机IP地址 隧道源IP地址 隧道目的IP地址 出端口标识
60.10.1.11 60.10.2.21 10.1.10.2 10.1.20.2 S11
表3
OVS 1接收到控制器下发的流表项后,对VM11发送给VM21的数据报文进行隧道封装(源IP地址为10.1.10.2,目的IP地址为10.1.20.2),再通过OVS1的出端口S11转发,则该数据报文经过网卡11、VTEP 11、VXLAN网络、虚拟VTEP2(由VXLAN网络根据等价路由选择下一跳的物理隧道终端设备)到达OVS2,由OVS2解隧道封装后转发给目的主机VM21。
假设服务器1的网卡11出现故障,OVS1通过端口检测可以检测出与网卡11连接的出端口S11出现通信故障,将端口故障信息上报给控制器。控制器从端口故障信息中获知S11端口出现故障,则重新从OVS1上获取已下发的流表项,统计没有出现故障的出端口S12和S13的流量,假设S12的流量最少,则将S12作为出端口更新已下发流表项中出端口标识为S11的流表项。假设已下发的流表项中出端口标识为S11的流表项如表4所示。
源主机IP地址 目的主机IP地址 隧道源IP地址 隧道目的IP地址 出端口标识
60.10.1.11 80.1.20.12 10.1.10.1 10.1.30.1 S11
60.10.1.11 60.10.2.21 10.1.10.2 10.1.20.2 S11
表4
则更新后的流表项如表5所示。
源主机IP地址 目的主机IP地址 隧道源IP地址 隧道目的IP地址 出端口标识
60.10.1.11 80.1.20.12 10.1.10.1 10.1.30.1 S12
60.10.1.11 60.10.2.21 10.1.10.2 10.1.20.2 S12
表5
控制器将更新后的流表项下发给OVS1,则VM11发送的数据报文从S11端口切换到S12端口进行转发,保证了数据报文的正常转发。
与前述基于SDN的数据传输方法的实施例相对应,本申请还提供基于SDN的数据传输装置的实施例。
本申请基于SDN的数据传输装置的实施例可以应用在控制器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的CPU运行存储器中对应的计算机程序指令形成的。从硬件层面而言,如图5所示,为本申请基于SDN的数据传输装置所在设备的一种硬件结构图,除了图5所示的CPU、存储器之外,实施例中装置所在的设备通常还可以包括其他硬件。
请参考图6-1,为本申请一个实施例中的基于SDN的数据传输装置的结构示意图。该基于SDN的数据传输装置包括接收单元601、选择单元602、添加单元603以及下发单元604,其中:
接收单元601,用于接收所述虚拟交换机发送的流表项请求报文,所述流表项请求报文为所述虚拟交换机接收所述虚拟机向目的主机发送的数据报文时向所述控制器发送的请求报文,所述目的主机为非所述虚拟机所在的本地服务器中的主机;
选择单元602,用于从所述虚拟交换机的出端口中选择一个出端口作为目标出端口,所述出端口为与所述网卡连接的端口;
添加单元603,用于将所述目标出端口的端口标识添加到第一流表项中;
下发单元604,用于向所述虚拟交换机下发所述第一流表项,以使所述虚拟交换机将所述虚拟机发送的数据报文通过与所述目标出端口相连的网卡以及对应的隧道终端设备传输。
进一步地,
所述选择单元602,包括:
流表获取模块,用于从所述虚拟交换机上获取已下发的流表项;
流量统计模块,用于根据所述已下发的流表项中的表项信息统计所述虚拟交换机的每一个出端口的流量;
端口选择模块,用于选择流量最少的出端口作为目标出端口。
请参考图6-2,为本申请另一个实施例中的基于SDN的数据传输装置的结构示意图。该基于SDN的数据传输装置在图6-1的基础上,还包括获取单元605和判断单元606,其中:
获取单元605,用于在所述下发单元604向所述虚拟交换机下发所述流表项请求报文的第一流表项之前,从所述流表项请求报文中获取所述目的主机的IP地址;
判断单元606,用于根据所述目的主机的IP地址判断所述目的主机的位置信息;
所述添加单元603,还用于当所述目的主机位于外网时,将第一隧道封装信息添加到所述第一流表项中,所述第一隧道封装信息的源IP地址为虚拟隧道终端设备的IP地址,所述第一隧道封装信息的目的IP地址为外网网关的IP地址,所述虚拟隧道终端设备为与所述本地服务器网卡相连的多台隧道终端设备共同虚拟出来的一台隧道终端设备,以使所述虚拟交换机根据所述第一隧道封装信息对所述虚拟机发送的数据报文进行隧道封装后通过所述目标出端口向所述目的主机传输。
进一步地,
所述添加单元603,还用于当所述目的主机位于其它服务器时,将第二隧道封装信息添加到所述第一流表项中,所述第二隧道封装信息的源IP地址为所述本地服务器中的虚拟交换机的环回口的IP地址,所述第二隧道封装信息的目的IP地址为所述其它服务器中的虚拟交换机的环回口的IP地址,以使所述本地服务器中的虚拟交换机根据所述第二隧道封装信息对所述本地服务器中的虚拟机发送的数据报文进行隧道封装后通过所述目标出端口向所述目的主机传输。
进一步地,
所述接收单元601,还用于接收所述虚拟交换机上报的出端口故障信息;
所述获取单元605,还用于从所述出端口故障信息中获取故障出端口标识;
所述选择单元602,还用于从所述虚拟交换机上获取已下发的流表项;根据所述已下发的流表项中的表项信息统计所述虚拟交换机的每一个非故障出端口的流量;选择流量最少的非故障出端口作为新的目标出端口;
所述添加单元603,还用于将已下发的所述故障出端口标识对应的流表项的出端口标识更新为所述新的目标出端口的端口标识;
所述下发单元604,还用于向所述虚拟交换机下发更新后的流表项,以使所述虚拟机发送的数据报文通过与所述新的目标出端口相连的网卡以及对应的隧道终端设备传输。
上述图6-1和图6-2示出的基于SDN的数据传输装置的实施例,该基于SDN的数据传输装置应用于控制器上,其具体实现过程可参见前述方法实施例的说明,在此不再赘述。
从以上方法和装置的实施例中可以看出,本申请在服务器中安装多块网卡,且每块网卡分别与一台隧道终端设备连接。当服务器中的虚拟机发送数据报文与外界通信时,由虚拟交换机向控制器请求该数据报文的流表项,控制器在下发的流表项中携带为该数据报文选择的出端口,通过与该出端口连接的网卡以及对应的隧道终端设备进行数据传输。通过本申请可以实现多个数据传输通道的互相备份,实现数据传输过程中的负载分担,提高虚拟机与外界的通信效率。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种基于软件定义网络SDN的数据传输方法,其特征在于,所述SDN网络包括控制器、虚拟机以及虚拟交换机,所述虚拟机和所述虚拟交换机位于服务器上,所述服务器包括多块网卡,每块网卡分别与一台隧道终端设备相连,该方法应用于所述控制器上,包括:
接收所述虚拟交换机发送的流表项请求报文,所述流表项请求报文为所述虚拟交换机接收所述虚拟机向目的主机发送的数据报文时向所述控制器发送的请求报文,所述目的主机为非所述虚拟机所在的本地服务器中的主机;
从所述虚拟交换机的出端口中选择一个出端口作为目标出端口,所述出端口为与所述网卡连接的端口;
将所述目标出端口的端口标识添加到第一流表项中;
向所述虚拟交换机下发所述第一流表项,以使所述虚拟交换机将所述虚拟机发送的数据报文通过与所述目标出端口相连的网卡以及对应的隧道终端设备传输。
2.如权利要求1所述的方法,其特征在于,所述从所述虚拟交换机的出端口中选择一个出端口作为目标出端口,包括:
从所述虚拟交换机上获取已下发的流表项;
根据所述已下发的流表项中的表项信息统计所述虚拟交换机的每一个出端口的流量;
选择流量最少的出端口作为目标出端口。
3.如权利要求1所述的方法,其特征在于,所述向所述虚拟交换机下发所述流表项请求报文的第一流表项之前,还包括:
从所述流表项请求报文中获取所述目的主机的IP地址;
根据所述目的主机的IP地址判断所述目的主机的位置信息;
当所述目的主机位于外网时,将第一隧道封装信息添加到所述第一流表项中,所述第一隧道封装信息的源IP地址为虚拟隧道终端设备的IP地址,所述第一隧道封装信息的目的IP地址为外网网关的IP地址,所述虚拟隧道终端设备为与所述本地服务器网卡相连的多台隧道终端设备共同虚拟出来的一台隧道终端设备,以使所述虚拟交换机根据所述第一隧道封装信息对所述虚拟机发送的数据报文进行隧道封装后通过所述目标出端口向所述目的主机传输。
4.如权利要求3所述的方法,其特征在于:
当所述目的主机位于其它服务器时,将第二隧道封装信息添加到所述第一流表项中,所述第二隧道封装信息的源IP地址为所述本地服务器中的虚拟交换机的环回口的IP地址,所述第二隧道封装信息的目的IP地址为所述其它服务器中的虚拟交换机的环回口的IP地址,以使所述本地服务器中的虚拟交换机根据所述第二隧道封装信息对所述本地服务器中的虚拟机发送的数据报文进行隧道封装后通过所述目标出端口向所述目的主机传输。
5.如权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
接收所述虚拟交换机上报的出端口故障信息;
从所述出端口故障信息中获取故障出端口标识;
从所述虚拟交换机上获取已下发的流表项;
根据所述已下发的流表项中的表项信息统计所述虚拟交换机的每一个非故障出端口的流量;
选择流量最少的非故障出端口作为新的目标出端口;
将已下发的所述故障出端口标识对应的流表项的出端口标识更新为所述新的目标出端口的端口标识;
向所述虚拟交换机下发更新后的流表项,以使所述虚拟机发送的数据报文通过与所述新的目标出端口相连的网卡以及对应的隧道终端设备传输。
6.一种基于软件定义网络SDN的数据传输装置,其特征在于,所述SDN网络包括控制器、虚拟机以及虚拟交换机,所述虚拟机和所述虚拟交换机位于服务器上,所述服务器包括多块网卡,每块网卡分别与一台隧道终端设备相连,该装置应用于所述控制器上,该装置包括:
接收单元,用于接收所述虚拟交换机发送的流表项请求报文,所述流表项请求报文为所述虚拟交换机接收所述虚拟机向目的主机发送的数据报文时向所述控制器发送的请求报文,所述目的主机为非所述虚拟机所在的本地服务器中的主机;
选择单元,用于从所述虚拟交换机的出端口中选择一个出端口作为目标出端口,所述出端口为与所述网卡连接的端口;
添加单元,用于将所述目标出端口的端口标识添加到第一流表项中;
下发单元,用于向所述虚拟交换机下发所述第一流表项,以使所述虚拟交换机将所述虚拟机发送的数据报文通过与所述目标出端口相连的网卡以及对应的隧道终端设备传输。
7.如权利要求6所述的装置,其特征在于,所述选择单元,包括:
流表获取模块,用于从所述虚拟交换机上获取已下发的流表项;
流量统计模块,用于根据所述已下发的流表项中的表项信息统计所述虚拟交换机的每一个出端口的流量;
端口选择模块,用于选择流量最少的出端口作为目标出端口。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
获取单元,用于在所述下发单元向所述虚拟交换机下发所述流表项请求报文的第一流表项之前,从所述流表项请求报文中获取所述目的主机的IP地址;
判断单元,用于根据所述目的主机的IP地址判断所述目的主机的位置信息;
所述添加单元,还用于当所述目的主机位于外网时,将第一隧道封装信息添加到所述第一流表项中,所述第一隧道封装信息的源IP地址为虚拟隧道终端设备的IP地址,所述第一隧道封装信息的目的IP地址为外网网关的IP地址,所述虚拟隧道终端设备为与所述本地服务器网卡相连的多台隧道终端设备共同虚拟出来的一台隧道终端设备,以使所述虚拟交换机根据所述第一隧道封装信息对所述虚拟机发送的数据报文进行隧道封装后通过所述目标出端口向所述目的主机传输。
9.如权利要求8所述的装置,其特征在于:
所述添加单元,还用于当所述目的主机位于其它服务器时,将第二隧道封装信息添加到所述第一流表项中,所述第二隧道封装信息的源IP地址为所述本地服务器中的虚拟交换机的环回口的IP地址,所述第二隧道封装信息的目的IP地址为所述其它服务器中的虚拟交换机的环回口的IP地址,以使所述本地服务器中的虚拟交换机根据所述第二隧道封装信息对所述本地服务器中的虚拟机发送的数据报文进行隧道封装后通过所述目标出端口向所述目的主机传输。
10.如权利要求6至9任一所述的装置,其特征在于,所述装置还包括:
所述接收单元,还用于接收所述虚拟交换机上报的出端口故障信息;
所述获取单元,还用于从所述出端口故障信息中获取故障出端口标识;
所述选择单元,还用于从所述虚拟交换机上获取已下发的流表项;根据所述已下发的流表项中的表项信息统计所述虚拟交换机的每一个非故障出端口的流量;选择流量最少的非故障出端口作为新的目标出端口;
所述添加单元,还用于将已下发的所述故障出端口标识对应的流表项的出端口标识更新为所述新的目标出端口的端口标识;
所述下发单元,还用于向所述虚拟交换机下发更新后的流表项,以使所述虚拟机发送的数据报文通过与所述新的目标出端口相连的网卡以及对应的隧道终端设备传输。
CN201410855987.5A 2014-12-31 2014-12-31 基于sdn的数据传输的方法及装置 Active CN104506408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410855987.5A CN104506408B (zh) 2014-12-31 2014-12-31 基于sdn的数据传输的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410855987.5A CN104506408B (zh) 2014-12-31 2014-12-31 基于sdn的数据传输的方法及装置

Publications (2)

Publication Number Publication Date
CN104506408A true CN104506408A (zh) 2015-04-08
CN104506408B CN104506408B (zh) 2018-02-06

Family

ID=52948123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410855987.5A Active CN104506408B (zh) 2014-12-31 2014-12-31 基于sdn的数据传输的方法及装置

Country Status (1)

Country Link
CN (1) CN104506408B (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104869058A (zh) * 2015-06-04 2015-08-26 北京京东尚科信息技术有限公司 一种数据报文转发方法和装置
CN106161248A (zh) * 2015-04-27 2016-11-23 杭州华三通信技术有限公司 一种vxlan网络中报文转发方法及装置
CN106559246A (zh) * 2015-09-30 2017-04-05 杭州华三通信技术有限公司 集群的实现方法和服务器
CN106571945A (zh) * 2015-10-13 2017-04-19 中兴通讯股份有限公司 控制面、业务面分离的方法和系统、服务器、云计算平台
CN106936731A (zh) * 2015-12-31 2017-07-07 北京华为数字技术有限公司 软件定义网络sdn中的报文转发的方法和装置
CN107135121A (zh) * 2017-04-28 2017-09-05 新华三技术有限公司 一种网络节点的切换方法及装置
CN107231296A (zh) * 2017-05-11 2017-10-03 京信通信系统(中国)有限公司 一种网关装置
WO2017206076A1 (zh) * 2016-05-31 2017-12-07 华为技术有限公司 一种多网关扩容方法及装置
CN107547404A (zh) * 2017-07-31 2018-01-05 新华三技术有限公司 流表生成方法及装置以及报文转发方法及装置
CN108156066A (zh) * 2017-12-29 2018-06-12 杭州迪普科技股份有限公司 报文转发方法和装置
CN108293009A (zh) * 2015-12-31 2018-07-17 华为技术有限公司 一种软件定义数据中心及其中的服务集群的调度和流量监控方法
CN108353027A (zh) * 2015-11-13 2018-07-31 华为技术有限公司 一种用于检测端口故障的软件定义网络系统
CN108471383A (zh) * 2018-02-08 2018-08-31 华为技术有限公司 报文转发方法、装置和系统
CN108494679A (zh) * 2018-06-01 2018-09-04 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现路由器的SSH报文转发方法和装置
CN108881027A (zh) * 2018-06-01 2018-11-23 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现路由器的radius报文转发方法和装置
CN110198337A (zh) * 2019-03-04 2019-09-03 腾讯科技(深圳)有限公司 网络负载均衡方法、装置、计算机可读介质及电子设备
CN110417573A (zh) * 2019-05-20 2019-11-05 华为技术有限公司 一种数据传送的方法及系统
CN110912836A (zh) * 2019-11-14 2020-03-24 优刻得科技股份有限公司 使转发设备转发数据的方法、控制设备、存储介质和系统
CN111147369A (zh) * 2018-11-05 2020-05-12 中国电信股份有限公司 路由系统、路由方法和服务器
CN111224888A (zh) * 2018-11-27 2020-06-02 华为技术有限公司 发送报文的方法及报文转发设备
CN112217746A (zh) * 2016-11-09 2021-01-12 华为技术有限公司 云计算系统中报文处理的方法、主机和系统
CN112422393A (zh) * 2015-12-31 2021-02-26 华为技术有限公司 可扩展虚拟局域网报文发送方法、计算机设备和可读介质
CN113810459A (zh) * 2021-07-29 2021-12-17 奇安信科技集团股份有限公司 数据传输方法、装置、电子设备及存储介质
US11237858B2 (en) 2015-12-31 2022-02-01 Huawei Technologies Co., Ltd. Software-defined data center, and deployment method for service cluster therein
CN115550258A (zh) * 2022-12-02 2022-12-30 苏州浪潮智能科技有限公司 一种流量镜像方法、装置、设备及存储介质
CN115883256A (zh) * 2023-02-03 2023-03-31 南京易科腾信息技术有限公司 基于加密隧道的数据传输方法、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103081418A (zh) * 2010-09-09 2013-05-01 日本电气株式会社 计算机系统和计算机系统中的通信方法
US20130166720A1 (en) * 2010-09-09 2013-06-27 Masanori Takashima Network system and network managing method
CN103905577A (zh) * 2012-12-28 2014-07-02 中兴通讯股份有限公司 一种地址解析协议报文的处理方法和系统
CN103916314A (zh) * 2013-12-26 2014-07-09 杭州华为数字技术有限公司 报文转发控制方法和相关装置及物理主机
CN104168209A (zh) * 2014-08-28 2014-11-26 杭州华三通信技术有限公司 多接入sdn网络报文转发方法和控制器
CN104184664A (zh) * 2014-08-05 2014-12-03 杭州华三通信技术有限公司 路由转发表项生成方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103081418A (zh) * 2010-09-09 2013-05-01 日本电气株式会社 计算机系统和计算机系统中的通信方法
US20130166720A1 (en) * 2010-09-09 2013-06-27 Masanori Takashima Network system and network managing method
CN103905577A (zh) * 2012-12-28 2014-07-02 中兴通讯股份有限公司 一种地址解析协议报文的处理方法和系统
CN103916314A (zh) * 2013-12-26 2014-07-09 杭州华为数字技术有限公司 报文转发控制方法和相关装置及物理主机
CN104184664A (zh) * 2014-08-05 2014-12-03 杭州华三通信技术有限公司 路由转发表项生成方法及装置
CN104168209A (zh) * 2014-08-28 2014-11-26 杭州华三通信技术有限公司 多接入sdn网络报文转发方法和控制器

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106161248A (zh) * 2015-04-27 2016-11-23 杭州华三通信技术有限公司 一种vxlan网络中报文转发方法及装置
CN106161248B (zh) * 2015-04-27 2019-03-29 新华三技术有限公司 一种vxlan网络中报文转发方法及装置
CN104869058A (zh) * 2015-06-04 2015-08-26 北京京东尚科信息技术有限公司 一种数据报文转发方法和装置
CN106559246A (zh) * 2015-09-30 2017-04-05 杭州华三通信技术有限公司 集群的实现方法和服务器
CN106571945A (zh) * 2015-10-13 2017-04-19 中兴通讯股份有限公司 控制面、业务面分离的方法和系统、服务器、云计算平台
CN106571945B (zh) * 2015-10-13 2020-07-10 中兴通讯股份有限公司 控制面、业务面分离的方法和系统、服务器、云计算平台
CN108353027B (zh) * 2015-11-13 2020-12-15 华为技术有限公司 一种用于检测端口故障的软件定义网络系统及方法
CN108353027A (zh) * 2015-11-13 2018-07-31 华为技术有限公司 一种用于检测端口故障的软件定义网络系统
CN108293009A (zh) * 2015-12-31 2018-07-17 华为技术有限公司 一种软件定义数据中心及其中的服务集群的调度和流量监控方法
CN112422393A (zh) * 2015-12-31 2021-02-26 华为技术有限公司 可扩展虚拟局域网报文发送方法、计算机设备和可读介质
US10601728B2 (en) 2015-12-31 2020-03-24 Huawei Technologies Co., Ltd. Software-defined data center and service cluster scheduling and traffic monitoring method therefor
CN112422393B (zh) * 2015-12-31 2022-03-25 华为技术有限公司 可扩展虚拟局域网报文发送方法、计算机设备和可读介质
US11283650B2 (en) 2015-12-31 2022-03-22 Huawei Technologies Co., Ltd. Method for sending virtual extensible local area network packet, computer device, and computer readable medium
US11237858B2 (en) 2015-12-31 2022-02-01 Huawei Technologies Co., Ltd. Software-defined data center, and deployment method for service cluster therein
CN106936731A (zh) * 2015-12-31 2017-07-07 北京华为数字技术有限公司 软件定义网络sdn中的报文转发的方法和装置
WO2017206076A1 (zh) * 2016-05-31 2017-12-07 华为技术有限公司 一种多网关扩容方法及装置
CN112217746A (zh) * 2016-11-09 2021-01-12 华为技术有限公司 云计算系统中报文处理的方法、主机和系统
CN107135121A (zh) * 2017-04-28 2017-09-05 新华三技术有限公司 一种网络节点的切换方法及装置
CN107135121B (zh) * 2017-04-28 2020-02-11 新华三技术有限公司 一种网络节点的切换方法及装置
CN107231296A (zh) * 2017-05-11 2017-10-03 京信通信系统(中国)有限公司 一种网关装置
CN107547404B (zh) * 2017-07-31 2019-11-05 新华三技术有限公司 流表生成方法及装置以及报文转发方法及装置
CN107547404A (zh) * 2017-07-31 2018-01-05 新华三技术有限公司 流表生成方法及装置以及报文转发方法及装置
CN108156066A (zh) * 2017-12-29 2018-06-12 杭州迪普科技股份有限公司 报文转发方法和装置
CN108156066B (zh) * 2017-12-29 2021-06-29 杭州迪普科技股份有限公司 报文转发方法和装置
CN108471383A (zh) * 2018-02-08 2018-08-31 华为技术有限公司 报文转发方法、装置和系统
CN108881027A (zh) * 2018-06-01 2018-11-23 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现路由器的radius报文转发方法和装置
CN108494679B (zh) * 2018-06-01 2020-01-07 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现路由器的SSH报文转发方法和装置
CN108494679A (zh) * 2018-06-01 2018-09-04 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现路由器的SSH报文转发方法和装置
CN108881027B (zh) * 2018-06-01 2020-04-10 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现路由器的radius报文转发方法和装置
CN111147369A (zh) * 2018-11-05 2020-05-12 中国电信股份有限公司 路由系统、路由方法和服务器
CN111147369B (zh) * 2018-11-05 2022-02-08 中国电信股份有限公司 路由系统、路由方法和服务器
CN111224888A (zh) * 2018-11-27 2020-06-02 华为技术有限公司 发送报文的方法及报文转发设备
CN110198337A (zh) * 2019-03-04 2019-09-03 腾讯科技(深圳)有限公司 网络负载均衡方法、装置、计算机可读介质及电子设备
CN110417573A (zh) * 2019-05-20 2019-11-05 华为技术有限公司 一种数据传送的方法及系统
CN110912836A (zh) * 2019-11-14 2020-03-24 优刻得科技股份有限公司 使转发设备转发数据的方法、控制设备、存储介质和系统
CN113810459A (zh) * 2021-07-29 2021-12-17 奇安信科技集团股份有限公司 数据传输方法、装置、电子设备及存储介质
CN115550258A (zh) * 2022-12-02 2022-12-30 苏州浪潮智能科技有限公司 一种流量镜像方法、装置、设备及存储介质
CN115883256A (zh) * 2023-02-03 2023-03-31 南京易科腾信息技术有限公司 基于加密隧道的数据传输方法、装置及存储介质

Also Published As

Publication number Publication date
CN104506408B (zh) 2018-02-06

Similar Documents

Publication Publication Date Title
CN104506408A (zh) 基于sdn的数据传输的方法及装置
US10659342B2 (en) Flow entry configuration method, apparatus, and system
CN107819677B (zh) 一种报文转发方法及装置
US9331936B2 (en) Switch fabric support for overlay network features
CN108574616A (zh) 一种处理路由的方法、设备及系统
US20180097658A1 (en) Virtual local area network mismatch detection in networks
CN103081418A (zh) 计算机系统和计算机系统中的通信方法
CN105262683A (zh) 网络系统和路由控制方法
CN112753198B (zh) 在网络中的负载均衡和报文重排序方法及装置
CN110474829B (zh) 传输报文的方法和装置
CN104717081A (zh) 一种网关功能的实现方法及装置
EP3420687B1 (en) Addressing for customer premises lan expansion
CN108337179B (zh) 链路流量控制方法及装置
CN107579898B (zh) 一种多种容器间互联通信的方法及其装置
US8908702B2 (en) Information processing apparatus, communication apparatus, information processing method, and relay processing method
US20160269232A1 (en) Network management apparatus and network management method
CN104980368A (zh) 软件定义网络中的带宽保障方法及装置
CN103200117B (zh) 一种负载均衡方法和装置
US20160006684A1 (en) Communication system, control apparatus, communication method, and program
US11929851B2 (en) Gateway selection method, device, and system
CN103401954B (zh) 虚拟dhcp的实现方法
RU2687215C1 (ru) Способ и устройство для передачи информации о функциях коммутатора openflow
US20160277251A1 (en) Communication system, virtual network management apparatus, communication node, communication method, and program
CN110391961B (zh) 一种隧道绑定方法、设备及系统
CN109218176B (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
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant before: Huasan Communication Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant