在线虚拟网络实验平台的设计与实现
2009-12-11王晓梅
王晓梅
摘要:本文主要针对于当前高等院校网络工程课程教学中实验环境构建的问题提出了一种解决方案,即利用Dynamips软件构建后台虚拟路由器和交换机环境,建立Web服务器实现客户端与后台的通信,构建在线虚拟网络实验平台。实践证明,在线虚拟网络实验平台可以将通用机房转换为专业的网络实验室,有效提高学生网络设备配置操作的实践技能。
关键词:在线虚拟网络实验平台;网络工程;实践
中图分类号:G642文献标识码:A
1引言
目前,各高等院校开设了网络工程专业,该专业的课程(如计算机网络,网络规划与设计等)均需要进行大量网络设备配置实验,但实验室成本对于各院校来说是一项不小的负担,建设一个40人左右规模的网络实验室,成本大约在80~100万人民币左右,这笔费用并不是每个院校都能承担的。同时,上述的实验室由于具体的实验设备还是很少,无法满足学生人手一套设备的需求,因此必须把学生分成4~5人小组进行实验。
近年来,出现了模拟软件来模拟各种实验器材、设备、实验过程以及实验环境。为高校实验教学减轻了一定的压力,如实验和实习费用不足,实验设备陈旧老化,实验场地拥挤,学生人均台、套数少,实物实验次数下降等等。其中典型的有Boson公司出品的NetSim软件和由法国人Chris Fillot开发的Dynamips软件。
Boson NetSim软件采取的是模拟设备的命令行方式,和真实的设备存在很大的差距,而且很多实验内容无法进行模拟。
Dynamips软件通过加载Cisco的IOS软件,可在一台PC上模拟多台Cisco交换机、路由器设备,其最大优势在于可自行设计网络拓扑,在PC上构建一个虚拟的网络环境,但Dynamips是一个命令行程序,在配置实验文件时需手工设置大量参数,不方便用户的使用。而且很多学校的实验室为管理维护的方便,给计算机都安装了还原保护卡,给需要修改配置参数时带来了很多不便。
针对以上问题,本文提出了建立在线虚拟网络实验平台的思路。
2系统架构
在线虚拟网络实验平台的软件体系机构是三层架构(如图1所示),即包括后台模拟器运行服务器、应用服务器、客户端三部分,采用了浏览器/服务器(B/S)的网络计算模式。应用服务器可以在网中的任何位置,运行在任何操作系统上,在处理客户端实验网络拓扑配置,完成客户端与后台模拟器运行服务器之间的通信转接。后台模拟器运行服务器采用Dynamips软件模拟实际的设备,通过采用应用服务器生成拓扑所需要的参数,管理和维护需要模拟的设备。客户端完成与用户的交互,完成拓扑网络的设计和虚拟设备的配置交互。
3客户端
3.1软件要求
客户端的软件要求:
(1) 安装有IE或Firefox浏览器;
(2) 安装J2RE 1.5版本以上插件。
3.2设计方案
客户端完成与用户的交互。由于系统采用的是B/S这种方式,客户端不需要安装额外的软件,只要能够运行基本的浏览器软件并配置相应的Java运行环境。
用户在客户端完成网络实验的拓扑结构,并在此基础上进行实验,这就带来了两个问题:
(1) 如何进行配置;
(2) 如何和后台模拟器运行环境通信。
针对问题1,通过编写Java Applet程序(该Applet后简称Applet A)来完成图形化网络拓扑配置,此外,采用Java Applet的好处还体现在便于和应用服务器实现通信。
针对问题2,通过编写另一个Java Applet(该Applet后简称Applet B)来完成与后台虚拟设备的交互配置。
为了便于用户进行相应虚拟设备数据的配置,即通过点击Applet A网络拓扑上的相应设备,能够在Applet B中进行配置窗口的相应切换,完成与不同虚拟设备之间的交互。Applet A与Applet B的配合通过两个Applet之间的通信来完成。
3.3具体实现
用户在IE浏览器地址栏中输入实验环境的URL地址。用户登录后选择进入具体的实验项目。典型的实验配置为参见图2:
当用户提交用户配置数据时,由Applet生成网络的拓扑数据,并提交给应用服务器。应用服务器将用户转至Applet B所在的配置界面,同时给出所有虚拟设备的URL地址。
例如:telnet://192.168.1.3:2001
用户在配置界面可以完成对制定虚拟设备的配置(如图3),或者通过点击URL地址链接,调用客户端默认的telnet工具访问虚拟设备。
4应用服务器
4.1软件需求
对于应用服务器的要求:
(1) 安装有J2SDK5.0以上版本;
(2) 安装有Apache Tomcat 6.0。
应用服务器采用JSP、Java Servlet技术,应用服务器系统根据功能分为用户管理模块,实验环境配置模块和仿真模块,后台环境管理模块3个子系统(参见图4)。
4.2用户管理模块
用户管理模块完成用户的登录,注册,信息修改,注销功能(参见图5)。
4.3实验环境配置模块
实验环境配置模块要完成以下3个功能:
功能1:提供客户端需要的Web页面和Java Applet程序。
功能2:对用户提交的网络配置数据处理,生成后台模拟器运行所需的配置文件,并将生成的配置文件提交给后台模拟器运行环境。
功能3:完成通信的转接,即实现客户端Applet与后台虚拟设备的通信。
上述三个功能分别由客户端交互模块,实验数据配置生成模块和通信模块完成(参见图6)。
(1) 客户端交互模块
对于功能1的实现是比较简单的,编写JSP代码实现用户页面,编写Java代码实现Applet,需要注意两个Applet之间的通信。
(2) 实验数据配置生成模块
对于功能2的实现,通过Servlet实现。对于每个用户发起的配置请求(Applet A发起),启动一个新的线程完成对用户配置数据的处理,实验数据配置生成模块生成后台模拟器运行环境的运行参数并将其提交给后台模拟器运行服务器,由后台模拟器运行服务器环境负责虚拟实验环境的建立。由于存在多个用户同时进行实验,这里需要采用多线程处理。
(3) 通信模块
对于功能3的实现,也通过Servlet实现,当功能2的Servlet完成工作后,创建一个新的线程完成Applet B与后台虚拟设备之间通信转接。
通信模块负责与客户端的通信,这里由一个线程池来完成,线程负责将Applet B发来的命令转发到后台虚拟设备上,同时将后台虚拟设备的输出转发至Applet B。
4.4后台环境管理模块
实验管理模块完成对正在进行实验的管理,清理不必要的数据。
4.5具体实现
客户交互模块根据用户提交的配置数据,启动一个新的线程完成对用户配置数据的处理,实验数据配置生成模块生成后台模拟器运行环境的运行参数并通过通信模块将其提交给后台模拟器运行服务器,由后台模拟器运行服务器环境负责虚拟实验环境的建立。由于存在多个用户同时进行实验,这里需要采用多线程处理。
生成后台模拟器运行环境的运行参数举例如下:
dynamips-wxp.exe -T 2001 -P 7200 -r 128 --disk0 4 -t npe- 400-c 0x2142 -p 0:C7200-IO-FE -p 1:PA-2FE-TX- s0:0:gen_eth:"DeviceNPF_{953246C0-1275-426B-9803-B4C