背景#
随着移动办公、网上购物、即时通讯、互联网金融、互联网教育等业务蓬勃发展,网络承载的业务越来越多,越来越重要。所以如何保证网络的不间断传输成为网络发展过程中急需解决的一个问题。
对此,其中一种解决方案是,使用一套使用一套冗余备份机制,避免传统组网引发的单点故障,以便在路由器出现故障的时候及时进行链路切换,保证业务平滑进行。
传统解决方案
- 配备多台路由器解决单点故障
- 使用动态路由协议解决多网关冲突,实现链路回切
但是传统方案依然存在几个问题
- 一些动态路由协议使用广播报文进行链路切换速度上比较缓慢
- 在许多情景下可能会不支持使用动态路由
于是,VRRP 应运而生。
VRRP 的基本概念#
VRRP
虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称 VRRP) 是由 IETF 提出的解决局域网中配置静态网关出现单点失效现象的路由协议。
VRRP 能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器,通过配置虚拟路由器的 IP 地址为默认网关,实现网关的备份
优势#
采用 VRRP 的链路保护机制比依赖动态路由协议的广播报文来进行链路切换的时间更短,同时弥补了不能使用动态路由情况下的链路保护。
名词解释#
- VRRP 路由器:运行 VRRP 的设备,它可能属于一个或多个虚拟路由器。
- 虚拟路由器 (备份组): 同一个广播域的一组路由器组织成一个虚拟路由器,备份组中的所有路由器一起,共同提供一个虚拟 IP 地址,作为内部网络的网关地址。
- 虚拟 IP 地址:虚拟路由器的 IP 地址,一个虚拟路由器可以有一个或多个 IP 地址,由用户配置。
- IP 地拥有者:如果一个 VRRP 路由器将虚拟路由器的 IP 地址作为真实的接口地址,则该设备是 IP 地址拥有者。
- 虚拟 MAC 地址:是虚拟路由器根据虚拟路由器 ID 生成的 MAC 地址。 当虚拟路由器回应 ARP 请求时,使用虚拟 MAC 地址,而不是接口的真实 MAC 地址。
- 主 IP 地址:从接口的真实 IP 地址中选出来的一个主用 IP 地址,通常选择配置的第一个 IP 地址。
VRRP 广播报文使用主 IP 地址作为 IP 报文的源地址。 - 主(Master)路由器:在同一个备份组中的多个路由器中,只有一台处于活动状态,只有主路由器能转发以虚拟 IP 地址作为下一跳的报文。
- 备份(Backup)路由器:在同一个备份组中的多个路由器中,除主路由器外,其他路由器均为备份路由器,处于备份状态。
状态机
- VRRP 有三种状态:初始状态、活动状态、备份状态。其状态切换过程如下:
协议报文
vrrp 只有一种报文:Advertisement 报文;其目的 IP 地址是 224.0.0.18(组播地址),目的 MAC 地址是 01-00-5e-00-00-12,协议号是 112
下面介绍 vrrp 的两种主要的工作模式:主备备份和负载分担
VRRP 主备备份#
过程#
选举 master#
选举规则:1. 比较优先级 2. 优先级相同的时候,存在 master 则保持 master 状态 3. 没有 master 则比较接口 IP 地址,大的当选 master
备份组状态维持#
- master 周期性发送 vrrp 通告报文给组内设备,从而通知自己处于正常状态
- 主备切换 条件:1. master 主动放弃,发送优先级为 0 的通告报文 2. master 故障,等待 Master_Down_Interval 定时器超时,选举产生 master。这个 切换时间叫 Skew_Time,计算方式(256-Backup 设备的优先级)/256(单位秒)
- Master_Down_Interval 定时器取值:
3×Advertisement_Interval+Skew_Time
(单位秒)。
主备回切#
-
如果原故障 master 路由器恢复,发现收到 RouterB 的 VRRP 报文中的优先级比自己低,RouterA 立即抢占成为 Master。
抢占模式:
- 默认高优先级 backup 路由器可以抢占低优先级 master 路由器位置,但是如果 IP 地址拥有者是可用的,则它总是处于抢占的状态,并成为 Master 设备
- 注意抢占延时,默认为 0,但是为了防止在网络不稳定的情况下频繁切换导致流量中断,可以设置延时时间稍长
-
注意:如果 VRRP 的上行链路故障,由于主备通告正常,将无法引起主备切换
解决方法:利用 VRRP 的联动功能监视上行接口或链路故障,主动进行主备切换。
VRRP 负载分担#
- 负载分担是指多个 VRRP 备份组同时承担业务转发,从而解决流量分担不均,master 负担过重的情况
- 负载分担方式需要建立多个 VRRP 备份组,各备份组的 Master 设备分担在不同设备上;单台设备可以加入多个备份组,在不同的备份组中扮演不同的角色。
VGMP 简介#
VRRP 虽然可以解决单点故障,实现主备备份,但是在配置防火墙的时候,由于防火墙功能的特殊性,在对其进行主备备份时,传统 VRRP 方式无法实现主、备用防火墙状态的一致性。无法实现 VRRP 状态一致性以及会话表状态的备份
此时,我们需要引入VGMP(VRRP Group Management Protocol)
VGMP 提出 VRRP 管理组的概念,将同一台防火墙上的多个 VRRP 备份组都加入到一个 VRRP 管理组,由管理组统一管理所有 VRRP 备份组。通过统一控制各 VRRP 备份组状态的切换,来保证管理组内的所有 VRRP 备份组状态都是一致的。
基本原理#
- 当防火墙上的 VGMP 为 Active/Standby 状态时,组内所有 VRRP 备份组的状态统一为 Active/Standby 状态。
- 状态为 Active 的 VGMP 也会定期向对端发送 HELLO 报文,通知 Standby 端本身的运行状态(包括优先级、VRRP 成员状态等)
- VGMP HELLO 报文发送周期缺省为 1 秒。当 Standby 端三个 HELLO 报文周期没有收到对端发送的 HELLO 报
- 文时,会认为对端出现故障,从而将自己切换到 Active 状态。
VGMP 管理机制#
状态一致性管理
VGMP 管理组控制所有的 VRRP 备份组统一切换。
抢占管理
当原来出现故障的主设备故障恢复时,其优先级也会恢复,此时可以重新将自己的状态抢占为主。
用 VGMP 实现防火墙的备份以及故障自动迁移从而保证业务连续性的方法也属于防火墙的双机热备技术的一部分,因为篇幅有限,这里不再展开。
小结#
今天我们从现实一个问题作为切入点,简单介绍了利用 VRRP 做路由冗余备份,同时针对防火墙的特性,引申出 VGMP 的概念,也算是揭开了防火墙神秘面纱的一角。网络安全越来越成为我们生活中不可忽视的一部分,对于安全方面知识,下次有机会我们再继续讲述吧。