理解并实施VRRP
虚拟路由冗余协议(VirtualRouter Redundancy Protocol,简称VRRP)与HSRP有相同的功能和类似工作原理,都是对网关单点故障进行故障转移。VRRP 将LAN的一组路由器包括一台Master路由器和其它Backup 备份路由器。组织成一个虚拟路由器,叫做一个备份组也叫做热容组。在VRRP热容组中,活动路由器和备份路由器的竞争原则,以及故障发生后的抢占原则都与HSRP相同。
VRRP与HSRP的区别:
HSRP是思科的厂商协议,具有私有特性。要求所有参与HSRP的设备全部是思科的网络设备,而VRRP是所有厂商都支持的,具备开放性,那就就允许不同厂商之间的设备形成VRRP的热容组。VRRP可以将热容组中路由器的某个物理接口IP地址来作为热容组的虚拟IP地址,而HSRP是不能做到,当在VRRP中将热容组中路由器的某个物理接口IP地址来作为热容组的虚拟IP地址时,那么该路由器将作为VRRP热容组中的主路由器,负责流量转发。VRRP的虚拟MAC地址为00-00-5c-00-01-{VRRP组号}。HSRP的备用路由器会发通知,而VRRP的备用路由器不发通知(备用路由器不发送Hello报文),所以VRRP上的活动路由器并不知道谁是备用路由器;HSRP的hello维护间隔为3秒发送,而VRRP的hello维护间隔为1秒发送。
演示:VRRP协议的配置
演示目标:在如图9.130所示的环境中,保证主机192.168.2.3/24和主机192.168.2.4/24能在R1与R2两台路由器出单点故障时,持续ping通主机192.168.5.2/24。要求:在R1和R2上启动VRRP协议,并将IP地址192.168.2.100作为VRRP组的虚拟IP地址。配置完成后,查看主路由器、及故障转移的情况
演示环境:如图9.130所示。
演示步骤:
第一步:在路由器R1和R2上配置VRRP,整个VRRP的配置与HSRP非常相似,具体配置如下所示:
R1(config)#inte e1/0
R1(config-if)#vrrp 100 ip 192.168.2.100 * 配置VRRP中的虚拟IP
R1(config-if)#vrrp 100 priority 254 * 配置VRRP的优先级
R1(config-if)#vrrp 100 preempt * 配置该VRRP接口抢占功能
R1(config-if)#vrrp 100 track 1 * 配置VRRP的链路跟踪功能
R2(config)#inte e1/0
R2(config-if)#vrrp 100 ip 192.168.2.100
R2(config-if)#vrrp 100 priority 244
R2(config-if)#vrrp 100 preempt
R2(config-if)#vrrp 100 track 1
第二步:制造故障,观察VRRP的冗余效果。在VRRP热容组中默认的活动路由器R1上,故意关闭E1/1(当然,也可通过关闭E1/0接口);具体配置如下所示,如果VRRP的配置没有错误,那么应该可以看到成功冗余,如图9.131所示。此时可以在主机上跟踪到目标192.168.5.2的路径,可以看到故障转移成功,通过路由器R2转发。如图9.132所示。
关闭路由器R1的E1/1接口配置:
R1(config)#inte e1/1
R1(config-if)#shutdown
关于HSRP和VRRP的在实践行为常见的提问:
提问1:为什么笔者在上述的HSRP和VRRP的实验环境中,你都是切断外线接口来做的实验,而没有切断HSRP和VRRP热容组里面的物理接口来做实验测试?
回答提问1:当做HSRP和VRRP时,当然可以通过切断,HSRP和VRRP热容组内里的某个物理接口来完成效果检测,而且这种方式,相当于管理性关闭某个接口,您会看到故障转移的延迟更低,收敛的速度更快。但是往往在实际的生产或者工业环境中的网络,故障只出现在内部网关的机率其实真的很小,多数情况下需要链路热容的环境是:要么设备直接掉电,要么是WAN链路问题,所以基于这种实际的应用情况,笔者在做HSRP和VRRP冗余效果检测时,切断的是外部接口,而非组内接口。
提问2:究竟什么时候该为HSRP和VRRP配置preempt,什么时候不需要配置?
回答提问2:当有一台新的路由器加入到HSRP和VRRP组中,并且用户希望,这台新加入的路由器成为现有HSRP和VRRP组中的活动路由器,那么建议在新路由器上配置preempt抢占功能,当然用户需要确保该路由器具备更高的HSRP或者VRRP的优先级;另一种情况就是当一台路由器已经成为HSRP和VRRP组中的活动路由器,然后由于某种原因故障了,当故障修复后,这台路由器希望再次作为活动路由器的身份出现在HSRP和VRRP组中那么你需要配置preempt抢占功能,反之不然。