局域网中的用户终端通常采用配置一个默认网关的形式访问外部网络,如果此时默认网关设备发生故障,将中断所有用户终端的网络访问,这很可能会给用户带来不可预计的损失,所以可以通过部署多个网关的方式来解决单点故障问题,那么如何让多个网关能够协同工作但又不会互相冲突就成了最迫切需要解决的问题。
于是VRRP应运而生,它既可以实现网关的备份,又能解决多个网关之间互相冲突的问题。那么VRRP的工作原理是如何实现的?在网络中又该如何配置呢?
1. VRRP基本概念
1.1 概念
VRRP (Virtual Router Redundancy Protocol 虚拟路由冗余协议) 是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。
VRRP能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现网关的备份。
1.2 协议版本
VRRPv2 (常用) : 仅适用于IPv4网络
VRRPv3 : 适用于IPv4和IPv6两种网络
1.3 协议报文
只有一种报文 : Advertisement 报文
其目的地址IP为224.0.0.18 ; 目的mac地址为01-00-5e-00-00-12 ; 协议号为112
1.4 vrrp基本结构
2. VRRP状态机
VRRP协议中定义了三种状态机:(Initialize)、(Master)、(Backup)。其中,只有处于活动状态的设备才可以转发那些发那些发送到虚拟IP地址的报文。
- 优先级的默认范围为0 - 255
- 0 代表主路由器主动退出
- 255代表 有设备和虚拟ip冲突
- 可手动配置 1-254
- 优先级相同会比较接口地址大的优先 192.168.1.3 > 192.168.1.2
- 优先级默认为100
状态机工作原理
(1) 虚拟路由器中的路由器根据优先级选举出Master。Master路由器通过发送免费ARP报文,将自己的虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务;
(2) Master路由器周期性发送VRRP报文,以公布其配置信息(优先级等)和工作状况;
(3) 如果Master路由器出现故障,虚拟路由器中的Backup路由器将根据优先级重新选举新的Master;
(4) 虚拟路由器状态切换时,Master路由器由一台设备切换为另外一台设备,新的Master路由器只是简单地发送一个携带虚拟路由器的MAC地址和虚拟IP地址信息的免费ARP报文,这样就可以更新与它连接的主机或设备中的ARP相关信息。网络中的主机感知不到Master路由器已经切换为另外一台设备。
(5) Backup路由器的优先级高于Master路由器时,由Backup路由器的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。
3. VRRP主备备份工作过程
(1)设置优先级,优先级大的优先,优先级一样时候比较接口的 mac 地址
(2)路由器配置好以后,互相是不知道对面的配置,会互相发送通告报文,选举主备路由器
(3)选举出主备路由器
(4)选举出主备后, backup 就不再发送报文
(5)master 始终在周期性发送通告报文
master每间隔1秒发送一个通告报文,backup 始终监听master,backup一段时间内收不到master的报文会 成为主(一般会等待三倍hello时间 3s)
4. 主备路由器切换过程
-
如果Master发生故障,则主备切换的过程:
-
如果原Master故障恢复,则主备回切的过程:
立即抢占可能会导致流量中断,为了稳定性考虑,不要设置立即抢占!
- 抢占模式:立即抢占 ; 延时抢占 ; 不抢占
5. VRRP联动功能
会出现的问题 : VRRP无法感知非运行VRRP接口的状态变化,故当上行链路出现故障时,VRRP无法进行感知,不会进行主备切换,从而导致业务中断。
解决方案 : 利用VRRP的联动功能监视上行接口或链路故障,主动进行主备切换
6. VRRP基本配置
实验拓扑
```路由器1配置
<R1>sys
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 20.0.0.2 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 10.0.0.2 24
[R1-GigabitEthernet0/0/1]int g0/0/2
[R1-GigabitEthernet0/0/2]ip add 192.168.2.254 24
[R1]ip route-static 192.168.1.0 24 10.0.0.1
[R1]ip route-static 192.168.1.0 24 20.0.0.1 preference 70 浮动路由
```路由器2配置
<R2>sys
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 192.168.1.10 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 10.0.0.1 24
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.1.254 设置1组,配置虚拟网关
[R2-GigabitEthernet0/0/0]vrrp vrid 1 priority 120 配置优先级为120
[R2-GigabitEthernet0/0/0]vrrp vrid 1 preempt-mode timer delay 30 延迟抢占,延迟 30s
[R2-GigabitEthernet0/0/0]vrrp vrid 1 track int g0/0/1 reduced 50 监听上行端口,如果上行端口出现故障,自减50优先级
[R2]ip route-static 192.168.2.0 24 10.0.0.2
```路由器3配置
<R3>sys
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 192.168.1.20 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 20.0.0.1 24
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.1.254
[R3]ip route-static 192.168.2.0 24 20.0.0.2