CN106789667B - 一种数据转发方法、相关设备及系统 - Google Patents
一种数据转发方法、相关设备及系统 Download PDFInfo
- Publication number
- CN106789667B CN106789667B CN201611040544.6A CN201611040544A CN106789667B CN 106789667 B CN106789667 B CN 106789667B CN 201611040544 A CN201611040544 A CN 201611040544A CN 106789667 B CN106789667 B CN 106789667B
- Authority
- CN
- China
- Prior art keywords
- subnet
- target
- gateway
- switch
- address
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
- H04L61/2535—Multiple local networks, e.g. resolving potential IP address conflicts
Abstract
本发明实施例公开了一种数据转发方法、交换机及系统,该方法应用于数据转发系统,该系统包括第一子网和第二子网,第一子网包含虚拟机,且配置有一个虚拟网关,第二子网包含多个网关实体,该方法包括:交换机接收虚拟机发送的携带有待访问目标的IP地址和第一子网的虚拟网关的Mac地址的第一数据报文;根据第一子网的指示信息和第一数据报文,确定第二子网中与第一数据报文匹配的目标网关实体;根据第一数据报文,目标网关实体的Mac地址和第二子网的网络标识,封装得到第二数据报文,并将其转发给目标网关实体。采用本发明,能解决南北向通信存在的网关性能和瓶颈拥塞问题,还避免现有技术中业务子网IP地址的浪费。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据转发方法、相关设备及系统。
背景技术
随着虚拟化、云计算技术越来越成熟,大量互联网应用开始云化。很多业务逻辑直接在云内完成,导致数据中心内东西向流量的剧增,增加网关通信负荷的同时,也抢占了南北向流量带宽,特别是在业务流量较多的情况下,会影响网关的性能和可靠性,还降低了业务通信效率。
参见图1是在同一路由域或虚拟私有云(Virtual Private Cloud,VPC)内不同子网间的虚拟机(Virtual Machine,VM)进行通信的应用场景示意图,其中白色和灰色填充的虚拟机VM分别位于不同的两个子网内。当不同子网内的VM间(如VM-A和VM-B)进行相互通信时需要通过网关中转,消耗网关资源(如带宽)的同时也会造成网关的瓶颈拥塞。当需要通信的两个虚拟机被部署于同一物理主机时,如果网关被部署于其他物理主机或交换机下,这时数据报文的迂回发送和带宽资源的占用更加明显。
为解决上述数据报文迂回和网关性能的问题,现引入分布式虚拟路由器(Distributed Virtual Router,DVR)。基于如图1所示的场景示意图,在每个通过网关通信的VM所在的物理主机上部署一个简单的路由器,又称内部路由器IR(Internal Router),它可以是物理实体的、也可以是逻辑存在的;将从属于同一网关下的IR以及它们之间的互通逻辑整体形成逻辑上的虚拟路由器,称之为DVR;DVR可以将东西向子网间的通信卸载到二层交换机上,从而实现不同子网中的VM之间不经过网关进行直接互通;这样DVR降低了对集中式网关路由器(如图1所示)的宽带资源占用和瓶颈拥塞。具体可参见如图2所示给出一种DVR的应用场景示意图,当不同子网中被部署在不同物理主机上的两个VM之间进行数据报文互通时,与传统方式相同,位于物理主机1上的VM-A不感知网关路由器的变化,正常发出数据报文,根据传输控制协议或因特网互联协议(Transmission Control Protocol/Internet Protocol,TCP/IP,中文又称为网络通讯协议)VM-A照常将该数据报文发给其所在的子网网关,由网关转给VM-B。在一种可能的实现方式中,正常发出数据报文到该物理主机1上的虚拟交换机vSwitch,并进入VPC在本物理主机1上的IR,经过IR路由之后再次进入本物理主机1的vSwitch上,此时数据报文的目的媒体访问控制(Media Access Control,MAC)地址被修改为目的VM-B的MAC地址。数据报文经由vSwitch直接转发给目的VM-B所在的物理主机2上。数据报文经过主机间交换机后到达目的物理主机2的vSwitch,根据二层交换机转发原则,数据报文直接解封装进入目的VM-B,通信结束。同理可知,如果物理主机2上的VM-B向物理主机1上的VM-A发送数据报文,可通过两者VM所在的vSwitch进行相互报文的通信,不需再通过三层网关路由器中转。
虽然分布式虚拟路由器DVR解决了挂接在同一网关上各业务子网之间的性能和可靠性瓶颈,但是仍未解决南北向流量通信时网关的性能和瓶颈拥塞问题。
发明内容
本发明实施例公开了一种数据转发方法、相关设备及系统,能解决南北向通信存在的网关性能和瓶颈拥塞的问题,且网关实体不占用业务子网的IP地址。
第一方面,本发明实施例提供了一种数据转发方法,应用于数据转发系统,所述系统包括第一子网和第二子网,所述第一子网中包含虚拟机,所述第一子网配置有一个虚拟网关,所述第二子网中包含多个网关实体,所述方法包括:
交换机接收所述虚拟机发送的第一数据报文,所述第一数据报文携带待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
所述交换机根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体;
所述交换机根据所述第一数据报文,所述目标网关实体的Mac地址和所述第二子网的网络标识,封装得到第二数据报文;
所述交换机将所述第二数据报文转发给所述目标网关实体。
本发明实施例中的数据转发系统包括第一子网、第二子网,以及分别连接所述第一子网和第二子网的交换机,所述第一子网中包括虚拟机,且配置有一个虚拟网关,所述第二子网中包含多个网关实体;在实际通信过程中,所述交换机接收所述虚拟机发送的第一数据报文,所述第一数据报文携带待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址,接着所述交换机根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体,然后所述交换机根据所述第一数据报文,所述目标网关实体的Mac地址和所述第二子网的网络标识,封装得到第二数据报文,最后所述交换机将所述第二数据报文转发给所述目标网关实体;这样可解决南北向通信时由于资源不够用而导致的网关瓶颈和性能问题,同时还避免了现有技术中由于网关占用业务子网的IP地址,引起子网IP地址浪费的问题。
结合第一方面,在第一方面的第一种可能的实现方式中,所述交换机根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体包括:
所述交换机根据所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
通过执行上述步骤,该交换机具体根据第一数据报文携带的待访问目标的IP地址和第一子网的虚拟网关的Mac地址来从第二子网中的多个网关实体中查找出目标网关实体,实现目标网关实体的准确查找。
结合第一方面,在第一方面的第二种可能的实现方式中,所述交换机根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体包括:
所述交换机根据所述待访问目标的IP地址,所述第一子网的虚拟网关的Mac地址和所述虚拟机的指示标识,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
通过执行上述步骤,该交换机具体根据第一数据报文携带的待访问目标的IP地址和第一子网的虚拟网关的Mac地址、以及所述虚拟机的指示标识来从第二子网中的多个网关实体中查找出目标网关实体,加入虚拟机信息有针对、有目的地查找目标网关实体。
结合第一方面,在第一方面的第三种可能的实现方式中,所述交换机根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体包括:
所述交换机向控制器发送流表请求消息,所述流表请求消息中携带所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
所述交换机接收所述控制器发送的流表项,所述流表项包含所述目标网关实体的指示信息。
通过执行上述步骤,该交换机可以从对应的控制器中获取包含所述目标网关实体的指示信息的流表项,从而确定出所述第二子网中的目标网关实体。
第二方面,本发明实施例提供了一种交换机,所述交换机分别连接第一子网和第二子网,所述第一子网中包含虚拟机,所述第一子网配置有一个虚拟网关,所述第二子网中包含多个网关实体,所述交换机包括:
接收单元,用于接收所述虚拟机发送的第一数据报文,所述第一数据报文携带待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
确定单元,用于根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体;
封装单元,用于根据所述第一数据报文,所述目标网关实体的Mac地址和所述第二子网的网络标识,封装得到第二数据报文;
转发单元,用于将所述第二数据报文转发给所述目标网关实体。
通过执行上述步骤,所述交换机分别连接第一子网和第二子网,所述第一子网中包含虚拟机,所述第一子网配置有一个虚拟网关,所述第二子网中包含多个网关实体,通过交换机来实现不同子网中的虚拟机和网关实体的相互通信,这样解决南北向通信时由于资源不够用(如网关实体个数受限)而导致的网关瓶颈和性能问题,同时所述多个网关实体被部署在不同于所述虚拟机所处的子网内,还能避免网关实体占用业务子网IP地址,引起子网IP地址浪费的问题。
结合第二方面,在第二方面的第一种可能的实现方式中,
所述确定单元,具体用于根据所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
通过执行上述步骤,该确定单元具体根据第一数据报文携带的待访问目标的IP地址和第一子网的虚拟网关的Mac地址来从第二子网中的多个网关实体中查找出目标网关实体,实现目标网关实体的准确查找。
结合第二方面,在第二方面的第二种可能的实现方式中,
所述确定单元,具体用于根据所述待访问目标的IP地址,所述第一子网的虚拟网关的Mac地址和所述虚拟机的指示标识,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
通过执行上述步骤,该确定单元具体根据第一数据报文携带的待访问目标的IP地址和第一子网的虚拟网关的Mac地址、以及所述虚拟机的指示标识来从第二子网中的多个网关实体中查找出目标网关实体,加入虚拟机信息有针对、有目的地查找目标网关实体。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,
所述确定单元,具体用于向控制器发送流表请求消息,所述流表请求消息中携带所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;接收所述控制器发送的流表项,所述流表项包含所述目标网关实体的指示信息。
通过执行上述步骤,该确定单元可以从对应的控制器中获取包含所述目标网关实体的指示信息的流表项,从而确定出所述第二子网中的目标网关实体。
第三方面,本发明实施例提供了一种数据转发系统,所述系统包括交换机、第一子网和第二子网,所述交换机分别连接所述第一子网和第二子网,所述第一子网中包含虚拟机,所述第一子网配置有一个虚拟网关,所述第二子网中包含多个网关实体,其中,
所述虚拟机,用于向所述交换机发送第一数据报文,所述第一数据报文携带待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
所述交换机,用于接收所述虚拟机发送的第一数据报文;根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体;根据所述第一数据报文,所述目标网关实体的Mac地址和所述第二子网的网络标识,封装得到第二数据报文;将所述第二数据报文转发给所述目标网关实体;
所述目标网关实体,用于接收所述交换机转发的所述第二数据报文。
本发明实施例中的数据转发系统包括第一子网、第二子网,以及分别连接所述第一子网和第二子网的交换机,所述第一子网中包括虚拟机,且配置有一个虚拟网关,所述第二子网中包含多个网关实体;通过所述交换机来实现不同子网中的虚拟机和网关实体的相互通信,这样解决南北向通信时由于资源不够用(如网关实体个数受限)而导致的网关瓶颈和性能问题,同时所述多个网关实体被部署在不同于所述虚拟机所处的子网内,还能避免网关实体占用业务子网IP地址,引起子网IP地址浪费的问题。
结合第三方面,在第三方面的第一种可能的实现方式中,
所述交换机,具体用于根据所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
通过执行上述步骤,该交换机具体根据第一数据报文携带的待访问目标的IP地址和第一子网的虚拟网关的Mac地址来从第二子网中的多个网关实体中查找出目标网关实体,实现目标网关实体的准确查找。
结合第三方面,在第三方面的第二种可能的实现方式中,
所述交换机,具体用于根据所述待访问目标的IP地址,所述第一子网的虚拟网关的Mac地址和所述虚拟机的指示标识,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
通过执行上述步骤,该交换机具体根据第一数据报文携带的待访问目标的IP地址和第一子网的虚拟网关的Mac地址、以及所述虚拟机的指示标识来从第二子网中的多个网关实体中查找出目标网关实体,加入虚拟机信息有针对、有目的地查找目标网关实体。
结合第三方面,在第三方面的第二种可能的实现方式中,所述系统还包括控制器,
所述交换机,具体用于向所述控制器发送流表请求消息,所述流表请求消息中携带所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
所述控制器,用于接收所述交换机发送的流表请求信息;根据所述流表请求信息携带的待访问目标的IP地址确定所述待访问目标的IP地址对应的业务类型;根据所述待访问目标的IP地址对应的业务类型从第二子网内的多个网关实体中选择出目标网关实体;根据所述目标网关实体的指示信息和所述流表请求消息生成对应的流表项,并将所述流表项下发给所述交换机;
所述交换机,还具体用于接收所述控制器发送的流表项,所述流表项包含所述目标网关实体的指示信息。
通过执行上述步骤,该交换机可以从对应的控制器中获取包含所述目标网关实体的指示信息的流表项,从而确定出所述第二子网中的目标网关实体。
在第一方面,或者第二方面,或者第三方面的一些可能的实现方式中,所述流表请求消息中还携带所述第一子网的指示信息。
通过执行上述步骤,所述控制器可以根据所述流表请求消息所携带的所述第一子网的指示信息、所述待访问目标的IP地址、所述第一子网的虚拟网关的Mac地址来快速生成对应的流表项,并下发给所述交换机,所述流表项包含所述目标网关实体的指示信息。
在第一方面,或者第二方面,或者第三方面的一些可能的实现方式中,所述流表请求消息中还携带所述虚拟机的指示标识,所述虚拟机的指示标识用于表征所述虚拟机的优先级信息。
通过执行上述步骤,所述控制器可以根据所述流表请求消息携带的所述第一子网的指示信息、所述待访问目标的IP地址、所述第一子网的虚拟网关的Mac地址以及所述虚拟机的指示标识来生成对应的流表项,并下发给所述交换机,所述流表项包含所述目标网关实体的指示信息;也即是,所述控制器通过给所述交换机发送的流表项来传递该控制器确定到的所述第二子网中的目标网关实体。
第四方面,本发明实施例提供一种交换机,所述转交换机包括接收器、发送器、存储器及处理器,所述处理器调用所述存储器中的数据转发程序,用于执行如上第一方面提供的任一项方法中的步骤。
第五方面,本发明实施例还提供一种存储介质,用于存储计算机程序,当所述计算机程序被处理器执行时,所述处理器用于实现第一方面提供的任意一种方法。具体的,所述计算机程序可以包括用于实现方法各个步骤的一个或多个程序单元。
通过实施本发明实施例,能够解决南北向通信存在的网关性能和瓶颈拥塞的问题,同时所述多个网关实体被部署在不同于所述虚拟机所在的子网内还能避免现有技术中由于网关占用业务子网的IP地址,引起子网IP地址浪费的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是一种不同子网内的虚拟机间进行通信的应用场景示意图;
图2是一种基于DVR的应用场景示意图;
图3是本发明实施例提供的一种通信网络架构示意图;
图4是本发明实施例提供的又一种通信网络架构示意图;
图5是一种基于业务网关分离的应用场景示意图;
图6是本发明实施例提供的一种数据转发方法的流程示意图;
图7是本发明实施例提供的一种基于流表项的通信流程示意图;
图8是本发明实施例提供的一种报文转发的流程示意图;
图9是本发明实施例提供的又一种基于流表项的通信流程示意图;
图10是本发明实施例提供的一种基于路由表项的应用场景示意图;
图11是本发明实施例提供的一种交换机的结构示意图;
图12是本发明实施例提供的又一种交换机的结构示意图;
图13是本发明实施例提供的一种数据转发系统的结构示意图。
具体实施方式
本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
为了便于理解本发明实施例,首先介绍本发明实施例涉及的通信网络框架图。
请参见图3,是本发明实施例提供的一种通信网络架构示意图。如图3所示,该网络框架示意图包括:第一子网、第二子网以及交换机,交换机通过网络(以太网)分别与第一子网和第二子网通信连接;第一子网中可以被部署有N个虚拟机,且第一子网中还可以配置/部署有N个虚拟机所在的虚拟网关,通常一个子网配置一个虚拟网关。第二子网中可以被部署有M个网关实体(即多个网关实体),其中,M和N均为大于等于1的正整数。N个虚拟机可以被部署在X个物理主机上,每个物理主机上可以部署一个或多个虚拟机VM,X为大于0的正整数。当同一物理主机上部署有多个虚拟机VM时,所述多个虚拟机VM可以为属于同一业务子网或不同业务子网内的VM;也即是说,被部署在同一物理主机上的多个VM可以属于同一个子网或不同的子网。
应理解的是,交换机可以包括物理交换机TOR或虚拟交换机vSwitch,在实际应用中交换机的数量可以是一个或多个,当交换机的数量为1个时,该交换机可以被部署在第一子网;当交换机的数量为2个或以上时,此时交换机可以部分被部署在第一子网,部分被部署在第二子网中。
应理解的是,网关实体可以是指采用物体实体(如路由器、服务器)、或者采用逻辑实体(如虚拟机VM)来实现网关功能的协议转换器或网间连接器,也即是说,在实际应用中网关实体可以部署为如路由器、服务器等物理实体,也可以部署为如虚拟机VM等逻辑实体。且这些网关实体可以是指支持业务分离或业务不分离的网关实体,也即是说网关实体可以提供处理一种或多种业务类型的网关能力。
可选的,M个网关实体可以采用分布式部署、集中式部署或混合式部署中的任意一种方式进行部署。
应理解的是,分布式部署是指:将M个网关实体部署在数据中心(Date Center,DC)的接入层或边缘层,这样的部署位置决定了网关实体的数量会比较多和分散,分散的特点使得分布式网关实体具有更好的业务隔离效果;集中式部署是指将M个网关实体部署在汇聚层设备上,或作为汇聚层设备进行部署,同一路由域或数据中心内的业务流量都将由这些汇聚层设备(即网关实体)进行中转;混合式部署是指既可以按照分布式部署的方式将部分网关实体部署在数据中心的接入层或边缘层,又可以按照集中式部署方式一样将部分网关实体部署在汇聚层。
可选地,M个网关实体还可以支持跨数据中心部署,以实现业务就近出口的目的,也即是说M个网关实体可以被部署在同一或不同的DC内。
在实际应用中,交换机需要实现分布式虚拟路由器(Distributed VirtualRouter,DVR)的功能;也即是说,交换机具有内部路由器IR(IR可以是物理存在的,也可以是逻辑存在的)的路由/转发功能。
应理解的是,DVR具有多种实现方式,目前已知的被分为两类,一类是容器类,例如通过用namespace、docker、其他容器,甚至是VM等相互独立、隔离的容器实体来实现,这种情况下,DVR有物理实体(即容器实体)存在于VM所在的物理主机上;另一类是逻辑实体,DVR通过逻辑实体,如逻辑内部路由器IR来实现,典型的是在SDN模式下,交换机(如虚拟交换机vSwitch或物理交换机TOR)负责按照流表项进行业务通信。
结合图3给出的网络框架示意图,图4是本发明实施例提供的又一种通信网络框架示意图。如图4所示,示例性地给出包含物理转发层面和逻辑转发层面的网络框架示意图,该网络结构示意图中包括软件定义网络(Software Defined Networ,SDN)控制器(图示为SDN Controller)、网络管理部件(Network Manager,NM)以及多个虚拟交换机vSwitch、多个物理交换机TOR、以及TOR之间的物理连接设备Aggre/Core、以及多个虚拟机VM等部件。
应理解的是,图4示例性地给出位于不同子网内的VM和网关实体,其中,白色和斜线填充的VM分别位于两个不同的子网内,灰色填充的网关实体位于不同于VM所在子网的其他子网内;也即是说,白色填充的VM、斜线填充的VM、以及灰色填充的网关实体分别位于互不相同的子网内。可选地,VM可以任意被部署在同一或不同业务子网内,但部署VM的子网和部署网关实体的子网不相同。
应理解的是,网络管理部件NM可以用于负责整个网络中物理层面和逻辑转发层面所需资源的配置/分配、以及资源的调度等,如配置路由器所需的网卡接口和互联网协议(Internet Protocol,IP)地址;同时NM还用于对上层部件,如软件即服务(Software-as-a-Service,SaaS)、平台即服务(Platform-as-a-Service,PaaS),或者为用户入口Portal提供应用程序编程接口(Application Programming Interface,API)接口;同时用户或其他系统也可以通过该API接口向NM下发相关的资源配置/分配信息、网络信息以及路由策略等信息。
可选地,NM还用于负责虚拟化网络模型及管理,并通过API接口将其发送给SDN控制器,由该SDN控制器在所述物理层面中的物理设备和逻辑转发层面中的逻辑实体来实现网络模型。总之,NM用于负责对外呈现(如提供用户界面或接口)、对内的策略制定以及逻辑实体的生命周期的管理和配置。在本发明实施方案中,网络管理部件NM至少用于负责由所述N个虚拟机组成的业务子网的管理外,还负责所述M个网关实体的路由设置(如网卡接口或IP地址的设置)、组织网关的调度/路由策略、以及调用SDN控制器实现业务的实际调度,实现虚拟机与网关实体之间的业务通信。
应理解的是,SDN控制器可以通过设定网络管理接口(如openflow接口、ovsdb接口、netconf接口等)下发控制信息(如流表项或路由表项)到网络设备,这里也即是交换机,以实现该NM设定的虚拟网络模型以及生命周期的管理,这里的网络设备可以包括软件实体设备(如虚拟交换机vSwitch),也可以包括物理实体设备(如物理交换机TOR)。本发明实施例中,SDN控制器主要用于负责通过控制交换机(如vSwitch或TOR)来实现网关实体与虚拟机之间的互通。优选地,SDN控制器可以根据一系列的路由策略,诸如根据所述虚拟机的优先级信息、通信业务属性(如业务类型)、以及网关实体策略等,通过转发表对特定业务进行流向调度。
应理解的是,网络管理部件NM和SDN控制器在功能上没有清晰的界限,网络管理部件NM和SDN控制器具有相类似的功能,目前除针对转发表方面的操作外,其余的操作(如资源的配置/分配、策略的制定等)都可以在两者之中进行实现。如果同一路由域内存在有多个SDN控制器的时候(图示仅有1个SDN控制器),这些SDN控制器本来还存在集群部署和分布式部署这两种情况,但是这些对本发明实施例并没有影响,这里不作详细介绍。
基于图3和图4给出的网络框架示意图,图5是一种基于业务网关分离的场景示意图,这里的业务网关分离是指网关实体提供处理设定业务类型的网关能力,图中示例性地给出3种业务网关实体,分别为用于处理虚拟专用网络(Virtual Private Network,VPN)业务的VPN网关实体、用于处理源地址转换(Source Network Address Translation,SNAT)业务的SNAT网关实体、用于处理负载均衡(Load Balance,LB)的LB网关实体。具体参见如图5所示,不同的业务子网占用不同的网段,图示给出分别由网段192.168.1.0和网段192.168.2.0组成的两个业务子网,子网中的VM在通过网关实体进行通信时,网关实体将占用各自子网网段内的互联网协议(Internet Protocol,IP)地址;由此可知,在业务网关分离情况下,如果业务网关实体的数量或种类较多时,在实际通信过程中这些业务网关实体将进一步占用业务子网网段内的IP地址,导致用户创建的业务子网内IP地址被占用较多,且业务网关的数量也会受到限制,浪费业务子网IP地址的同时还影响业务的扩展性。
为解决上述业务子网IP地址浪费的问题,基于图3和图4给出的网络框架示意图,请参见图6,是本发明实施例提供的一种数据转发方法的流程示意图,该方法包括:
S101、交换机接收虚拟机发送的第一数据报文,所述第一数据报文携带待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址。
本发明实施例中,N个虚拟机、以及N个虚拟机所在的虚拟网关被部署在第一子网中,M个网关实体被部署第二子网中,第一子网和第二子网是指不相同的子网,即它们所占用的网段不相同。与传统方式相同,第一子网中的虚拟机不感知外界网关实体的变化,首次发起访问外部网络/不同网段的通信请求(也即是传送数据报文)时,虚拟机可以首先发送网关地址获取请求,这里可以是地址解析协议(Address Resolution Protocol,ARP)请求,该ARP请求用于获取虚拟机所在的虚拟网关的MAC地址;正常发出的ARP请求被发送到与该虚拟机所对应的转发设备,即交换机中;相应地,交换机接收该ARP请求,并响应该ARP请求向虚拟机返回该虚拟机所在虚拟网关的MAC地址,也即是第一子网的虚拟网关的MAC地址;其中,虚拟机是指第一子网内N个虚拟机中的一个或多个VM,所述外网网络或不同网段是指不同于虚拟机的IP地址所属的网段/子网。
在虚拟机接收到第一子网的虚拟网关的MAC地址后,虚拟机可以向交换机发送第一数据报文,该第一数据报文可以携带有待访问目标的IP地址(如外网百度的IP地址)和第一子网的虚拟网关的MAC地址,也即是目的IP地址和目的MAC地址,可选地还可携带有虚拟机的IP地址、虚拟机的MAC地址,也即是源IP/MAC地址,还可以携带有其他的用于传输/发送第一数据报文的信息,本发明实施例不作限定。
在实际应用中,虚拟机向交换机发送第一数据报文时,会将上述第一数据报文携带的如待访问目标的IP地址、第一子网的虚拟网关的MAC地址、虚拟机的IP地址、虚拟机的MAC地址等信息统一封装成报头,添加到第一数据报文的前面进行传输。
应理解的是,交换机接收到第一数据报文后,还可以确定第一数据报文从第一子网中的虚拟机发送至交换机的接口,又称为入接口,还可以根据接口和网络标识之间预存绑定关系确定到与该入接口对应的网络标识,这里即是交换机与第一网络连接的接口(入接口)和第一子网的网络标识;也即是说,交换机接收到第一数据报文后,可以确定到第一子网的指示信息,该第一子网的指示信息可以包括交换机连接第一子网的入接口(通常表示为入接口号/入接口标识)或者第一子网的网络标识。
应理解的是,网络标识为用于表征当前所处网络的标志信息,如虚拟局域网(Virtual Local Area Network,VLAN)的网络标识通常表示为VLAN ID,虚拟可扩展局域网(Virtual Extensible Local Area Network,VXLAN)的网络标识通常表示为VNI(VXLANNetwork Identifier,VNI),或者其他网络的网络标识,本发明实施例不作限定。
S102、所述交换机根据所述第一数据报文,判断是否存在对应的预存转发表项。
在一种可能的实现方式中,如果第一子网的虚拟网关的MAC地址可以用来表征第一子网,即作为第一子网的指示信息/指示标识时,交换机可以将第一数据报文携带的待访问目标的IP地址、第一子网的虚拟网关的Mac地址和预存转发表项中的匹配域进行匹配,以确定交换机中是否存在对应匹配的预存转发表。
在又一种可能的实现方式中,如果第一子网的虚拟网关的MAC地址可以用来表征第一子网时,交换机可以将第一数据报文携带的所有信息,如待访问目标的IP地址、第一子网的虚拟网关的MAC地址、虚拟机的指示标识等封装在第一数据报文报头的信息,和预存转发表项中的匹配域进行匹配。
在又一种可能的实现方式中,如果第一子网的虚拟网关的MAC地址不能用来表征第一子网时,交换机可以将第一数据报文携带的待访问目标的IP地址、第一子网的虚拟网关的MAC地址、以及确定的第一子网的接口号(即入接口号或入接口标识)和预存转发表项中的匹配域进行匹配,以确定交换机中是否存在对应匹配的预存转发表项。
在又一种可能的实现方式中,如果第一子网的虚拟网关的MAC地址不能用来表征第一子网时,交换机可以将第一数据报文携带的待访问目标的IP地址、第一子网的虚拟网关的MAC地址、以及确定的第一子网的网络标识和预存转发表项中的匹配域进行匹配。
在又一种可能的实现方式中,如果第一子网的虚拟网关的MAC地址不能用来表征第一子网时,交换机可以将第一数据报文携带的所有信息,如待访问目标的IP地址、第一子网的虚拟网关的MAC地址、虚拟机的指示标识等封装在第一数据报文报头的信息,以及确定的第一子网的接口号(即入接口号或入接口标识)和预存转发表项中的匹配域进行匹配。
在又一种可能的实现方式中,如果第一子网的虚拟网关的MAC地址不能用来表征第一子网时,交换机可以将第一数据报文携带的所有信息,如待访问目标的IP地址、第一子网的虚拟网关的MAC地址、虚拟机的指示标识等封装在第一数据报文报头的信息,以及确定的第一子网的网络标识和预存转发表项中的匹配域进行匹配。
如果交换机在上述可能的实现方式中存在一种或多种匹配一致的情况下,那么交换机可以将所述转发表项的动作域所记录的网关实体作为目标网关实体,且目标网关实体属于第二子网,并继续执行步骤S103;否则,继续执行步骤S104。
应理解的是,虚拟机的指示标识可以是指虚拟机的IP地址或虚拟机的MAC地址,用来表征虚拟机的优先级信息。
在实际应用中,交换机可以包括转发层面中的虚拟交换机vSwitch、以及用于实现DVR功能来传输第一数据报文的逻辑实体,如逻辑存在的内部路由器IR等,还可以包括物理层面中的物理交换机TOR、或用于实现DVR功能来传输第一数据报文的容器实体(或物理实体),如namespace、docker等容器等。当交换机基于逻辑实体(如逻辑内部路由器IR等)来实现DVR功能时,所述转发表项可以为流表项;当交换机基于容器(如namespace、docker、其他容器)来实现DVR功能时,所述转发表项可以为路由表项。
在实际应用中,如果转发表项为流表项,该流表项可以由匹配域和动作域(又称为操作域)组成,匹配域可以包括目的IP地址或该目的IP地址所属的网段(这里即是待访问目标的IP地址或对应所在的网段)、目的MAC地址(这里即是第一子网的虚拟网关的MAC地址),还可以包括通信接口或网络标识(这里即是第一子网的接口号或网络标识),以及还包括源IP地址(如虚拟机的IP地址)、源MAC地址(如虚拟机的MAC地址)、或者其他的用于匹配并查找目标网关实体的信息;动作域可以包括有指向目标网关实体的接口IP/MAC地址、以及指向目标网关实体的二层转发信息(即目标网关实体的指示信息)。
应理解的是,该指向目标网关实体的二层转发信息可以包括目标网关实体的MAC地址、指向目标网关实体的通信接口/网络标识(即第二子网的接口号/网络标识),还可以包括关于第一数据报文的封装信息(如基于VXLAN场景下的VTEP(VXLAN Tunnel EndPoint,中文称为VXLAN隧道终端)信息)、目的IP地址、源IP/MAC地址(如第一子网的虚拟网关的IP/MAC地址)、或者其他的用于传输第一数据报文至目标网关实体的相关信息,本发明实施例不作限定。
在实际应用中,流表项可以包括以下两种实现方式:三层流表项和二层流表项。在三层流表项的实现方式中,交换机首先可以根据第一数据报文携带的目的IP地址或网段(即待访问目标的IP地址或IP地址对应的网段)和目的MAC地址(即第一子网的虚拟网关的Mac地址),可选地还可以加入确定的通信接口或网络标识(即第一子网的接口号(即入接口号/入接口标识)或网络标识)来查询指向目标网关实体的接口网络地址(如指向目标网关的接口IP地址),然后在根据所述指向目标网关实体的接口网络地址来查询指向目标网关实体的二层转发信息。在二层流表项的实现方式中,交换机可以同时根据第一数据报文携带的目的IP地址或目的IP地址所属的网段、和目的MAC地址、可选地还可加入通信接口或网络标识来查询指向目标网关实体的二层转发信息。示例性地如下表1给出一种二层流表项的示意图。
表1
如上表1可知,上述匹配域中的源网络地址可以是指虚拟机的IP地址或MAC地址(IP_Src/MAC_Src);匹配域中的目的网络地址可以是指第一子网的虚拟网关的MAC地址(MAC_Src1)、和待访问目标的IP地址或IP地址所在的网段(IP_Dst);匹配域中的通信接口/网络标识是指按照传统方式转发第一数据报文至第一子网的虚拟网关MAC_Src1所对应的通信接口/网络标识,即第一子网的接口号(入接口号/如接口标识)或第一子网的网络标识(IN_X)。动作域中的目标网络地址可以是指目标网关实体的MAC地址(MAC_Dst)、以及目的IP地址,即待访问目标的IP地址(IP_Dst);动作域中的源网络地址可以是指指向目标网关实体的接口MAC地址(MAC_Dst1)、和源IP地址,即虚拟机的IP地址(IP_Src);动作域中的通信接口/网络标识是指第二子网的接口号(即出接口号、出接口标识)或第二子网的网络标识(IN_Y);动作域还可以包括用于封装第一数据报文的封装信息,如VTEP信息。同理可参照如上表1给出的二层流表项来理解三层流表项,三层流表项的匹配域可以和二层流表项所包括的内容相同,但是三层流表项的动作域包括上述指向目标网关实体的接口网络地址(可以是指向目标网关实体的接口IP地址);进而根据该指向目标网关的接口IP地址来查询流表项得到指向目标网关实体的二层转发信息,如表2动作域中的目标网关实体的MAC地址、以及通信接口/网络标识等信息。因此,可以理解到二层流表项直接根据第一数据报文携带的待访问目标的IP地址、第一子网的虚拟网关的Mac地址,可选地还可加入通信接口或网络标识、以及封装在第一数据报文报头内的其他信息一次性从流表项中查找出转发第一数据报文所需的二层转发信息;三层流表项需分为两步来从流表项中查找和匹配到出转发第一数据报文所需的二层转发信息。
应理解的是,针对转发表项的下发时刻可以是提前下发的,也可以实时下发的。下面具体介绍SDN控制器提前为交换机下发该转发表项。
考虑到SDN控制器的通信负荷,针对一些负荷超重的时段,SDN控制器可以提前为同一路由域或VPC内的交换机生成并下发对应的转发表项。转发表项的生成过程如下:SDN控制器按照以虚拟机为维度,考虑该虚拟机所支持的业务类型、以及该VPC内整个数据转发网络的网络拓扑信息来生成对应的转发表项;或者,SDN控制器按照以网关实体为维度,考虑该网关实体所支持处理的业务类型以及整个数据转发网络的网络拓扑信息来生成对应的转发表项,进而将所述对应的转发表项下发给对应的交换机,以让交换机按照对应的转发表项进行数据报文的转发。其中,数据转发网络由该路由域或VPC内的M个网关实体和N个虚拟机、以及M个网关实体与N个虚拟机之间互通所涉及的多个交换机(如物理交换机TOR等)所构成。示例性地,如以虚拟机为维度,SDN控制器根据N个虚拟机各自所支持通信的业务类型,在从M个网关实体中选取出用于处理该虚拟机支持通信的业务类型所对应的目标网关实体,然后根据虚拟机与目标网关实体之间的网络拓扑信息为该虚拟机与目标网关实体之间互通所涉及的交换机生成并下发对应的转发表项。
优选地,SDN控制器还可以考虑加入路由策略来生成转发表项,也即是说,不管上述SDN控制器以虚拟机为维度还是以网关为维度,根据它们所支持处理的业务类型以及整个数据转发网络的网络拓扑信息的同时,还将加入路由策略来生成对应的转发表项。
应理解的是,路由策略可以是指用户或其他系统通过API接口发给网络管理部件NM,NM通过网络再下发给SDN控制器的,路由策略可以包括虚拟机选择策略、负载均衡策略、负载反均衡策略、或者其他用于选择目标网关实体的策略中的一种或多种的组合,本发明实施例步骤限定。相应地,NM同样可以将一些关于虚拟机的信息(如设备信息、位置信息、服务质量要求(Quality of Service,Qos)等)下发给SDN控制器,以便SDN考虑到虚拟机的信息(即虚拟机选择策略)来生成对应的转发表项。
应理解的是,虚拟机选择策略是指根据虚拟机的信息来选择通信的目标网关实体,如针对一些等级、优先级、或者服务质量要求比较高的虚拟机而言,对应选择通信的目标网关实体的优先级也相应较高;负载均衡策略是指保证M个网关实体的负载量大致相同,避免网关实体的负载量出现两极化,一些网关实体的负载较大、一些网关实体的负载较小;负载反均衡策略是指优先使用负载量较大的网关实体,负载量较小的网关实体尽量不用,容易导致网关实体的负载量出现两极化,如将一些网关实体的资源使用完毕后再使用下个网关实体的资源;路径最优策略是指保证虚拟机到目标网关实体之间的路径最短或最优。
需要说明的是,在数据转发网络的网络拓扑信息中,针对同一虚拟机和网关实体之间互通的链路可能存在多条,但在实际通信时转发表项是唯一的,也即是该转发表项确定了同一虚拟机和网关实体之间的唯一通信路径。
在实际应用中,针对转发表项被提前下发的情况中,该转发表项具有设定的有效生命周期(又称为老化时间),在有效生命周期内该转发表项能够正常运行工作,超过有效生命周期时该转发表项将逾期作废,可被自动清除,或存储在交换机中不起任何作用。
S103、所述交换机根据所述转发表项的指示对所述第一数据报文进行重新封装,得到第二数据报文,并将所述第二数据报文转发给所述目标网关实体。
应理解的是,交换机可以按照转发表项中动作域所记录的二层转发信息来对应更改封装在第一数据报文报头内的信息,示例性地如将所述第一数据报文携带的第一子网的虚拟网关的MAC地址修改为目标网关实体的MAC地址,还可以添加封装第二子网的网络标识,以及其他的报文封装信息,如果在VXLAN应用场景中还可添加封装VTEP信息,以对该第一数据报文进行重新封装,得到第二数据报文;交换机可以按照转发表项的二层转发信息,如第二子网的接口号(即出接口号/出接口标识)或第二子网的网络标识、以及目标网关实体的MAC地址等信息,将该第二数据报文转发给目标网关实体。
在实际应用中,交换机可以先将封装得到的第二数据报文通过网络发送给目标网关实体所对应的其他交换机中,再由该其他交换机对第二数据报文进行解封装以还原第一数据报文(如在VXLAN场景下,由于之前添加封装了VTEP信息,此时其他交换机可以解封装除去VTEP信息),进而该其他交换机按照第一数据报文携带的目标网关实体的MAC地址将第一数据报文转发给目标网关实体。
应理解的是,交换机和其他交换机可以是指同一个相同的交换机,也可以是指不同的交换机;如当虚拟机和目标网关实体被部署在同一物理实体(如物理主机、服务器)上时,该交换机和其他交换机可以是指同一个交换机,当虚拟机和目标网关实体被部署在不同的物理实体(如物理主机、服务器)上时,该交换机和其他交换机可以是指两个不同的交换机。
S104、所述交换机向SDN控制器发送流表请求消息,所述流表请求消息中携带所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址。
在实际应用中,交换机可以向对应的SDN控制器发送流表请求消息,以从SDN控制器中获取用于转发第一数据报文的流表项。在一种可能的实现方式中,该流表请求消息可以携带有待访问目标的IP地址和第一子网的虚拟网关的MAC地址。
在又一种可能的实现方式中,该流表请求消息可以携带有第一子网的接口号(即入接口号/入接口标识)或第一子网的网络标识、待访问目标的IP地址和第一子网的虚拟网关的MAC地址。
在又一种可能的实现方式中,该流表请求消息可以携带有待访问目标的IP地址、第一子网的虚拟网关的MAC地址、以及虚拟机的指示标识,还可以携带其他的封装在第一数据报文的报头内的信息,甚至是整个第一数据报文,本发明实施例不作限定。
在又一种可能的实现方式中,该流表请求消息可以携带有第一子网的接口号(即入接口号/入接口标识)或第一子网的网络标识、待访问目标的IP地址、第一子网的虚拟网关的MAC地址、以及虚拟机的指示标识,还可以携带其他的封装在第一数据报文的报头内的信息,甚至是整个第一数据报文,本发明实施例不作限定。
S105、相应地,所述SDN控制器接收所述流表请求信息,并根据所述流表请求信息携带的待访问目标的IP地址确定所述待访问目标的IP地址对应的业务类型。
应理解的是,由于虚拟专有网络VPN或其他网关实体一般都有对应网段的路由配置,可根据被路由的待访问目标的IP地址(即目的IP地址)来确定它所属的业务类型,如本地服务网关实体用于处理同一路由域内去往本地服务区的业务通信或数据流量,又如互联网Internet网关实体用于处理去往Internet的业务通信或数据流量。
S106、所述SDN控制器根据所述待访问目标的IP地址对应的业务类型从第二子网内的M个网关实体中选择出目标网关实体,所述目标网关实体用于处理所述待访问目标的IP地址对应的业务类型。
在一种可能的实现方式中,SDN控制器可以从第二子网内的M个网关中任意选取一个或多个网关实体作为目标网关实体,用来处理所述待访问目标的IP地址对应的业务类型。
在又一种可能的实现方式中,如果M个网关实体被预先分为P个业务网关实体集合(P为正整数),不同业务网关实体集合中的网关实体用于处理不同的业务类型,同一业务网关实体集合中的网关实体用于处理同一业务类型,该业务网关实体集合包括至少一个网关实体,那么SDN控制器可以从不同的业务网关实体集合中选取出用于处理所述待访问目标的IP地址对应的业务类型的目标业务网关实体集合,进而从目标网关实体集合中选取出目标网关实体。
在实际应用中,SDN控制器可以通过以下两种实现方式来从目标目标网关实体集合中选取出目标网关实体:
在第一种实现方式中,SDN控制器从目标网关实体集合中任意选取一个网关实体作为目标网关实体。
在第二种实现方式中,SDN控制器根据与虚拟机的指示标识所对应的路由策略从目标网关实体集合中选取目标网关实体。
在实际应用中,虚拟机的指示标识可以用来表征虚拟机的优先级信息,如果流表请求消息中携带有虚拟机的指示标识,那么SDN控制器可以根据虚拟机的指示标识(即虚拟机的优先级信息)来确定用于选取目标网关实体适用的路由策略,如路径最优策略、负载均衡策略、负载反均衡策略等等,进而SDN控制器根据该路由策略从目标网关实体集合中选取目标网关实体,关于路由策略的相关说明详见步骤S102,这里不在赘述。
在实际应用中,第二子网优先采用169.254.0.0-169.254.255.255网段,也即是将M个网关优先部署在169.254这个网段内;由于该网段为本地链路网络,业务通信通常不会用到,这样可以避免网关子网和业务子网重叠的问题,即避免第一子网和第二子网出现重叠的问题。
应理解的,所述业务网关实体集合包括但不限于虚拟专用网络VPN业务网关实体集合、源地址转换SNAT业务网关实体集合、负载均衡LB业务网关实体集合、英特网Internet业务网关实体集合、本地公共服务(Local Service)业务网关实体集合,还可以包括用于处理其他业务类型的业务网关实体集合。参见图4所示给出的网络框架图中给出了3类业务网关实体集合,分别为包括VGW在内的VPN业务网关实体集合、包括LG在内的本地公共服务业务网关实体集合、以及包括IGW1和IGW2在内的英特网业务网关实体集合。
示例性地,引用如图4给出的网络框架示意图,图示包括有IGW1、IGW2、VGW和LGW这4个网关。假设现有被部署在物理主机2上的一虚拟机VM1想要通过目标网关访问外网百度(百度的IP地址为Remote)。当SDN控制器在选择目标网关实体时,首先可以根据百度的IP地址Remote确定出用于处理Internet业务的英特网业务网关实体集合(即IGW1和IGW2),进而SDN控制器可以根据路由策略从包含有IGW1和IGW2的英特网业务网关实体集合中选取出目标网关实体。由于IGW2和VM1被部署在同一物理主机上,如果SDN控制器按照路径最优策略选择到的目标网关实体即为IGW2;又如假设IGW1的负载>IGW2的负载,如果SDN控制器按照负载均衡策略选择到的目标网关实体还为IGW2,如果SDN控制器按照负载反均衡策略选择到的目标网关实体为IGW1,使得IGW1和IGW2网关的负载出现两极化。
S107、所述SDN控制器根据所述目标网关实体的指示信息和所述流表请求消息生成对应的流表项,并将所述流表项下发给所述交换机。
在实际应用中,SDN控制器在确定到目标网关实体后,可以获取指向该目标网关实体的二层转发信息,也即是该目标网关实体的指示信息,进而根据该目标网关实体的指示信息和流表请求消息携带的待访问目标的IP地址、所述第一子网的虚拟网关的Mac地址,可选地还携带有虚拟机的指示标识、第一子网的网络标识、以及其他的封装在第一数据报文报头内的信息来生成对应的流表项,其中,所述流表项包括该目标网关实体的指示信息,如目标网关实体的MAC地址、第二子网的接口号或网络标识等,关于指向目标网关实体的二层转发信息的相关说明详细参见如上步骤S102所述,这里不在赘述。
S108、相应地,所述交换机接收所述SDN控制器下发的所述流表项。
在实际应用中,交换机基于逻辑实体来实现DVR功能的情况下,如果交换机中不存在预存的用于转发第一数据报文的流表项时,需要SDN控制器实时下发,具体参见上述步骤S104至步骤108的相关说明,这里不在赘述。
应理解的是,针对转发表项(如流表项或路由表项)的下发时刻,可以是SDN控制器知悉虚拟机和目标网关实体之间的网络拓扑信息之后分别或同时将它生成好的转发表项提前下发给对应的交换机;或者,当SDN控制器根据接收到的第一数据报文(首包)实时查询和生成对应的流表项,然后分别/同时下发给对应的交换机,本发明实施例不作限制。
S109、所述交换机根据所述流表项对所述第一数据报文进行重新封装,得到第二数据报文,并将所述第二数据报文转发给所述目标网关实体。
应理解的是,交换机按照所述流表项的指示对第一数据报文进行重新封装并转发给目标网关实体,具体可详细参见如上步骤S103所述,这里不在赘述。
应理解的是,在反方向的通信过程中,外部路由器根据路由的待访问目标的IP地址(即虚拟机的IP地址)将来自远端(如Internet)的第一数据报文分发到对应的网关实体中,这里同样也可首先根据待访问目标的IP地址来确定与之对应的业务类型,再根据该业务类型选择对应的网关实体,与上述关于目标网关实体选择的相关说明相同,这里不再赘述。同理,当目标网关实体接收来自待访问目标的IP地址或该IP地址对应的网段(如百度Internet)所发送的第一数据报文后,目标网关实体可以首先向相关的交换机(即目标网关实体所在的交换机)发送用于获取第二子网的虚拟网关的MAC地址获取请求,这里同样可以是ARP请求。由于目标网关实体本就是网关实体,该第二子网的虚拟网关的MAC地址即是目标网关实体的MAC地址。目标网关实体接收到交换机返回的MAC地址后,对第一数据报文进行重新封装并发送给该交换机,此时第一数据报文携带有待访问目标的IP地址(即虚拟机的IP地址)和第二子网的虚拟网关的MAC地址(即目标网关实体的MAC地址);相应地,交换机接收第一数据报文后,可以获取目标网关实体所在第二子网的接口号或网络标识;接着,交换机根据待访问目标的IP地址(即虚拟机的IP地址)和第二子网的虚拟网关的MAC地址(即目标网关实体的MAC地址),可选地还可加入第二子网的接口号或网络标识来检测是否存在有对应用于转发第一数据报文的预存转发表项,若存在,则直接按照所述转发表项的指示对第一数据报文进行重新封装得到第二数据报文,并将第二数据报文转发给虚拟机;如果不存在,则目标网关实体向对应的SDN控制器发送流表请求消息,该流表请求消息携带有待访问目标的IP地址(即虚拟机的IP地址)和第二子网的虚拟网关的MAC地址(即目标网关实体的MAC地址),可选地还可携带有第二子网的接口号或网络标识,和/或目标网关实体的指示标识(即源IP/MAC地址)、甚至整个第一数据报文等信息,相应地SDN控制器根据待访问目标的IP地址确定待访问目标的IP地址所在第一子网的指示信息,如第一子网的虚拟网关的MAC地址、第一子网的网络标识等;进而根据流表请求消息携带的信息和第一子网的指示信息生成对应的流表项,并下发给该交换机,流表项至少包括第一子网的指示信息,如第一子网的网络标识或接口号。相应地,交换机根据流表项的指示对第一数据报文进行重新封装,示例性地如将第二子网的虚拟网关的MAC地址(即目标网关实体的MAC地址)修改为第一子网的虚拟网关的MAC地址,并封装第一子网的网络标识以及其他的报文封装信息等,得到第二数据报文,所述交换机将所述第二数据报文转发给虚拟机。具体的回程(即反方向)通信过程与上述从虚拟机VM将第一数据报文发送给目标网关实体的通信过程类似,这里不作详细介绍。
需要说明的是,由于网关实体会占用二层信道资源,基于VLAN场景下网络标识VLAN ID的个数有限,然而基于VXLAN或通用路由封装(Generic Routing Encapsulation,GRE)等隧道类网络应用场景下,这种隧道网络标识VNI的数量较多,最大支持16M(兆);因此建议在VXLAN等隧道类网络应用场景下采用本发明方案来实现南北向流量的通信,解决南北向通信存在的网关性能和瓶颈拥塞的问题,同时还能避免由于网关实体占用业务子网的IP地址,引起子网IP地址的浪费。
为帮助人们对上述实施例的进一步理解,下面通过两个例子进行详细说明。
实施例一:结合图3和图4给出的网络框架示意图,第一子网内部署有N个虚拟机,以及N个虚拟机所对应的虚拟网关,第二子网内部署有M个网关,且交换机通过逻辑实体来实现DVR的功能,也即是基于流表项来实现。假设现存在被部署在第一子网内物理主机2上的一虚拟机VM1首次发起访问外网百度的业务通信请求,百度的IP地址为Remote,具体可参见如图7所示给出的通信流程图。
S200,与传统方式相同,VM1不感知外界网关的变化首先发出ARP请求,正常发出的该ARP请求会被发送到该VM1所在的虚拟交换机vSwitch1中,该ARP请求用于获取VM1所在第一子网的虚拟网关的MAC地址。
S201,相应地,该vSwitch1接收所述ARP请求,并查询第一子网的虚拟网关的MAC地址,并返回给所述VM1。假设该vSwitch1查询到的该第一子网的虚拟网关的MAC地址为MAC_Mx。
S202,VM1向vSwitch1发送第一数据报文,该第一数据报文携带有待访问目标的IP地址(Remote)、源VM1的网络地址(假设为IP_VM1和MAC_VM1)、该VM1所在第一子网的虚拟网关的网络地址MAC_Mx等信息。
S203,相应地,vSwitch1接收第一数据报文,并根据第一数据报文判断是否存在对应的传输第一数据报文的预存流表项。
应理解的是,vSwitch1接收第一数据报文后,可以确定到VM1所在第一子网的指示信息,这里的第一子网的指示信息可以为vSwitch1连接第一子网的网络标识(VNI=X);接着vSwitch1根据第一数据报文、或者根据第一数据报文和第一子网的网络标识来判断是否存在对应的预存流表项。如果vSwitch1查询到存在有预存的用来传输第一数据报文的流表项时,继续执行步骤S204;否则,继续执行步骤S206。
S204,该vSwitch1将流表项记录的网关实体作为目标网关实体,并按照所述流表项的指示对该第一数据报文进行重新封装得到第二数据报文,再将该第二数据报文转发给目标网关实体所在的虚拟机交换机vSwitch2。
S205、相应地,vSwitch2接收第二数据报文,并对第二数据报文进行解封装以还原第一数据报文,并将第一数据报文发送给目标网关实体IGW1。
示例性地,结合图4给出的网络框架示意图,参见图8所示给出一种报文转发的流程示意图,在具体通信过程中,假设该vSwitch1匹配到如下表2所示的流表项。
表2
该vSwitch1可以按照如上表2流表项的指示将第一数据报文中的源MAC地址从虚拟机的MAC地址MAC_VM1修改为指向目标网关实体的接口MAC地址MAC_My1、将目的MAC地址从第一子网的虚拟网关的MAC地址MAC_Mx修改为目标网关实体的MAC地址MAC_My,以及将网络标识VNI从第一子网的网络标识X修改为第二子网的网络标识Y,然后对第一数据报文进行重新封装,如果在VXLAN的应用场景下,还会添加一些VTEP信息对报文进行封装,得到封装后的第二数据报文,接着将第二数据报文从vSwitch1发送到vSwitch2中,该vSwitch2接收到第二数据报文后进行解封装以还原成第一数据报文,进而该vSwitch2按照目的MAC地址即目标网关实体的MAC地址MAC_My以及第二子网的网络标识VNI=Y将第一数据报文发送给对应的目标网关实体IGW1中,也即是IGW1的网关MAC地址为MAC_My。
S206,vSwitch1向对应的SDN控制器发送流表请求消息,该流表请求消息携带有待访问目标的IP地址(Remote)、第一子网的虚拟网关的MAC地址(MAC_Mx);可选地还可携带有第一子网的指示信息(如第一子网的网络标识VNI=X)、和/或虚拟机的指示标识(如虚拟机的IP地址IP_VM1),以及其他的用于传输第一数据报文的信息。
S207、相应地,SDN控制器根据流表请求消息携带的待访问目标的IP地址选择目标网关。
在本发明实施例中,假设SDN控制器根据虚拟机的IP地址所表征的虚拟机的优先级信息确定的路径最优策略来选择出的目标网关实体为IGW1,关于目标网关实体的选择这里不作详述,具体参见如上步骤S105和S106所述,这里不在赘述。
S208,SDN控制器根据该流表请求消息和该目标网关实体的指示信息生成流表项,并将流表项下发给vSwitch1。
S209,相应地,vSwitch1接收流表项,并按照该流表项的指示将第一数据报文进行重新封装得到第二数据报文,将第二数据报文转发给目标网关实体所在的vSwitch2。
S210、相应地,vSwitch2接收第二数据报文,并对第二数据报文进行解封装还原为第一数据报文,并将第一数据报文发送给目标网关实体IGW1。
应理解的,关于vSwitch1到vSwitch2之间的通信所用流表项的相关说明,参见如上步骤S205所述,这里不再赘述。相应地,目标网关IGW1接收第一数据报文后,可以根据预先的配置直接转发,或者进行公私网地址转换后,再将该第一数据报文转发至Internet去访问外网百度。
同理在相反方向的通信过程中,可具体参见如图9所示。
S300,IGW1首次接收到来自源IP地址(如Internet外网百度Remote)发送的第一数据报文时,IGW1不感知外界网关实体变化首先发出ARP请求,正常发出的ARP请求被发送到该IGW1实体所在的vSwitch2中,其中ARP请求用于获取IGW1所在第二子网的虚拟网关的MAC地址。
S301,相应地,vSwitch2接收所述ARP请求,并向该IGW1返回IGW1所在第二子网的虚拟网关的MAC地址,这里即该IGW1的MAC地址(MAC_My)。
S302,IGW1向vSwitch2发送第一数据报文,所述第一数据报文携带有待访问目标的IP地址(这里是虚拟机的IP地址IP_VM1)、第二子网的虚拟网关的MAC地址(MAC_My)以及源网络地址(即Remote、以及指向IGW1的接口MAC地址MAC_My1)等信息。
S303,相应地,vSwitch2接收第一数据报文,并根据第一数据报文判断是否存在对应的传输第一数据报文的流表项。
应理解的是,vSwitch2接收第一数据报文后,可以确定到目标网关实体所在第二子网的指示信息,如vSwitch2连接第二子网的网络标识(VNI=Y);接着vSwitch2可以根据第一数据报文、或者根据第一数据报文和第二子网的网络标识来判断是否存在对应的传输第一数据报文的流表项,如果vSwitch2查询到传输该第一数据报文的流表项,则继续执行步骤S304;否则执行步骤S306。
S304,该vSwitch2按照所述流表项的指示对第一数据报文进行重新封装得到第二数据报文,并将该第二数据报文转发给虚拟机所在的虚拟机交换机vSwitch1。
S305、相应地,vSwitch1接收第二数据报文,并对该第二数据报文进行解封装以还原为第一数据报文,并将第一数据报文发送给虚拟机VM1。
S306,该vSwitch2向对应的SDN控制器发送流表请求消息,该流表请求消息携带有待访问目标的IP地址(即虚拟机的IP地址IP_VM1)和第二子网的虚拟网关的MAC地址(即目标虚拟网关实体的MAC地址MAC_Mx),可选地还可携带有第二子网的网络标识(VNI=Y)、和/或目标网关实体的指示标识(即目标网关实体的IP/MAC地址)等关于第一数据报文的信息。
S307,相应地,SDN控制器接收流表请求消息,并根据流表请求消息携带的待访问目标的IP地址确定该待访问目标的IP地址所在第一子网的虚拟网关。
需要说明的是,由于虚拟机VM1的IP地址所在第一子网的虚拟网关的IP地址所属的网段与VM1的IP地址所属的网段相同,因此这里不需要再次选择VM1的IP地址所在第一子网的虚拟网关。
S308,SDN控制器根据该流表请求消息和该第一子网的虚拟网关的指示信息生成流表项,并将流表项下发给vSwitch2。
S309、相应地,vSwitch2接收该流表项,并按照流表项的指示对第一数据报文进行重新封装得到第二数据报文,将第二数据报文发送给虚拟机VM1所在的虚拟交换机vSwitch1。
S310、相应地,vSwitch1接收第二数据报文,并对第二数据报文进行解封装以还原第一数据报文,将第一数据报文发送给虚拟机VM1。
应理解的是,在VM1到目标网关实体IGW1之间的相互通信是可逆的,上述步骤S300至步骤S310与如上步骤S200至S210类似,这里不再赘述。
实施例二:参见图3和图4给出的网络框架示意图,第一子网内部署有N个虚拟机,以及N个虚拟机所对应的虚拟网关,第二子网内部署有M个网关,且交换机通过容器实体来实现DVR的功能,也即是基于路由表项来实现。假设现存在被部署在第一子网内物理主机2中的一虚拟机VM1首次发起访问外网百度的业务通信请求,百度的IP地址为Remote。在实际通信过程中,SDN控制器可以根据该网络框架的网络拓扑信息以及路由策略生成有对应的路由表,并将该路由表提前下发/添加至数据转发系统中的相关物理实体(如namespace、docker等容器)中。
示例性地,假设SDN控制器提前在该网络框架示意图中的物理实体(容器)中添加有如下表4所示的路由表。
表4
from VM1lookup table t_vm1 |
t_vm1:dest=vpc,nexthop=local |
t_vm1:dest=vpn_cidr,nexthop=vgw_g1 |
t_vm1:dest=default,nexthop=igw_g1 |
请参见图10所示给出一种基于路由表项的应用场景示意图,在实际通信过程中,虚拟机VM1向该VM1所在的vSwitch1发送第一数据报文,第一数据报文包携带有待访问目标的IP地址(dest=Remote)和该VM1的网络地址(IP_VM1和MAC_VM1)。在第一数据报文转发到vSwitch1时,会被标记上对应所属的网络标签(即VM1所在第一子网的网络标识VNI=X),由于VM1的IP地址和待访问目标的IP地址所属的网段不同,该vSwitch1会将第一数据报文转送到数据转发系统中的容器中进行转发。和正常路由通信相同,从容器中查找路由表项,这里可根据VM1的IP地址(IP_VM1)来确定路由表t_vm1,如上表4所示;进一步地根据待访问目标的IP地址(Remote)从所述路由表中查询下一跳IP地址,以及对应所属子网的网络标识,即目标网关实体所在第二子网的网络标识VNI=Y,并从第二子网的网络标识Y所对应的接口/出口返回至该vSwitch1。此时第一数据报文携带的目的MAC地址(即第一子网的虚拟网关的MAC地址)将变更为目标网关实体的MAC地址MAC_My,同时该vSwitch1还会为第一数据报文打上对应第二子网的网络标识Y,对该第一数据报文进行重新封装得到第二数据报文,进而将第二数据报文路由给目标网关实体所在的vSwitch2上。相应地,vSwitch2接收第二数据报文,并进行解封装以还原为第一数据报文,并按照第一数据报文携带的目的MAC地址(即目标网关实体的MAC地址MAC_My)以及第二子网的网络标识Y将该第一数据报文发送给对应的目标网关实体。
通过实施本发明实施例,能够解决南北向通信存在的网关性能和瓶颈拥塞的问题,同时还能避免网关实体占用业务子网IP地址所引起的子网IP地址的浪费,提升了网关实体通信的扩展性。
上述详细阐述了本发明实施例的方法,为了便于更好地实施本发明实施例的上述方案,下面参照图11~13描述本发明实施例的相关装置。
请参见图11,是本发明实施例提供的一种交换机的结构示意图,交换机分别连接第一子网和第二子网,第一子网中包含虚拟机,且配置有一个虚拟网关,第二子网中包含多个网关实体,该交换机4包括:
接收单元40,用于接收所述虚拟机发送的第一数据报文,所述第一数据报文携带待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
确定单元41,用于根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体;
封装单元42,用于根据所述第一数据报文,所述目标网关实体的Mac地址和所述第二子网的网络标识,封装得到第二数据报文;
转发单元43,用于将所述第二数据报文转发给所述目标网关实体。
在一种可选的方案中,所述确定单元41具体用于根据所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
在又一种可选的方案中,所述确定单元41具体用于根据所述待访问目标的IP地址,所述第一子网的虚拟网关的Mac地址和所述虚拟机的IP地址,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
在又一种可选的方案中,所述确定单元41具体用于向控制器发送流表请求消息,所述流表请求消息中携带所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;接收所述控制器发送的流表项,所述流表项包含所述目标网关实体的指示信息。
在又一种可选的方案中,所述流表请求消息中还携带所述第一子网的指示信息。
在又一种可选的方案中,所述流表请求消息中还携带所述虚拟机的指示标识,所述虚拟机的指示标识用于表征所述虚拟机的优先级信息。
在又一种可选的方案中,所述第一子网的指示信息为所述交换机连接所述第一子网的接口号或所述第一子网的网络标识。
需要说明的是,图11所示的交换机的具体实现还可以对应参照图6所示的方法实施例的相应描述,此处不再赘述。
请参见图12,是本发明实施例提供的又一种交换机的结构示意图,交换机分别连接第一子网和第二子网,第一子网中包含虚拟机,且配置有一个虚拟网关,第二子网中包含多个网关实体,该交换机4包括:
接收器401、发送器402、存储器403和处理器404(处理器404的数量可以一个或多个,图4中以一个处理器为例),在本发明的一些实施例中,接收器401、发送器402、存储器403和处理器404可通过总线或者其它方式连接,其中,图12中以通过总线连接为例。所述处理器404调用所述存储器403中的数据转发程序,用于执行本申请上述实施例中的任意一种数据转发方法。
请参见图13,是本发明实施例提供的一种数据转发系统的结构示意图,该系统13包括交换机4、第一子网1和第二子网2,交换机4分别连接所述第一子网和第二子网,所述第一子网中包含虚拟机VM,所述第一子网配置有一个虚拟网关,所述第二子网中包含多个网关实体GW,其中,
所述虚拟机VM,用于向所述交换机发送第一数据报文,所述第一数据报文携带待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
所述交换机4,用于接收所述虚拟机发送的第一数据报文;根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体;根据所述第一数据报文,所述目标网关实体的Mac地址和所述第二子网的网络标识,封装得到第二数据报文;将所述第二数据报文转发给所述目标网关实体;
所述目标网关实体GW,用于接收所述交换机转发的所述第二数据报文。
在一种可能的实现方式中,所述交换机4具体用于根据所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
在又一种可能的实现方式中,所述交换机4具体用于根据所述待访问目标的IP地址,所述第一子网的虚拟网关的Mac地址和所述虚拟机的指示标识,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
在又一种可能的实现方式中,所述系统13还包括控制器5,
所述交换机4,具体用于向所述控制器发送流表请求消息,所述流表请求消息中携带所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
所述控制器5,用于接收所述交换机发送的流表请求信息;根据所述流表请求信息携带的待访问目标的IP地址确定与所述待访问目标的IP地址对应的业务类型;根据所述待访问目标的IP地址对应的业务类型从第二子网内的多个网关实体中选择出目标网关实体;根据所述目标网关实体的指示信息和所述流表请求消息生成对应的流表项,并将所述流表项下发给所述交换机;
所述交换机4,还具体用于接收所述控制器发送的流表项,所述流表项包含所述目标网关实体的指示信息。
在又一种可能的实现方式中,所述流表请求消息中还携带所述第一子网的指示信息,
所述控制器5,具体用于根据所述目标网关实体的指示信息和所述流表请求消息携带的所述第一子网的指示信息,所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址生成对应的流表项。
在又一种可能的实现方式中,所述流表请求消息中还携带所述虚拟机的指示标识,所述虚拟机的指示标识用于表征所述虚拟机的优先级信息,
所述控制器5,具体用于根据与所述虚拟机的指示标识对应的路由策略从所述第二子网内的多个网关实体中选择出目标网关实体。
需要说明的是,图13所示的数据转发系统的具体实现还可以对应参照图6所示的方法实施例的相应描述,此处不再赘述。
综上所述,通过实施本发明实施例,能够解决南北向通信存在的网关实体性能和瓶颈拥塞的问题,同时M个网关实体被部署在不同于N个虚拟机所在的网段或子网内还能避免现有技术中由于网关实体占用业务子网的IP地址,引起子网IP地址浪费的问题。
以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅揭露了本发明中较佳实施例,不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (19)
1.一种数据转发方法,其特征在于,应用于数据转发系统,所述系统包括第一子网和第二子网,所述第一子网为用于部署虚拟机的业务子网,所述第一子网中配置有虚拟网关,所述第二子网中包含多个网关实体,所述第二子网与所述第一子网为不同的子网,所述方法包括:
交换机接收所述虚拟机发送的第一数据报文,所述第一数据报文携带待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
所述交换机根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体;
所述交换机根据所述第一数据报文,所述目标网关实体的Mac地址和所述第二子网的网络标识,封装得到第二数据报文;
所述交换机将所述第二数据报文转发给所述目标网关实体。
2.根据权利要求1所述的方法,其特征在于,所述交换机根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体包括:
所述交换机根据所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
3.根据权利要求1所述的方法,其特征在于,所述交换机根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体包括:
所述交换机根据所述待访问目标的IP地址,所述第一子网的虚拟网关的Mac地址和所述虚拟机的指示标识,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
4.根据权利要求1所述的方法,其特征在于,所述交换机根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体包括:
所述交换机向控制器发送流表请求消息,所述流表请求消息中携带所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
所述交换机接收所述控制器发送的流表项,所述流表项包含所述目标网关实体的指示信息。
5.根据权利要求4所述的方法,其特征在于,所述流表请求消息中还携带所述第一子网的指示信息。
6.根据权利要求4或5所述的方法,其特征在于,所述流表请求消息中还携带所述虚拟机的指示标识,所述虚拟机的指示标识用于表征所述虚拟机的优先级信息。
7.一种交换机,其特征在于,所述交换机分别连接第一子网和第二子网,所述第一子网为用于部署虚拟机的业务子网,所述第一子网中配置有虚拟网关,所述第二子网中包含多个网关实体,所述第二子网与所述第一子网为不同的子网,所述交换机包括:
接收单元,用于接收所述虚拟机发送的第一数据报文,所述第一数据报文携带待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
确定单元,用于根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体;
封装单元,用于根据所述第一数据报文,所述目标网关实体的Mac地址和所述第二子网的网络标识,封装得到第二数据报文;
转发单元,用于将所述第二数据报文转发给所述目标网关实体。
8.根据权利要求7所述的交换机,其特征在于,
所述确定单元,具体用于根据所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
9.根据权利要求7所述的交换机,其特征在于,
所述确定单元,具体用于根据所述待访问目标的IP地址,所述第一子网的虚拟网关的Mac地址和所述虚拟机的指示标识,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
10.根据权利要求7所述的交换机,其特征在于,
所述确定单元,具体用于向控制器发送流表请求消息,所述流表请求消息中携带所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;接收所述控制器发送的流表项,所述流表项包含所述目标网关实体的指示信息。
11.根据权利要求10所述的交换机,其特征在于,所述流表请求消息中还携带所述第一子网的指示信息。
12.根据权利要求10或11所述的交换机,其特征在于,所述流表请求消息中还携带所述虚拟机的指示标识,所述虚拟机的指示标识用于表征所述虚拟机的优先级信息。
13.一种交换机,其特征在于,所述交换机包括接收器、发送器、存储器及处理器,所述处理器调用所述存储器中的数据转发程序,用于执行如权利要求1~6任一项所述方法中的步骤。
14.一种数据转发系统,其特征在于,所述系统包括交换机、第一子网和第二子网,所述交换机分别连接所述第一子网和第二子网,所述第一子网为用于部署虚拟机的业务子网,所述第一子网中配置有虚拟网关,所述第二子网中包含多个网关实体,所述第二子网与所述第一子网为不同的子网,其中,
所述虚拟机,用于向所述交换机发送第一数据报文,所述第一数据报文携带待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
所述交换机,用于接收所述虚拟机发送的第一数据报文;根据所述第一数据报文,确定所述第二子网中与所述第一数据报文匹配的目标网关实体;根据所述第一数据报文,所述目标网关实体的Mac地址和所述第二子网的网络标识,封装得到第二数据报文;将所述第二数据报文转发给所述目标网关实体;
所述目标网关实体,用于接收所述交换机转发的所述第二数据报文。
15.根据权利要求14所述的系统,其特征在于,
所述交换机,具体用于根据所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
16.根据权利要求14所述的系统,其特征在于,
所述交换机,具体用于根据所述待访问目标的IP地址,所述第一子网的虚拟网关的Mac地址和所述虚拟机的指示标识,确定所述第二子网中与所述第一数据报文匹配的目标网关实体。
17.根据权利要求14所述的系统,其特征在于,所述系统还包括控制器,
所述交换机,具体用于向所述控制器发送流表请求消息,所述流表请求消息中携带所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址;
所述控制器,用于接收所述交换机发送的流表请求信息;根据所述流表请求信息携带的待访问目标的IP地址,确定与所述待访问目标的IP地址对应的业务类型;根据所述待访问目标的IP地址对应的业务类型从所述第二子网内的多个网关实体中选择出目标网关实体;根据所述目标网关实体的指示信息和所述流表请求消息生成对应的流表项,并将所述流表项下发给所述交换机;
所述交换机,还具体用于接收所述控制器发送的流表项,所述流表项包含所述目标网关实体的指示信息。
18.根据权利要求17所述的系统,其特征在于,所述流表请求消息中还携带所述第一子网的指示信息,
所述控制器,具体用于根据所述目标网关实体的指示信息和所述流表请求消息携带的所述第一子网的指示信息,所述待访问目标的IP地址和所述第一子网的虚拟网关的Mac地址生成对应的流表项。
19.根据权利要求17或18所述的系统,其特征在于,所述流表请求消息中还携带所述虚拟机的指示标识,所述虚拟机的指示标识用于表征所述虚拟机的优先级信息,
所述控制器,具体用于根据所述待访问目标的IP地址对应的业务类型、以及与所述虚拟机的指示标识对应的路由策略从所述第二子网内的多个网关实体中选择出目标网关实体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611040544.6A CN106789667B (zh) | 2016-11-21 | 2016-11-21 | 一种数据转发方法、相关设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611040544.6A CN106789667B (zh) | 2016-11-21 | 2016-11-21 | 一种数据转发方法、相关设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106789667A CN106789667A (zh) | 2017-05-31 |
CN106789667B true CN106789667B (zh) | 2021-01-01 |
Family
ID=58974425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611040544.6A Active CN106789667B (zh) | 2016-11-21 | 2016-11-21 | 一种数据转发方法、相关设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106789667B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109327416B (zh) * | 2017-07-31 | 2021-07-23 | 北京亿阳信通科技有限公司 | 一种sdn网络中私有云的访问控制方法和装置 |
CN111953805B (zh) * | 2017-09-30 | 2022-08-26 | 华为云计算技术有限公司 | 传输数据的方法和装置 |
CN107770012A (zh) * | 2017-10-23 | 2018-03-06 | 中国联合网络通信集团有限公司 | 一种宽带接入方法、装置及虚拟宽带远程接入服务器系统 |
CN109802985B (zh) * | 2017-11-17 | 2021-01-29 | 北京金山云网络技术有限公司 | 数据传输方法、装置、设备及可读取存储介质 |
CN108259477B (zh) * | 2017-12-30 | 2020-12-08 | 未鲲(上海)科技服务有限公司 | 基于sdn的网络访问控制方法、装置和计算机设备 |
TW201933837A (zh) * | 2018-01-19 | 2019-08-16 | 思銳科技股份有限公司 | 虛擬網路隧道內流量資料擷取方法與系統 |
CN108429680B (zh) * | 2018-03-07 | 2020-09-15 | 北京青云科技股份有限公司 | 一种基于虚拟私有云的路由配置方法、系统、介质及设备 |
CN110300060B (zh) * | 2018-03-23 | 2022-06-07 | 北京京东尚科信息技术有限公司 | 用于软件定义网络的通信方法和装置 |
CN108989176A (zh) * | 2018-08-13 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种虚拟机互访方法、装置和系统 |
CN110875896A (zh) * | 2018-08-29 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 报文处理方法、装置及电子设备 |
CN109005120B (zh) * | 2018-10-31 | 2020-11-06 | 新华三技术有限公司 | 一种报文处理方法及网络设备 |
CN111262771B (zh) * | 2018-11-30 | 2021-06-22 | 北京金山云网络技术有限公司 | 虚拟私有云通信系统、系统配置方法及控制器 |
CN111327647B (zh) * | 2018-12-13 | 2023-02-03 | 北京金山云网络技术有限公司 | 一种容器对外提供服务的方法、装置及电子设备 |
CN115291964B (zh) * | 2018-12-21 | 2023-05-09 | 华为云计算技术有限公司 | 减少无服务器函数启动延迟的机制 |
US11095558B2 (en) * | 2018-12-28 | 2021-08-17 | Alibaba Group Holding Limited | ASIC for routing a packet |
US10855584B2 (en) * | 2018-12-28 | 2020-12-01 | Alibaba Group Holding Limited | Client-equipment-peering virtual route controller |
CN109639557B (zh) * | 2019-02-11 | 2021-11-26 | 北京百度网讯科技有限公司 | 用于网络通信的方法、装置和系统 |
CN109981437B (zh) * | 2019-03-08 | 2022-02-18 | 平安科技(深圳)有限公司 | 一种基于vpc的多数据中心互通方法及相关设备 |
CN110086676B (zh) * | 2019-05-08 | 2022-11-22 | 深信服科技股份有限公司 | 一种分布式路由器的配置方法及相关设备 |
CN110191042B (zh) * | 2019-05-21 | 2021-08-24 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN112242952B (zh) * | 2019-07-16 | 2022-08-12 | 中移(苏州)软件技术有限公司 | 一种数据转发方法、柜顶式交换机和存储介质 |
CN110493337A (zh) * | 2019-08-16 | 2019-11-22 | 武汉麦品科技有限公司 | 数据访问方法、网关设备、系统、存储介质及装置 |
CN110545336B (zh) * | 2019-09-06 | 2023-06-23 | 深圳平安通信科技有限公司 | Ip地址替换方法、装置、计算机设备和存储介质 |
CN113347281A (zh) * | 2020-03-02 | 2021-09-03 | 广州虎牙科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN113709016B (zh) * | 2020-05-20 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 通信系统以及通信方法、装置、设备和存储介质 |
CN111740909A (zh) * | 2020-06-19 | 2020-10-02 | 联想(北京)有限公司 | 一种报文处理方法、装置、网络传输设备及报文处理系统 |
CN111740910A (zh) * | 2020-06-19 | 2020-10-02 | 联想(北京)有限公司 | 一种报文处理方法、装置、网络传输设备及报文处理系统 |
CN112019653B (zh) * | 2020-09-09 | 2022-08-12 | 迈普通信技术股份有限公司 | 接入交换机、ip地址部署方法、装置及可读存储介质 |
CN112565008B (zh) * | 2020-11-26 | 2022-11-22 | 深信服科技股份有限公司 | 一种网路监控方法、装置及相关设备 |
CN112787903B (zh) * | 2020-12-24 | 2022-03-11 | 郑州信大捷安信息技术股份有限公司 | 一种多协议vpn网关融合系统及方法 |
CN112910776B (zh) * | 2021-01-18 | 2022-10-18 | 北京火山引擎科技有限公司 | 一种数据转发方法、装置、设备及介质 |
CN113839933B (zh) * | 2021-09-13 | 2023-09-26 | 紫光云(南京)数字技术有限公司 | 一种利用安全组解决多网卡流量的方法 |
CN115022126B (zh) * | 2022-05-23 | 2023-09-01 | 苏州思萃工业互联网技术研究所有限公司 | 分布式边缘网关的实现方法和系统 |
CN115225634B (zh) * | 2022-06-17 | 2023-10-20 | 北京百度网讯科技有限公司 | 虚拟网络下的数据转发方法、装置及计算机程序产品 |
CN116055398A (zh) * | 2022-12-29 | 2023-05-02 | 天翼云科技有限公司 | 一种vxlan集群系统的转发方法和系统节点 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104115453A (zh) * | 2013-12-31 | 2014-10-22 | 华为技术有限公司 | 一种实现虚拟机通信的方法和装置 |
CN104660479A (zh) * | 2015-02-13 | 2015-05-27 | 南京华讯方舟通信设备有限公司 | 一种组网方法以及网络系统 |
CN104717081A (zh) * | 2013-12-13 | 2015-06-17 | 杭州华为数字技术有限公司 | 一种网关功能的实现方法及装置 |
CN104869058A (zh) * | 2015-06-04 | 2015-08-26 | 北京京东尚科信息技术有限公司 | 一种数据报文转发方法和装置 |
CN105099779A (zh) * | 2015-07-29 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 多租户云平台架构 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8856518B2 (en) * | 2011-09-07 | 2014-10-07 | Microsoft Corporation | Secure and efficient offloading of network policies to network interface cards |
-
2016
- 2016-11-21 CN CN201611040544.6A patent/CN106789667B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104717081A (zh) * | 2013-12-13 | 2015-06-17 | 杭州华为数字技术有限公司 | 一种网关功能的实现方法及装置 |
CN104115453A (zh) * | 2013-12-31 | 2014-10-22 | 华为技术有限公司 | 一种实现虚拟机通信的方法和装置 |
CN104660479A (zh) * | 2015-02-13 | 2015-05-27 | 南京华讯方舟通信设备有限公司 | 一种组网方法以及网络系统 |
CN104869058A (zh) * | 2015-06-04 | 2015-08-26 | 北京京东尚科信息技术有限公司 | 一种数据报文转发方法和装置 |
CN105099779A (zh) * | 2015-07-29 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 多租户云平台架构 |
Also Published As
Publication number | Publication date |
---|---|
CN106789667A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106789667B (zh) | 一种数据转发方法、相关设备及系统 | |
CN111885075B (zh) | 容器通信方法、装置、网络设备及存储介质 | |
US11563602B2 (en) | Method and apparatus for providing a point-to-point connection over a network | |
US10063470B2 (en) | Data center network system based on software-defined network and packet forwarding method, address resolution method, routing controller thereof | |
US9215175B2 (en) | Computer system including controller and plurality of switches and communication method in computer system | |
US8358661B2 (en) | Remote adapter configuration | |
US8369296B2 (en) | Distributed link aggregation | |
CN103200069B (zh) | 一种报文处理的方法和设备 | |
JP6434821B2 (ja) | 通信装置及び通信方法 | |
CN113411243B (zh) | 数据传输方法及装置 | |
US8891536B2 (en) | Layer-3 services for united router farm | |
CN104170331A (zh) | 用于vxlan的l3网关 | |
EP4027593A1 (en) | Tunnel configuration method, apparatus and system, and device and storage medium | |
CN110213148B (zh) | 一种数据传输的方法、系统及装置 | |
US20150263862A1 (en) | Communication system, control apparatus, communication control method, transfer control method, and transfer control program | |
EP3605959B1 (en) | Method, device and computer storage medium for implementing double control plane | |
TWI759571B (zh) | 基於流表的資料傳送方法 | |
US20230300070A1 (en) | Packet Sending Method, Device, and System | |
WO2022110535A1 (zh) | 一种报文发送方法、设备及系统 | |
WO2020212998A1 (en) | Network address allocation in a virtual layer 2 domain spanning across multiple container clusters | |
EP3913870A1 (en) | Packet forwarding method and network device | |
CN113872845A (zh) | 建立vxlan隧道的方法及相关设备 | |
US10523629B2 (en) | Control apparatus, communication system, communication method, and program | |
EP2981029B1 (en) | Switch device and switch device control method | |
CN108259205B (zh) | 一种路由发布方法及网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |