引入:局域网中的用户终端通常采用配置一个默认网关的形式访问外部网络,如果此时默认网关设备发生故障,将终端所有用户终端的网络访问,这很可能会给用户带来不可预计的损失,所以可以通过部署多个网关的方式来解决单点故障问题,那么如何让多个网管能够协同工作但又不会互相冲突就成了最迫切需要解决的问题。
于是VRRP应运而生,它即可以实现网关的备份,又能解决多个网关之间互相冲突的问题。那么VRRP的工作原理是如何实现的?在网络中又该如何配置?
多网关存在的问题
通过部署多网关的方式实现网关的备份。
但多网关可能会出现一些问题:网关间IP地址冲突;主机会频繁切换网络出口。
VRRP基本概述
VRRP能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现网关的备份。
协议版本:VRRPv2(常用)和VRRPv3;
VRRPv2仅适用于IPv4网络,VRRPv3是用于IPv4和IPv6两种网络
VRRP协议报文: 只有一种报文:Adervertisment报文;其目的IP地址是224。0.0.18,目的MAC地址是01-00-5e-00-00-12,协议号是112.
适用场景之一:数据库
默认0-255
0代表主要退出
255代表有没有和虚拟IP冲突
可手动配置1-254
优先级相同会比较接口地址大的优先
优先级默认为100
三倍hello时间超时,华为的设备在标准的RSTP上,需要一个时间因子,默认为3,即三倍hello超时为18秒
维持状态:
维持主备状态
通过报文告诉组内其他成员
负载均衡
平滑:在不影响任何业务的情况下进行切换
Backup在Master_Down_Interval时间内未收到Master发送的状态通告报文,则立即成为Master
抢占模式
(可以修改非抢占模式,默认抢占模式无延迟)
思考:master抢占模式,立即抢占可能会导致什么问题?
抢占延迟时间,默认为0,即立即抢占。
Master故障恢复后,立即抢占可能会导致流量中断,因为Master的上行链路的路由协议可能未完成收敛,这种情况则需要配置Master设备的抢占延时。
另外,在性能不稳定的网络中,网络堵塞可能导致Buckup设备在Master_Down_Interval期间没有收到Master设备的报文。Backup设备则会主动切换为Master。如果此时原Master设备的报文又到达了,新Master设备将再次切换回Backup,如此则会出现VRRP备份组成员状态频繁切换的现象。为了缓解这种现象,可以配置抢占延时,使得Backuo设备在等待了Master_Down_Interval时间后,再等待抢占延迟时间。如在此期间仍没有收到通告报文,Backup设备才会切换为Master设备。
设备类型:
-
master路由器
通过比较VRRP优先级,优先级大的是master路由器;
周期性的发送VRRP报文,维护master路由器和备份路由的身份;
周期时间默认是1s;备份网关,通过比较VRRP优先级,优先级小的是备份路由器;
-
备份(Backup)路由器
通过不断的接收master路由器发送的VRRP报文来判断master路由器的状态;
如果在一定的时间内,收不到VRRP报文,则认为master路由器出现故障,自己升级为master路由器;
这个“一定的时间”,默认是“master路由器发送VRRP的周期”的3倍,所以默认是3s;
-
虚拟网关
通过VRRP虚拟出来的网关IP地址,这个网关IP地址,是配置在终端设备上的;
终端设备访问其他网段时,直接将数据发送给虚拟网关IP地址;
此时只有master路由器会回应针对虚拟网关IP地址的ARP请求,所以最终终端设备发送的数据发送到了master路由器设备上;
主机设置的网关是不在配置在真实接口上;
-
VRID
相同在同一个组中,只有在同一个组中,才会共享 虚拟IP
虚拟路由器的标识,有相同VRID的一组路由器构成一个虚拟路由器VRRP报文格式,VRRP只使用到advertisement这一种报文,VRRP用ip报文作为传输协议报文,协议号为112,使用固定的组播地址224.0.0.18进行发送
-
VRRP状态机
VRRP协议中定义了三种状态机:初始状态(initialize)、活动状态(Master)、备份状态(Backup)。其中,只有处于活动状态的设备才可以转发那些发送到虚拟IP地址的报文。
-
Initialize
设备启动进入此状态,当受到接口Startup的消息,将转入Backup或Master状态(IP地址拥有者的接口优先级为255,直接转为Master)。在此状态时,不会对VRRP报文做任何处理。
Master
当路由器处于Master状态时,它将会做下列工作:
-
定期发送VRRP报文。
-
以虚拟MAC地址响应对虚拟IP地址的ARP请求。虚拟路由器 封装的时候都封装虚拟路由器的MAC地址
-
转发目的MAC地址为虚拟MAC地址的IP报文。
-
如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。
-
如果收到比自己优先级大的报文则转为Backup状态。
-
如果收到优先级和自己相同的报文,并且发送端的主机IP地址比自己的主机IP地址大,则转为Backup状态。
-
当接收到接口的Shutdown事件时,转为Initialize。
Backup
当路由器处于Backup状态时,它将会做下列工作:
-
接收Master发送的VRRP报文,判断Master的状态是否正常
-
对虚拟IP地址的ARP请求,不做响应
-
丢弃目的MAC地址为虚拟MAC地址的IP报文。
-
丢弃目的IP地址为虚拟IP地址的IP报文。
-
Backup状态下如果收到比自己优先级小的报文时,丢弃报文,不重置定时器;如果收到优先级和自己相同的报文,
-
则重置定时器,不进一步比较IP地址
-
当Backup接收到MASTER_DOWN_TIMER定时器超时的事件时,才会转为Master。
-
当接收到接口的Shutdown事件时,转为Initialize。
练习:
网络拓扑图如下:
三层交换机代码(S5700-LSW5):
The device is running!
<Huawei>undo terminal monitor
Info: Current terminal monitor is off.
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]v b 10 20 100
Info: This operation may take a few seconds. Please wait for a moment...done.
[Huawei]int g0/0/1
[Huawei-GigabitEthernet0/0/1]p l a
[Huawei-GigabitEthernet0/0/1]po
[Huawei-GigabitEthernet0/0/1]port d
[Huawei-GigabitEthernet0/0/1]port de
[Huawei-GigabitEthernet0/0/1]port default v
[Huawei-GigabitEthernet0/0/1]port default vlan 100
[Huawei-GigabitEthernet0/0/1]int g0/0/2
[Huawei-GigabitEthernet0/0/2]p l t
[Huawei-GigabitEthernet0/0/2]p t a v all
[Huawei-GigabitEthernet0/0/2]q
[Huawei]int vlanif10
[Huawei-Vlanif10]ip addr
[Huawei-Vlanif10]ip address 192.168.10.10 24
[Huawei-Vlanif10]int vlanif20
[Huawei-Vlanif20]ip ad
[Huawei-Vlanif20]ip address 192.168.20.10 24
[Huawei-Vlanif20]int vlanif 100
[Huawei-Vlanif100]ip ad
[Huawei-Vlanif100]ip address 11.0.0.2 24
[Huawei-Vlanif100]int vlanif10
[Huawei-Vlanif10]v
[Huawei-Vlanif10]vrrp v
[Huawei-Vlanif10]vrrp vrid 1 v
[Huawei-Vlanif10]vrrp vrid 1 virtual-ip 192.168.10.1
[Huawei-Vlanif10]v
[Huawei-Vlanif10]vrrp v
[Huawei-Vlanif10]vrrp vrid 1 a
[Huawei-Vlanif10]vrrp vrid 1 at
[Huawei-Vlanif10]vrrp vrid 1 ac
[Huawei-Vlanif10]vrrp vrid 1 pri
[Huawei-Vlanif10]vrrp vrid 1 priority 120
[Huawei-Vlanif10]v
[Huawei-Vlanif10]vrrp v
[Huawei-Vlanif10]vrrp vrid 1 at
[Huawei-Vlanif10]vrrp vrid 1 att
[Huawei-Vlanif10]vrrp vrid 1 tr
[Huawei-Vlanif10]vrrp vrid 1 track int g0/0/1 re
[Huawei-Vlanif10]vrrp vrid 1 track int g0/0/1 reduced 30
[Huawei-Vlanif10]vr
[Huawei-Vlanif10]vrrp v
[Huawei-Vlanif10]vrrp vrid 2 v
[Huawei-Vlanif10]vrrp vrid 2 virtual-ip 192.168.20.10
Error: The virtual IP address is not within a subnet on this interface.
[Huawei-Vlanif10]int vlan20
[Huawei-Vlanif20]vr
[Huawei-Vlanif20]vrrp vr
[Huawei-Vlanif20]vrrp vrid 2 vr
[Huawei-Vlanif20]vrrp vrid 2 vi
[Huawei-Vlanif20]vrrp vrid 2 virtual-ip 192.168.20.10
Warning: The priority of this VRRP backup group has changed to 255 and will not
change.
[Huawei-Vlanif20]dis th
#
interface Vlanif20
ip address 192.168.20.10 255.255.255.0
vrrp vrid 2 virtual-ip 192.168.20.10
#
return
[Huawei-Vlanif20]vr
[Huawei-Vlanif20]vrrp v
[Huawei-Vlanif20]vrrp vrid 2 vr
[Huawei-Vlanif20]vrrp vrid 2 vi
[Huawei-Vlanif20]vrrp vrid 2 virtual-ip 192.168.20.1
#
[Huawei-Vlanif20]dis th
#
interface Vlanif20
ip address 192.168.20.10 255.255.255.0
vrrp vrid 2 virtual-ip 192.168.20.10
vrrp vrid 2 virtual-ip 192.168.20.1
#
return
[Huawei-Vlanif20]undo v
[Huawei-Vlanif20]undo vrrp v
[Huawei-Vlanif20]undo vrrp vrid 2 vi
[Huawei-Vlanif20]undo vrrp vrid 2 virtual-ip 192.168.20.10
#上面vlanif20 虚拟ip地址输错了,进行修改
[Huawei-Vlanif20]dis th
#
interface Vlanif20
ip address 192.168.20.10 255.255.255.0
vrrp vrid 2 virtual-ip 192.168.20.1
#
return
[Huawei-Vlanif20]
路由器代码:
The device is running!
<Huawei>un t m
Info: Current terminal monitor is off.
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip ad
[Huawei-GigabitEthernet0/0/0]ip address 11.0.0.1 30
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip ad
[Huawei-GigabitEthernet0/0/1]ip address 12.0.0.1 30
[Huawei-GigabitEthernet0/0/1]q
[Huawei]int lo
[Huawei]int LoopBack 1
[Huawei-LoopBack1]ip ad
[Huawei-LoopBack1]ip address 1.1.1.1 32
[Huawei-LoopBack1]
[Huawei-LoopBack1]
<Huawei>
交换机代码:
Please press enter to start cmd line!
The device has not been started!
<Huawei>un t m
Info: Current terminal monitor is off.
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]v b 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
[Huawei]int e0/0/2
[Huawei-Ethernet0/0/2]p l a
[Huawei-Ethernet0/0/2]p d v 10
[Huawei-Ethernet0/0/2]int e0/0/4
[Huawei-Ethernet0/0/4]p l a
[Huawei-Ethernet0/0/4]p d v 20
[Huawei-Ethernet0/0/4]
[Huawei-Ethernet0/0/4]int e0/0/1
[Huawei-Ethernet0/0/1]p l t
[Huawei-Ethernet0/0/1]p t a v a
[Huawei-Ethernet0/0/1]int e0/0/3
[Huawei-Ethernet0/0/3]p l t
[Huawei-Ethernet0/0/3]p t a v a
[Huawei-Ethernet0/0/3]
测试连通性:
答案:D
😘