一种基于sdn的网络虚拟化方法

文档序号:9633733阅读:667来源:国知局
一种基于sdn的网络虚拟化方法
【技术领域】
[0001]本发明涉及计算机网络虚拟化领域,确切地说涉及一种基于SDN的网络虚拟化方法。
【背景技术】
[0002]虚拟化技术一直与网络的发展密不可分,为了解决当前互联网“僵化”的问题并刺激对未来网络研究的创新,网络虚拟化的概念被提出,网络虚拟化技术指的是使用抽象、分配和隔离机制实现节点和链路虚拟化,通过共享底层的物理资源构建共存但相互隔离的多样化虚拟网络,物理网络能够根据动态变化的虚拟资源请求实现对物理资源的合理配置和管理。研究学者利用虚拟化技术在已有的网络架构基础上构建出逻辑网络以满足特定的业务需求。如实现用户隔离的虚拟局域网,连接异地用户的虚拟专用网等。
[0003]现在,国内外很多团体和学术机构提出利用网络虚拟化构建网络实验平台,将网络虚拟化技术作为构建下一代互联网的基础架构。包括GENI (Global Environment forNetwork Innovat1ns),其旨在构建一个通用开放的大规模实验平台,解决传统互联网在安全性、可靠性和管理性等方面的不足,它的设计目标是构建一个可编程的、虚拟化的、满足不同种类网络互联的、具备安全性的全球网络。GENI能够实现用户对底层资源的访问和控制;PlantLab项目,起始于2003年,最初的体系结构由普林斯顿大学的Larry Peterson、华盛顿大学的Tom Anderson、加州大学伯克利分校的David Culler共同设计,它是一个开放的、针对下一代网络互联网及服务的全球性实验平台。节点的计算资源、内存资源、网络资源等被多台虚拟机所共享。由多台虚拟机组成的虚拟机被称为PlantLab的一份资源片。多个资源片同时运行于PlantLab之上,逻辑上相互不影响;VegaNet (Virtual GigabitNetwork)项目,起始于2009年,由北京科技大学、清华大学、北京邮电大学发起。VegaNet的主要特征包括引入真实的用户流量,支持节点和链路故障注入,同步底层网络故障,虚拟路由器基于真实的商业路由器平台实现,支持高带宽的虚拟网络流量,虚拟网络中运行的协议族独立于底层物理网,虚拟网络对底层物理网络透明;4WARD项目是欧盟第七科技框架计划EP7在网络技术研究领域的子项目,于2008年1月启动。其目标是通过创新克服现有的通信网络的缺点,构建可以同时共存多个网络的架构。4WARD虚拟化框架允许多个网络运行在一个通用的平台上,通过网络资源运营级的虚拟化实现多个网络架构的共存,与现有Internet仅允许在链路层和应用层同时共存多个网络不同的是,4WARD还应该能够在网络层和传输层共存多个网络。4WARD可以同时支持异构网络的虚拟化、异构的终端用户和新型网络协议等。其主要的研究内容包括网络虚拟化技术、新型架构的原理和内容等。
[0004]SDN最早起源于斯坦福大学的clean state项目,它是一种创新的网络体系架构,其核心思想是把转发平面和控制平面解耦,通过集中式的控制器并使用标准的接口对各种不同的网络设备进行管理。目前,OpenFlow作为标准的接口已经得到广泛使用,中心控制器通过OpenFlow协议实现对物理交换机的精细化监测和管理。同时,SDN具有天然的网络虚拟化的优势,特别是对于数据中心的网络虚拟化应用。出于部署的要求,虚拟化要求具有集中式控制的网络架构,而SDN网络恰恰就是一种集中式管理的网络架构。
[0005]经检索,在国家专利局网站和国外专利局网站上没有与本申请技术方案较为接近的技术方案申请过专利,也没有与本申请技术方案较接近的期刊文件,没有实现基于SDN创建虚拟网络的现有技术。

【发明内容】

