3. VRRP协议详解:VRRP工作原理、Master与Backup选举、优先级、抢占模式与非抢占模式
各位同学,咱们今天聊聊VRRP。说实话,这协议在咱们网络运维圈子里,地位就跟“双机热备”这四个字一样,几乎是标配。我刚开始做网络那会儿,还没VRRP呢,用的是HSRP,思科私有的。后来VRRP成了标准,大家才慢慢统一了口径。
VRRP,全称是虚拟路由冗余协议。说白了,就是让两台路由器“假装”成一台。对外面设备来说,它们只有一个IP地址,一个MAC地址。谁干活?Master干。谁盯着?Backup盯着。一旦Master挂了,Backup立刻顶上。整个过程对终端用户来说,几乎无感。
核心思想:VRRP通过将多台路由器组成一个虚拟路由器,实现网关的高可用性。虚拟路由器拥有自己的IP和MAC,终端设备只需将网关指向这个虚拟IP即可。
3.1 VRRP工作原理:Master与Backup的“默契”
VRRP的工作机制,其实挺像咱们团队里的“主备”模式。Master是那个干活的人,Backup是那个随时准备接替的人。它们之间怎么通信?靠的是VRRP通告报文。
Master会每隔一段时间(默认1秒)发送一次VRRP通告。这个通告就像是在说:“嘿,我还活着,一切正常。”Backup收到后,就知道Master还在,自己继续待命。如果Backup连续三个通告周期(也就是3秒)没收到Master的消息,它就会认为Master挂了,然后自己开始竞选Master。
我记得有一次在数据中心做割接,我故意把Master的网线拔了,想看看切换时间。结果你猜怎么着?从拔线到Backup接管,大概就3秒多一点点。终端设备丢了一个ping包,然后就恢复了。嗯,这个效果,客户很满意。
个人经验:VRRP的切换时间,默认是3秒(3个通告周期)。如果你对切换时间要求更高,可以调整通告间隔。但别调太短,否则网络波动容易导致频繁切换。我一般建议生产环境保持默认,除非你有特殊需求。
3.2 Master与Backup选举:谁说了算?
VRRP的选举机制,其实很简单。谁优先级高,谁就是Master。如果优先级一样,谁IP地址大,谁就是Master。注意,这里说的是接口IP,不是虚拟IP。
选举过程是这样的:
- 所有VRRP路由器启动时,都处于Initialize状态。
- 然后它们开始发送VRRP通告,互相“打招呼”。
- 每个路由器都会比较自己的优先级和对方的优先级。
- 优先级高的,成为Master。优先级低的,成为Backup。
- 如果优先级相同,比较接口IP地址,大的胜出。
这里有个坑,我当年踩过。有一次我配置了两台路由器,优先级都设成了100。结果启动后,Master是其中一台,但不是我预期的那台。为什么?因为IP地址大的成了Master。后来我学乖了,想要哪台当Master,就把它的优先级设高一点,比如120。这样心里才有底。
避坑指南:我曾经遇到过一种情况,两台路由器优先级一样,但接口IP地址小的那台,因为启动速度快,先发出了VRRP通告,结果它成了Master。但按照标准,应该是IP大的胜出。后来发现是厂商实现的小bug。所以,我建议你:永远不要依赖IP地址大小来决定Master,明确设置优先级才是正道。
3.3 优先级:决定命运的数值
优先级,是VRRP选举的核心。取值范围是0到255。默认值是100。数值越大,优先级越高。
这里有几个关键点:
- 优先级0有特殊含义,表示Master主动放弃角色,用于快速切换。
- 优先级255保留给IP地址拥有者(也就是虚拟IP就是自己接口IP的那台路由器)。
- 普通设备,优先级范围是1到254。
我个人的习惯是,把主用路由器优先级设为120,备用路由器设为100。这样主用挂了,备用顶上。等主用恢复后,如果配置了抢占模式,主用会重新夺回Master角色。如果没配置抢占,那就让备用继续当Master,主用当Backup。
| 优先级值 | 含义 | 说明 |
|---|---|---|
| 0 | Master主动放弃 | 用于快速切换,不参与选举 |
| 1-99 | 低优先级 | 通常用于备用设备 |
| 100 | 默认优先级 | 如果不配置,就是这个值 |
| 101-254 | 高优先级 | 通常用于主用设备 |
| 255 | IP地址拥有者 | 虚拟IP就是自己的接口IP |
3.4 抢占模式与非抢占模式:谁说了算?
抢占模式,是VRRP里一个非常重要的概念。它决定了当Master恢复后,是否要重新夺回角色。
抢占模式(Preempt):默认开启。当Backup发现Master的优先级比自己低时,它会立即发起选举,把自己变成Master。说白了,就是“谁优先级高,谁就是老大”。
非抢占模式(No Preempt):关闭抢占。即使Master恢复了,只要当前Master还在正常工作,就不会发生切换。只有当前Master挂了,才会重新选举。
你想想看,这两种模式各有什么优缺点?
- 抢占模式:能保证高优先级的设备始终是Master。但缺点是,如果网络不稳定,Master频繁上下线,会导致频繁切换,影响业务。
- 非抢占模式:能减少不必要的切换。但缺点是,如果Master恢复后,它只能当Backup,直到当前Master再次挂掉。
我个人建议,在核心网络中,使用抢占模式,但配合延迟抢占。也就是Master恢复后,等一段时间(比如30秒)再抢占。这样能避免网络抖动导致的频繁切换。
实战建议:我曾经在一个金融客户那里,因为没配置延迟抢占,导致Master恢复后立刻抢占,结果业务中断了5秒钟。后来我加了30秒的延迟,问题就解决了。记住:抢占模式 + 延迟抢占,才是最佳实践。
3.5 配置示例:手把手教你配VRRP
说了这么多,咱们来点实际的。下面是一个简单的VRRP配置示例,两台路由器,一台Master,一台Backup。
# 路由器A(Master)
interface GigabitEthernet0/0
ip address 192.168.1.2 255.255.255.0
vrrp 1 ip 192.168.1.1
vrrp 1 priority 120
vrrp 1 preempt delay minimum 30
!
# 路由器B(Backup)
interface GigabitEthernet0/0
ip address 192.168.1.3 255.255.255.0
vrrp 1 ip 192.168.1.1
vrrp 1 priority 100
vrrp 1 preempt
!
配置说明:
vrrp 1 ip 192.168.1.1:定义VRRP组1,虚拟IP是192.168.1.1。vrrp 1 priority 120:设置优先级,A是120,B是100。vrrp 1 preempt delay minimum 30:开启抢占,并设置延迟30秒。- B也开启了抢占,但优先级低,所以正常情况下它不会成为Master。
嗯,这个配置,我在很多项目里都用过。简单、稳定、可靠。你只要记住,优先级高的当Master,优先级低的当Backup,再配合延迟抢占,基本不会出问题。
小技巧:配置完成后,可以用show vrrp命令查看状态。如果看到State是Master,Priority是120,那就对了。如果看到State是Backup,Priority是100,那也是对的。如果两个都是Master,那就有问题了,赶紧检查配置。
好了,关于VRRP的工作原理、选举机制、优先级和抢占模式,咱们就聊到这儿。下一章,我会讲讲VRRP的故障排查和常见问题。到时候,我会分享一些我踩过的坑,保证让你少走弯路。