肖长水,周志涛,沈萍萍,刘 东
(苏州市职业大学 计算机工程系,江苏 苏州 215104)
随着互联网络快速发展,基于IPv4协议的互联网在应用中出现如地址数量匮乏、移动支持不够、无安全和服务质量保证等弱点.针对IPv4在设计上的缺陷,新的面向下一代互联网络IP协议—IPv6已经被开发完成,并付诸实践应用[1-2].
第二代中国教育和科研计算机网CERNET2于2004年3月19日正式开通,成为中国下一代互联网示范工程CNGI最大的核心网和唯一的全国性学术网,也是当时所知世界上规模最大的采用纯IPv6技术的下一代互联网主干网[3].“中国下一代互联网示范工程CNGI示范网络核心网建设项目CNGI-CERNET2/ 6IX”于2006年9月通过国家鉴定验收,是目前世界上规模最大的纯IPv6大型互联网主干网[4].目前,已经有200多个大学和科研单位的IPv6用户网连接了CNGI-CERNET2主干网,而高职高专院校尚未接入,也不具备接入条件,这势必影响到IPv6网络知识的普及.为了能让高职高专院校学生也能学习纯IPv6网络知识,在此给出了搭建一个纯IPv6实验床的方法,并给出了实验床测试结果和IPv6服务器的运行实验.由于使用纯IPv6路由器需要更多经济上的花费,在该实验床中使用路由器模拟软件Zebra和一台普通PC来配置一个纯IPv6路由器.
基于IPv4协议的现有互联网络存在的主要技术缺陷是IP地址短缺,且即将耗尽;IP层无安全保障,且无服务质量(QoS)保证,对数据流的支持不够;此外,网络配置复杂,对移动的支持不够.针对以上技术缺陷,IPv6协议作了相应的改变,形成了如下新的特点[1-2].
1) 增加了IP地址的位数,从IPv4协议的32位地址增加到128位地址,庞大的地址数将支持未来网络快速发展;
2) 增加了对IP层安全的支持,把IPsec协议作为强制执行的安全协议集成在IPv6协议中;
3) 增加了服务质量(QoS)保证,实现了对不同数据流的分类支持,有效地提高了网络数据吞吐量;
4) 简化了网络层协议,并增加了对移动支持的移动IPv6协议(MIPv6);
5) 取消了复杂的网络配置,实现了网络设备的即插即用.
在现代的分组交换网络中,路由技术是关键技术.所谓路由就是分组数据从信源节点经过有选择的网络节点到达信宿节点.
1.2.1 静态路由与动态路由
路由技术根据配置方式主要分为静态路由和动态路由两种,在实际应用中又分别具有如下特点.
静态路由是用户通过在网络节点之间定义明确的路径,进行手动配置的路由.静态路由具有简单、高效、可靠的优点,一经配置就可以进行最高优先级的运行.但是,如果网络拓扑发生变化,则网络的互通将受到破坏,需要进行重新配置,这就是其缺点所在.
动态路由是网络上的路由设备在无需人工干预的情况下,根据收到的路由信息自动更新路由表,从而实现网络节点之间的互通.动态路由的优点就是自适应性,当网络拓扑发生变化时,对网络的互通性影响甚微.
1.2.2 IPv6中路由协议
基于IPv6协议的路由技术在技术上没有出现根本性的变化,而是以IPv4协议的路由技术为基础,根据IPv6协议的特点作了适当的改进.根据路由协议工作原理的不同,路由协议可以分为距离向量型路由协议和链路状态型路由协议两种.在IPv6中,典型的距离向量路由协议有RIPng;典型的链路状态路由协议有OSPFv3.相比IPv4的路由协议,这两种协议在IPv6中作了较多的改动,是全新版本.
RIPng使用与IPv4的RIPv2协议相同的计时器、过程处理和消息类型.但是,RIPng对原有的RIP协议进行了以下修改:①使用UDP的521端口发送和接收路由信息组播地址;②使用FF02::9作为链路本地范围内的RIPng路由器组播地址路由前缀;③使用128 bit的IPv6地址作为路由前缀,等等.
OSPFv3对IPv4的OSPFv2进行修改,但是保持IPv4的OSPF基本原理不变.OSPFv3是IPv6使用的链路状态路由协议,是IPv6网络中的主流和核心路由协议.在IPv6中,设备之间的数据链路层通信通过链路来进行,路由器通过接口连接到链路;一个链路上可以分配多个IPv6子网即IPv6前缀,同一个链路上的两个节点即使不具有相同的IPv6前缀,也可以直接通过这个链路通信.
实现实验床的关键技术是在2台双网卡PC上安装开源软件Zebra配置成软件模拟路由器.在实验床上进行网络测试,对内部用户访问IPv6的FTP服务器及Web网页等,为顺利过渡到IPv6并熟练掌握IPv6技术打下基础.
该实验床的拓扑图结构由1台服务器、2台双网卡PC机、1台交换机、2台客户端PC机组成.实验床的地址划分为:服务器的IPv6地址为2010:aa3::2/48,与服务器相连的是PC机B的eth1接口,其IPv6地址为2010:aa3::1/48.PC机B的eth0接口与PC机A的eth1接口相连接,IPv6地址分别为2010:aa2::2/48、 2010:aa2::1/48.PC机A的eth0接口与交换机相连.在交换机上分别接上几台PC作为客户端,IPv6地址前缀为2010:aa1::/48,如图1所示.
2.2.1 配置前的准备
该IPv6实验床中的模拟路由器均采用Linux操作系统,在该操作系统中安装配置Zebra,配置过程中需要使用Linux相关的命令和配置文件[6-7].在实验前为了确保Linux主机已经开启IPv6模块,并能正确地转发IPv6数据包,需要作如下的配置:
1) 实验床中的双网卡PC机都安装Linux系统,Linux版本为Fedora 11,内核为2.6.29.4,已经内嵌IPv6模块无需重新编译内核,只需修改/etc/modules.conf配置文件,在配置文件中加入1行alias netpf-10 ipv6.
2) 在开机的时候启动IPv6网络,具体方法为修改/etc/sysconfig/network,添加三行命令:
3) 启动系统之后,使用ifconfig-a命令查看,即可看到IPv6信息.服务器端采用Windows server 2003系统.
4) 为了使网卡转发IPv6数据包,必须在PC路由器 A和B上打开数据包转发功能,命令如下:
其功能为:取出目录/proc/sys/net/ipv6/conf/all下文件forwarding的数据,若为“0”,则证明包转发没有打开,输入数据“1”该文件即可打开.同时修改各网卡的配置文件,在配置文件中加入IPv6FORWARDING=yes,保证每次开机启动时IPv6数据包转发功能自动打开.
2.2.2 软件模拟路由器的配置
路由器的配置可以采用两种方法:Linux主机路由器和第三方软件配置模拟路由器.两者的区别在于,前者用于配置静态路由器,需要每次手动配置路由器信息,功能较弱;后者可用于配置动态路由器,只需要执行软件即可实现路由功能,可模拟硬件路由器功能,功能较强.
1) 利用Linux主机路由配置静态路由.由于以链路本地地址为目标的数据包不能通过路由器,而又因为每台PC可以拥有多个不同的IPv6地址,所以必须先给每块网卡添加上一个非链路地址.
执行的命令为
服务器 2010:aa3::2/48
由于使用终端模式配置的IPv6地址只是临时生效,为了使IPv6地址永久存在,必须修改网卡的配置文件.以PC机A为例:
网卡eth0的配置文件是:/etc/sysconfig/network-scripts/ifcfg-eth0,在配置文件中添加2行命令: IPv6INIT=yes; IPv6ADDR=2010:aa1::1/48.
接下来配置静态路由,利用Linux主机自带的路由功能,命令格式为:“route-A inet6 add 目的网络号/前缀 gw 下一跳地址”.
PC机A:
# route -A inet6 add 2010:aa3::/48 gw 2010:aa2::2
PC机B:
# route -A inet6 add 2010:aa1::/48 gw 2010:aa2::1
2) 运用模拟路由软件Zebra配置动态路由.在PC路由器A和B上分别安装开源软件Zebra[7],在Zebra中配置IPv6地址,利用软件实现路由功能,以PC机A为例:
① Zebra软件安装.
# gunzip zebra-0.95a.tar.gz
# tar xvf zebra-0.95a.tar
# ./configure
# make
# make install
“#./configure”命令用来检测安装平台的目标特征;“# make”命令用来从Makefile中读取指令,然后编译;“# make install”命令用来安装,也从Makefile中读取指令,安装到指定的位置.
② Zebra模块配置.Zebra采用模块的方法来管理协议,可以根据网络需要启用或者禁用协议,安装完成之后配置样本文件位于/usr/local/etc中.由于Zebra各个模块运行时需要事先定义相应的配置文件,故直接使用样本配置文件配置即可,配置文件位于/usr/local/etc文件夹中.本实验用到的配置文件为zebra.conf.sample和ripngd.conf.sample.
# cd /usr/local/etc
# cp zebra.conf.sample zebra.conf
# cp ripngd.conf.sample ripngd.conf
依据学生需求和混合式教学模式特点,笔者在授课班级任务布置时,课前占有很大比例,图中显示:学生需要在课前完成以下五方面任务。第一,欣赏一段关于开罗的视频,其原因是用英语(无字幕)感知相关地域的词汇,初步导入课文的场景;第二,精读三篇关于名人的短文,短文的选取均是叙述性描写,而且也是学生非常喜爱的一些明星的国外报道和采访英文版;第三,由上述三篇短文和相关网络搜索概括什么是叙述性描写,它有什么样的特征,以及学生书写时的注意事项等;第四,为整理预习整个单元所遇到的不解之处,以备课上答疑提问;第五,泛读四篇大文章,文章的主人公是来自不同国家、不同文化的四位女性。任务是让同学们对比四篇文章的异同。
Zebra安装完成之后,会自动在系统的服务文件中添加用于管理的端口号,本实验中使用到的端口为Zebra的2601和ripngd的2603端口.
使用zebra-d命令启动Zebra模块,使用命令telnet localhost 2601进入Zebra的配置界面.Zebra的缺省的密码为zebra,具体配置eth0端口的命令如下:
其中copy running-config startup-config命令为保存当前配置信息.其他端口的配置方法与此类似,在/usr/local/etc/zebra.conf文件中记录刚才的配置信息.
③ ripngd配置过程.使用命令ripngd-d启动ripngd模块,然后使用命令telnet localhost 2603进入ripngd配置界面.具体配置过程为
打开/usr/local/etc/ripngd.conf 配置文件可以看到刚才配置的信息已经成功写入.
至此,基于Zebra软件的PC机A的软件模拟路由器已经配置完毕.以同样的方法再配置PC机B,即完成实验床的模拟路由器配置.
使用协议分析软件Wireshark对Web服务器进行测试.Wireshark的界面主要分为4个部分:第一部分主要包括菜单栏、常用的工具栏以及显示过滤器;第二部分为封包列表;第三部分为封包详细信息;第四部分为16进制数据.
如图2所示,图中第9个数据包是服务器返回给客户端的数据包,通过封包详细信息可以看出,当服务器接收客户端发送的连接请求,服务器决定接受该连接,然后返回Syn的Ack信号为1.图中的详细信息说明了数据包的源地址和目的地址以及端口号,图中的version:6说明IPv6协议已经成功运行.第10个数据包表示TCP“三次握手”完成,即将开始建立HTTP连接.
图2 IPv6实验床的协议测试
基于IPv6协议的下一代互联网还没有得到广泛的应用,而在未来两年随着IPv4全球地址的分配日趋紧张,将会加速推动IPv6网络的部署.因此,对于IPv6技术的实验研究及其知识普及也显得相当重要.要组建一个纯IPv6的真实网络,需要花费很高的经济代价,而通过开源软件模拟IPv6路由器搭建纯IPv6的实验网络,具有经济成本低、实用性强的特点,可以将IPv6实验床应用到实践教学环节中.在现有的IPv6实验床上进一步进行实验研究,以掌握IPv6的新技术和开发新的IPv6实验项目.
[1] 李振强,赵晓宇,马严.IPv6技术揭秘[M].北京:人民邮电出版社,2006.
[2] 王相林.IPv6技术—新一代网络技术[M].北京:机械工业出版社,2008.
[3] 吴建平.下一代互联网研究与CNGI-CERNET2 [EB/OL].(2005-11-08)[2010-06-25].http://www.edu.cn/20051108/3159304.shtml.
[4] 中国教育和科研计算机网.CERNET2详细介绍[EB/OL].(2010-04-26)[2010-07-20].http://www.edu.cn/internet2_1340/ 20100426/t20100426_469168.shtml.
[5] 刘晓辉,陈宏彬.Red Hat Linux服务器管理及配置实战详情[M].北京:化学工业出版社,2010.
[6] 姒茂新,陈英.Linux中文版应用基础[M].北京:电子工业出版社,2005.