目录
[1.1 VRRP的由来](#1.1 VRRP的由来)
[1.2 作用](#1.2 作用)
[1.3 基本结构](#1.3 基本结构)
[1.4 状态机流程](#1.4 状态机流程)
[1.5 设备类型](#1.5 设备类型)
[二、 实例演示](#二、 实例演示)
一、VRRP的概述
1.1 VRRP的由来
局域网中的用户终端通常采用配置一个默认网关的形式访问外部网络,如果此时默认网关设备发生故障,将中断所有用户终端的网络访问,这很可能会给用户带来不可预计的损失,所以可以通过部署多个网关的方式来解决单点故障问题,那么如何让多个网关能够协同工作但又不会互相冲突就成了最迫切需要解决的问题。于是VRRP应运而生,它既可以实现网关的备份,又能解决多个网关之间互相冲突的问题。
1.2 作用
VRRP能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现网关的备份。
1.3 基本结构
利用VRRP,一组路由器(同一个LAN中的接口)协同工作,但只有一个处于Master状态,处于该状态的路由器(的接口)承担实际的数据流量转发任务,并且每秒都会给Backup路由器发送Advertisement报文(目的地址为224.0.0.18(组播地址),协议号112),来告知Backup路由器自己的优先级以及状态, Backup路由器侦听Master路由器的状态,并在Master路由器发生故障时,接替其工作,从而保证业务流量的平滑切换。
1.4 状态机流程
设备使用vrrp协议,开机后先看自己的优先级是否为255,如果为255立即成为主,因为255是最大的优先级。当设备开机后,且发现自己的优先级不是255,先成为备再观察是否有比自己更大的优先级。
成为备后,当收到比自己大的优先级报文,那么继续做备;
当收到比自己小的优先级报文,那么成为主;
一般3秒内未收到报文,那么就成为主;
收到优先级为0的报文,代表主要主动退出,做好成为主的准备。
默认0 - 255,0 代表主要退出,255代表有设备和虚拟ip冲突,可手动配置 1-254,优先级相同会比较接口地址大的优先,优先级默认为100。
1.5 设备类型
主(master)路由器
通过比较VRRP优先级,优先级大的是master路由器; 周期性的发送VRRP报文,维护master路由器和备份路由器的身份, 周期时间默认是1s; 备份网关,通过比较 VRRP 优先级,优先级小的是备份路由器;
当路由器处于Master状态时,它将会做下列工作:
- 定期发送VRRP报文。
- 以虚拟MAC地址响应对虚拟IP地址的ARP请求。 虚拟路由器封装的时候都封装虚拟路由器的 mac地址。
- 转发目的MAC地址为虚拟MAC地址的IP报文。
- 如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。
- 如果收到比自己优先级大的报文则转为Backup状态。
- 如果收到优先级和自己相同的报文,并且发送端的主机IP地址比自己的主IP地址大,则转为Backup状态。
- 当接收到接口的Shutdown事件时,转为Initialize。
备份(backup)路由器
通过不断的接收master路由器发送的 VRRP 报文来判断master路由器的状态; 如果在master路由器发送VRRP的周期的3倍时间内(默认为3秒内),收不到 VRRP 报文,则认为master路由器出现故障,自己升级为master路由器。
当路由器处于Backup状态时,它将会做下列工作:
- 接收Master发送的VRRP报文,判断Master的状态是否正常。
- 对虚拟IP地址的ARP请求,不做响应。
- 丢弃目的MAC地址为虚拟MAC地址的IP报文。
- 丢弃目的IP地址为虚拟IP地址的IP报文。
- Backup状态下如果收到比自己优先级小的报文时,丢弃报文,不重置定时器;如果收到优先级和自己相同的报文,则重置定时器,不进一步比较IP地址。
- 当Backup接收到MASTER_DOWN_TIMER定时器超时的事件时,才会转为Master。
- 当接收到接口的Shutdown事件时,转为Initialize。
二、 实例演示
将路由器AR1与AR2做虚拟路由器,并测试可用性(eNSP模拟)
VRRP拓扑图如下:
PC1、2、3的配置如上图,网关分别为192.168.1/2.254,在此不过多赘述。
此处主要展示AR1、2、3的配置,
路由器AR1配置:
bashsys #进入系统视图 int g0/0/0 #进入0/0接口 ip add 192.168.1.10 24 #为接口配置IP地址 vrrp vrid 1 virtual-ip 192.168.1.254 #设置组1,并且配置虚拟网关 int g0/0/1 #进入0/1接口 ip add 20.0.0.1 24 #为接口配置IP地址 ip route-static 192.168.2.0 24 20.0.0.2 #配置静态路由,方便PC1、2与PC3连通
路由器AR2配置:
bashsys #进入系统视图 int g0/0/0 #进入接口模式 ip add 192.168.1.20 #配置IP地址 vrrp vrid 1 virtual-ip 192.168.1.254 #设置组1,并且配置虚拟网关 vrrp vrid 1 priority 120 #配置优先级为120,默认值为100,越大优先级越高 vrrp vrid 1 preempt-mode timer delay 10 #延迟抢占,设置为10秒后再抢占master vrrp vrid 1track int g0/0/1 reduce 50 #监听该路由器的上行端口g0/0/1,若出故障就减50优先权值 int g0/0/1 #进入接口模式 ip add 10.0.0.1 24 #配置IP地址 ip route-static 192.168.2.0 24 10.0.0.2 #配置静态路由,方便PC1、2与PC3连通
路由器AR3配置:
bashsys #进入系统视图 int g0/0/0 #进入接口模式 ip add 10.0.0.2 24 #配置IP地址 int g0/0/0 #进入接口模式 ip add 20.0.0.2 24 #配置IP地址 ip route-static 192.168.1.0 24 10.0.0.1 #配置静态路由,方便PC1、2与PC3连通 ip route-static 192.168.1.0 24 20.0.0.1 preference 70 #配置浮动路由,配置优先级为70,默认为60,越高优先级越低
测试可以ping通,
若将AR1的下行端口关闭,再进行测试后发现仍可以ping通,
目的达成。