[0006]本发明旨在针对上述现有技术所存在的缺陷和不足,提供一种基于SDN的网络虚拟化方法,本方法不仅可以基于MAC地址创建虚拟网络,还可以基于IP地址创建虚拟网络,虚拟网络可以承载特定的应用层能量或者某些来自或到达主机的流量。
[0007]本发明是通过采用下述技术方案实现的:
一种基于SDN的网络虚拟化方法,其特征在于:
步骤1,网络初始化时,控制器通过探测获得SDN网络拓扑信息,包括交换机信息和链路信息;
步骤2,网络初始化时没有任何虚拟网络存在,所有底层网络资源暂不可用;
步骤3,使用网络资源的前提是得到一个虚拟网络片,否则无法使用任何网络资源,创建一个虚拟网络片,转步骤4;
步骤4,创建虚拟网络片调用虚拟网络生成模块,虚拟网络生成模块收集用户各种请求参数的信息,根据请求参数创建虚拟网络片,请求参数包括虚拟网络的ID、名字、流量隔离类型和带宽需求,创建完成后向虚拟网络中添加主机,转步骤5 ;
步骤5,添加主机到虚拟网络片,虚拟网络是一系列主机的集合,这些主机集合共享虚拟网络内的资源,添加到虚拟网络片的主机基于主机的MAC地址或IP地址,但同一个虚拟网络只能基于一种添加方式,如只添加主机MAC地址或只添加主机IP地址,主机添加完成后,转步骤6 ;
步骤6,当某个主机需要和另一个主机通信时,若交换机有匹配的流表项,则直接转发数据包,若交换机没有匹配的流表项,该数据包会发往控制器,转步骤7 ;
步骤7,控制器调用消息拦截模块拦截该数据包,消息拦截模块调用消息解析模块,转步骤8,等待消息解析模块返回的结果,决定是否需要丢弃该数据包;
步骤8,消息解析模块解析该数据包,查询数据包是否来自于某个虚拟网络,若查询结果属于某一个虚拟网络并且符合虚拟网络相关参数,通知消息拦截模块允许该数据包通过并下发流表,否则通知消息拦截模块丢弃该数据包;
查询数据包是否来自于某一个虚拟网络需要调用虚拟网络映射模块,转步骤9 ;
步骤9,虚拟网络映射模块查询映射关系,确定数据包是否属于某一个虚拟网络,同时确定虚拟网络的相关参数,根据相关参数确定数据包的处理流程,如调用流量隔离模块、带宽虚拟化路由生成模块,如果需要调用流量隔离模块,转步骤10,如果需要调用带宽虚拟化路由生成申吴块转步骤11 ;
步骤10,若在虚拟网络创建的初始阶段指定了所承载的流量,流量隔离模块隔离所有非虚拟网络所承载的流量,否则不会隔离任何类型流量;
步骤11,若在虚拟网络创建的初始阶段指定了带宽需求,带宽虚拟化路由生成模块首先调用MM_ATT算法计算出一条路由,在路径上安装流表,然后在所有虚拟网络内的主机相连的边缘交换机出端口设置限速队列。
[0008]所述虚拟网络生成模块,用来把用户虚拟网络请求生成逻辑虚拟网络片slice,虚拟网络的生成源自于用户的请求,由用户决定请求参数,由控制器生成虚拟网络片数据结构,并维护所有虚拟网络相关参数的映射。
[0009]所述消息拦截模块,用来拦截所有来自底层物理网络的packet_in消息,网络初始化时,无法使用任何物理网络资源,所有未匹配的包都将通过packet_in消息转发给控制器;只有之前已经建立了虚拟网络,并且该packet_in消息属于某一个虚拟网络所在的流,通过消息解析模块后,允许消息通过,否则丢弃该消息。
[0010]所述消息解析模块,对于消息拦截模块所拦截的数据包,消息解析模块解析出相关信息,如源IP地址、目的IP地址、源TCP/UDP端口号、目的TCP/UDP端口号、源MAC地址、目的MAC地址和入交换机端口号;同时,确定消息是否是广播消息、DHCP消息,对于这类消息拦截模块不予拦截。
[0011]所述虚拟网络映射模块,用来管理所有虚拟网络映射关系数据结构,包括虚拟网络ID到虚拟网络的映射、虚拟网络ID到虚拟网络名字的映射、虚拟网络ID到虚拟网络主机集的映射、IP地址到MAC地址的映射以及主机到交换机端口的映射。这
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1