基于虚拟机和软件路由器的组播实验网络研究
2013-04-25许翔宇李隐峰
许翔宇,李隐峰,董 涛
(西安电子科技大学 电子工程学院,陕西 西安710071)
随着科技的发展,虚拟化、软件路由、组播网络等新兴技术发展逐渐成熟,在计算机网络领域产生了较大的影响。许多单位、企业需要组建内部网络,实现数据共享,并在此基础上实现如视频会议、在线音视频播放等功能。为实现网络的充分利用和数据的高效传输,在虚拟化、软件路由的基础上搭建组播网络是一个理想的选择。
1 技术概述
1.1 虚拟化技术
虚拟化技术是云计算的基础,将原本直接安装在个人计算机硬件上的OS转换为虚拟机,在一台实体机器上同时运行多个不同的操作系统[1]。文中采用VMware公司的虚拟操作系统ESXi5.0,通过配套的VMware vSphere Client 5.0控制虚拟机及其子操作系统的安装和网络配置。
1.2 Router OS软件路由器
Router OS是一个基于Linux的路由操作系统,可以安装在计算机硬件上作为一个普通路由器。软件经历了多次更新和改进,使其功能不断增强和完善。特别在无线、认证、策略路由、带宽控制和防火墙过滤等功能上有着突出的功能[2]。
文中使用的是ROS3.30版本,并安装Multicast组播功能包,设置其组播功能。在虚拟机上安装6个ROS路由器,通过ESXi内部网络设置搭建一个组播网络[1]。
1.3 组播网络
组播是主机之间“一对一组”的通讯模式,加入了同一个组的主机可以接收到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择地复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯[3]。
组播网络中有几个比较重要的协议,如IGMP(组播管理协议)、PIM-DM(协议无关组播密集模式)、PIM-SM(协议无关组播稀疏模式)等[4]。
文中通过2种方法测试组播网络:(1)通过组播测试工具Wsend和Wlisten,在服务器端利用Wsend发送组播数据包,在客户机端利用Wlisten接收组播数据包,查看接收速率和掉包率等,以判断组播网络的连通性和稳定性。(2)利用视频播放软件VLC在服务器端搭建视频服务器,并发送组播数据包,同时在多个客户机端输入组播地址收看视频,查看视频播放情况。
2 搭建组播网络
2.1 在虚拟机上安装操作系统
ESXi5.0安装好之后,通过vSphere Client登录到管理界面,创建操作系统,在操作系统安装完成后,仍可以通过管理工具修改操作系统上硬件的数量和参数。安装好6个ROS系统、1个基于Windows Server 2003的视频服务器、3个基于Windows Server 2003的客户机。
2.2 组播网络拓扑
虚拟设备网络连接如图1所示,每个ROS都有2个网卡,每个终端都有一个网卡,根据设计的设备连接图,配置虚拟机的网络。ESXi的网络设置中,将每个实体网卡当作一个交换机,虚拟的操作系统通过交换机组建内部网络[1],设置好的网络如图2所示。
图1 虚拟网络设备连接图
图2 ESXi5.0内部网络配置
2.3 连通内部网络
配置好网络后,需要配置各ROS及主机客户机的IP地址,以达到主机与客户机的数据连通[2],如图3所示。
图3 IP地址配置
根据设计好的IP地址,登入ROS操作系统内部配置好相对应的IP地址。并在路由器上指定相应的IP网关。各ROS路由器及客户机的网关如下
ROS1:192.168.1.1;ROS2:192.168.2.1;ROS3:192.168.2.1。
ROS4:192.168.2.1;ROS5:192.168.3.1;ROS6:192.168.5.1。
Client1:192.168.4.1;Client2:192.168.6.1;Client3:192.168.7.1。
设置好IP地址及网关后,仍需要设置各路由器的网络地址转换(NAT)的方式,将所有路由器IP模块的firewall中nat部分设置为chain=srcnat,action=masquerade[2]。
登入每个路由器及客户机中,使用ping命令连接服务器的IP地址,全部可以ping通,至此ROS路由器的初步设置基本完成,在此基础上进行组播网络的配置。
2.4 组播配置
组播网络中需要将一个路由器设置为RP汇聚点(Rendezvous Point),其作用是告诉周围路由器组播源的方位,从而形成一个从组播源到接收者的通道[4]。本文将ROS1作为整个组播网络的RP,其他的路由器通过ROS1访问组播源。
文中ROS3.30采用PIM-SM稀疏模式协议和IGMPv2协议。安装好multicast扩展包之后,在routing模块中的PIM进行设置,具体设置如下[5]。
设置ROS1:
[admin@ROS1]>routing pim interface add ether1,ether2//使ether1和ether2支持PIM和IGMP协议
[admin@ROS1]>routing pim interface p//查看各网卡及其支持的组播协议
[admin@ROS1]>routing pim rp add address=192.168.1.251 group=239.255.255.0/24//设置组播网络的RP,并设置IP地址为ROS 1上ether1的IP地址,并划定了组播地址范围。
其他5个ROS的设置基本相同,需要在设置RP时将RP的IP地址写为ROS1的ether1的地址192.168.1.251。当所有的路由器设置完成后,组播网络搭建完毕。
3 组播网络运行及测试
3.1 利用组播工具测试网络连通性
在路由器的配置阶段,已经证实了各子网间的连通性,需要测试的是组播网络是否已经正常工作。在视频服务器Video Server上运行Wsend程序,添加一个组播地址,这个地址需要在之前设置的RP的组播组内。设置过程如图4所示。
图4 设置Wsend发送组播数据包
在客户机Client1上运行Wlisten程序,设置要接收数据包的组播地址。设置过程如图5所示。服务器Video Server上Wsend程序开始发送数据包,如图6所示。
图5 设置Wlisten接收组播数据包
图6 Wsend发送组播数据包
客户机Client1上Wlisten接收组播数据包,如图7所示。
图7 Wlisten接收组播数据包
可以看到,数据包的延迟微小,丢包率几乎为0,说明此组播网络稳定。另外2个客户机的测试方法和Client1相同,经过测试,组播网络已经连通,效果较为理想。
3.2 利用VLC测试组播网络上的视频播放
本文使用一个开源视频播放软件VLC video player,它既是一个视频播放器,也可以通过配置,作为一个视频服务器,发送视频数据,从其他客户端接收数据,实现实时的视频数据传输。
将本地视频文件通过组播方式将视频流发送出去的设 置 为:File——Wizard——Stream to network——Choose——从本地选择相应的视频文件——选择Streaming method为UDP Multicast,组播地址为239.255.255.254,默认端口1234——转码格式为MPEG TS——Time-to-Live(TTL)设 为128——Finsh。还需要在Setting——Preferences——Sreaming Output中将Time-to-Live设置为128。
设置完成后,服务器端视频播放不显示,只显示进度条,如图8所示。
图8 视频服务器开始组播视频传输
在客户机Client1端,打开VLC播放器,输入组播播放地址,File——Open Network Sream在Network选项中选择UDP/RTP Multicast,IP地址239.255.255.254,Port1234——Finsh。设置完成后开始播放视频软件,如图9所示。
图9 客户端组播视频播放
其他客户端Client2,Client3与Client1设置完全相同,经过测试,均可正常播放。测试视频播放的流畅度方面,采取的方式是对视频文件在本地直接播放的速率、组播服务器发送组播视频流的速率及客户端接收视频流的速率进行对比。
如图10~图12所示,组播视频服务器的输入比特率为1 171 kbit·s-1,而客户端接收组播视频的输入比特率为900 kbit·s-1,说明在传输过程中,视频的传输速率降低很小;客户端播放过程丢帧数很小;经过长时间的播放,视频出现的卡顿现象较少。以上现象都说明视频数据在组播网络的传输较顺畅,视频播放效果良好。
图10 视频文件本地播放信息
图11 组播视频服务器视频流信息
图12 客户端接收组播流视频信息
测试视频服务器的负载方面,对视频服务器的CPU负载进行记录:当3个客户端同时采用点播方式播放视频流时,视频服务器的负载达到100%;当3个客户端采用组播方式播放视频流时,视频服务器的负载约降低了80%。这说明组播对视频服务器的负载有一定的减小。当组播网络进一步放大,有更多的路由器、服务器、客户端时,对服务器负载减小、视频流传输的速度将会有更大的提升,组播的优势也会更明显地显现出来。
4 结束语
虚拟化、软件路由、组播网络都是近些年来发展较为迅速的技术,文中将这3种技术结合,提出了一种组播的解决方案,并进行测试。用较小的成本实现了组播网络,具有一定的实用性。从实验结果来看,方案较好地完成了预期的目标,由于将数据传输的负载转移到了路由器上,大幅减轻了视频服务器的负载,证实了组播网络对多用户视频播放性能有较大的提升。
[1] 熊信彰.VMware vSphere 4云操作系统搭建配置入门与实战[M].北京:中国水利水电出版社,2011.
[2] 崔北亮.Router OS全攻略[M].北京:电子工业出版社,2010.
[3] 周贤伟,杨军,薛楠,等.IP组播与安全[M].北京:国防工业出版社,2006.
[4] 岩延,郭江涛.组播路由协议设计及应用[M].北京:人民邮电出版社,2002.
[5]Mikrotik Conpration.Router OS multicast detailed example[EB/OL].(2009-08-12)[2012-05-19]http://wiki.mikrotik.com/wiki/Manual:Multicast_detailed_example.