VRRP概念
VRRP 的协议状态有三种:初始状态(Initialize)、主状态(Master)、备份状态(Backup)
Initialize 状态:
所有 VRRP 路由器以 Initialize 状态开始,当端口 DOWN(包括人工 shut 或者物理
down)后,回归到 Initialize 状态;
Backup 状态:
− 不履行网关的职责;
− 不响应目的 IP 为 Virtual IP 的 ARP 请求;
− 丢弃目的 MAC 为 Virtual MAC 的数据包;
− 丢弃目的 IP 为 Virtual IP 的数据包;
Master 状态:
− 履行网关的职责
− 响应目的 IP 为 Virtual IP 的 ARP 请求;
− 转发目的 MAC 为 Virtual MAC 的数据包;
VRRP实例
这个实验拓扑,一般来说VRRP的路由器都要接在交换机上,因为路由器一个端口就是一个广播域,所以需要通过交换机使三台路由器在同一广播域下
R1:
R1(config)#track 1 interface g1/0 line-protocol ->设置监视的上游端口
R1(config)#int g0/0
R1(config-if)#ip add 172.16.1.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#vrrp 1 ip 172.16.1.254 ->设置虚拟的IP
R1(config-if)#vrrp 1 priority 120 ->设置优先级,默认为100
R1(config-if)#vrrp 1 track 1 decrement 30 ->当接口关闭时减少优先值
R1(config-if)#vrrp 1 preempt delay minimum 5 ->设置抢占延时为5s
R1(config)#int g1/0
R1(config-if)#ip add 10.1.123.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#vrrp 2 ip 10.1.123.254
R1(config-if)#vrrp 2 track 2 decrement 30
R1(config-if)#vrrp 2 preempt delay minimum 5
R2:
R2(config)#int g0/0
R2(config-if)#ip add 172.16.1.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#vrrp 1 ip 172.16.1.254
R2(config-if)#vrrp 1 track 1 decrement 30
R2(config-if)#vrrp 1 preempt delay minimum 5
R2(config)#track 2 interface g1/0 line-protocol
R2(config-if)#int g1/0
R2(config-if)#ip add 10.1.123.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#vrrp 2 ip 10.1.123.254
R2(config-if)#vrrp 2 priority 120
R2(config-if)#vrrp 2 track 2 decrement 30
R2(config-if)#vrrp 2 preempt delay minimum 5
R3:
R3(config)#int g0/0
R3(config-if)#ip add 10.1.123.3 255.255.255.0
R3(config-if)#no sh
R3(config)#int loopback 0 ->配置环回口测试
R3(config-if)#ip add 3.3.3.3 255.255.255.255
R3(config)#ip route 172.16.1.0 255.255.255.0 10.1.123.254 ->回程路由
下面是一些可选命令:
vrrp 1 preempt #支持抢占性,默认值
vrrp 1 timers advertise1 # 配置advertisement时间为1秒,默认值
vrrp 1 authentication md5 key-string Cisco #配置md5认证密码为Cisco
设置成功就可以从R1上看到日志了
*Dec 12 11:30:32.631: %VRRP-6-STATECHANGE: Gi0/0 Grp 1 state Init -> Backup
*Dec 12 11:30:36.243: %VRRP-6-STATECHANGE: Gi0/0 Grp 1 state Backup -> Master
*Dec 12 11:50:39.395: %VRRP-6-STATECHANGE: Gi1/0 Grp 2 state Master -> Backup
VRRP报文交互
配置了VRRP后,VRRP会广播一个免费ARP包,用来检测是否IP地址存在冲突
一个虚拟路由器拥有一个虚拟 MAC 地址,根据 RFC2338 的规定,虚拟 MAC 地址 的格式为: 00-00-5E-00-01-{VRID}。当虚拟路由器回应 ARP 请求时,回应的是虚 拟 MAC 地址,而不是接口的真实 MAC 地址。
master会周期性的发送advertisement报文,其实也就是一秒发送一次,如果backup每隔3秒没收到master发来的advertisement报文,则认为master down,就会进行新一轮的选举。从中还可以看出使用组播地址是224.0.0.18。
这个时候去pingR3的环回接口可以看到先是经过了R1然后到R3,如果R1的G0/0接口Down掉之后会怎么样呢?
R1(config)#int g0/0
R1(config-if)#shutdown
*Dec 12 12:36:36.691: %VRRP-6-STATECHANGE: Gi0/0 Grp 1 state Master -> Init
但R2在3秒之内没有收到R1的VRRP的交互数据包,R2由Backup切换到了Master,从报文和R2的日志可以看出来
R2日志:
*Dec 12 12:28:17.375: %VRRP-6-STATECHANGE: Gi0/0 Grp 1 state Backup -> Master
我们设置监视上游接口,当上游接口Down了之后我们可以看一下会发生什么?
R1(config)#int g1/0
R1(config-if)#shutdown
从日志可以看出来由于接口Down了,VRRP2状态变成了Init,检测到上游的G1/0接口Down了之后,VRRP1的状态也由Master变成了Backup
*Dec 12 12:51:10.723: %VRRP-6-STATECHANGE: Gi1/0 Grp 2 state Backup -> Init
*Dec 12 12:51:10.727: %TRACKING-5-STATE: 1 interface Gi1/0 line-protocol Up->Down
*Dec 12 12:51:16.183: %VRRP-6-STATECHANGE: Gi0/0 Grp 1 state Master -> Backup
这是因为当我们设置了当G1/0接口Down之后,VRRP的优先值减了30,导致了R2的优先值大于R1
这个时候从PC1上追踪路由路径可以看到VRRP自动从R1切换到了R2
VRRP排错思路
未完待续,喜欢的话不妨关注收藏一下!