VRRP,全称虚拟路由冗余协议,英文为Virtual Router Redundancy Protocol,是IETF制定的一项开放标准协议,早期版本定义于RFC 3768,此后又由RFC 5798扩展到IPv6环境,形成VRRPv3。在软考网络工程师和网络规划设计师的考试大纲中,VRRP被归类为网络层之上的高可用性技术,属于局域网网关冗余设计的核心内容,几乎每年都会以选择题的形式出现,是考生必须牢牢掌握的知识点。
要理解VRRP的定义,必须先回答一个前置问题:为什么网关需要冗余。在传统的局域网组网中,主机通常只配置一个默认网关地址,这个网关地址对应着一台物理路由器的接口IP地址。主机发送到其他网段的数据包,第一步就是交给默认网关转发。这种设计有一个致命缺陷:一旦这台网关路由器因为设备故障、接口故障、链路故障或者断电而失效,主机的默认网关就失去了响应能力,整个网段内的主机将无法访问外部网络。虽然主机理论上可以手工修改默认网关地址指向备用路由器,但这种做法需要人工干预,切换时间以分钟甚至小时计,完全无法满足业务连续性要求。
VRRP解决的正是这个问题。它的核心思想是把多台物理路由器组合成一个逻辑上的虚拟路由器,对外只呈现一个虚拟IP地址和一个虚拟MAC地址。局域网内的主机仍然只配置一个默认网关,这个默认网关的IP地址就是虚拟IP地址。在虚拟路由器内部,多台物理路由器通过选举机制产生一台主用路由器,称为Master,其余路由器处于备用状态,称为Backup。当Master正常工作时,由它响应发往虚拟IP地址的数据转发请求;当Master失效时,某台Backup会在极短的时间内自动接管虚拟IP地址,继续为主机提供网关服务。由于主机始终只与虚拟IP地址通信,主备切换对主机完全透明,主机甚至感知不到底层路由器发生了替换。
这里需要特别厘清几个术语,因为软考命题人经常在这些术语上做文章。第一是虚拟路由器与物理路由器的关系:虚拟路由器是一个抽象的逻辑实体,它由VRID标识,VRID是VRRP备份组的编号,取值范围为0到255;多台物理路由器必须配置相同的VRID和相同的虚拟IP地址,才能被纳入同一个虚拟路由器。第二是虚拟IP地址与物理IP地址的关系:虚拟IP地址既可以与某台物理路由器接口的真实IP地址相同,也可以是一个独立的额外地址;在软考考题中,最常见的配置方式是虚拟IP地址与Master的接口真实IP地址一致,此时这台路由器被称为IP地址拥有者,其优先级会被系统强制设置为最高值255。第三是Master与Backup的区别:Master是当前实际承担转发职责的路由器,Backup是处于监听状态、随时准备接管的候选路由器;二者的地位不是固定的,会随着选举和抢占而动态变化。
从协议层次上看,VRRP运行在IP层之上,使用IP协议号为112的报文,VRRPv2的组播地址是224.0.0.18,VRRPv3的组播地址是FF02::12。VRRP报文被封装在IP报文中,其生存时间字段TTL必须设置为255,接收方会校验这一字段,任何TTL小于255的VRRP报文都会被直接丢弃,这是为了防止VRRP报文跨越路由器传播的一种安全机制。软考真题中曾多次考察VRRP报文使用的组播地址、协议号和TTL校验这三组技术细节,考生必须准确记忆。
VRRP主备关系的确定,本质上是一个基于优先级数值的确定性选举过程。每一台参与VRRP的路由器都拥有一个优先级字段,取值范围是0到255,默认值为100。优先级数值越大,越有资格成为Master。选举规则可以概括为两条:第一,优先级高的路由器当选Master;第二,当多台路由器优先级完全相同时,接口IP地址大的路由器当选Master。这两条规则共同保证选举结果唯一确定,不会出现多台路由器同时自称Master的混乱局面。
优先级数值0和255是两个被协议特殊保留的值,考生务必牢记。优先级0只能出现在Master主动放弃自己身份的场景中,当一台Master决定退出时,它会立即发送一个优先级为0的VRRP通告报文,这个报文的作用是告知所有Backup尽快发起新一轮选举,从而缩短主备切换的收敛时间,这种机制被称为礼貌退位。优先级255则被保留给IP地址拥有者,即虚拟IP地址恰好等于自身接口真实IP地址的那台路由器,系统会将其优先级强制设定为255,使其在正常情况下必然成为Master。这个设计保证了当配置了真实IP的那台路由器恢复可用时,它能够以绝对优势夺回主用地位。
VRRP路由器在运行过程中会经历三种状态,构成一个有限状态机,分别是初始化状态Initialize、备用状态Backup和主用状态Master。路由器启动时首先进入Initialize状态,此时它尚未参与任何选举。当路由器检测到自己被配置为IP地址拥有者,或者完成初始化后,它会根据自身优先级和当前是否收到更高优先级的通告报文,决定进入Master状态还是Backup状态。
状态转换的触发核心是一个名为Master_down_timer的定时器,这是整个VRRP机制中最重要的计时逻辑。当一台Backup路由器开始监听时,它会把Master_down_timer设置为一个特定值,这个值的计算公式为三倍的发送通告时间间隔加上一个偏斜时间。其中发送通告时间间隔的默认值是1秒,偏斜时间的计算公式为二百五十六减去自身优先级再除以二百五十六,优先级越低,偏斜时间越长。这个偏斜时间的存在意义非常精妙:它保证当Master失效时,优先级较高的Backup会先于优先级较低的Backup超时,从而优先发起选举,避免多台Backup同时竞争造成震荡。
在正常工作状态下,Master会周期性发送VRRP通告报文,默认间隔为1秒。Backup每收到一个合法的通告报文,就重置Master_down_timer。如果Backup在定时器超时之前始终没有收到Master的通告报文,就说明Master可能已经失效,此时该Backup会把自己升级为Master,并开始对外发送通告报文。整个主备切换过程的典型耗时约为三秒左右,这正是三倍通告间隔的来源。软考真题多次围绕这个计时机制出题,考察考生对默认通告间隔、定时器取值和切换时长的理解。
抢占是VRRP中另一个高频考点。所谓抢占,指的是当一台优先级更高的Backup出现或者恢复后,是否允许它主动取代当前的Master。VRRP默认开启抢占模式。在抢占模式下,只要Backup检测到自己的优先级高于当前Master,就会立即发送通告报文发起抢占,使自己成为新的Master。抢占模式的优势在于能够保证网络始终由优先级最高、性能最优的设备承担网关职责,但也可能带来频繁切换的风险,因此在实际组网中通常需要配合延迟抢占时间参数使用,避免网络瞬时波动导致主备反复切换。
与抢占机制紧密关联的是接口跟踪功能,这是软考中极易混淆的知识点。VRRP的默认选举只关注路由器自身的优先级,而优先级默认是静态配置的固定值。这就带来一个问题:如果Master的某个上行接口发生了故障,但路由器本身仍然存活,它还会继续周期性地发送通告报文,Backup就不会接管,结果就是主机仍然把数据交给一台已经无法正常转发外网流量的Master,造成业务中断。接口跟踪功能正是为了解决这个问题:管理员可以把VRRP备份组与特定的上行接口进行绑定跟踪,当被跟踪接口的状态变为不可用时,系统会自动降低该路由器在备份组中的优先级,通常是减去一个预设的步长值,使其低于其他Backup,从而触发主备切换。接口跟踪让VRRP的冗余判断不再局限于设备存亡,而是扩展到链路可用性层面,这是理解VRRP高级应用的关键。
VRRP协议目前主要有两个正式版本,考生需要清楚它们的区别。VRRPv2基于IPv4网络,定义于RFC 3768,使用组播地址224.0.0.18,这是软考网工科目中最常考察的版本。VRRPv3定义于RFC 5798,最重要的扩展是支持IPv6环境,使用组播地址FF02::12,同时VRRPv3还允许为备份组配置多个虚拟IPv6地址。两个版本在报文格式上也有差异,VRRPv3取消了VRRPv2中必须使用的认证字段,认证功能被转移到IPsec中实现。
需要提醒考生的是,软考在考察VRRP版本时,往往不是单独考版本号,而是把版本与组播地址、协议号、地址族绑定在一起考察。例如,题目会给出一个VRRPv2的组播地址选项和一个VRRPv3的组播地址选项,让考生判断哪个对应IPv4,哪个对应IPv6;或者考察VRRPv3相比VRRPv2的新增能力。这类题目看似简单,但选项之间高度相似,稍有不慎就会选错,考生必须在头脑中建立清晰的版本与参数对应关系。
在网关冗余协议家族中,除了VRRP,还有思科私有的HSRP和GLBP,三者的对比是软考的常考题型。HSRP,即热备份路由协议,是思科公司专有的协议,其设计思想与VRRP高度相似,同样采用主备模型和虚拟IP地址的概念,但HSRP使用的组播地址是224.0.0.2,与VRRP的224.0.0.18不同,这是两者最容易混淆的参数差异。VRRP与HSRP最本质的区别在于开放性:VRRP是IETF的开放标准,任何厂商的设备都可以实现并互通;HSRP是思科专有协议,只能运行在思科设备上。
GLBP,即网关负载均衡协议,同样是思科专有协议,它在前
本篇完!