Master路由器选举原理

在一个VRRP组中,正常情况下只能存在一台Master路由器。VRRP根据优先级和IP地址来决定哪台路由器充当Master。

  1. VRRP优先级的范围是0~255,优先级的值越大,则路由器越有可能成为Master,其中0及255是两个特殊的优先级,不能被直接配置。
  2. 当路由器的接口IP地址与VRRP虚拟IP地址相同时,它的优先级将自动变成最大值255,此时该路由器被称为IP地址拥有者(IP Address Owner),该路由器自动升级为master路由器。0是另一个特殊的优先级,它会出现在Master路由器主动放弃Master角色时,比如当接口的VRRP配置被手工删掉时,该Master路由器会立即发送一个优先级为0的VRRP报文,用来通知网络中的Backup路由器。

Master路由器选举过程

  1. 当一个激活了VRRP的接口Up之后,如果接口的VRRP优先级为255,那么其VRRP状态将直接从Initialize切换到Master,而如果接口的VRRP优先级不为255,则首先切换到Backup状态,然后再视竞争结果决定是否能够切换到Master状态。
  2. 如果在同一个广播域的同一个VRRP组内出现了两台Master路由器,那么它们收到对方发送的VRRP通告报文之后,将比较自己与对方的优先级,优先级的值更大的设备胜出,继续保持Master状态,而竞争失败的路由器则切换到Backup状态。如果这两台Master路由器的优先级相等,那么接口IP地址更大的路由器接口将会保持Master状态,而另一台设备则切换到Backup状态。
  3. 一个网络在稳定运行时,同一个VRRP组内不会同时出现两台Master路由器。

Master、Backup路由器行为

  1. 处于Master状态的路由器会周期性地发送VRRP通告报文,并在报文中描述自己的VRRP优先级、IP地址等信息。
  2. 同一个广播域中、同一个VRRP组的Backup路由器会侦听这些报文。
  3. 如果此时网络中新出现了一台Backup路由器(其优先级高于当前Master路由器),激活了抢占功能,那么它会忽略收到的VRRP报文,并且切换到Master状态,同时发送自己的VRRP报文并在报文中描述其优先级等信息,而此前的Master路由器在收到了该VRRP报文后,则切换到Backup状态。

Master路由器选举示例

如下图所示,PC、R1、R2连接在同一台交换机上,它们都处于同一个广播域中。

resourcemanager curator 选举 vrrp的master选举规则_Backup

链路正常时,流量通过R1转发

(1)若R1率先启动,其GE0/0/0接口的VRRP首先进入Initialize状态,当接口UP后,其VRRP状态将从Initialize切换到Backup,并且在Master_Down_Timer定时器超时后,自动切换到Master状态,R1将成为Master路由器:

  • R1会立即发送一个免费ARP广播报文,PC在收到这个ARP报文后,就获悉了虚拟IP地址(192.168.27.254 )与虚拟MAC地址(0000-5e00-011b)的对应关系,
  • 其次交换机也会学习到关于该虚拟MAC地址的MAC表项,
  • 之后R1将以1秒为间隔,周期性地发送VRRP通告报文(携带VRRP优先级和VRRP接口地址)。

(2)R2开始工作后,它的GE0/0/0接口将从Initialize状态切换到Backup状态,并且会收到R1所发送的VRRP报文,从这些报文中,它能够知道对方的VRRP优先级,比较之后,发现自己的优先级小于对方的优先级,因此它将其VRRP状态保持在Backup。

(3)现在PC要发送数据给外部网络,由于目的IP地址并不在本地网段中,因此它将数据包发往自己的默认网关,也就是192.168.27.254。-- 先查询ARP表后,它发现网关的IP地址对应的MAC地址为000-5e00-011b,于是为报文封装以太网帧头,该数据帧的目的MAC地址是0000-5e00-011b。

  • 然后将数据帧被发往交换机,交换机查询MAC表后,将该帧从相应的接口转发给R1。
  • 最后R1收到数据包,查询路由表后将数据转发到外部网络。

链路故障时,流量通过R2转发

(4)当R1与交换机的互联链路发生故障时:

  • R2将无法再收到前者发送的VRRP报文,在Master_Down_Timer超时后,R2将VRRP状态切换到Master,它会成为了新的Master路由器
  • R2会立刻从GE0/0/0接口发送一个免费ARP报文,交换机收到报文之后,会刷新交换机的MAC地址表,VRRP虚拟MAC地址000 -5e00-011b的表项会关联到新的接口上,后续PC发往该目的MAC地址的数据帧将被引导至R2。整个过程对于PC而言是无感知的。

链路恢复正常时,流量继续通过R1转发

