张连成,奚 琪,郭 毅,王振兴
(1.解放军信息工程大学 数学工程与先进计算实验室,河南 郑州 450001)
摘 要:为深化研究生课程教学改革,针对软件定义网络实验课程存在的实验科目匮乏、硬件实验环境尚难规模化部署和灵活性不足、学生上手难度大等问题,依据体现最新研究进展、增强差异对比实验、设计模块化实验科目等建设思路,阐述如何基于Mininet软件模拟环境配合POX、Kinetic、Pyretic等控制器开设SDN网络环境搭建、 SDN网络特定拓扑绘制、网络分割、防火墙编写等实验科目,最后说明取得的教学效果。
教育期刊网 http://www.jyqkw.com
关键词 :软件定义网络;Mininet;OpenFlow;POX;实验课程设计
第一作者简介:张连成,男,讲师,研究方向为软件定义网络、网络应用,liancheng17@gmail.com。
0 引 言
软件定义网络(Software Defined Network,SDN)是一种基于可编程网络的新型网络体系架构,本质上具有“控制与转发分离”“设备资源虚拟化”和“通用硬件及软件可编程”三大特性[1-2],可实现全网流量行为的灵活控制,为核心网络及应用的创新提供了良好的平台,SDN被普遍认为是IT界的第二次革命。
1 软件定义网络实验课程设计面临的问题
1)SDN属于新型网络体系架构,实验科目比较匮乏。
SDN从2012年成为研究热点,业界和学术界已开发和提出一些SDN网络交换设备与搭建方案,也有一些介绍SDN相关技术的书籍(如《软件定义网络:SDN与OpenFlow解析》《深度解析SDN:利益、战略、技术、实践》《SDN核心技术剖析和实战指南》等)面世,但高校很少开设软件定义网络相关课程,实验科目更是不多,在这种情况下,缺乏可借鉴的教学成果,增加了软件定义网络实验课程设计的难度。
2)硬件交换设备较贵,难以大规模部署用于实验教学。
作为SDN网络的主要南向通道协议,OpenFlow协议尚在更新发展之中。购买支持OpenFlow协议的硬件交换设备搭建环境,虽然环境真实,但OpenFlow协议更新较快,大概每半年就会更新一版,如果随之更新硬件设备,会需要消耗大量经费,目前条件下尚难以用于大规模实验教学。
3)硬件实验环境的灵活性不足。
大部分SDN网络硬件交换设备所实现的OpenFlow版本是1.0,而对于1.1、1.2、1.3和1.4版本的实现则较少,另外,满足1.3版本所要求的安全传输层协议(TLS)支持则更少,因此采用其所搭建起来的SDN网络环境不够完整。另外,在硬件实验环境下,学生做特定网络拓扑绘制、网络分割等实验时不够灵活,需要分批次开展实验,且实验环境构建与切换较为复杂,影响实验教学的效果。
4)学生上手难度较大。
SDN本身就是新兴技术,另外,在实现各类SDN技术时,用到了大量不同的编程语言(如Java、Python、C++等),存在不同的控制器实现(如POX、Kinetic、Pyretic等),需要网络协议分析、虚拟机操作等相关基础知识,因此,对于初学者而言,难度太大,不易上手,很多时间花在环境搭建和基础知识更新学习上,不但会让学生产生畏难情绪,而且不能起到很好的教学效果。
2 软件定义网络实验科目设计思路和方法
从SDN、OpenFlow等公开文档与资料中搜集适合用于SDN实验科目的素材,借鉴已有教学成果[3],软件定义网络实验科目设计的总体思路为体现最新研究进展、增强差异对比实验和设计模块化实验科目。
1)体现SDN最新研究进展,提高实验科目的针对性。
根据课程标准和课程目的,解析课程内容,充分利用现有的SDN网络公开资料和开源工具,在硬件条件尚不具备的情况下,开设SDN实验科目,另外,实验科目要体现SDN网络技术的最新研究进展,使实验更有针对性,更贴近实际,提高学生的实践动手能力和实际问题解决能力。
2)增加与传统网络的差异对比实验,使学生更易理解和掌握SDN的优势和不同。
SDN是一种新型的网络架构,依据学生所具备的传统网络协议(如TCP/IP协议族)的相关知识,为使学生更好掌握SDN网络相关知识,增加与传统网络运行方式的差异对比实验,这样不但使学生可以温习旧知识、学习新知识,并且针对同样的网络通信问题,让学生理解需要设计新的网络架构的必要性,使得学生掌握创新思维,为后继开展创新型研究奠定基础。
3)模块化设计实验科目,满足不同学生的个性化培养需求。
因本课程面向解放军信息工程大学所有层次、所有类型研究生开设,为满足不同层次、不同水平学生的培养需求,拟构建模块化的实践课程体系,可针对不同的培养对象和培养目标,利用不同的实践课程模块化组织实验教学。在课程实施过程中,可针对学习和动手能力较强的学生适当增加难度较大的实验科目,而针对学习和动手能力较差的学生适当降低难度,使不同的培养对象都能有所收获。另外,针对那些只是想了解和学习SDN前沿知识的学生,则适当降低难度,减少实验科目的难度和数量,使得他们也有信心学下去,而对于希望对SDN网络技术有强烈兴趣的学生,希望学到更多的知识,提高自身能力,则可布置更多的授课内容与难度较高的实验科目。
3 Mininet模拟环境介绍
斯坦福大学Nick McKeown教授带领的研究小组基于Linux Container架构,开发出了一套进程虚拟化的平台——Mininet[4]。在Mininet的帮助下,你可以轻易地在自己的笔记本上搭建一个软件定义网络,对基于OpenFlow、Open vSwitch的各种协议等进行开发验证且所有的代码几乎可以无缝迁移到真实的硬件环境中。在自己的笔记本上,就可以搭建一套媲美真实硬件环境的复杂网络,并轻松进行各项实验,一行命令就可以创建一个支持SDN的任意拓扑的网络结构并可以灵活地进行相关测试,验证了设计的正确后,又可以轻松部署到真实的硬件环境中,因此Mininet给我们提供了一个非常便捷、非常优秀的SDN网络研究与测试平台,而无需使用昂贵的专业级硬件实验平台,也避免了使用传统虚拟机搭建复杂网络环境的负担[5-6]。
Mininet作为一个轻量级软件定义网络研发和测试平台,其主要特性包括:
(1)支持OpenFlow、Open vSwitch等软件定义网络组件;
(2)方便多人协同开发;
(3)支持系统级的还原测试;
(4)支持复杂拓扑、自定义拓扑;
(5)提供Python API;
(6)很好的硬件移植性(Linux兼容),结果有更好的说服力;
(7)高扩展性,支持超过4 096台主机的网络结构。
4 软件定义网络实验课程设计概况
软件定义网络实验课程可设3种实验类型(基础型、验证型和综合型)和11个实验科目,可根据不同培养对象的不同培养需求,模块化组织实验教学内容。
1)基础型实验科目。
基础型实验主要要求学生掌握后继实验所必需的实验基础环境及基本使用方法,主要是Mininet实验环境的搭建与Mininet基本使用,详见表1。该部分实验可由学生自己选择学时数。
2)验证型实验科目。
验证型实验主要使用Mininet模拟环境对Mininet与SDN网络的特色与优势功能进行试验与验证,如特定网络拓扑绘制、二层防火墙编写、网络分割等,详见表2。该部分实验可由学生自己选择学时数。
3)综合型实验科目。
综合型实验主要针对学习兴趣浓厚、动手能力较强的学生,为其设计更复杂、更实用的实验科目,也可根据技术的最新进展引进一些技术小课题作为实验科目,需要学生独立思考、查阅文献资料、寻求解决方案,进一步提高学生解决实际问题的能力[7-8],详见表3。该部分难度较大,授课时不做硬性要求,由感兴趣的学生选做,既可抵消前面的学时,又可额外完成。
5 结 语
针对软件定义网络实验课程存在的实验科目匮乏、硬件实验环境尚难规模化部署和灵活性不足、学生上手难度大等问题,依据体现最新研究进展、增强差异对比实验、设计模块化实验科目等建设思路,通过Mininet软件模拟环境配合POX、Kinetic、Pyretic等控制器开设SDN网络环境搭建、SDN网络特定拓扑绘制、网络分割、防火墙编写等实验科目,涉及不同的培养难度和层次,充分考虑不同培养对象的个性化需求。未来,我们准备依托已成功搭建的OpenStack云平台及其支持SDN的Neutron组件扩充SDN网络实验科目。
教育期刊网 http://www.jyqkw.com
参考文献:
[1] Nick F, Jennifer R, Ellen Z. The road to SDN: an intellectual history of programmable networks[J]. ACM SIGCOMM Computer Communication Review, 2014, 44(2): 87-98.
[2] Manar J, Taranpreet S, Abdallah S, et al. Software defined networking: state of the art and research challenges[J]. Computer Networks, 2014(72): 74-98.
[3] Feamster N. Software defined networking[EB/OL]. [2014-05-26]. https://www.coursera.org/ course/sdn.
[4] 卢冀, 李艳, 郝志安, 等. 基于Mininet的SDN架构仿真研究[J]. 计算机与网络, 2014, 40(5): 57-59.
[5] 韦世红, 卢威. 基于OpenFlow的未来互联网试验网[J]. 计算机系统应用, 2013(5): 21-24.
[6] 尹雪蓉, 宋耀光, 倪巍. 云计算环境下OpenFlow网络研究与实验探索[J]. 实验室研究与探索, 2013(12): 122-125.
[7] 徐朝辉, 秦杰, 梁义涛. 学生创新实践教学体系改革的思考[J]. 计算机教育, 2012(20): 40-43.
[8] 赵姝, 张燕平, 陈洁. 如何在教学中培养本科生的科研能力[J]. 计算机教育, 2012(6): 12-15.
(编辑:赵 廓)