基于OpenStack的软件定义网络模拟系统及方法

文档序号:9474067阅读:1072来源:国知局
基于OpenStack的软件定义网络模拟系统及方法
【技术领域】
[0001]本发明涉及软件定义网络技术,尤其涉及一种基于OpenStack的软件定义网络模拟系统及方法。
【背景技术】
[0002]目前,传统的基于OpenStack部署的软件定义网络(Software DefinedNetwork, SDN)的架构中,部署专用的SDN控制器作为OpenStack的提供了网络管理的基本功能的Neutron组件的Plugin,当OpenStack云计算平台将网络配置、管理等操作指令下发到SDN控制器时,控制器会根据操作指令计算出转发路径,并把转发路径转换成OpenFlow流表信息,下发到SDN交换机中
[0003]然而,采用上述部署方式在设计SDN网络的过程中,当客户对SDN网络的设计需求出现反复变化时,需要将已设置完成的SDN网络进行反复修改,导致该种部署SDN网络方式灵活性较低,从而造成设计成本相对增加。

【发明内容】

[0004]有鉴于此,本发明提供一种能提高部署灵活性且设计成本较低的基于OpenStack的软件定义网络模拟系统及方法。
[0005]—种基于OpenStack的软件定义网络模拟系统,其用于模拟软件定义网络,所述软件定义网络模拟系统包括一个虚拟机创建模块、一个模拟网络设置模块及一个测试模块,所述虚拟机创建模块用于依需要创建多个虚拟机,模拟网络设置模块用于依需要在所创建的多个虚拟机中设置至少一个软件定义网络控制器及设置至少一个软件定义网络交换机以建立相应的网络拓扑结构,所述测试模块用于根据所建立的网络拓扑结构测试所设置的至少一个软件定义网络控制器及所设置的至少一个软件定义网络交换机是否符合要求。
[0006]—种基于OpenStack的软件定义网络模拟方法,其用于模拟软件定义网络,所述软件定义网络模拟方法包括以下步骤:
[0007]依需要创建多个虚拟机;
[0008]依需要在所创建的多个虚拟机中设置至少一个软件定义网络控制器及至少一个软件定义网络交换机以建立相应的网络拓扑结构;及
[0009]根据所建立的网络拓扑结构测试所设置的至少一个软件定义网络控制器及所设置的至少一个软件定义网络交换机是否符合要求。
[0010]与现有技术相比,本发明提供的基于OpenStack的软件定义网络模拟系统及方法中,通过在OpenStack平台上创建多个虚拟机后利用模拟网络设置模块模拟设置SDN控制器及SDN交换机以进行SDN网络的搭建后,再利用测试模块来测试所搭建的SDN网络中的SDN控制器及SDN交换机的相关性能,从而可根据需求开发所需的SDN控制器和SDN交换机,不用局限于现有的一些开源的实现,提高软件定义网络设置灵活性的同时降低设计成本,便于客户需求端如企业在部署所需的SDN网络之前提供了一个评估、优化的过程,以使部署的目标网络能够更精确地满足需求。
【附图说明】
[0011]图1是本发明提供的基于OpenStack的软件定义网络模拟系统的模块示意图。
[0012]图2是图1中基于OpenStack的软件定义网络模拟系统模拟的网络拓扑示意图。
[0013]图3是本发明提供的基于OpenStack的软件定义网络模拟方法的流程图。
[0014]主要元件符号说明
[0015]软件定义网络模拟系统100
[0016]虚拟机创建模块110
[0017]模拟网络设置模块120
[0018]测试模块140
[0019]优化模块160
[0020]如下【具体实施方式】将结合上述附图进一步说明本发明。
【具体实施方式】
[0021]请参阅图1,其为本发明实施方式提供的一种基于OpenStack的软件定义网络模拟系统100,其用于模拟软件定义网络(Software Defined Network, SDN),所述软件定义网络模拟系统100包括一个虚拟机创建模块110、一个模拟网络设置模块120及一个测试模块140。
[0022]OpenStack云平台是由六大核心组件共同运行为用户提供服务,这六大组件的功能如下:Nova:云平台的控制器,它提供一个工具部署云,包括运行虚拟化实例、管理网络以及控制用户和其他项目对云的访问;Swift:—个大容量、可扩展的、内置冗余和容错机制的对象存储系统;Glance: —个针对虚拟机镜像的管理控制系统!Keystone:提供了身份认证、令牌发放和校验、服务列表、用户权限定义等服务,并为OpenStack块存储提供授权服务;Dashboard:0penStack的Web管理控制台,可以通过Web界面访问的方式来操作管理网络和虚拟机实例等Aeutron:提供了网络管理的基本功能,包括网络模型的实现、IP地址的管理、DHCP服务、安全管理等。
[0023]可以理解的是,在利用软件定义网络模拟系统10开始模拟SDN网络之前,用OpenStack采用多节点分开部署的模式搭建一个基础架构即服务(Infrastructure asa Service,IaaS)云计算平台,本实施方式中,采用Virtualbox作为虚拟化平台,操作系统采用Linux发行版CentOS 6.5x86_64,OpenStack版本为Icehouse,为了更好的展现OpenStack分布式部署的特点,本方法采用多节点分开部署的模式。安装完OpenStack的各基本组件后再安装一个高质量的多层虚拟交换机(Open vSwitch)作为Neutron组件的插件(Plugin),Neutron组件支持多种插件来实现不同的网络服务,其中使用最多的就是Open vSwitch, Open vSwitch不仅提供虚拟机之间的连接服务,还通过Open vSwitch和隧道技术实现网络隔离、流量监控等高级功能。
[0024]为了使得云平台更加安全,Nova提供了一种使虚拟机和外网隔离的网络方案,为虚拟机构建一个与外网隔离的私有网络,如采用192.168.4.0/24这个网段,这个网段只提供虚拟机间的互相访问,虚拟机通过一个内网交换机来通信。同时,为了方便虚拟机和外网的通信,还准备了一个浮动IP地址段,如172.16.0.0/24这个网段,因此每个虚拟机都会得到两个IP地址,一个是供虚拟网络内部通信的私有IP地址,另一个是虚拟机和外网通信的浮动IP地址。
[0025]虚拟机创建模块110用于依需要创建多个虚拟机,本实施方式中,虚拟机创建模块110创建16个虚拟机。虚拟机创建模块110在OpenStack云平台创建虚拟机时,客户端首先在命令行界面向OpenStack发送创建虚拟机请求,OpenStack收到请求后调用Keystone对客户端的用户名和密码进行验证,验证成功后发送一个令牌给客户端,客户端再将已发送的虚拟机创建请求转换成表述性状态传递(Representat1nal State Transfer, REST)接口格式,并带上Keystone分配的令牌将创建虚拟机请求发送给Nova_api,Nova-api收到请求后向Keystone发送令牌认证消息,Keystone检查令牌的有效性并在令牌有效时向Nova-api发送更新后的令牌,Nova-api在收到令牌后与Nova数据库进行交互,为创建的虚拟机初始化一个数据库表项。Nova-api向Nova调度单元发送远程过程调用(RemoteProcedure Call,RPC)消息,由它执行虚拟机调度。此时在Dashboard界面上将会看到虚拟机处于调度(Scheduling)状态。
[0026]Nova调度单元将与Nova数据库进行交互,获取现存所有计算节点及其信息,找到一个最合适的计算节点用于创建虚拟机,并向该计算节点发送RPC请求。计算节点收到请求后依次调用Glance为虚拟机下载镜像、调用Neutron为虚拟机指定网络连接、调用Cinder为虚拟机提供块存储,最后计算节点将调用Libvirt创建虚拟机,其中,Libvirt库是一种实现Linux虚拟化功能的接口。
[0027]所述模拟网络设置模块120用于依需要在所创建的多个虚拟机中设置至少一个SDN控制器及设置至少一个SDN交换机以建立相应的网络拓扑结构,如图2所示,本实施方式中,模拟网络设置模块120设置3个虚拟机为SDN控制器,设置8个虚拟机为SDN交换机并在SDN控制器、SDN交换机与剩下的5个虚拟机也即模拟设置为虚拟PC之间建立互相进行交互通信的网络拓扑结构,同时模拟网络设置模块120还根据所建立的网络拓扑结构为所设置的SDN控制器配置相应的转发流表。可以理解的是,SDN控制器和SDN交换机之间使用标准的OpenFlow协议通过安全隧道进行通信。
[0028]本实施方式中,模拟网络设置模块120在OpenStack虚拟出I个或者多个虚拟机上运行SDN控制器程序,用于模拟设置SDN控制器,并在OpenStack虚拟出I个或者到多个虚拟机上运行SDN交换机程序,用于模拟设置SDN转发设备,并搭建虚拟网络拓扑以完成SDN网络的搭建。在创建网络拓扑结构中,建立SDN控制器和SDN交换机之间的连接,并用Restful接口配置SDN交换机中的转发流表。在SDN控制器端或者在SDN交换机中可以查询转发流表状态,只有SDN控制器的流表下发操作都正确,当SDN交换机在转发数据包的时候,才能正确地匹配转发流表并转发数据包。
[0029]可以理解的是,在OpenStack平台上虚拟出的多个虚
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1