俞 海
(绍兴文理学院 计算机科学与工程系,浙江 绍兴312000)
随着计算机网络在各行业的快速发展与应用,对计算机网络的可靠性、稳定性要求日益提高,特别是网络出口路由器[1]的稳定运行,关系到整个企业网、校园网[2]的可靠程度。虚拟路由冗余协议(Virtual Router Redundancy Protocol-VRRP)可以在第一跳路由器使用失败时维护路由器间的连通,确保网络稳定可靠的运行[3-4]。本文在GNS3环境下进行VRRP原理实验,然后分别进行了命令验证和应用场景验证,通过由表及里的验证过程,有助于学生从不同角度理解VRRP原理及应用。
(一)VRRP
VRRP协议可以把两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器一个或多个IP地址,其中状态为MASTER的路由器实现对虚拟路由器IP的各种网络功能,如ARP请求、ICMP、以及数据转发等;其他不拥有该IP地址的路由器,状态为BACKUP,它们除了接收MASTER路由器的VRRP状态通告信息外,不执行对外的网络功能。当MASTER路由器失效时,BACKUP路由器将接管原先MASTER路由器的网络功能。
VRRP协议需要对每个路由器的虚拟路由器ID(VRID)和优先权值进行配置,通过VRID将路由器进行分组,具有相同VRID值的路由器为同一个组,VRID是一个0~255的正整数;同一组中的路由器通过使用优先权值来选举MASTER,优先权大者为MASTER,优先权也是一个0~255的正整数。
VRRP协议使用多播方式传输VRRP数据,VRRP数据使用特殊的虚拟源MAC地址发送数据而非自身网卡的MAC地址,VRRP运行时只能由MASTER路由器定时发送VRRP通告信息,表示MASTER工作正常。BACKUP只接收VRRP数据,不发送数据,如果一定时间内没有接收到MASTER的通告信息,各BACKUP将宣告自己成为MASTER,发送通告信息,重新进行MASTER选举状态[5]。
(二)GNS3模拟PC机的主要方法
GNS3是基于Dynamips的图形化界面Cisco模拟软件,对于路由器和交换机有较高仿真度[6-8]。在GNS3中可以采用四种方法模拟PC机:用路由器模拟PC机、将真实计算机接入虚拟实验平台、用VMware[9-10]模拟PC、用VPCS模拟PC机。
(一)实验拓扑结构及IP地址分配
实验利用GNS3仿真环境实现,VRRP实验拓扑如图1所示。
图1 VRRP实验拓扑结构图
在路由器R1和R2上分别配置VRRP协议。最初,配置路由器R1作为MASTER,路由器2作为BACKUP,路由器R3作为外网路由器;计算机C1和C2模拟内网计算机,C3模拟外网计算机。IP地址的分配如表1所示。
表1 各设备端口IP地址分配表
设备名称端口IP地址子网掩码网关计算机C11921681100255255255019216811计算机C21921681101255255255019216811计算机C3192168422255255255019216811路由器R1e1/0192168212552552550e1/1192168132552552550路由器R2e1/0192168312552552550e1/1192168122552552550路由器R3e1/0192168222552552550e1/1192168322552552550e1/2192168412552552550
(二)VRRP实验主要配置
1.路由器R1的配置
R1(config)#interface ethernet1/0
R1(config-if)#ip address 192.168.2.1 255.255.255.0
//配置接口e1/0的IP地址
R1(config-if)#no shutdown
R1(config)#interface ethernet1/1
R1(config-if)#ip address 192.168.1.3 255.255.255.0
//配置接口e1/1的IP地址
R1(config-if)#no shutdown
R1(config)#track 100 interfaceethernet1/0 line-protocol
//创建一个目标用来跟踪接口e1/0的2层状态
R1(config-track)#exit
R1(config)#intethernet1/0
R1(config-if)#vrrp 10 ip 192.168.1.1//配置VRRP虚拟IP地址
R1(config-if)#vrrp 10 priority 120//配置VRRP优先级
R1(config-if)#vrrp 10 preempt//配置VRRP为抢占模式
R1(config-if)#vrrp 10 track 100 decrement 50
//若跟踪目标发生故障,自动将VRRP优先级降低50
R1(config-if)#exit
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#network 192.168.2.0
R1(config-router)#network 192.168.3.0
R1(config-router)#network 192.168.4.0
R1(config-router)#exit
2.路由器R2的配置
R2(config)#interface ethernet1/0
R2(config-if)#ip address 192.168.3.1 255.255.255.0
R2(config-if)#no shutdown
R2(config)#interface ethernet1/1
R2(config-if)#ip address 192.168.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#vrrp 10 ip 192.168.1.1
R2(config-if)#vrrp 10 preempt
R2(config-if)#exit
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#network 192.168.2.0
R2(config-router)#network 192.168.3.0
R2(config-router)#network 192.168.4.0
R2(config-router)#exit
3.路由器R3的配置
R3(config)#interface ethernet1/0
R3(config-if)#ip address 192.168.2.2 255.255.255.0
R3(config-if)#no shutdown
R3(config)#interface ethernet1/1
R3(config-if)#ip address 192.168.3.2 255.255.255.0
R3(config-if)#no shutdown
R3(config)#interface ethernet1/2
R3(config-if)#ip address 192.168.4.1 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#router rip
R3(config-router)#version 2
R3(config-router)#network 192.168.1.0
R3(config-router)#network 192.168.2.0
R3(config-router)#network 192.168.3.0
R3(config-router)#exit
(三)仿真实验验证
按照以上拓扑结构完成VRRP协议配置后,分别使用以下3种方式进行验证:ping命令验证、tracert命令验证、FTP应用场景验证。
1.ping命令验证
首先,利用计算机C1(192.168.1.100)持续ping计算机C3(192.168.4.22),命令为:c:>ping 192.168.4.22 -t,所有ICMP分组从计算机C1出发经过路由器R1、路由器R3到达计算机C3,验证结果如图2中的ICMP_seq1~ICMP_seq8所示;然后在路由器R1的e1/0端口执行shutdown命令或者删除路由器R1与路由器R2之间的连线,造成路由器R1故障,此时,VRRP协议跟踪到路由器R1故障并将其优先级降低为70(初始优先级设置为120),VRRP协议将优先级为100的路由器R2选举为master角色,ICMP分组从计算机C1出发改经路由器R2、路由器R3到达计算机C3,验证结果如图2中的ICMP_seq13~ICMP_seq18所示,而图2中的ICMP_seq9~ICMP_seq12这4个ICMP分组验证了VRRP协议将路由器R1切换到路由器R2的现象。
图2 通过ping命令验证vrrp协议
2.tracert命令验证
在虚拟机VMware中分别启动2台计算机:Windows Server 2003、Windows XP,将计算机Windows XP与GNS3模拟器中的计算机C1连接,为计算机Windows XP配置IP地址:192.168.1.100,子网掩码:255.255.255.0;将Windows Server 2003与GNS3模拟器中的计算机C3连接,为计算机Windows Server 2003配置IP地址:192.168.4.22,子网掩码:255.255.255.0。在Windows XP(即GNS3模拟器中的计算机C1)上使用tracert命令验证到达目标主机Windows Server 2003(即GNS3模拟器中的计算机C3)所经过的路由器,具体命令为:c:>tracert 192.168.4.22,经过的路径验证结果如图3所示,分别经过路由器R1(192.168.1.3)、路由器R3(192.168.2.2),到达目标主机C3:192.168.4.22。
图3 路由器R1的e1/0接口正常工作时tracert验证结果
在路由器R1的e1/0端口执行shutdown命令或者删除路由器R1与路由器R2之间的连线,造成路由器R1故障,由于VRRP协议跟踪到路由器R1故障并将其优先级降低为70(最初默认为120),将优先级为100的路由器R2选举为master角色,在VMware虚拟机中的Windows XP上输入命令c:>tracert 192.168.4.22,经过的路径将改变为:路由器R2(192.168.1.2)、路由器R3(192.168.3.2),到达目标主机C3:192.168.4.22,验证结果如图4所示。
图4 路由器R1的e1/0接口非正常工作时tracert验证结果
3.FTP应用场景验证
将以上VMware中的虚拟计算机Windows Server 2003配置成FTP服务器,在虚拟计算机Windows XP上安装Wireshark协议分析软件,捕获流经虚拟计算机Windows XP网络适配器的数据包,数据包捕获条件设置为:host 192.168.1.100,并使Wireshark处于监听状态。虚拟计算机Windows XP从虚拟计算机Windows Server 2003(FTP服务器)下载文件,这时虚拟计算机Windows XP上的协议分析软件Wireshark捕获FTP下载文件的数据包,FTP下载数据包经过路径为:计算机C3→路由器R3→路由器R1→计算机C1。下载过程中对路由器R1的e1/0端口执行shutdown命令或者删除路由器R1与R2之间的连线,造成路由器R1故障,由于VRRP协议跟踪到路由器R1故障并将其优先级降低为70(最初默认为120),将优先级为100的路由器R2选举为master角色,下载文件的数据包经过路径改为:计算机C3→路由器R3→路由器R2→计算机C1,捕获的数据包如图5所示。
图5 Wireshark捕获的FTP数据包
任选一个“FTP-DATA”数据包,依次点击Wireshark的菜单项:“statistics”→“IO Graphs”可以生成FTP文件下载速率统计图(如图6所示),从图中可见:由于路由器R1出现故障,文件下载的第77s传输速率降为0bps,VRRP协议选举路由器R2为master角色后,文件下载传输速率恢复正常直到下载完毕。
图6 FTP文件下载速率统计图
分析Wireshark捕获的数据包内容可以发现:第11160号数据包记录了路由器R1(192.168.1.3)出现故障,其优先级被VRRP协议由初始值120降低为70。此时,路由器R1的优先级(70)小于路由器R2的优先级(100),分别如图7(a)、7(b)所示;把Wireshark捕获数据包的显示过滤条件为:VRRP,将显示所有VRRP协议数据包,第11171号数据包记录了路由器R2(192.168.1.2)被VRRP协议选举为master角色,替换了路由器R1,如图8所示。
图7(a) 路由器R1的优先级降低为70
图7(b) 路由器R2的优先级为100,抢占成为master路由器
图8 路由器R2(192.168.1.2)替换了路由器R1(192.168.1.3)
利用GNS3软件实现了虚拟路由冗余协议VRRP原理的仿真实验,通过ping命令、tracert命令、FTP应用场景等多种方式对实验结果进行验证,这种多层面、多角度的实验验证方式有助于学生对实验目的和实验内容的深刻理解。
参考文献:
[1]王丽娜,侯健敏,刘炎,等.SLA和VRRP的多出口校园网可靠性实验设计[J].实验室研究与探索,2016,35(7):102-107.
[2]蒋建军,陈靖栋.新一代校园网络架构的仿真与优化研究[J].现代电子技术,2016,39(14):69-72.
[3]李军,李光,邸永强,等.基于虚拟路由冗余协议和双向转发检测的基层气象通信网络设计和实现[J].气象科技,2017,45(2):281-284.
[4]董铮,唐海军.基于路由交换技术的静态专线冗余备份方法[J].电信科学,2015,31(10):197-202.
[5]Richard Froom,Erum Frahim.CCNP SWITCH学习指南[M].孙玲,韩鹏,译.北京:人民邮电出版社,2016.
[6]唐灯平,朱艳琴,杨哲,等.计算机网络管理仿真平台防火墙实验设计[J].实验技术与管理,2015,32(4):156-160.
[7]张良斌,俞华丰,高昆.单机环境中网络攻防实战演练平台的设计与研究[J].实验技术与管理,2014,31(10):144-147.
[8]王丽娜,刘炎.基于GNS3的冗余网络仿真[J].实验室研究与探索,2013,32(8):55-59.
[9]王凤娥,温高磊,霍杰标.基于Vmware与GNS3实现虚拟网络教学平台[J].电脑知识与技术,2015,11(13):144-145.
[10]李林林,孙良旭,吴建胜,等.基于GNS3与VirtualBox构建虚拟网络工程实验室研究[J].实验技术与管理,2015,32(9):144-148.