基于开源软件构建计算机网络课程的实践教学
2011-01-30齐建东袁津生
齐建东 袁津生
(北京林业大学信息学院,北京 100083)
基于开源软件构建计算机网络课程的实践教学
齐建东 袁津生
(北京林业大学信息学院,北京 100083)
在分析计算机网络课程理论课教学和实践教学特点的基础上,针对实践教学部分,阐述了使用开源软件的必要性;在详细评述各开源软件的功能和特点、各开源软件所支撑的知识点的基础上,提出基于运行在Linux平台上的开源软件的计算机网络课程实践教学方案,并以综合性实验案例为例进行了分析,以过去3年的教学反馈信息证明了该方案的可行性和有效性。
课程教学;计算机网络;实践教学;开源软件
一、计算机网络课程教学的分析
计算机网络课程的特点是实践性强,强调动手能力,复杂的理论知识要通过实验验证才能真正理解。目前,各高校计算机科学与技术专业的计算机网络课程的学时分配是理论教学50学时左右、实践教学20学时左右。在理论教学方面,基本都是以TCP/IP层次模型为主线展开的,以各层所涉及到的协议、局域网和广域网为独立章节,最后针对网络管理、网络安全等开设专题性讲座。而在实践教学方面,许多高校在硬件上共同面临的问题是实验设备短缺、数量少、类型单一,设备管理困难,无法保证每个学生使用一套由若干路由器和交换机组成的机架,从而导致学生动手实践的效果大打折扣。
以北京林业大学信息学院计算机科学与技术专业、信息管理与信息系统专业为例,计算机网络课程的学时由理论课的48学时和实践教学的1周构成。在实践教学环节的设计方面,定位了软操作与硬操作2个层面,坚持理论基础基本原则和实践训练基本原则。软操作层面的内容由Socket程序设计、协议分析 、网络服务(WWW 、DNS 、DHCP、FTP 等)的配置与运行等构成;硬操作层面的内容包括通过对网络设备操作来学习路由协议、交换、组播等知识。理论基础基本原则指构建以TCP/IP协议族为核心的Internet运行原理;实践训练基本原则指实训环节要与生产环境紧密结合。
就本文所关注的计算机网络课程实训环节而言,除了要引导学生熟悉网络程序设计、网络服务配置之外;还要紧密跟踪有影响力的Cisco、Juniper、华为等网络设备制造商,熟悉这些主流厂商的产品特点、配置操作,跟踪其技术动态、新的网络应用理念,做到计算机网络课程实践教学不脱离生产实际。做出这一考虑的原因是:计算机网络的理论和技术发展迅速,而相关教材注重讲解的是基本原理和基础协议,所以课程教学和实践单纯依靠课本是不可行的。
二、开源软件在计算机网络课程实践教学中的应用
(一)采用开源软件的必要性
在计算机软件工具的使用上,高校作为教书育人和知识服务的机构,首先应该尊重知识产权,避免使用盗版软件。教师要对知识产权受法律保护的观念有积极的态度,并且教育、引导学生使用正版软件或可替代的开源软件。鉴于教育机构本身的非盈利性质以及大学生无力购买昂贵的商业软件等因素,所以使用开源软件是非常必要的。如果计算机网络课程的实践教学大纲(或实验指导书)在软件工具的使用上涉及到商业软件并提供产品序列号,无异于间接鼓励学生使用非授权软件。因此,为了避免软件侵权,从操作系统开始,笔者就在计算机网络课程的实践教学中使用了Ubuntu Linux开源软件。
在网络硬件设备方面,受高校扩招、设备费用高、实验室占地空间大以及设备管理难度大等诸多客观因素的限制,很难实现每个学生人手一套设备的实训方式。但是,由于各高校在计算机机房建设方面已经比较成熟,所以如果能够用运行在PC上的虚拟机来仿真硬件产品,那么完全可以考虑这种替代方案。在计算机网络教学过程中,更多的教学内容是围绕加载在硬件设备中的操作系统展开的,所以只要学生看见过路由器、交换机、防火墙、服务器等硬件设备,去除掉那层神秘感,是不必过多关心设备的物理特性的。因此,只要有几套真实的设备用于为学生进行实际演示就可以了,学生的实践操作完全可以转移到虚拟机上进行,并且可以定制自己的实验环境。虚拟机的使用可大大缓解硬件设备短缺带来的困扰。
(二)构建实践教学环节的开源软件
在计算机网络课程教学过程中,应用于实践教学环节的开源软件主要有 Ubuntu Linux、Dynamips、GNS3 、VirtualBox 、PEM U、Wireshark 等 。这些软件也有Windows版本,下面逐一加以分析评述。
1.Dynamips
在Dynamips开源软件之前,用于备考CCNA/CCNP考试的网络模拟器Boson Netsim广为使用。Boson Netsim属于商业产品,需要许可授权。另外,Boson Netsim是通过硬编码方式对用户的输入做出响应,并没有加载真实的IOS,所实现的命令即用户能够操作的命令也极为有限,属模拟器范畴,与Dynamips虚拟机定位不同。与Boson Netsim工具性质相同的还有Packet Tracer、RouterSIM等。
路由协议、局域网交换、组播等计算机网络课程的理论知识较为复杂,如果没有看到实际的运行效果,学生很难理解其工作原理。Dynamips软件针对思科2610/2650/2691/3620/3640/3660/3725/3745/7200系列路由器的虚拟机,完成了对上述系列硬件产品的虚拟化;同时,Dynamips中加载的是运行在真实思科路由器中的IOS(IOS是思科公司对其加载在路由器、交换机等硬件设备中的操作系统的命名)。此外,在3600等系列路由器上软加载NM-16ESW模块,还可虚拟3层交换机的部分功能特性,但前提是所加载的IOS版本必须高于12.2(8)T。这样,完全可以在一台PC上构建一个由若干台路由器和交换机组成的复杂的网络环境,并通过拓扑搭建、配置参数、调试信息等来发现协议的工作机制和数据包的流动和传输,从而使学生深刻理解 RIP、OSPF、IS-IS、BGP、VLAN、QoS、Multicast、VPN、MPLS等专题知识。Dynamips还可以把虚拟路由器设备的以太口和物理机器上的网卡(物理网卡或Loopback网卡)桥接在一起。这样,虚拟路由器可以与真实的物理主机通信。
Dynamips开源软件的出现,对网络工程知识的深入普及意义深远,在一定程度上冲破了学校与培训机构间的界线。例如,早期思科认证培训机构的卖点之一就是拥有众多的网络设备,能够提供完整的实验环境;高校的计算机网络课程却因为没有真实的网络设备而无法讲授一些实践知识。这导致高校本科毕业生就业后还要以不菲的费用到思科认证培训机构进行二次学习。而现在,Dynamips开源软件的出现使高校计算机网络课程教学在课堂上通过一台PC就可以完整地模拟复杂的网络。
2.Dynagen和GNS3
在使用Dynamips进行虚拟仿真时,需要事先建立好网络拓扑结构。Dynamips提供的原始方式是为每个路由设备单独建立一个批处理文件,逐个编辑各文件内容来确定各虚拟设备及拓扑连接关系。而Dynagen软件解决了原始方式中批处理文件内容的书写繁琐、易于出错等问题,规定了统一的拓扑表达语法结构以编辑虚拟设备及其之间的连接关系。这样,在一个配置文件中就可完成对一个拓扑的完整表述,结构清晰,可读性强,便于排除错误。
由于Dynagen是在命令行方式下工作,所以开源社区在此基础上又开发了可视化的GNS3软件。GNS3是为了建立复杂网络拓扑结构而开发的一种可视化前端工具,通过拖拉图标方式设计并建立网络拓扑结构,比手工编辑拓扑描述文件更快捷。从软件构建层次讲,GNS3是对Dynagen的再封装。通过直观的图形界面,GNS3软件可以自动计算各设备的idle-pc值,以降低CPU使用率;对所建立的拓扑结构还可以按JPEG、PNG、BMP等格式导出,内建以太、ATM 和帧中继交换机,可实时对各种类型的底层链路(串行链路、以太链路等)进行抓包分析等。
3.VirtualBox
虚拟机的特点及优势使其在计算机网络、操作系统等课程实践教学中得到广泛使用[1-2],在单PC机上可以同时独立运行多操作系统,且各操作系统间还可以协同工作。对有关虚拟机应用于教学的论文的检索结果显示,教学在虚拟机软件的选用上,全部都是以VMware为例。但是,VMware是价格不菲的商业产品,是需要授权许可的。而笔者认为,开源软件中有同样优秀的虚拟机软件,其中遵守GPL许可的VirtualBox就有着最为活跃的开发维护社区,有Sun公司的强大支持。VirtualBox可以跨平台运行并且支持在其上安装和运行Windows、Solaris、Linux、BSD等系列操作系统。与VMware一样,在虚拟机操作系统和宿主机操作系统之间的网络连接上,VirtualBox可以提供 NAT、Host-Only、Internal Network等方式,便于架设各种需要网络连接的实验。然而,在研究中笔者发现,在CNKI中国期刊全文数据库中以VirtualBox为关键字进行检索,无命中记录;在万方数据库中同样以VirtualBox为关键字进行检索,检索结果中与VirtualBox在教学中应用有关的论文数目为零。
4.PEMU
PEMU是一个基于开源的Qemu模拟器的思科防火墙模拟器和虚拟机。PEMU的最初版本仅支持Linux平台,其官方发布有“PEMU-Pix Emulator on Linux”的提法。与Dynamips一样,PEMU是真正意义的虚拟机。在PEMU中运行的是加载在真实物理设备思科PIX防火墙中的操作系统,目前支持Pix633、Pix635、Pix721、Pix722和 Pix802。PEMU 可提供多个物理接口,而在实验环境下通常只需使用3个,分别作为内网接口、外网接口、DMZ接口。在应用PEMU的过程中,可以结合使用Openvpn(当前最新版本2.1.1)来生成TAP网卡,使用BES(当前最新版本1.3.8)来限制CPU使用率。在计算机网络课程中的网络安全实践教学中,PEMU可以在防火墙知识的实践操作环节发挥更全面的实训作用。
5.Wireshark
通过捕获网络数据包并对其加以分析,可以直观地审视TCP/IP协议族中各层协议的工作机制,对各种协议的报文封装格式有清晰的认识。网络协议分析软件的功能是截取网络数据包,并显示出数据包的数据封装细节及各报文之间的相互关联,由此可直观理解诸如TCP连接建立过程中的3路握手、ARP协议在数据包从3层到2层的封装过程中所起的作用、FTP的连接过程等抽象的表述。目前,在商业产品中有价格昂贵的Omnipeek、Sniffer等软件。在开源软件中,使用最广泛的是遵守GPL许可的Wireshark,其前身是Ethereal。Wireshark可以分析的网络协议有近千种,并可以跨平台运行。从协议的3要素语法、语义和时序层面上看,Wireshark可以很好地从语法(即报文封装)角度来理解各协议。康奈尔大学等国外高校在计算机网络课程的教学中也采用Wireshark软件进行协议分析[3]。前文提到的在GNS3环境下的针对各种链路的抓包分析,缺省用的就是Wireshark。商业产品更多的亮点是针对已捕获的数据包进行人工智能分析,即数据的再处理。而单纯从抓包以及对数据包进行简单分析的角度,Wireshark完全可以胜任教学、协议学习的要求。
6.其他软件
除了上述虚拟机及协议分析工具外,可以推荐学生使用并运用于计算机网络课程实践教学的开源软件还包括:用于计算机网协议仿真的Omnet++、NS2,用于虚拟 Juniper路由器的 Olive,用于Web服务器的Apache、Tomcat;优秀的数据库系统Mysql、Sqlite;开源社区里优秀的程序设计语言Python、Ruby。此外,FTP服务器FileZilla Server可以用以替代Windows平台的Server-U等商业产品;用于telnet/ssh登录各虚拟路由器的Putty,可以替代商业产品SecureCRT;FTP客户端SmartFTP可以替代Windows平台的Cuteftp等商业产品。
另外,由于上文提到的一些商业软件一般都提供试用版下载,所以从了解商业产品特性、产品层次定位、考察产品功能需求、跟踪了解新技术应用等角度考虑,下载试用版也是值得推荐的。不管是从学习角度,还是从实际应用出发,计算机网络课程实践教学并不是一概排斥商业软件产品,但是要牢记一点的是商业产品的知识产权是受法律保护的。
三、基于开源软件的计算机网络课程实验案例的设计及分析
图1 使用GNS3绘制的网络拓扑
图1的拓扑是使用可视化工具GNS3设计并绘制的,给出的是一个虚拟实验平台,也被称为“万能”拓扑。通过启用或关闭R1-R5与交换机SW1连接的以太接口,可以演变出非常多的逻辑拓扑结构。而不同的逻辑拓扑可以验证路由协议(RIPv2、OSPF、IS-IS)在不同网络拓扑环境下的工作机制细节。限于篇幅,本文未给出详细的配置过程,将另撰文叙述。
基于“万能”拓扑设计的综合实验,实验内容和考察目标应该包括:①Ubuntu Linux环境下安装配置VirtualBox,并在VirtualBox中运行操作系统;②配置VirtualBox和宿主机操作系统的连通性;③配置guest os和路由器以太口的桥接;④使用GNS3构建网络拓扑,并启动R1-R5;⑤使用Putty工具telnet登录到 R1-R5,进行网络协议(RIP、OSPF、IS-IS)配置等,使每一种路由协议的配置、调试等都对应着详尽的实验指导;⑥在guest os1上ping通guest os2,测试网络连通性。
四、总结与展望
优秀的开源软件可以很好地服务于计算机网络课程的理论教学和实践教学,尤其是可以为实践教学的创新和改革提供一条有效的途径。本文探讨的由开源软件构建的实践教学方案已在教学中得到实际运用,笔者还基于此编制了完善的教学大纲和实践指导教材。笔者所讲授的计算机网络课程取得了良好的教学效果,不仅在北京林业大学 2007—2008、2008—2009学年的教学质量评价中连续2次名列实践课类别的学院第1名;更为重要的是激发了学生的学习兴趣,使学生能够不受时间、设备的限制,通过定制属于自己的实验环境来验证所学的课程理论知识。
[1] 吴宁.基于VMware实现计算机网络实验[J].教育信息技术,2009(1):52-54.
[2] 周翔鹰.基于Vmware构建虚拟计算机网络实验[J].实验室研究与探索,2006,25(7):809-812.
[3] JEANNA MA TT HEWS.计算机网络实验教程[M].李毅超,译.北京:人民邮电出版社,2006:46-48.
北京林业大学“211工程”3期研究生创新人才培养建设计划子项目。
(责任编辑 柳小玲)