1. VRRP的基本原理
VRRP:虚拟路由冗余协议,用于在网络中实现网关设备的冗余,可以由一组网关设备实现维护一个虚拟路由器,由虚拟路由器充当网关
虚拟路由器有自己的IP地址及MAC地址
在组内选举一台Master设备维护该虚拟路由器的相关信息
Backup设备会监听Master设备的状态,在Master设备故障时Backup设备会转变成Master设备继续维护虚拟路由器
1.1 VRRP的信息
VRRPv2 : 仅支持IPv4地址
VRRPv3 : 支持IPv4和IPv6地址
组播地址 : 224.0.0.18
协议号 : 112
虚拟IP对应的虚拟MAC生成方法 : 00-00-5E-00-01-组号
如果vrid为5 则为 00-00-5E-00-01-05
2. VRRP状态机
2.1 状态机
Init状态:初始化状态,表示VRRP设备的初始状态,当设备接口启用VRRP后会进入该状态,如果设备接口运行vrrp故障,也会回到初始化状态
master状态:用于维护VRRP虚拟路由器,缺省情况下会周期性(1s)通告VRRP报文。会响应虚拟IP地址的ARP请求,转发目的MAC为虚拟MAC地址的IP报文
backup状态:是Master的备份设备,会监听Master的状态,判断Master是否故障对虚拟IP地址的ARP信息不做响应,会丢弃虚拟目的地址为虚拟IP的报文
2.2 状态机的切换
Master状态 ==> Init状态 : 接口状态为Down或接口故障
Backup状态 ==> Init状态 : 接口状态为Down或接口故障
Master状态 ==> Backup状态 : 收到了更优VRRP报文 , Master设备会转换为Backup状态
Backup状态 ==> Master状态 : MASTER_DOWN计时器超时 (MD计时器 = 3*hello_time+skew_time)
hello_time默认为1s , skew_time=(256-优先级)/256 , 因此设备优先级越高,偏移时间越短,超时越快
3. VRRP优先级
VRRP优先级取值范围为0-255 , 可配置范围为1-254 , 缺省值为100 , 数值越大优先级越高
- 优先级0 : 当VRRP_Master设备放弃Master角色时 , 会立即通告VRRP优先级为0的报文 , 通知Backup设备不用等待3秒多 , 立即进行角色转换设备关机 , 接口Shutdown , 删除VRRP配置 等常规操作会导致Master设备发送VRRP优先级为0的报文
- 优先级255 : IP地址拥有者会将VRRP报文优先级设置为255 , 即自己的物理设备IP地址和虚拟设备的IP地址相同
4. VRRP抢占
- 开启抢占模式(默认) : 通过配置抢占延时可以让Master设备在动态路由协议收敛后在进行抢占 , 防止网关被抢占后出现路由黑洞
- 关闭抢占模式 : 只要Master设备没有故障 , Backup即使设置了再高的优先级 , 也不会成为Master角色
5. IP地址拥有者
- IP地址拥有者会将VRRP报文优先级设置为255 , 即自己的物理设备IP地址和虚拟设备的IP地址相同
- IP地址拥有者无法通过TRACK降低VRRP优先级的方式实现角色切换
6. VRRP报文字段
VRRP报文 : 源IP地址为VRRP的MASTER接口IP , 但源MAC地址为VRRP的虚拟MAC地址 , 目的IP为组播224.0.0.18
1, 版本号 : V2 4bit
2, 报文类型 : 通告报文 类型为1(VRRP只有这一种报文) 4bit
3, VRID : vrrp的组号 8bit
4, 优先级 : 用于VRRP的状态切换和协议选举
5, VRRP地址数量 : 表示VRRP虚拟地址数量
6, VRRP认证字段 : VRRPv2 支持明文认证哈哈希认证
7, VRRP通告时间 : 缺省值为1s , 取值范围1-255
8, VRRP协议校验和 : 用于校验VRRP报文完整性
9, VRRP虚拟IP地址 : 用于VRRP虚拟设备的IP地址
7. VRRP认证
VRRP支持明文认证和MD5认证 , 双方密码一致的情况下才能互相协商 , 但认证功能比较鸡肋 , 因为攻击者即便不协商也可以自己成为VRRP_Master , 最终仍会出现双Master情况
8. VRRP搭建方式
8.1 主备模式 :
1个Master , 多个Backup , 多个backup之间不知道对方的存在
8.2 负载均衡模式
① 多网关负载均衡 : 可以通过部署多个VRRP组 , 来实现虚拟多台路由器 , 网络内不同的 PC 以不同的虚拟路由器为网关 , 从而实现流量的负载分担 , 不便于用户配置 , 如果部署DHCP服务器则需要部署2台
② 单网管负载均衡 : 在进行负载分担时 , 收到用户ARP消息后 , VRRP备份组1将自己的虚拟MAC地址活备份组2的虚拟MAC地址封装金ARP相应报文中 , 从而让一个虚拟IP对应多个虚拟MAC地址,实现不同的用户使用不同的网关 , 从而简化用户端的配置 , 便于维护和管理
多网关负载均衡更适用于客户端为网络设备的情况 , 单网管负载均衡更适用于PC机
9. VRRPv3
VRRPv3和VRRPv2基本相同 , 区别在于
版本号字段为3
通告时间由1s变为100厘秒 (1s=100厘秒) , 更加精确
取消认证字段 , 因为既没有必要 , IPv6自身也支持认证
VRRPv3 也支持 IPv4