CN112242952A - 一种数据转发方法、柜顶式交换机和存储介质 - Google Patents
一种数据转发方法、柜顶式交换机和存储介质 Download PDFInfo
- Publication number
- CN112242952A CN112242952A CN201910641584.3A CN201910641584A CN112242952A CN 112242952 A CN112242952 A CN 112242952A CN 201910641584 A CN201910641584 A CN 201910641584A CN 112242952 A CN112242952 A CN 112242952A
- Authority
- CN
- China
- Prior art keywords
- flow table
- entry
- network
- matching
- virtual
- 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
Links
Images
Classifications
-
- 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
-
- 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
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据转发方法、柜顶式交换机和存储介质,获取云计算平台发送的网络地址转换网关的请求消息;基于请求消息,下发目标流表;其中,目标流表包括用于识别网络的第一流表、用于目的地址转换DNAT的第二流表、用于生成两层转发流表的第三流表、用于生成三层路由流表的第四流表、用于源地址转换SNAT的第五流表和用于指示数据包出口的第六流表;获取来自于云计算平台的数据包,并基于目标流表,对数据包进行转发;如此,提高了网络转发效率,避免了单点故障。
Description
技术领域
本发明涉及但不限于计算机技术领域,尤其涉及一种数据转发方法、柜顶式交换机和存储介质。
背景技术
网络地址转换(Network Address Translation,NAT)指的是把内网私有地址翻译成合法共有互联网协议地址(Internet Protocol Address,IP),使得内网主机可以访问互联网Internet的一种技术,该技术可以有效减缓网际协议版本4(Internet Protocolversion4,IPv4)地址空间的枯竭。NAT技术当前已被广泛应用于家庭网关、企业广域网出口甚至运营商网络出口中。
Open Stack云计算平台,下文简称云平台,将NAT技术内置于虚拟路由器中,租户通过创建虚拟路由器,绑定外部网关,访问外网流量经过虚拟路由器NAT到外部网关,实现租户虚拟机访问外网的需求。云平台传统网络模型是集中式网络,整个云平台虚拟机流量都会经过网络节点,通过网络节点的虚拟路由器实现外网访问和路由转发。随着虚拟机数量的增多,网络节点侧压力线性增加,将导致虚拟路由器的性能和稳定性会显著下降。因此,云平台提出分布式虚拟路由网络(Distributed Virtual Routing,DVR)模型,将虚拟路由器分布到各个计算节点,虚拟机的南北向流量和路由转发尽量不再经过网络节点。
然而,上述分布式虚拟路由网络的方案中,是将虚拟路由器分布到计算节点,如此必然消耗计算节点物理机的中央处理器(Central Processing Unit,CPU)的内存等资源,而且虚拟路由器本身的性能也会受制于物理机资源和虚拟路由器数量等因素影响;由此导致网络转发效率低。
发明内容
有鉴于此,本发明实施例提供一种数据转发方法、柜顶式交换机和存储介质,解决了网络转发效率低的问题,实现了降低资源消耗,降低网络节点的负载压力,提高网络转发效率,提高网络的稳定性。
为达到上述目的,本发明的技术方案是这样实现的:
一种数据转发方法,所述方法应用于柜顶式交换机,所述方法包括:
获取云计算平台发送的网络地址转换网关的请求消息;
基于所述请求消息,下发目标流表;其中,所述目标流表包括用于识别网络的第一流表、用于目的地址转换DNAT的第二流表、用于生成两层转发流表的第三流表、用于生成三层路由流表的第四流表、用于源地址转换SNAT的第五流表和用于指示数据包出口的第六流表;
获取来自于所述云计算平台的数据包,并基于所述目标流表,对所述数据包进行转发。
可选的,所述第一流表包括第一表项、第二表项和第三表项,
所述第一表项:匹配:虚拟网络标识,动作:设置元数据metadata中的主机标识host_id为计算节点标识和虚拟网络标识vlan_id的拼接,跳转:第三流表;
所述第二表项:匹配:隧道标识,动作:删除隧道tunnel头部,基于隧道标识tun_id与vlan_id之间的映射关系,添加本地虚拟网络vlan头部,设置metadata中的路由器标识为虚拟路由器标识router_id、网络标识network_id、host_id和vlan_id的拼接,跳转:第二流表;
所述第三表项:匹配:任意报文,跳转:第三流表。
可选的,所述第二流表包括第四表项和第五表项,
所述第四表项:匹配:目的互联网协议地址和目的端口地址,动作:修改所述目的互联网协议地址为目标内外互联网协议地址,跳转:第三流表;
所述第五表项:匹配:任意报文,动作:上传所述数据包至本地控制器。
可选的,所述第三流表包括第六表项、第七表项和第八表项,
所述第六表项:匹配:MAC_DA为交换机直连物理节点的虚拟机MAC地址,动作:根据查找的映射关系,设置metadata中的虚拟机标识字段,根据连接虚拟机所在节点的交换机端口号,设置metadata中的输出端口字段,跳转:第四流表;
所述第七表项:匹配:MAC_DA为交换机跨机架连接的物理节点的虚拟机MAC地址,动作:基于tun_id与vlan_id之间的映射关系,发送所述数据包至对端交换机连接的本地隧道端口;
所述第八表项:匹配:任意报文,跳转:第四流表。
可选的,所述第四流表包括第九表项、第十表项和第十一表项,
所述第九表项:匹配:IP DA为本交换机直连物理节点上的虚拟机,动作:配置metadata中路由标识字段为虚拟机所连的虚拟路由器的router_id,动作:设置MAC DA为目的虚拟机的MAC地址:根据连接虚拟机所在节点的交换机端口号,设置metadata中的输出端口字段,跳转:第五流表;
所述第十表项:匹配:IP DA为跨机架连接的物理节点上的虚拟机,动作:设置metadata中的路由标识字段为虚拟机所连的虚拟路由器的router_id:配置MAC_DA为目的虚拟机的MAC地址删除vlan标签,基于tun_id与vlan_id之间的映射关系,发送所述数据包至跨机架目的虚拟机所在节点的隧道端口;
所述第十一表项:匹配:任意报文,跳转:第五流表。
可选的,所述第五流表包括第十二表项和第十三表项,
所述第十二表项:匹配:目的互联网协议源地址,动作:修改源地址为规则中指定的外网互联网协议地址,发送所述数据包至本地控制器;
所述第十三表项:匹配:任意报文,跳转:第六流表。
可选的,所述第六流表包括第十四表项和第十五表项,
所述第十四表项:匹配:通过掩码匹配出metadata中的输出端口字段不为零,动作:发送所述数据包至输出端口字段所标识的端口;
所述第十五表项:匹配:任意报文,动作:丢弃所述数据包。
一种柜顶式交换机,所述柜顶式交换机包括:处理器、存储器和通信总线;
所述通信总线用于实现处理器和存储器之间的通信连接;
所述处理器用于执行存储器中存储的数据转发程序,以实现以下步骤:
获取云计算平台发送的网络地址转换网关的请求消息;
基于所述请求消息,下发目标流表;其中,所述目标流表包括用于识别网络的第一流表、用于目的地址转换DNAT的第二流表、用于生成两层转发流表的第三流表、用于生成三层路由流表的第四流表、用于源地址转换SNAT的第五流表和用于指示数据包出口的第六流表;
获取来自于所述云计算平台的数据包,并基于所述目标流表,对所述数据包进行转发。
一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述的数据转发方法的步骤。
本发明实施例所提供的数据转发方法、柜顶式交换机和存储介质,获取云计算平台发送的网络地址转换网关的请求消息;基于请求消息,下发目标流表;其中,目标流表包括用于识别网络的第一流表、用于目的地址转换DNAT的第二流表、用于生成两层转发流表的第三流表、用于生成三层路由流表的第四流表、用于源地址转换SNAT的第五流表和用于指示数据包出口的第六流表;获取来自于云计算平台的数据包,并基于目标流表,对数据包进行转发;解决了网络转发效率低的问题,提高了网络转发效率,避免了单点故障。
附图说明
图1为本发明实施提供的一种数据转发方法的流程示意图;
图2为本发明实施提供的一种基于OpenFlow的云计算分布式网络系统的结构示意图;
图3为本发明实施提供的一种柜顶式交换机的结构示意图。
具体实施方式
下面结合附图及实施例对本发明再作进一步详细的描述。
本发明的实施例提供一种数据转发方法,该方法应用于柜顶式TOR交换机,参见如图1所示,该方法包括如下步骤:
步骤101、获取云计算平台发送的网络地址转换网关的请求消息。
本发明实施例中,当操作者通过云平台执行NAT网关和NAT规则的创建、更新、删除等的操作后,控制节点Neutron服务器中NAT网关插件Plugin便可以接收和解析传入的参数,并将数据保存到数据库中,同时Neutron调用交换机驱动程序,将上述操作转化为远程过程调用(Remote Procedure Call,RPC),通知TOR交换机和计算节点或网络节点的虚拟交换机;如此,TOR交换机接收到云平台发送的关于NAT网关和规则的操作请求即请求消息。
步骤102、基于请求消息,下发目标流表。
其中,目标FlowTable流表包括用于识别网络的第一流表、用于目的地址转换DNAT的第二流表、用于生成两层转发流表的第三流表、用于生成三层路由流表的第四流表、用于源地址转换SNAT的第五流表和用于指示数据包出口的第六流表。
本发明实施例中,TOR交换机接收到请求消息后,下发用于指示数据包转发的目标流表;目标流表用于指示数据包的转发。
步骤103、获取来自于云计算平台的数据包,并基于目标流表,对数据包进行转发。
本发明实施例中,TOR交换机获取到来自于云计算平台的数据包之后,基于目标流表包括的六张流表,对数据包进行转发;从而确保通过OpenFlow流表实现NAT和路由功能成为可能;而且,通过自定义metadata表项,也可以节约大量硬件表项资源。
本发明的实施例所提供的数据转发方法,获取云计算平台发送的网络地址转换网关的请求消息;基于请求消息,下发目标流表;其中,目标流表包括用于识别网络的第一流表、用于目的地址转换DNAT的第二流表、用于生成两层转发流表的第三流表、用于生成三层路由流表的第四流表、用于源地址转换SNAT的第五流表和用于指示数据包出口的第六流表;获取来自于云计算平台的数据包,并基于目标流表,对数据包进行转发;解决了网络转发效率低的问题,提高了网络转发效率,避免了单点故障。
基于前述实施例,对本发明的实施例所提供的数据转发方法作出进一步的说明,该应用于包括柜顶式交换机的基于开流OpenFlow的云计算分布式网络系统中,参照图2所示:
需要说明的是,相关技术中的云计算数据中心网络为集中式网络架构,跨路由的东西向流量和南北向流量都需要流经网络节点进行路由转发和访问外网,这样会给网络节点负载造成很大压力,而且容易产生单点故障。后续虽然可以将网络节点路由功能分担到各计算节点,但是由于是纯软件方案,网络性能受制于物理主机,而且会占用有限的计算节点资源。
为此,本发明实施例提供了基于开流OpenFlow的云计算分布式网络系统,该系统将网络三层路由和NAT功能移植到OpenFlow交换机中,通过OpenFlow流表实现三层转发和NAT网关功能,同时通过云控制器可以和多个OpenFlow交换机的控制器通信,从而形成分布式路由和NAT网关,避免单点故障,极大增强数据中心网络稳定性。
本发明实施例中,示例性的,基于开流OpenFlow的云计算分布式网络系统中包括两个机架,如第一机架和第二机架;每个机架配置一台TOR交换机如第一TOR交换机和第二TOR交换机,各物理服务器数据网络接入TOR交换机。云平台网络服务的控制节点通过管理网络与OpenFlow交换机和各网络节点及计算节点连接,计算节点和网络节点通过数据网络与柜顶式交换机连接,TOR交换机之间通过传统2层交换机连接,从而组成数据网络。图2中虚线即为管理网络又可以称为控制网络,实黑线即为数据网络或者业务网络。本方案中路由和NAT网关功能在TOR交换机实现,网络节点只需提供动态主机设置协议(Dynamic HostConfiguration Protocol,DHCP),虚拟专用网络(Virtual Private Network,VPN),负载均衡器(Load Balance,LB)等服务,将大大减轻网络节点的负载压力。
本发明实施例中,物理节点中虚拟机交换机和TOR交换机需要满足如下基本需求:
1、计算节点和网络节点物理机中开放的虚拟交换机(OpenVSwitch,ovs)少支持OpenFlow 1.0版本,TOR交换机需要支持OpenFlow1.5版本,为了通过OpenFlow流表实现NAT网关功能,TOR交换机OpenFlow协议的匹配域和过滤字段需支持源和目的IP地址,源和目的传输控制协议(Transmission Control Protocol,tcp)或者用户数据报协议(UserDatagram Protocol,UDP)端口号以及协议类型号。
2、每个TOR交换机需要配置一个控制器,其北向接口与云平台Neutron服务相连,南向接口通过OpenFlow协议控制TOR交换机。
本发明实施例中,由于Neutron架构本身并没有实现NAT网关的Plugin,因此云平台中Neutron服务需要实现NAT网关Plugin,支持NAT网关以及NAT规则的创建、更新、删除等操作,同时下发相关操作到TOR交换机的控制器。
本发明实施例所提供的数据转发方法,可以通过以下步骤实现,
步骤1、当操作者通过云平台执行NAT网关和NAT规则的创建、更新、删除等的操作后,控制节点Neutron服务器中NAT网关插件Plugin会接收和解析传入的参数,并将数据保存到数据库中,同时Neutron会调用交换机驱动程序,将上述操作转化为远程过程调用RPC,通知TOR交换机和计算节点或网络节点的虚拟交换机;如此,TOR交换机接收到云平台发送的关于NAT网关和规则的操作请求即请求消息。
步骤2、当TOR交换机收到云平台发送的请求消息时,TOR交换机会根据请求中的配置数据,执行6张OpenFlow流表的创建和修改,然后将流表下发到TOR交换机的数据通道:
TOR交换机流表之间通过metadata元数据传递流表数据,metadata有64位可以让操作者自己定义,为了满足云平台对NAT网关的需求,TOR交换机中64位metadata定义分配如下:
(1)1-12位:虚拟机所属网络vlan_id(共12位),计算节点主机本地有效,在计算节点虚拟交换机中,会为每个网络虚拟机分配一个本地vlan_id,单节点内可以分配4094个本地有效vlan_id。
(2)13-24位:虚拟机所属物理主机host_id(共12位),全局唯一,为每个计算节点分配12位host_id,在一个数据中心中支持最多4095个物理计算节点。
(3)25-38位:虚拟机所属网络network_id(共14位),全局唯一,数据中心可以创建16383个网络。
(4)39-52位:虚拟机所属虚拟路由器的router_id(共14位),全局唯一,数据中心支持创建16383个虚拟路由器。
(5)53-62位:OUT_PORT字段(共10位),即OpenFlow交换机出端口号,共支持1024个出端口。
(6)63-64位:保留。
流表1:用于识别网络,当数据包为虚拟机流出报文时,虚拟交换机会为每个网络虚拟机报文增加vlan头部,TOR交换机流表匹配报文vlan_id,跳转到流表3。当数据包为交换机外部流入报文时,匹配报文tun_id,控制器根据tun_id查询包对应的网络network_id和虚拟路由器router_id,并设置到metadata,跳转到流表2。
其中,流表1的特征为:
第一表项:priority=2,match_fields:vlan_id,actions:set metadata=host_id<<13|vlan_id,resubmit table=3;
第二表项:priority=1,match_fields:tun_id(例如vxlan隧道vni,或者gre隧道id),actions:剥离tunnel头部,根据学习的tun_id与vlan_id映射关系,添加本地vlan头部(mod_vlan_id),set metadata=router_id<<39|network_id<<25|host_id<<13|vlan_id,resubmit table=2;
第三表项:priority=0,match_fields:任意报文,actions:resubmit table=3。
需要说明的是,根据用户网络个数和虚拟机个数,第一表项与第二表项可能会有很多条。
流表2:用于DNAT,根据metadata中router_id和network_id作为辅助过滤项,并匹配目的ip地址和目的端口号,进行数据包目的地址转换。对于无法匹配的数据包,通过数据包进入PACKET_IN消息上传到TOR本地控制器,将会在步骤3中特殊处理。流表2的特征为:
第四表项:priority=2,match_fields:IP_DA和PORT_DA,actions:替换目的ip地址为指定内网ip地址,resubmit table=3;
第五表项:priority=1,match_fields:任意报文,actions:上传到本地控制器;
需要说明的是,根据虚拟机和DNAT规则数,第四表项可能会有很多条目。
流表3:用于生成两层转发流表,通过TOR控制器向云平台收集该交换机连接物理节点下所有虚拟机,及其所属网络和DHCP服务,然后查询上述网络中所连接虚拟机的mac地址,DHCP服务端口mac地址,以及虚拟机vm_id和host_id信息,TOR交换机之间的tunnel信息等,生成如下表项。其流表3的特征为:
第六表项:priority=2,match_fields:MAC_DA,如果MAC_DA是该交换机直连物理节点的虚拟机MAC地址,则直接转发,actions:set metadata中vm_id和OUT_PORT字段,resubmit流表4;
第七表项:priority=1,match_fields:MAC_DA,如果MAC_DA是跨交换机所在物理节点的虚拟机MAC地址,则查询tun_id与vlan_id的映射关系,发送给对端交换机相连的本地隧道端口;
第八表项:priority=0,match_fields:任意报文,actions:resubmit流表4;
需要说明的是,根据网络数目和虚拟机数目,上述第六表项和第七表项可能会有很多条目。
流表4:用于生成三层路由流表,通过TOR控制器向云平台收集用户创建的所有虚拟路由器信息,查询各个路由器下面连接的子网信息和虚拟机mac地址,以及这些虚拟机在本TOR交换机所连接的物理机中的分布信息,将通过虚拟路由器连接且不在同一个子网的所有虚拟机两两配对成组,然后根据查找的上述信息,生成路由流表。流表4的特征为:
第九表项:priority=2,match_fields:IP_DA,如果IP_DA所属虚拟机为本TOR交换机直连物理机中的虚拟机,actions:set MAC_DA为目的虚拟机的mac地址,set metadata的router_id和OUT_PORT字段,resubmit:流表6;
第十表项:priority=1,match_fields:IP_DA,如果IP_DA所属虚拟机为非本TOR交换机直连物理机中的虚拟机,actions:set MAC_DA为目的虚拟机的mac地址,setmetadata的router_id字段,剥离vlan标签,查询vlan_id与tun_id映射关系,发送给对端交换机相连的本地隧道端口;
第十一表项:priority=0,match_fields:任意报文,actions:resubmit流表5;
需要说明的是,根据网络和路由以及虚拟机数目,上述第九表项和第十表项可能会有很多条目。
流表5:用于SNAT,当云平台创建SNAT规则时,会将SNAT规则包含的内部子网和外网ip等参数下发到TOR控制器,TOR控制器会向云平台查询子网所属network和router信息,然后下发SNAT流表。对于绑定浮动ip的虚拟机,虚拟机访问外网流量会只经过浮动floating ip,而不会经过SNAT。流表根据metadata中router_id和network_id作为辅助过滤项,匹配源ip地址,进程数据包源地址转换。对于匹配的数据包,会通过PACKET_IN消息上传到TOR控制器,将会在步骤3中处理。流表5的特征为:
第十二表项:priority=2,match_fields:IP_SA,actions:替换源ip地址为SNAT规则中指定的外网ip地址,上传到本地控制器;
第十三表项:priority=0,match_fields:任意报文,actions:resubmit流表6;
注:根据SNAT规则数和虚拟机数,上述第十二表项和第十三表项表项可能会有很多条目。
流表6:数据包出口流表
第十四表项:优先级32768,匹配:通过掩码匹配出METADATA的OUT_PORT字段不为0,动作:转发到OUT_PORT字段所表示的端口;
第十五表项:优先级0,匹配:任意报文,动作:丢弃;
注:第十四表项可能会有很多条目。
步骤3、当TOR控制器接收到交换机流表5通过PACKET_IN消息上传的数据包时,会解析数据包中源ip地址或目的ip地址和源端口号或目的端口号,保存到控制器缓存中,然后会更新流表2中相应DNAT规则,用于数据包回程DNAT转换。当虚拟机数量较多时,大量的PACKET_IN消息可能会冲击控制器,导致控制器性能下降,为了节约控制器查询时间,可以在控制器中建立缓存,缓存数据表内容包括:vm_id,host_id,vlan_id,network_id,router_id,ip_sa,ip_sa_port,ip_da,ip_da_port,protocol等项。PACKET_IN消息进入控制器后,首先会查询更新缓存,从而会大大提升控制器处理NAT规则性能。
本发明实施例所提供的数据转发方法,能够实现以下有益效果:
1、在硬件交换机上通过设计6级OpenFlow流表实现NAT网关功能,包括SNAT和DNAT规则,此外还实现了2层网络转发,3层路由功能,提高数据包转发效率。
2、自定义OpenFlow metadata表项,使得TOR交换机流表可以区分虚拟机所属物理服务器、所属网络和路由,从而让通过OpenFlow流表实现NAT和路由功能成为可能。通过自定义metadata表项,也可以节约大量硬件表项资源。
3、在TOR控制器中建立缓存机制,提高NAT规则流表的匹配查询和更新性能。减轻大量PACKET_IN消息冲击TOR控制器。
4、集成OpenFlow控制器在TOR交换机上,使得控制器分布式,进而实现NAT网关分布式,避免集中式网络单点故障,提升数据中心网络稳定性和速度。
5、通过定义OpenFlow metadata表项,通过HOST_ID+VLAN_ID和TUNNEL_ID三者组合标识虚拟机网络,突破VLAN网络数目只有4094个限制。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
基于前述实施例,本发明的实施例提供一种终端,该柜顶式交换机可以应用于图1对应的实施例提供的一种数据转发方法中,参照图3所示,该柜顶式交换机2包括:处理器21、存储器22和通信总线23,其中:
通信总线23用于实现处理器21和存储器22之间的通信连接。
处理器21用于执行存储器22中存储的信息处理程序,以实现以下步骤:
获取云计算平台发送的网络地址转换网关的请求消息;
基于请求消息,下发目标流表;其中,目标流表包括用于识别网络的第一流表、用于目的地址转换DNAT的第二流表、用于生成两层转发流表的第三流表、用于生成三层路由流表的第四流表、用于源地址转换SNAT的第五流表和用于指示数据包出口的第六流表;
获取来自于云计算平台的数据包,并基于目标流表,对数据包进行转发。
在本发明的其他实施例中,第一流表包括第一表项、第二表项和第三表项,
第一表项:匹配:虚拟网络标识,动作:设置元数据metadata中的主机标识host_id为计算节点标识和虚拟网络标识vlan_id的拼接,跳转:第三流表;
第二表项:匹配:隧道标识,动作:删除隧道tunnel头部,基于隧道标识tun_id与vlan_id之间的映射关系,添加本地虚拟网络vlan头部,设置metadata中的路由器标识为虚拟路由器标识router_id、网络标识network_id、host_id和vlan_id的拼接,跳转:第二流表;
第三表项:匹配:任意报文,跳转:第三流表。
在本发明的其他实施例中,第二流表包括第四表项和第五表项,
第四表项:匹配:目的互联网协议地址和目的端口地址,动作:修改目的互联网协议地址为目标内外互联网协议地址,跳转:第三流表;
第五表项:匹配:任意报文,动作:上传数据包至本地控制器。
在本发明的其他实施例中,第三流表包括第六表项、第七表项和第八表项,
第六表项:匹配:MAC_DA为交换机直连物理节点的虚拟机MAC地址,动作:根据查找的映射关系,设置metadata中的虚拟机标识字段,根据连接虚拟机所在节点的交换机端口号,设置metadata中的输出端口字段,跳转:第四流表;
第七表项:匹配:MAC_DA为交换机跨机架连接的物理节点的虚拟机MAC地址,动作:基于tun_id与vlan_id之间的映射关系,发送数据包至对端交换机连接的本地隧道端口;
第八表项:匹配:任意报文,跳转:第四流表。
在本发明的其他实施例中,第四流表包括第九表项、第十表项和第十一表项,
第九表项:匹配:IP DA为本交换机直连物理节点上的虚拟机,动作:配置metadata中路由标识字段为虚拟机所连的虚拟路由器的router_id,动作:设置MAC DA为目的虚拟机的MAC地址:根据连接虚拟机所在节点的交换机端口号,设置metadata中的输出端口字段,跳转:第五流表;
第十表项:匹配:IP DA为跨机架连接的物理节点上的虚拟机,动作:设置metadata中的路由标识字段为虚拟机所连的虚拟路由器的router_id:配置MAC_DA为目的虚拟机的MAC地址删除vlan标签,基于tun_id与vlan_id之间的映射关系,发送数据包至跨机架目的虚拟机所在节点的隧道端口;
第十一表项:匹配:任意报文,跳转:第五流表。
在本发明的其他实施例中,第五流表包括第十二表项和第十三表项,
第十二表项:匹配:目的互联网协议源地址,动作:修改源地址为规则中指定的外网互联网协议地址,发送数据包至本地控制器;
第十三表项:匹配:任意报文,跳转:第六流表。
在本发明的其他实施例中,第六流表包括第十四表项和第十五表项,
第十四表项:匹配:通过掩码匹配出metadata中的输出端口字段不为零,动作:发送数据包至输出端口字段所标识的端口;
第十五表项:匹配:任意报文,动作:丢弃数据包。
需要说明的是,本实施例中处理器所执行的步骤的具体实现过程,可以参照图1对应的实施例提供的数据转发方法中的实现过程,此处不再赘述。
基于前述实施例,本发明的实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如下步骤:
获取云计算平台发送的网络地址转换网关的请求消息。
基于请求消息,下发目标流表。
其中,目标流表包括用于识别网络的第一流表、用于目的地址转换DNAT的第二流表、用于生成两层转发流表的第三流表、用于生成三层路由流表的第四流表、用于源地址转换SNAT的第五流表和用于指示数据包出口的第六流表。
获取来自于云计算平台的数据包,并基于目标流表,对数据包进行转发。
在本发明的其他实施例中,第一流表包括第一表项、第二表项和第三表项,
第一表项:匹配:虚拟网络标识,动作:设置元数据metadata中的主机标识host_id为计算节点标识和虚拟网络标识vlan_id的拼接,跳转:第三流表;
第二表项:匹配:隧道标识,动作:删除隧道tunnel头部,基于隧道标识tun_id与vlan_id之间的映射关系,添加本地虚拟网络vlan头部,设置metadata中的路由器标识为虚拟路由器标识router_id、网络标识network_id、host_id和vlan_id的拼接,跳转:第二流表;
第三表项:匹配:任意报文,跳转:第三流表。
在本发明的其他实施例中,第二流表包括第四表项和第五表项,
第四表项:匹配:目的互联网协议地址和目的端口地址,动作:修改目的互联网协议地址为目标内外互联网协议地址,跳转:第三流表;
第五表项:匹配:任意报文,动作:上传数据包至本地控制器。
在本发明的其他实施例中,第三流表包括第六表项、第七表项和第八表项,
第六表项:匹配:MAC_DA为交换机直连物理节点的虚拟机MAC地址,动作:根据查找的映射关系,设置metadata中的虚拟机标识字段,根据连接虚拟机所在节点的交换机端口号,设置metadata中的输出端口字段,跳转:第四流表;
第七表项:匹配:MAC_DA为交换机跨机架连接的物理节点的虚拟机MAC地址,动作:基于tun_id与vlan_id之间的映射关系,发送数据包至对端交换机连接的本地隧道端口;
第八表项:匹配:任意报文,跳转:第四流表。
在本发明的其他实施例中,第四流表包括第九表项、第十表项和第十一表项,
第九表项:匹配:IP DA为本交换机直连物理节点上的虚拟机,动作:配置metadata中路由标识字段为虚拟机所连的虚拟路由器的router_id,动作:设置MAC DA为目的虚拟机的MAC地址:根据连接虚拟机所在节点的交换机端口号,设置metadata中的输出端口字段,跳转:第五流表;
第十表项:匹配:IP DA为跨机架连接的物理节点上的虚拟机,动作:设置metadata中的路由标识字段为虚拟机所连的虚拟路由器的router_id:配置MAC_DA为目的虚拟机的MAC地址删除vlan标签,基于tun_id与vlan_id之间的映射关系,发送数据包至跨机架目的虚拟机所在节点的隧道端口;
第十一表项:匹配:任意报文,跳转:第五流表。
在本发明的其他实施例中,第五流表包括第十二表项和第十三表项,
第十二表项:匹配:目的互联网协议源地址,动作:修改源地址为规则中指定的外网互联网协议地址,发送数据包至本地控制器;
第十三表项:匹配:任意报文,跳转:第六流表。
在本发明的其他实施例中,第六流表包括第十四表项和第十五表项,
第十四表项:匹配:通过掩码匹配出metadata中的输出端口字段不为零,动作:发送数据包至输出端口字段所标识的端口;
第十五表项:匹配:任意报文,动作:丢弃数据包。
需要说明的是,本实施例中处理器所执行的步骤的具体实现过程,可以参照图1对应的实施例提供的数据转发方法中的实现过程,此处不再赘述。
需要说明的是,上述计算机可读存储介质可以是只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所描述的方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据转发方法,其特征在于,所述方法应用于柜顶式交换机,所述方法包括:
获取云计算平台发送的网络地址转换网关的请求消息;
基于所述请求消息,下发目标流表;其中,所述目标流表包括用于识别网络的第一流表、用于目的地址转换DNAT的第二流表、用于生成两层转发流表的第三流表、用于生成三层路由流表的第四流表、用于源地址转换SNAT的第五流表和用于指示数据包出口的第六流表;
获取来自于所述云计算平台的数据包,并基于所述目标流表,对所述数据包进行转发。
2.根据权利要求1所述的方法,其特征在于,所述第一流表包括第一表项、第二表项和第三表项,
所述第一表项:匹配:虚拟网络标识,动作:设置元数据metadata中的主机标识host_id为计算节点标识和虚拟网络标识vlan_id的拼接,跳转:第三流表;
所述第二表项:匹配:隧道标识,动作:删除隧道tunnel头部,基于隧道标识tun_id与vlan_id之间的映射关系,添加本地虚拟网络vlan头部,设置metadata中的路由器标识为虚拟路由器标识router_id、网络标识network_id、host_id和vlan_id的拼接,跳转:第二流表;
所述第三表项:匹配:任意报文,跳转:第三流表。
3.根据权利要求1所述的方法,其特征在于,所述第二流表包括第四表项和第五表项,
所述第四表项:匹配:目的互联网协议地址和目的端口地址,动作:修改所述目的互联网协议地址为目标内外互联网协议地址,跳转:第三流表;
所述第五表项:匹配:任意报文,动作:上传所述数据包至本地控制器。
4.根据权利要求1所述的方法,其特征在于,所述第三流表包括第六表项、第七表项和第八表项,
所述第六表项:匹配:媒体访问控制地址MAC_DA为交换机直连物理节点的虚拟机MAC地址,动作:根据查找的映射关系,设置metadata中的虚拟机标识字段,根据连接虚拟机所在节点的交换机端口号,设置metadata中的输出端口字段,跳转:第四流表;
所述第七表项:匹配:MAC_DA为交换机跨机架连接的物理节点的虚拟机MAC地址,动作:基于tun_id与vlan_id之间的映射关系,发送所述数据包至对端交换机连接的本地隧道端口;
所述第八表项:匹配:任意报文,跳转:第四流表。
5.根据权利要求1所述的方法,其特征在于,所述第四流表包括第九表项、第十表项和第十一表项,
所述第九表项:匹配:互联网协议地址IP DA为本交换机直连物理节点上的虚拟机,动作:配置metadata中路由标识字段为虚拟机所连的虚拟路由器的router_id,动作:设置MACDA为目的虚拟机的MAC地址:根据连接虚拟机所在节点的交换机端口号,设置metadata中的输出端口字段,跳转:第五流表;
所述第十表项:匹配:IP DA为跨机架连接的物理节点上的虚拟机,动作:设置metadata中的路由标识字段为虚拟机所连的虚拟路由器的router_id:配置MAC_DA为目的虚拟机的MAC地址删除vlan标签,基于tun_id与vlan_id之间的映射关系,发送所述数据包至跨机架目的虚拟机所在节点的隧道端口;
所述第十一表项:匹配:任意报文,跳转:第五流表。
6.根据权利要求1所述的方法,其特征在于,所述第五流表包括第十二表项和第十三表项,
所述第十二表项:匹配:目的互联网协议源地址,动作:修改源地址为规则中指定的外网互联网协议地址,发送所述数据包至本地控制器;
所述第十三表项:匹配:任意报文,跳转:第六流表。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第六流表包括第十四表项和第十五表项,
所述第十四表项:匹配:通过掩码匹配出metadata中的输出端口字段不为零,动作:发送所述数据包至输出端口字段所标识的端口;
所述第十五表项:匹配:任意报文,动作:丢弃所述数据包。
8.一种柜顶式交换机,其特征在于,所述柜顶式交换机包括:处理器、存储器和通信总线;
通信总线用于实现处理器和存储器之间的通信连接;
处理器用于执行存储器中数据转发程序,以实现以下步骤:
获取云计算平台发送的网络地址转换网关的请求消息;
基于所述请求消息,下发目标流表;其中,所述目标流表包括用于识别网络的第一流表、用于目的地址转换DNAT的第二流表、用于生成两层转发流表的第三流表、用于生成三层路由流表的第四流表、用于源地址转换SNAT的第五流表和用于指示数据包出口的第六流表;
获取来自于所述云计算平台的数据包,并基于所述目标流表,对所述数据包进行转发。
9.根据权利要求8所述的柜顶式交换机,其特征在于,所述第一流表包括第一表项、第二表项和第三表项,
所述第一表项:匹配:虚拟网络标识,动作:设置元数据metadata中的主机标识host_id为计算节点标识和虚拟网络标识vlan_id的拼接,跳转:第三流表;
所述第二表项:匹配:隧道标识,动作:删除隧道tunnel头部,基于隧道标识tun_id与vlan_id之间的映射关系,添加本地虚拟网络vlan头部,设置metadata中的路由器标识为虚拟路由器标识router_id、网络标识network_id、host_id和vlan_id的拼接,跳转:第二流表;
所述第三表项:匹配:任意报文,跳转:第三流表。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机可执行指令,该计算机可执行指令被执行后,能够实现权利要求1至7任一项所述的数据转发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910641584.3A CN112242952B (zh) | 2019-07-16 | 2019-07-16 | 一种数据转发方法、柜顶式交换机和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910641584.3A CN112242952B (zh) | 2019-07-16 | 2019-07-16 | 一种数据转发方法、柜顶式交换机和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112242952A true CN112242952A (zh) | 2021-01-19 |
CN112242952B CN112242952B (zh) | 2022-08-12 |
Family
ID=74167158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910641584.3A Active CN112242952B (zh) | 2019-07-16 | 2019-07-16 | 一种数据转发方法、柜顶式交换机和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112242952B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113645210A (zh) * | 2021-08-02 | 2021-11-12 | 上海云轴信息科技有限公司 | 政务云多区域的纳管方法和设备 |
CN116232992A (zh) * | 2022-12-16 | 2023-06-06 | 中国联合网络通信集团有限公司 | 数据转发方法、装置、设备及存储介质 |
CN116346715A (zh) * | 2023-03-29 | 2023-06-27 | 中国联合网络通信集团有限公司 | 数据发送方法、流表安全组系统、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120014387A1 (en) * | 2010-05-28 | 2012-01-19 | Futurewei Technologies, Inc. | Virtual Layer 2 and Mechanism to Make it Scalable |
CN105391568A (zh) * | 2014-09-05 | 2016-03-09 | 华为技术有限公司 | 一种软件定义网络sdn的实现方法、装置和系统 |
CN105591863A (zh) * | 2014-10-20 | 2016-05-18 | 中兴通讯股份有限公司 | 一种实现虚拟私有云网络与外部网络互通的方法和装置 |
WO2017032300A1 (zh) * | 2015-08-25 | 2017-03-02 | 华为技术有限公司 | 一种数据传输方法、虚拟网络管理装置及数据传输系统 |
CN106685835A (zh) * | 2017-03-06 | 2017-05-17 | 无锡华云数据技术服务有限公司 | 一种在数据中心的计算节点间实现高速分布式路由的方法 |
CN106789667A (zh) * | 2016-11-21 | 2017-05-31 | 华为技术有限公司 | 一种数据转发方法、相关设备及系统 |
CN106936777A (zh) * | 2015-12-29 | 2017-07-07 | 中移(苏州)软件技术有限公司 | 基于OpenFlow的云计算分布式网络实现方法、系统 |
CN107770062A (zh) * | 2016-08-16 | 2018-03-06 | 北京金山云网络技术有限公司 | 一种数据包发送方法、装置及网络架构 |
-
2019
- 2019-07-16 CN CN201910641584.3A patent/CN112242952B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120014387A1 (en) * | 2010-05-28 | 2012-01-19 | Futurewei Technologies, Inc. | Virtual Layer 2 and Mechanism to Make it Scalable |
CN105391568A (zh) * | 2014-09-05 | 2016-03-09 | 华为技术有限公司 | 一种软件定义网络sdn的实现方法、装置和系统 |
CN105591863A (zh) * | 2014-10-20 | 2016-05-18 | 中兴通讯股份有限公司 | 一种实现虚拟私有云网络与外部网络互通的方法和装置 |
WO2017032300A1 (zh) * | 2015-08-25 | 2017-03-02 | 华为技术有限公司 | 一种数据传输方法、虚拟网络管理装置及数据传输系统 |
CN106936777A (zh) * | 2015-12-29 | 2017-07-07 | 中移(苏州)软件技术有限公司 | 基于OpenFlow的云计算分布式网络实现方法、系统 |
CN107770062A (zh) * | 2016-08-16 | 2018-03-06 | 北京金山云网络技术有限公司 | 一种数据包发送方法、装置及网络架构 |
CN106789667A (zh) * | 2016-11-21 | 2017-05-31 | 华为技术有限公司 | 一种数据转发方法、相关设备及系统 |
CN106685835A (zh) * | 2017-03-06 | 2017-05-17 | 无锡华云数据技术服务有限公司 | 一种在数据中心的计算节点间实现高速分布式路由的方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113645210A (zh) * | 2021-08-02 | 2021-11-12 | 上海云轴信息科技有限公司 | 政务云多区域的纳管方法和设备 |
CN116232992A (zh) * | 2022-12-16 | 2023-06-06 | 中国联合网络通信集团有限公司 | 数据转发方法、装置、设备及存储介质 |
CN116232992B (zh) * | 2022-12-16 | 2024-05-14 | 中国联合网络通信集团有限公司 | 数据转发方法、装置、设备及存储介质 |
CN116346715A (zh) * | 2023-03-29 | 2023-06-27 | 中国联合网络通信集团有限公司 | 数据发送方法、流表安全组系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112242952B (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10210015B2 (en) | Virtual machine (VM) migration from switched fabric based computing system to external systems | |
US11962501B2 (en) | Extensible control plane for network management in a virtual infrastructure environment | |
US20210067376A1 (en) | Data center networks | |
US11005752B2 (en) | Packet transmission | |
US9621373B2 (en) | Proxy address resolution protocol on a controller device | |
US9231863B2 (en) | Systems and methods for a data center architecture facilitating layer 2 over layer 3 communication | |
US9876756B2 (en) | Network access method and device for equipment | |
CN112242952B (zh) | 一种数据转发方法、柜顶式交换机和存储介质 | |
US10530656B2 (en) | Traffic replication in software-defined networking (SDN) environments | |
US9369293B2 (en) | Compressing singly linked lists sharing common nodes for multi-destination group expansion | |
US11509581B2 (en) | Flow-based local egress in a multisite datacenter | |
CN107968749B (zh) | 实现QinQ路由终结的方法、交换芯片及交换机 | |
CN109688241B (zh) | 基于SDN的IPv4/IPv6双栈转换方法和系统 | |
US20090296706A1 (en) | Method, system and processor for processing network address translation service | |
US10757004B2 (en) | Routing domain identifier assignment in logical network environments | |
WO2024093064A1 (zh) | 一种大规模多模态网络中标识管理及优化转发方法和装置 | |
US9344364B2 (en) | Data center networks | |
CN117041205A (zh) | 地址转换方法、装置、宿主机及计算机可读存储介质 | |
CN104734930B (zh) | Vlan接入vf网络的实现方法及装置、fcf | |
CN110401726B (zh) | 地址解析协议报文的处理方法、装置及设备、存储介质 | |
KR101794719B1 (ko) | Sdn 기반 네트워크 가상화 플랫폼에서의 ip 주소 가상화 방법 및 시스템 | |
CN111294316B (zh) | 基于用户态协议栈虚拟路由器的网络隔离方法和装置 | |
WO2016173196A1 (zh) | 地址映射关系的学习方法及装置 | |
WO2018161827A1 (zh) | 一种地址自学习的方法、装置及交换机 | |
US9853891B2 (en) | System and method for facilitating communication |
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 |