一个软件定义网络的仿真实践
2015-06-21陈越
陈越
(天津大学电子信息工程学院,天津300100)
一个软件定义网络的仿真实践
陈越
(天津大学电子信息工程学院,天津300100)
软件定义网络是一种新型的网络架构,其核心思想是将网络设备控制与数据传送分离开来,通过软件实现网络流量的灵活控制,为核心网络及应用提供了良好的平台。文章主要介绍了基于OpenFLow的主流SDN实现方法,通过搭建一个简单的仿真平台,模拟基于OpenFlow的SDN架构,实现负载均衡的简单功能,同时展望了该技术未来的发展,对人们了解和使用该技术提供了探索性帮助。
SDN OpenFlow 仿真实践
1 引言
软件定义网络(Software-De ned Networking,SDN)作为一个新兴的网络架构,近年来热度不断提高[1],2012年国际性研究机构Cartner将其列为未来五年内IT领域的十大关键技术之一。2011年开放网络基金会(open networking foundation,ONF)成立,开始推动SDN的标准化进程。目前已有成员72家,包括Google、Facebook、NTT、Verizon,Microsoft、Yahoo等[2],其中Google运用SDN技术架设了他的B4网络,耗时3年,将原先的网络完全切换到了OpenFlow网络,引入了流量工程,完全靠OpenFLow协议来规划流量路径,对网络流量进行了极大的优化[3]。
下面介绍一个利用Mininet、OVS、Ryu-manager3.6模拟实现OpenFlow环境,成功实现PC机不停的发出访问请求时,控制层能够控制网络自动交替轮流将访问请求转发到2个服务器(即负载均衡)的实践案例。
2 仿真环境
虚拟机为VMware Workstation,虚拟操作系统为Ubuntu 12.10,其中已经安装了以下软件:
Mininet可简单理解为SDN网络系统中的一种基于进程虚拟化平台[4]。Open vSwitch(简称OVS)是由NiciraNetworks主导的,运行在虚拟化平台(例如KVM,Xen)上的虚拟交换机[5]。Ryu是一个基于组件的软件定义网络架构。
3 仿真思想
拓扑结构如图1所示。
图1 拓扑结构
假定h1当做PC,不停发出访问请求,h2和h3当做2台服务器,c0为控制器。经查询,h1、h2、h3的ip地址分别为10.0.0.1、10.0.0.2、10.0.0.3,mac地址分别为00:00:00:00:00:01、00:00:00:00:00:02、00:00:00:00:00:03。
同时设定一个virtual ip为10.0.0.4和一个virtual mac为00:00:00:00:00:04,对h1而言,其只会访问virtual ip(10.0.0.4)而不直接访问h2和h3的ip,通过Servers_exchange模块实现控制网络自动交替轮流将访问请求转发到2个服务器h2和h3上。
服务器h2提供静态页面的名称为“Server1”,页面内容为“From Server1”;h3服务器提供静态页面的页面名称为“Server2”,页面内容为“From Server2”。在h1终端打开Firefox浏览器,并访问10.0.0.4:8000,即可通过页面内容判断响应来自哪台服务器。
4 仿真步骤
Step1:运行Ryu基础模块与servers_exchange.py模块进入ryu文件夹,执行./bin/ryu-m–verboseryu/app/servers_exchange.py,运行Ryu基础模块与Servers_exchange模块,此模块是根据实验要求并按照Ryu API编写的模块,核心算法是通过round robin(轮询法)选择受访问的服务器,实验结果如图2所示。
图2 运行servers_exchange模块
Step2:建立拓扑
执行指令sudo mn--arp--topo single,3--mac--switch ovsk--controller remote,建立1个Controller、1个Switch和3个hosts的拓扑。指令中mn是mininet的缩写,表示mininet指令,--arp选项表示设置所有节点对的arp条目;--mac选项表示自动设置host的mac地址(即h1的mac地址为00:00:00: 00:00:01);--switch ovsk选项表示选用OVS做Switch,--controller remote(或--controller=remote)选项表示选用远程控制器做controller,但由于实验的环境是controller和Switch是在同一虚拟机内,所以此处不需要输入远程控制器的ip地址,结果如图3所示。
图3 建立拓扑
Step3:配置Web服务器
为配置服务器,执行如图4所示的指令。
其中第一条指令为virtual ip和virtual mac设置静态arp条目;第二条和第三条指令为h2配置服务器;第四条和第五条指令为h3配置服务器。
图4 配置服务器
Step5:测试仿真结果
执行指令xterm h1,开启h1终端模拟器。在新弹出的终端中输入firefox,开启Firefox浏览器,并在浏览器的地址栏输入地址10.0.0.4:8000,即可发出访问请求并获得响应,刷新页面即会轮流打开这2个不同的页面,说明实验成功,其结果如图5和图6所示。
图5 Server1页面
5 结束语
SDN研究进展得如火如荼,网络设备商、网络运营商以及互联网服务商都在广泛关注,但目前软件定义网络相关技术还不够成熟,SDN在真实的网络部署过程中可能存在的多种实际问题[6]。SDN还有很多问题需要进一步深入,包括OpenFlow标准的推进和控制软件的开发,网络管理和安全控制,数据中心网络部署,面向大规模网络的部署等一些未知问题。本文通过介绍一个成功的SDN仿真实践,为大家了解和学习SDN技术提供了有益探索。
[1]赵慧玲,冯明,史凡.SDN—未来网络演进的重要趋势[J].电信科学,2012,28(11):1-5.
[2]舒文琼.SDN领域两大组织角力OpenFlow协议为共性特征[J].通信世界,2013,(25):44-44.
[3]张卫峰.走近Google基于SDN的B4网络[J].程序员,2013 (11):100-104.
[4]李艳,郝志安,李宁等.基于mininet的SDN架构仿真研究[J].计算机与网络,2014,40(5):57-59.
[5]李锐,叶家炜,何东杰,等.基于Open vSwitch的虚拟网络访问控制研究[J].计算机应用与软件,2014,31(5):308-311.
[6]范伟.软件定义网络及应用[J].通信技术,2013,46(3):67-70.
A Simulation of Software Defined Network
CHEN YUE
(School of Electronic and Information Engineering,Tianjin University,Tianjin 300100,China)
Software Defined Network(SDN)is a new type of network structure,its core thought is to separate network control equipment and data transfer,and achieve flexible control of network flow via software,which provides a perfect platform for core network and its application.This paper mainly introduces the main stream technology to achieve SDN based on OpenFlow,gives a simulation practice to attain the simple function of load balance,and in the meantime it presents an outlook on the future development of the technology and provides exploratory help for people to understand and use the technology.
SDN;OpenFlow;simulation practice
TP393
A
1008-1739(2015)12-50-3
定稿日期:2015-05-26