基于SDN的软硬件混合虚拟网络定制系统的制作方法

文档序号:15455031发布日期:2018-09-15 00:52阅读:614来源:国知局

本发明涉及网络虚拟化技术,具体涉及一种基于sdn的软硬件混合虚拟网络定制系统。



背景技术:

mininet是目前最流行的sdn仿真实验平台,可以快速构建sdn网络,包括主机节点、交换机节点及控制器,然而mininet所构建的sdn网络是完全虚拟化的,并未使用真正的sdn交换机,无法完全真实的展示sdn网络的真实的实验测试情况。由于sdn物理交换机价格昂贵,若完全使用sdn物理交换机搭建环境会导致一笔巨大的开销同时也会耗费大量时间。

网络虚拟化技术能够给it企业带来很多优势,包括快速配置网络资源、降低运营成本以及改善网络可视性、政策和业务流程。常见的方法如划分sdn物理交换机的端口,使得一些端口属于某一个虚拟交换机,另一些端口属于另一个虚拟交换机;划分端口的做法使得仿真出的虚拟的sdn交换机是十分有限的,且虚拟sdn交换机的拓扑连接受物理交换机连线的影响很大,无法实现对丢包率和时延的仿真。



技术实现要素:

本发明的目的在于提供一种基于sdn的软硬件混合虚拟网络定制系统。

实现本发明目的的技术方案:一种基于sdn的软硬件混合虚拟网络定制系统,包括:一个sdn物理交换机;

用于构建虚拟网络拓扑的可视化交互模块;

用于根据虚拟网络拓扑和实际物理连接构建流表项的控制器;

用于根据虚拟网络拓扑抓取、解析并处理的链路仿真模块。

进一步的,所述的可视化交互模块用于读取初始虚拟网络拓扑信息,为用户显示初始虚拟网络拓扑图,包括虚拟网络节点属性和虚拟网络连接属性,保存虚拟节点和虚拟连接的属性数据。

进一步的,可视化交互模块通过可视化界面的交互功能绘制虚拟网络拓扑图;能够交互式地编辑虚拟网络节点属性并添加扩展属性,对于每个主机节点,需要提供ip地址,对于每个交换机需要提供编号;能够交互式的编辑虚拟网络连接属性并添加扩展属性,对于交换机之间的链路,可以指定链路的丢包率和链路的时延。

进一步的,通过控制器读取可视化界面生成的虚拟网络配置信息,收到packet-in消息时,根据虚拟网络拓扑和实际物理连接计算数据包的转发路径,下发流表项,指导数据包的转发;

实际物理连接包括sdn物理交换机的端口与用户交换机、控制器、链路仿真模块的连接。

进一步的,链路仿真模块用于抓取数据包,对抓取的数据包解析,并进行丢弃、延时发送或直接发送处理。

与现有技术相比,本发明的显著优点为:本发明能实现将一台sdn物理交换机虚拟成多台交换机,提高了仿真实验的真实性,加快了搭建sdn物理实验环境的速度,节约了成本,且搭建的网络具有功能拓展性强和灵活性好的特点

附图说明

图1为本发明的基于sdn的软硬件混合虚拟网络定制系统的物理连接示意图。

图2为本发明的基于sdn的软硬件混合虚拟网络定制系统的虚拟网络拓扑图。

图3为本发明的基于sdn的软硬件混合虚拟网络定制系统的流表项内容示意图。

图4为本发明的基于sdn的软硬件混合虚拟网络定制系统的可视化交互界面展示图。

具体实施方式

本发明实现将一台sdn交换机虚拟化为多台sdn交换机,通过控制器对交换机流表项的设置,搭建虚实结合的sdn网络仿真系统,该系统可以将一台sdn物理交换机仿真成多台虚拟sdn交换机,且可以仿真网络链路的丢包率和时延,使得仿真网络更接近实际网络情况,节约开销及搭建平台的时间。

系统主要内容有:

1)sdn硬件和控制器的结合与仿真

2)网络拓扑和实验环境的可拓展和可配置

3)可以在窗口界面中实现链路模拟

4)轻量级用户ui配置

5)控制器进行流量监测与分析

虚实结合的sdn网络仿真系统分为3个模块,分别是可视化交互模块、控制器和链路仿真模块。可视化交互模块负责构建虚拟网络拓扑,控制器模块负责根据构建的虚拟网络拓扑下发相应流表项指导数据包转发,链路仿真模块负责根据构建的虚拟网络拓扑,对数据包延迟或丢弃,仿真链路。

可视化交互模块可构建虚拟网络拓扑。构建的虚拟网络拓扑包含主机节点和交换机节点。主机节点包含主机ip信息,交换机节点包含其编号。链路信息包括链路的丢包率和时延。

可视化交互模块可将构建好的虚拟网络拓扑信息以文本的形式保存下来,以供控制器读取。

控制器根据构建的虚拟网络拓扑以及实际的物理连接情况构建流表项,指导数据包的转发。每当有一个packet-in消息到来时,控制器根据虚拟网络拓扑计算该数据包的转发路径,下发流表项。流表项的匹配域中包含了虚拟链路的信息,流表项的动作包含修改数据包源mac地址字段,使得该字段可以记录虚拟链路信息。

