基于SDN的物理设备与虚拟网络通信方法和系统与流程

文档序号:17481192发布日期:2019-04-20 06:28阅读:204来源:国知局
基于SDN的物理设备与虚拟网络通信方法和系统与流程

本发明涉及计算机领域,尤其涉及一种基于sdn的物理设备与虚拟网络通信方法和系统。



背景技术:

随着虚拟化技术的快速发展,实现了基于物理主机实现大量虚拟机的功能,这些虚拟机实质上可以作为物理机使用。但目前在数据中心内,不是所有的服务都运行在虚拟机上的,所以就有了让物理设备访问虚拟网络的需求。

软件定义网络(softwaedefinednetwork,sdn)是近几年兴起并热门的技术,主要的技术理念是控制面和转发面分离,将原先传统网络的分布式控制,抽象出来作为控制平面,并使用sdn控制器集中控制全网设备,降低网络的复杂程度,网络设备只负责单纯的数据转发,实现了网络流量的灵活控制,实现对网络资源灵活的按需调配。

vxlan(virtualextensiblelocalareanetwork,虚拟可扩展局域网),是一种网络虚似化技术,通过将虚拟网络中的数据帧封装在ip报文中进行传输,允许不同物理网络下的设备处于相同的二层广播域中。然而,现有的vxlan技术不能直接适用于处于同一逻辑层的虚拟设备与物理设备处于同一子网中,难以实现虚拟化业务支持物理设备接入。



技术实现要素:

针对上述现有技术中的问题,本发明的目的是提供一种实现物理设备与虚拟网络通信的方法和系统,使得物理设备与虚拟机处于同一子网中,支持物理设备通过虚拟网络进行二、三层的网络访问。

在第一方面,提供了一种通信方法,包括:

物理设备通过二层交换机或者直连至sdn交换设备,sdn交换设备与承载虚拟网络的交换设备建立vxlan隧道连接。部署控制器,与虚拟网络以及所述sdn交换设备建立基于openflow协议的tcp连接;

sdn交换设备接收所述物理设备基于arp广播协议发送的第一广播数据包,其目的ip地址为虚拟网络中的虚拟机ip地址,sdn交换设备通过openflow协议数据包将所述数据报文上报至控制器;控制器根据第一广播数据包,向物理设备回复应答数据包,其源mac地址为目的虚拟机的mac地址;

若多个物理设备通过二层交换机接入sdn交换设备,则多物理设备通过vlan协议隔离,物理设备的vlanid与虚拟网络vxlanid的对应关系需.注册至所述控制器,控制器通过vlan识别物理设备网络请求对应的虚拟二层网络;

sdn交换设备接收来自虚拟网络基于arp广播协议发送的第一广播数据包,其目的ip地址为物理设备的ip地址,sdn交换设备通过vxlan隧道接收并解封装后,将所述数据报文上报至控制器;控制器根据第一广播数据包,向虚拟机回复应答数据包,其源mac地址为物理设备的mac地址;

进一步地,所述控制器通过sdn交换设备上报获取第一广播数据包目的ip地址为对应虚拟网络中网关的ip地址,回复应答数据包,其源mac地址为网关设备的mac地址;

所述控制器接收来自物理设备的第一广播数据包后,下发openflow流表,匹配目的mac地址或者目的ip地址为请求的虚拟机,执行动作封装相应二层虚拟网络的vxlanid,通过vxlan隧道发送至对应虚拟机所属节点;

进一步地,sdn交换设备接收来自物理设备的第一请求数据包,根据openflow流表匹配其目的mac地址或目的ip地址,将请求数据包封装至vxlan隧道并发送至目的虚拟机对应节点;

所述控制器接收来自虚拟机的第一广播数据包后,下发openflow流表,匹配所述虚拟网络vxlanid,目的mac地址或者目的ip地址为请求的物理设备,执行动作封装相应物理设备vlanid,发送至物理设备所属端口;

进一步地,sdn交换设备接收来自虚拟机的第一请求数据包,根据openflow流表匹配其目的mac地址或目的ip地址,将请求数据包封装物理设备所述vlanid,并发送至物理设备所属端口;

在第二方面,提供了一种控制器作为通信控制系统,包括:

openflow协议解析装置,支持标准openflow协议数据报文解析与流程,用于同sdn交换设备建立连接,解析并响应sdn交换设备上报的数据报文,以及下发回复数据包;

物理设备接入装置,用于记录物理设备接入sdn交换设备端口,vlanid,以及对应虚拟二层网络的vxlanid;

虚拟网络同步装置,用于同步虚拟网络相关信息,包括二层虚拟网络vxlanid,网关及虚拟机ip与mac地址。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

物理设备通过连接sdn交换设备实现与虚拟网络同一逻辑子网的虚拟机进行二、三层通信,使得来自物理设备的第一请求数据包的目的ip地址可以直接设置为目的虚拟设备的ip地址,打破传统网络部署中物理设备无法直接划分至虚拟网络中的制,接入虚拟网络的物理设备通过虚拟网络的租户隔离功能,实现了与其他物理设备的网络隔离。进一步的,虚拟网络业务通过本技术方案实现无缝接入物理网络,使得接入的物理设备可使用虚拟网络提供的各项网络服务。从而实现不同的业务功能。

附图说明

图1为本发明实施例提供的基于sdn的物理设备与虚拟网络通信方法和系统的一种示意图;

图2为本发明的一个实施例的用于物理设备与虚拟网络通信流程的示意图;

