软件定义网络的实验教学方案设计

2017-04-12 02:02黄家玮刘敬玲徐文茜李又明王建新
计算机教育 2017年3期
关键词:网络拓扑交换机数据包

黄家玮,刘敬玲,徐文茜,李又明,王建新

(中南大学 信息科学与工程学院,湖南 长沙 410083)

实验与实训

软件定义网络的实验教学方案设计

黄家玮,刘敬玲,徐文茜,李又明,王建新

(中南大学 信息科学与工程学院,湖南 长沙 410083)

以控制器集中控制交换机数据转发的实验为例,展示基于真实操作系统内核的轻量级虚拟实验平台的网络拓扑配置、路由配置和用户交互流程,具体介绍实验方案、设计思想和实验过程。

软件定义网络;虚拟化;Mininet;实验教学

1 背 景

软件定义网络(Software Def ned Networking,SDN)是一种新型的网络架构,针对传统网络中硬件设备繁杂、网络配置麻烦、迭代升级缓慢的问题,将传统网络设备分离成集中式的控制平面和分布式的转发平面,通过集中式的控制器(Controller)以标准化的接口对各种网络设备进行管理和配置[1]。软件定义网络的核心在于利用软件编程技术,为网络提供灵活的可编程能力,具有集中统一管理网络、监管动态流量、部署自动化的特点。因此,作为目前学术界和工业界的热点,软件定义网络逐渐被引入计算机科学与技术、网络空间安全等相关专业的知识体系中,成为本科和研究生计算机网络课程的一个重要教学内容[2]。

软件定义网络的实验教学需要良好的硬件支持,以提供网络编程和操作的实验环境,但现在支持软件定义网络功能的硬件设备相对昂贵,在有限的资金投入下,很难开展大规模的课程实验。同时,目前采用硬件设备的实验也存在灵活性受限的问题,学生难以深入进行实践操作,最终影响了教学效果。

为帮助学生掌握软件定义网络的工作原理,笔者利用Mininet[3]网络模拟软件,搭建基于真实操作系统内核的轻量级虚拟实验平台,提供配置灵活、扩展性强、价格低廉、可重复性的软件定义网络实验环境。学生可以通过简单易操作的实验,理解软件定义网络架构,掌握其工作流程。

2 软件定义网络实验模拟软件

目前,软件定义网络的实验模拟软件主要是Mininet和NS3[4]。两种软件各自具有以下的功能特点。

Mininet基于 Linux Container 架构,是斯坦福大学Nick McKeown 教授领导的研究小组开发进程虚拟化的实验平台,可以在计算机上模拟完整的网络主机、链路和交换机。Mininet支持OpenFlow[5]、OpenSwitch[6]等各种软件定义网络的协议,提供一个低成本软件定义网络仿真实验环境,目前被作为OpenFlow协议演示和测试的官方演示平台。同时,Mininet还配备了WireShark抓包软件,方便开发者和学习者进行开发和研究。

NS3是一个面向离散事件的经典网络仿真器,由C++和Python语言编写,包含了许多开发模块,以支持多种协议栈的开发。目前,其最新版本已经支持软件定义网络的OpenFlow协议,可以方便地创建模拟一个OpenFlow环境,用于网络实时模拟。

NS3的软件定义网络控制器是其自主开发,缺乏灵活性;而Mininet除了可以使用其内部嵌入的控制器,还可以灵活地加载其他控制器。同时,相对Mininet轻量级的模块库,NS3模块库过于庞大。此外,Mininet还提供Python API,能简化在实际开发研究过程中涉及底层代码的修改等操作。因此,我们选择采用Mininet平台来进行软件定义网络的模拟实验。

3 实验方案

3.1 实验目的

我们基于Mininet平台,设计了“软件定义网络控制器的数据包转发控制”实验。实验的目的是帮助学生熟悉Mininet网络模拟平台,理解控制器的工作流程,掌握网络拓扑的创建过程和联通测试方法。

3.2 实验内容和原理

实验主要内容如下:①利用脚本语言创建网络拓扑;②测试网络的联通性;③配置OpenDayLight控制器,编辑交换机转发表项。实验原理主要是通过网络控制器对交换机的转发表进行编辑,控制软件定义网络的数据包转发。

3.3 实验环境

实验环境包括部署在同一个网段内的两台虚拟机,分别部署OpenDayLight控制器和Mininet模拟器。网络中还有三台互连的虚拟交换机s1、s2、s3,形成一个环路。每台交换机上连接一台主机,以方便测试所需。

