一,VRRP原理
1.1VRRP概述
Virtual Router Redundancy Protocol虚拟路由器冗余协议,将多个物理网关加入到备份组中,形成一台虚拟网关,承担物理网关的功能。只要备份组中仍有一台物理网关正常工作,虚拟网关就仍然正常工作。版本VRRPv2基于IPv4,VRRPv3基于IPv6。
如图所示在R1和R2上部署VRRP,两台路由器逻辑为一台虚拟路由器提供网关功能。R1为Master状态,承担转发报文任务,发送免费ARP刷新SW1的MAC转发表指向自己(IPv4版本时虚拟MAC地址格式为00-00-5E-00-01-{VRID},IPv6版本格式为00-00-5E-00-02-{VRID}),持续在组播224.0.0.18发送VRRP报文通告自己存活。R2为Backup状态,如果长时间没有收到存活报文定时器超时后变更为Master状态。
1.2VRRP协议报文
Version:版本,VRRPv2适用于IPv4网络,VRRPv3适用于IPv4和IPv6网络。
Virtual Rtr ID:该报文所关联的虚拟路由器的标识及配置的vrid。
Priority:发送给该报文的VRRP路由器的优先级(默认是100)。
Addr Count:该VRRP包含的虚拟IP地址的数量。
Auth Type:VRRP 支持三种认证类型,不认证,纯文本密码,MD5方式认证。分别对应0,1,2。
Adver Int:发送VRRP通告消息的间隔,默认为1秒。
IP Address:所关联的虚拟路由器的虚拟IP地址,可以多个。
Authentication Data:验证所需密码信息。
1.3VRRP原理
1.3.1VRRP状态机
VRRP协议中定义了三种状态机,Initialize,Master,Backup。其中只有处于Master状态的设备才可以转发那些发送到虚拟IP地址的报文。
Initialize:该状态为VRRP不可用状态,在此状态时设备不会对VRRP报文做任何处理。通常在刚配置VRRP或设备检测故障时会进入Initialize状态。如果接口的优先级配置为255,则直接成为进入Master状态,如果小于255,则先切换至Backup状态。
Master:定时发送VRRP通告报文,通告自己存活。以虚拟MAC地址响应对虚拟IP地址的地址的ARP请求。转发目的MAC地址为虚拟MAC地址的IP报文。如果自己是虚拟IP地址的拥有者会接收目的IP是虚拟IP地址的IP报文,否则丢弃。如果收到优先级比自己大的报文,立即切换至Backup。如果收到自己与优先级相等的报文,且自己的IP地址比对端地址小,立即切换至Backup。
Backup:接收Master设备发送的VRRP通告报文,判断Master设备是否正常。对虚拟IP地址的ARP请求不响应。丢弃目的IP地址为虚拟IP地址的IP报文如果收到优先级和自己相同或比自己大的报文则重置Master_Down_Interval定时器
1.3.2VRRP工作过程
# R1的配置
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]dis this
[V200R010C10SPC700]
#
interface GigabitEthernet0/0/0
undo portswitch
ip address 10.1.1.10 255.255.255.0
vrrp vrid 1 virtual-ip 10.1.1.254
#
return
# R2配置
[R2-GigabitEthernet0/0/0]dis this
[V200R010C10SPC700]
#
interface GigabitEthernet0/0/0
undo portswitch
ip address 10.1.1.11 255.255.255.0
vrrp vrid 1 virtual-ip 10.1.1.254
#
return
1.VRRP备份组中的设备选举出Master。Master设备发送免费ARP报文,将虚拟MAC地址通告给与他连接的设备,从而承担报文转发任务。
①R1先配置所以先成为Master设备,后面状态变化后再比较优先级和接口IP大小抢占。
# R1日志(变为master):
Jul 8 2022 13:54:25+00:00 R1 VRRP/2/VRRPNONMASTER:OID 1.3.6.1.4.1.2011.5.25.127.2.30.2 The state of VRRP changed between backup and Initialize state. (VrrpIfIndex=3, VrId=1, IfIndex=3, IPAddress=10.1.1.10, NodeName=R1, IfName=GigabitEthernet0/0/0, CurrentState=2, ChangeReason=interface up)
Jul 8 2022 13:54:29+00:00 R1 VRRP/2/VRRPCHANGETOMASTER:OID 1.3.6.1.2.1.68.0.1 The status of VRRP changed to master. (VrrpIfIndex=3, VrId=1, IfIndex=3, IPAddress=10.1.1.10, NodeName=R1, IfName=GigabitEthernet0/0/0, ChangeReason=protocol timer expired(GigabitEthernet0/0/0 up))
# R2日志(变为backup):
Feb 5 2023 01:06:28+00:00 R2 VRRP/2/VRRPNONMASTER:OID 1.3.6.1.4.1.2011.5.25.127.2.30.2 The state of VRRP changed between backup and Initialize state. (VrrpIfIndex=3, VrId=1, IfIndex=3, IPAddress=10.1.1.11, NodeName=R2, IfName=GigabitEthernet0/0/0, CurrentState=2, ChangeReason=interface up)
②Master设备发送的免费ARP报文如下:
③刷新SW1的MAC地址转发表
2.Master设备周期性向备份组内所有Backup设备发送VRRP通告报文,以公布其配置信息和工作情况。组播地址为224.0.0.18,如下所示。
3.如果Master设备出现故障,VRRP备份组中的Backup设备将根据优先级重新选举新的Master。
4.VRRP备份组切换时,Master设备发生切换,新的Master设备立即发送免费ARP报文,刷新连接的设备的MAC表项从而引导流量而对用户无感知。
①关闭Master设备的端口模拟故障,R1和R2日志如下。
# R1因为接口故障从Master切换至Initialize状态
Jul 8 2022 14:29:47+00:00 R1 VRRP/2/VRRPMASTERDOWN:OID 1.3.6.1.4.1.2011.5.25.127.2.30.1 The state of VRRP changed from master to other state. (VrrpIfIndex=3, VrId=1, IfIndex=3, IPAddress=10.1.1.10, NodeName=R1, IfName=GigabitEthernet0/0/0, CurrentState=1, ChangeReason=interface down)
Jul 8 2022 14:29:47+00:00 R1 %%01IFPDT/4/IF_STATE(l)[8]:Interface GigabitEthernet0/0/0 has turned into DOWN state.
Jul 8 2022 14:29:47+00:00 R1 %%01IFNET/4/LINK_STATE(l)[9]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the DOWN state.
Jul 8 2022 14:29:47+00:00 R1 %%01VRRP/4/STATEWARNINGEXTEND(l)[10]:Virtual Router state MASTER changed to INITIALIZE, because of interface down. (Interface=GigabitEthernet0/0/0, VrId=1, InetType=IPv4)
# R2因为计时器超时所以切换至Master
Feb 5 2023 01:37:07+00:00 R2 VRRP/2/VRRPCHANGETOMASTER:OID 1.3.6.1.2.1.68.0.1 The status of VRRP changed to master. (VrrpIfIndex=3, VrId=1, IfIndex=3, IPAddress=10.1.1.11, NodeName=R2, IfName=GigabitEthernet0/0/0, ChangeReason=protocol timer expired(GigabitEthernet0/0/0 up))
②R2切换为Master并发送免费ARP和VRRP组播通告自己状态。SW1的MAC转发表也刷新了。
5.原Master设备故障恢复时,如果该设备为IP地址拥有者(优先级为255),将直接切换至Master状态。如果优先级小于255,先切换至Backup状态,且优先级恢复为故障前配置的优先级。
①将R1的G0/0/1接口恢复后,R1变为backup状态。(在拓扑中,R1的接口DOWN后,R2成为Master,再将R1接口恢复,R1会从Initialize切换至backup不会切换至master。因为R1和R2优先级相同但R1的IP小于R2)
Jul 8 2022 14:52:03+00:00 R1 VRRP/2/VRRPNONMASTER:OID 1.3.6.1.4.1.2011.5.25.127.2.30.2 The state of VRRP changed between backup and Initialize state. (VrrpIfIndex=3, VrId=1, IfIndex=3, IPAddress=10.1.1.10, NodeName=R1, IfName=GigabitEthernet0/0/0, CurrentState=2, ChangeReason=interface up)
Jul 8 2022 14:52:03+00:00 R1 %%01IFPDT/4/IF_STATE(l)[27]:Interface GigabitEthernet0/0/0 has turned into UP state.
Jul 8 2022 14:52:03+00:00 R1 %%01IFNET/4/LINK_STATE(l)[28]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the UP state.
Jul 8 2022 14:52:07+00:00 R1 VRRP/2/VRRPCHANGETOMASTER:OID 1.3.6.1.2.1.68.0.1 The status of VRRP changed to master. (VrrpIfIndex=3, VrId=1, IfIndex=3, IPAddress=202.100.1.10, NodeName=R1, IfName=GigabitEthernet0/0/0, ChangeReason=protocol timer expired(GigabitEthernet0/0/0 up))
Jul 8 2022 14:52:07+00:00 R1 VRRP/2/VRRPV3CHANGETOMASTER:OID 1.3.6.1.2.1.207.0.1 The status of VRRP changed to master. (VrrpIfIndex=3, VrId=1, InetAddrType=1, IPAddress=10.1.1.10, ChangeReason=3)
Jul 8 2022 14:52:07+00:00 R1 %%01VRRP/4/STATEWARNINGEXTEND(l)[29]:Virtual Router state BACKUP changed to MASTER, because of protocol timer expired. (Interface=GigabitEthernet0/0/0, VrId=1, InetType=IPv4)
Jul 8 2022 14:52:10+00:00 R1 VRRP/2/VRRPMASTERDOWN:OID 1.3.6.1.4.1.2011.5.25.127.2.30.1 The state of VRRP changed from master to other state. (VrrpIfIndex=3, VrId=1, IfIndex=3, IPAddress=202.100.1.10, NodeName=R1, IfName=GigabitEthernet0/0/0, CurrentState=2, ChangeReason=priority calculation)
Jul 8 2022 14:52:10+00:00 R1 %%01VRRP/4/STATEWARNINGEXTEND(l)[30]:Virtual Router state MASTER changed to BACKUP, because of priority calculation. (Interface=GigabitEthernet0/0/0, VrId=1, InetType=IPv4)
[R1-GigabitEthernet0/0/0]display vrrp b
[R1-GigabitEthernet0/0/0]display vrrp brief
Total:1 Master:0 Backup:1 Non-active:0
VRID State Interface Type Virtual IP
----------------------------------------------------------------
1 Backup GE0/0/0 Normal 10.1.1.254
# 在接口恢复后,先是变为Master再变化为Backup,过程非常短暂。
②如果在接口下配置IP地址为虚拟IP地址(优先级变为255),则会说明该设备为地址的拥有者,当选举时会立即将自己变为Master。
[R1-GigabitEthernet0/0/0]ip address 10.1.1.254 24
Warning: The priority of this VRRP backup group has changed to 255 and will not change.
[R1]display vrrp
GigabitEthernet0/0/0 | Virtual Router 1
State : Master
Virtual IP : 10.1.1.254
Master IP : 10.1.1.254
PriorityRun : 255
PriorityConfig : 100
MasterPriority : 255
Preempt : YES Delay Time : 0 s
TimerRun : 1 s
TimerConfig : 1 s
Auth type : NONE
Virtual MAC : 0000-5e00-0101
Check TTL : YES
Config type : normal-vrrp
Backup-forward : disabled
Create time : 2022-07-08 13:54:25
Last change time : 2022-07-08 15:01:20
6.Backup设备的优先级高于Master设备时,由Backup设备的工作方式决定是否选举Master。
· 抢占模式:在抢占模式下比较优先级和接口IP地址选举Master。
· 非抢占模式:只要Master设备没有出现故障,Backup设备的配置更优先也不会抢占。
· 抢占默认开启。
①修改R1的优先级为101,比R2的默认100大,抢占为Master。
[R1-GigabitEthernet0/0/0]vrrp vrid 1 priority 101
[R1-GigabitEthernet0/0/0]display vrrp
GigabitEthernet0/0/0 | Virtual Router 1
State : Master
Virtual IP : 10.1.1.254
Master IP : 10.1.1.10
PriorityRun : 101
PriorityConfig : 101
MasterPriority : 101
Preempt : YES Delay Time : 0 s
②在R2上配置非抢占,并修改R2优先级为102。R2不会抢占为Master。
[R2-GigabitEthernet0/0/0]vrrp vrid 1 preempt-mode disable
[R2-GigabitEthernet0/0/0]vrrp vrid 1 priority 102
[R2-GigabitEthernet0/0/0]display vrrp
GigabitEthernet0/0/0 | Virtual Router 1
State : Backup
Virtual IP : 10.1.1.254
Master IP : 10.1.1.10
PriorityRun : 102
PriorityConfig : 102
MasterPriority : 101
Preempt : NO
1.3.3VRRP选举规则
1.VRRP根据优先级确定角色,优先级越高,越有可能成为Master。(优先级255直接成为Master及地址是虚拟IP地址)
2.VRRP报文的优先级高于或等于自己优先级,则Backup设备保持Backup状态。
3.如果VRRP报文中的优先级低于自己的优先级,采用抢占方式的Backup切换至Master,非抢占设备仍然是Backup。
4.如果多个设备同时切换到了Master状态,通过VRRP报文进行交互协商,优先级高的成为Master设备。如果优先级相同则比较IP地址,IP地址越大越优先。
1.3.4VRRP定时器
ADVER_INTERVAL定时器:Master发送VRRP通告报文的时间周期,缺省为1秒。
Master_DOWN定时器:Backup设备监听该定时器超时后,变为Master。计算公式为3 * ADVER_INTERVAL) + Skew_time(偏移时间)
Skew_time: (256 - 优先级) / 256
当Master设备主动放弃Master地位(如Master设备退出备份组)会发送优先级为0的通告报文,用来使Backup设备快速切换成为Master设备,而不用等待Master_Down_Interval定时器超时。切换的时间称为Skew time。
当Master故障时不能发送通告报文,则需要等待MASTER_DOWN定时器超时后认为Master设备无法正常工作,Backup设备切换为Master。
二,VRRP的其他功能&配置
2.1VRRP追踪功能
2.2VRRP