(5)接下来,R1及其与交换机的互联链路从故障中恢复:

  • R1的GE0/0/0接口的VRRP状态将从Initialize切换到Backup,
  • R1将收到R2发送的VRRP报文,并发现对方的优先级比自己更低,此时如果R1激活了抢占功能,那么它会忽略R2所发送的VRRP报文,并且将VRRP状态切换到Master。(缺省情况下VRRP的抢占功能就处于激活状态,而且抢占的延迟时间为0秒,也就是立即执行抢占)
  • 并且从GE0/0/0接口发送一个免费ARP报文(用于刷新交换机的MAC地址表项),并开始从GE0/0/0接口发送VRRP报文。(经过上述过程后,R1成为新的Master路由器。当然,如果R1没有激活抢占功能,那么它将保持Backup 状态。)

(6)R2在收到R1发送的VRRP报文后,发现自己的优先级比对方更低,因此它从Master状态切换到Backup状态。

引入问题1

如下图所示的网络拓扑,R1的GE0/0/1接口或者该接口所连接的上行链路发生故障的话,缺省时VRRP是无法感知的,因此R1的GE0/0/0接口依然在该VRRP组中处于Master状态,PC到达外部网络的上行数据还是会被牵引至R1,但是此时R1己经丢失了与外部网络的连通性,数据包将在这里被丢弃。

resourcemanager curator 选举 vrrp的master选举规则_网络_02

解决方法

在R1上部署VRRP监视(Track)功能,通过这个功能来监视上行接口GE0/0/1,当R1感知到这个接口的状态切换到Down时,会自动将VRRP的优先级减去一个值,从而“退位让贤”。

示例

  1. 比如在R1上部署的配置中,vrrp vrid 1 track interface GigabitEthernet0/0/1 reduced 30命令用于配置监视功能,这条命令被配置后,R1将会监视其GE0/0/1接口,如果该接口的状态变为Down(无论是协议状态还是物理状态),那么VRRP优先级将被立即减去30,变为
    90。
  2. R1将在其从GE0/0/0接口发送出去的VRRP报文中携带这个新的VRRP优先级。
  3. 当R2收到R1发送的VRRP报文后,它意识到自己的优先级(100)比对方更高,由于抢占功能缺省已激活,因此它将自动切换到Master状态,成为新的Master路由器并发送自己的VRRP报文,而R1则会在收到R2发送的VRRP报文后切换到Backup状态。

引入问题2

还是上图所示的网络拓扑,正常情况下从PC到达外部网络的数据始终被发往Master路由器R1,在R1发生故障之前,Backup路由器R2始终不承担数据转发任务,交换机与R2之间的这段链路也不会承载业务数据,这就造成了设备资源和链路带宽的浪费。

在某些网络中,网关路由器或者交换机的性能以及链路的带宽足以承载所有的业务流量,这种一主一备的VRRP工作方式确实能够满足需求,但是当业务流量特别大而路由器或者交换机的性能及链路带宽又存在瓶颈时,就不得不考虑让另一台路由器或者交换机也参与到业务流量转发的工作中来。

网络期望行为

如下图所示,交换机SW连接着两个用户VLAN,它们分别是VLAN 10及VLAN20。SW同时还连接着两台路由器:R1及R2,这两台路由器将充当PC的默认网关,它们连接着外部网络。

该网络的需求是:正常情况下,VLAN 10内的PC通过R1到达外部网络,而当R1发生故障时,这些PC访问外部网络的上行流量需自动切换到R2;VLAN20内的PC则通过R2到达外部网络,当R2发生故障时,这些PC访问外部网络的上行流量需自动切换到R1。

解决方法

  • 以R1为例,其GE0/0/0接口需处理VLAN10、VLAN20的标记帧,因此我们要在该接口上创建两个子接口,分别对应这两个VLAN,R2同理。
  • 为了实现VLAN10、VLAN20的网关冗余,还需在R1及R2的两个子接口上各部署一组VRRP,并且对优先级进行合理把控,优先级分配部署如下图所示:

就VLAN10的网关而言,R1子接口的VRRP优先级高于属于同一组的R2子接口的优先级,二者选举后,R1会成为为VALN10广播域内VRRP的Master路由器,R2做为Backup路由器。

就VLAN20的网关而言,R2子接口的VRRP优先级高于属于同一组的R1子接口的优先级,二者选举后,R2会成为为VALN20广播域内VRRP的Master路由器,R1做为Backup路由器。

VRRP相关表项信息

  1. 使用display vrrp查看设备VRRP的状态
  2. resourcemanager curator 选举 vrrp的master选举规则_网络_03

  3. 使用display vrrp brief命令:查看设备VRRP的运行状态
  4. resourcemanager curator 选举 vrrp的master选举规则_优先级_04