3.4 实验过程

3.4.1 创建拓扑

Mininet模拟器使用Python脚本完成实验配置,在导入常见的功能和辅助模块后,创建网络拓扑。网络拓扑定义为MyTopo类,使用形如h1 = self.addHost(‘h1’) 代码创建三台主机h1、h2和h3,使用形如s1 = self.addSwitch(‘s1’) 代码创建三台交换机s1、s2和s3,使用形如self. addLink(s1,s2)代码添加链路s1-s2、s1-s3、s2-s3、h1-s1、s2-h2和s3-h3。最终,可以开启控制器服务,通过OpenDayLight的Web UI可以查看网络拓扑结构(见图1)。

图1 OpenDayLight控制器显示的网络拓扑

3.4.2 连通测试

在Mininet模拟器上执行pingall命令,测试主机间的联通情况。从图2可知,Mininet上执行pingall后,所有主机间均相互联通。

图2 第一次pingall后终端显示结果

查看交换机的转发表,可以看到每台交换机都出现3条转发表项,分别是指明目的地址为h1、h2、h3 3台主机转发路径,这说明已经成功建立实验场景。

3.4.3 转发控制

我们通过控制器对交换机的转发行为实施控制,通过OpenDayLight控制器的web UI,对交换机s1增加了一条新的转发表项。该转发表项将丢弃发往端口3的所有数据包。

在交换机s1中,目的地址为主机h3的数据包是经由端口3转发出去,而新增的转发表项将会丢弃此类数据包。因此,当此时Mininet模拟器再次执行pingall指令后,h1与h3无法互相联通,其结果如图3所示。这说明控制器在交换机上新增的转发表项已经截断了交换机s1与s3之间的直通链路。

图3 增加新转发表项后pingall结果

对于传统网络的交换机而言,交换机是通过“学习”知道网络中主机的位置,从而更新自己的转发表,并转发数据包。而从以上的实验结果可以看出,在软件定义网络架构中,交换机上的转发表是通过控制器进行管理操作的,交换机仅负责在数据平面转发数据包。这也就实现了数据平面和控制平面的分离。

4 结 语

在基于Mininet的软件定义网络实验中,学生利用虚拟环境可以灵活、简便、快速地搭建实验网络环境,开展面向Linux操作系统内核和真实网络操作的课程实验,不但可以深入理解软件定义网络架构和工作原理,还可以直接进行网络设备操作,在知识掌握和应用能力方面都得到了有效的提升。

[1] 张朝昆, 崔勇, 唐翯祎, 等. 软件定义网络(SDN)研究进展[J]. 软件学报, 2015, 26(1): 62-81.

[2] 张连成, 奚琪, 郭毅, 等. 基于Mininet模拟环境的软件定义网络实验课程设计[J]. 计算机教育, 2015(6): 104-107.

[3] Lantz B, Heller B, McKeown N. A network in a laptop: rapid prototyping for software-def ned networks [C]// Proceedings of the 9th ACM SIGCOMM Workshop on Hot Topics in Networks. New York: ACM, 2010: 1-6.

[4] The network simulator[EB/OL]. (2013-02-10)[2015-04-10]. http://www.isi.edu/nsnam/ns.

[5] McKeown N, Anderson T, Balakrishnan H, et al. OpenFlow: Enabling innovation in campus networks[J]. ACM SIGCOMM CCR, 2008, 38(2): 69-74.

[6] OpenFlow switch specif cation, version 1.4.0[EB/OL]. (2013-05-10)[2015-04-10]. https://www. opennetworking.org/.

(编辑:史志伟)

1672-5913(2017)03-0152-03

G642

国家自然科学基金项目“数据中心网络中延时敏感的传输控制机制研究”(61572530) ;赛尔网络下一代互联网技术创新项目“基于IPv6的数据中心网络传输控制机制研究”(NGII20160113);湖南省普通高等学校教学改革研究项目“网络空间安全专业课程的虚拟实验教学研究与实践”。

黄家玮,男,教授,研究方向为计算机网络理论,jiaweihuang@csu.edu.cn。

猜你喜欢
网络拓扑交换机数据包
面向未来网络的白盒交换机体系综述
基于通联关系的通信网络拓扑发现方法
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
局域网交换机管理IP的规划与配置方案的探讨
更换汇聚交换机遇到的问题
基于地铁交换机电源设计思考
能量高效的无线传感器网络拓扑控制
C#串口高效可靠的接收方案设计
2017款捷豹F-PACE网络拓扑图及图注