图3为控制器接受虚拟网络与物理设备通信请求后的方法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的一种基于sdn实现物理设备与虚拟网络通信的方法和系统,使得物理设备与虚拟机处于同一子网中,支持物理设备通过虚拟网络进行二、三层的网络访问。

如图1所示,本发明实施例提供的基于sdn实现物理设备与虚拟网络通信的方法和系统基本结构包括:控制器100,虚拟网络sdn交换设备200,物理网络sdn交换设备201;所述控制器负责通过通信单元120及openflow协议解析装置101响应交换设备上报的数据报文,协同物理设备接入装置102与虚拟网络同步装置103计算相关流表,并下发流表指导物理设备与虚拟网络中虚拟机通信流程。

多个物理设备通过一个二层交换机或者直连至物理网络sdn交换设备。图1示例性地列出了两个物理设备400和401,物理网络sdn交换设备201,虚拟网络sdn交换设备200以及两个虚拟机300和301。在实际使用时,可以根据需求规模,设置多个物理设备,sdn交换设备以及虚拟机。

物理设备400,401通过vlan(virtuallocalareanetwork,虚拟局域网协议)进行隔离,将物理设备分隔在不同二层广播域中。

物理网络交换设备200与虚拟网络交换设备201均为支持openflow协议的交换机,交换设备之间建立vxlan(virtualextensiblelocalareanetwork,虚拟可扩展局域网)隧道,不同租户的虚拟机流量进入交换设备200后,被封装不同的vxlanid,通过vxlan隧道传输至物理网络交换设备201。

图2为本发明的一个实施例的用于物理设备与虚拟网络通信流程的示意图。虚拟机300与物理设备400属于一个租户网络,对应vxlanid为100,物理设备400通过vlan100隔离;虚拟机301与物理设备401属于一个租户网络,对应vxlanid为200,物理设备401通过vlan200隔离。

下面具体介绍本发明的用于虚拟网络与物理设备的通信方法。

图3为控制器接受虚拟网络与物理设备通信请求后的方法流程图。结合图1,图2和图3,物理设备400访问虚拟机300的通信方法,包括步骤:

s1-1:注册物理节点信息至控制器物理设备接入装置102,注册信息包括物理设备标识,物理设备接入物理网络sdn交换机201对应端口标识,vlanid及对应租户网络标识(vxlanid)。

s1-2:同步虚拟机节点信息,控制器通过虚拟网络同步装置103获取虚拟网络中虚拟机接入信息,包括虚拟机接入虚拟网络sdn交换机200对应端口标识及对应租户网络标识(vxlanid)。

s1-3:物理设备400首次访问虚拟机300,需要基于arp广播协议发送第一广播数据包,接收到相应回复后,才能组装后续请求数据包进行发送。物理网络sdn交换机201接收到广播数据包,通过openflow协议中packet-in消息将数据报文头上送至控制器openflow协议解析装置101。控制器接收第一广播数据包后,解析其vlanid及目的ip地址,若该物理设备所在租户网络与目的虚拟机所在租户网络相同,则构造相应arp回复数据包,通过openflow协议中的packet-out消息将数据包交由物理网络sdn交换机201回复给物理设备400。

s1-4:控制器下发流表至物理网络sdn交换机201与虚拟网络交换机200,指导物理设备400与虚拟机300通信流程。流表设计如表格1,表格2所示,流表指导交换机201匹配vlanid为100,目的ip地址为虚拟机300的ip地址,将该数据包封装至vxlan隧道100,发送至虚拟机对应sdn交换机200。交换机200匹配vxlan100隧道,目的ip地址为虚拟机300的ip地址的数据包,将该数据包发送至虚拟机300接入交换机的接口。

表格1为控制器接收来自物理设备400的第一广播报文后,在物理设备接入sdn交换机201下发流表示意。

表格2为控制器接收来自物理设备400的第一广播报文后,在目标虚拟机接入sdn交换机200下发流表示意。

s1-5:物理设备400发送请求数据包,目的ip地址,目的mac地址为虚拟机300。

s1-6:物理网络交换设备201接收来自物理设备400的请求数据包,匹配流表封装至vxlan100隧道转发至虚拟机300对应虚拟网络交换设备200。

s1-7:虚拟网络交换设备200通过vxlan隧道接收封装数据包,匹配流表,将请求数据包(数据特征为vxlanid=100,目的ip地址为虚拟机300的ip地址)转发至虚拟机300对应接口。

同理而言,当虚拟机301首次访问物理设备401时,虚拟机301基于arp协议发送第一广播数据包,虚拟机301所在虚拟网络交换设备200接收广播数据包后,通过packet-in消息上送至控制器,控制器中openflow协议解析装置识别packet-in数据报文内容,回复对应回应数据包。并下发流表至物理网络sdn交换机201与虚拟网络交换机200,指导物理设备401与虚拟机301通信流程,流表设计如表格3,表格4所示。

表格3为控制器接收来自虚拟机301的第一广播报文后,在虚拟机所在sdn交换机200下发流表示意。

表格4为控制器接收来自虚拟机301的第一广播报文后,在目标物理设备接入sdn交换机201下发流表示意。

由以上技术方案可见,本发明的物理设备与虚拟网络通信方法和系统,不影响原有虚拟网络与物理设备的组网方式,使得用户在虚拟机和物理设备上的体验完全一致,支持虚拟业务无缝支持物理设备接入。

以上所述的具体实施方式,对本发明的目的,技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改,等同替换、改进等,均应包含在本发明的保护范围之内。

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