控制器同时需要将虚拟网络拓扑信息发送给链路仿真模块。为了使控制器能与链路仿真模块通信,控制器需要同时连接sdn物理交换机的普通网口并下发使控制器与链路仿真模块通信的流表项。控制器通过restapi与链路仿真模块通信。若数据包不是经过虚拟网络链路的最后一跳,数据包会被转发到链路仿真主机中。对于需要延迟的数据包,链路仿真模块为该数据包起一个新线程,当该数据包对应的线程休眠到要求的时间后,再把该数据包发送出去。

链路仿真模块根据控制器发送的虚拟网络拓扑信息进行网络仿真。链路仿真模块可以抓取数据包,对抓取的数据包解析并处理,包括丢弃、延时发送、直接发送。由于数据包的源mac地址字段记录了链路信息,链路仿真模块通过解析抓取的数据包的源mac地址字段,并利用获取的虚拟网络拓扑信息,对一个数据包做出丢弃或延时发送或直接发送的处理。

下面结合实施例对本发明进行详细说明。

实施例

一种基于sdn的软硬件混合虚拟网络定制系统,包括一个sdn物理交换机;用于构建虚拟网络拓扑的可视化交互模块;用于根据虚拟网络拓扑和实际物理连接构建流表项的控制器;用于根据虚拟网络拓扑抓取、解析并处理的链路仿真模块。

所述的可视化交互模块使用的是web技术,通过浏览器访问,能够支持跨平台使用。可视化交互模块使用html5开发,使用d3.js库进行界面渲染与数据绑定。

如图4所示,可视化交互模块功能包括读取与保存配置文件,展示虚拟网络拓扑图并进行自动布局,支持以拖拽的方式进行交换机的添加,支持以拖拽的方式完成网络拓扑图的位置调整,支持以拖拽的方式进行网络连接的创建,支持交换机的删除与网络连接的删除,支持网络节点属性的展示与编辑,支持网络连接的属性的展示与编辑,支持网络拓扑图与属性数据的联动操作。

所述的控制器模块使用的是ryu控制器,ryu控制器安装在linux系统的主机中。ryu使用python语言开发。

所述的控制器模块使用python程序,链路仿真程序使用python语言,使用dpkt解包,使用pcap抓包和发包。pcap可以抓指定网卡,指定包类型的数据包,并可将数据包发送出去。

本发明使用的物理交换机是盛科v350sdn交换机。盛科v350交换机集成openvswitch,支持openflow1.3.x标准。支持多种类型控制器,能够增加、删除、重置sdn控制器。

图1是系统的物理连接情况,计算机a、b是用户计算机,计算机c仿真链路,如链路的丢包率、时延等信息,计算机d是控制器。前台仿真界面的链路信息、节点信息等保存为文本供控制器读取,控制器也会将网络节点和链路信息发送给计算机c。

可视化交互模块:

构建虚拟网络拓扑,构建的虚拟网络拓扑包含主机节点和交换机节点。

保存虚拟网络拓扑,以文本形式保存,以供控制器读取。

控制器:

获得虚拟网络拓扑,以实际的物理连接情况构建流表项,指导数据包的转发。

根据虚拟网络拓扑,计算该数据包的转发路径,下发流表项。

链路仿真模块:

进行网络仿真,根据控制器发送的虚拟网络拓扑信息进行仿真。

根据网络要求,对数据包做出丢弃或延时发送或直接发送的处理。

构建的虚拟网络拓扑如图2,在仿真环境下,计算机a要发送数据包到b,经由链路a-01-03-b,结合图1,数据包的实际转发路径为计算机a-sdn交换机-计算机c-sdn交换机-计算机c-sdn交换机-计算机b。

首先,可视化交互模块需要给出构建的网络拓扑,对于每个主机节点,需要给出其ip地址,对于每个交换机节点,需要给出其编号,对于交换机之间的链路,可以指定链路的丢包率和链路的时延。可视化交互模块会将虚拟网络的配置保存到本地文件中,控制器可以读取该本地文件,以获得虚拟网络的配置信息。对于每条链路,由控制器通过修改数据包头字段的一些内容来代替数据包经过的链路,本发明通过修改数据包的源mac地址来记录数据包经过的链路,交换机编号为01-99,以源mac地址中的后16位记录路径信息,如11:22:33:44:01:02代表数据包经过交换机01和02之间的链路(前32位没有实际意义)。从a到b,控制器需要下发3条流表项,分别对应于a-01、01-03、03-b之间的链路。如图3所示,下发的3条流表项为:

流表项对应于从a到01之间的链路,数据包与第1条流表项匹配后,会修改源mac地址并转发至负责仿真链路的主机c(与物理交换机9号口相连),主机c通过对数据包的mac地址的分析,并利用控制器发给的虚拟网络信息,做出延迟、丢弃或发送的决定。若主机c将数据包发回交换机,数据包会与第2条流表项匹配,第2条流表项会将链路01-03的信息记录到源mac地址中并将数据包转发至主机c,主机c将数据包发回给交换机,数据包会与第3条流表项匹配,这条流表项将数据包转发至主机b。

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