数通之VRRP技术
VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议,他的主要作用是确保下一跳路由器出现故障时能够有其他路由器来保证网络通信的连续性和可靠性。他可以将多个路由器加入到备份组中,形成一台虚拟路由器,承担网关功能,备份组中只需要有一台路由器能够正常工作,那么虚拟路由器就能正常工作。备份组中的路由器可以同时承载业务,分担内和外网之间的流量。
相关概念
概念 | 描述 |
---|---|
VRRP组(VRID) | 由多个路由器组成,属于同一VRRP组的VRRP路由器相互交互报文 |
虚拟路由器 | 由一个master和若干backup组成,主机将虚拟路由器设置为网关 |
虚拟IP | 虚拟路由器的IP地址,也就是主机的网关 |
虚拟MAC | 虚拟路由器拥有的虚拟MAC,格式为0000-5E00-01XX(XX对应 VRID),虚拟路由器使用虚拟mac回应对虚拟IP的ARP请求 |
MASTER路由器 | MASTER路由器就是在VRRP组实际转发数据包的路由器 |
BACKUP路由器 | BACKUP路由器就是在VRRP组中处于监听状态的路由器,一旦 MASTER路由器出现故障, BACKUP路由器就开始接替工作 |
VRRP优先级:8位,默认为100,最高优先级255;优先级高的选举为主路由器,优先级相同接口IP大的为主路由器;同一VRRP组中只允许存在一个主路由器,一个备份路由器
VRRP状态:Initialze
、Master
、Backup
Backup
、 Master
状态下接口Down
都会使状态转变为init
;在init
状态下,自身为IP地址拥有者且优先级为255时转换为Master
状态,若自身非IP地址拥有者且优先级小于255,则转换为Backup
状态;在Master
状态下,收到VRRP协议报文,且报文携带的PRI大于本地PRI,或者报文携带的PRI等于本地PRI,且报文携带接口IP大于本地接口IP,转换为Backup状态;在Backup
状态下,Master down(3个间隔时间+VRRP抢占延迟时间),或者收到VRRP协议报文,且报文携带的PRI小于本地PRI,且抢占模式为True,转换为Master状态。
VRRP组工作过程
- 优先级高的选举为主路由器,优先级相同时接口IP大的为主路由器
- 主路由器激活虚拟IP地址,转发数据报文,定期向广播域内发送VRRP组播报文通告自己状态,定期通告时间默认为1秒
- 备份路由器不发送但接收VRRP报文,在MASTER_DOWN_TIMER(3个通告周期)内没有接收到主路由器的VRRP报文,则备份路由器成为主路由器。
- 主路由器激活虚IP地址,同时也激活该IP对应的虚MAC地址,主 机发送虚IP地址的ARP请求时,主路由器使用虚MAC进行ARP响应。
备份路由器不激活虚拟IP地址,也不激活虚拟MAC地址,更不进行虚IP的ARP响应,也不接收目的MAC是虚MAC的报文。
当Master路由器上行链路的接口处于Down状态时,路由器主动降低自己的优先级,使备份组内重新选择Master,承担转发任务
思科私有技术HSRP
- HSRP协议目的与VRRP协议目的相同,提供默认网关的冗余,确保当主网关路由器故障时,备用路由器能无缝接管,保障网络的高可用性。
- 路由器通过交换Hello消息进行角色选举,基于优先级与IP地址。优先级为0的路由器表示正在退出Active状态,不参加选举。
故障检测与切换
- Standby 路由器监听 Active 路由器发送的 Hello 消息。
- 如果 Standby 在 Hold Time(默认 10 秒,通常是 Hello Time 的 3 倍多一点)内没有收到 Active 的 Hello 消息,则认为 Active 失效。
优先级最高的 Standby 路由器:
- 停止监听 Hello
- 发送一个 Coup 消息(声明接管)
- 发送一个 Gratuitous ARP (免费 ARP) 消息,将虚拟 IP (VIP) 关联到虚拟 MAC 地址(实际上是关联到它自己的物理接口),以更新局域网内所有主机的 ARP 缓存。
- 自身转变为 Active 状态,开始转发流量。
抢占
默认情况下,HSRP 的抢占是关闭的,即使一个拥有更高优先级的路由器(例如,原Active路由器从故障中恢复)重新加入 HSRP 组,只要当前的 Active 路由器没有故障,它就不会主动夺回 Active 角色,而是成为 Standby。
基本配置
Huawei
基本配置
interface <接口类型> <接口编号> # 进入三层接口视图 (如 GigabitEthernet0/0/1)
ip address <真实IP> <掩码> # 配置接口真实IP (必须)
vrrp vrid <虚拟路由器ID> virtual-ip <虚拟IP地址> # 创建VRRP组并指定虚拟IP
vrrp vrid <ID> priority <优先级> # 设置本设备在组中的优先级 (默认100, 范围1-254, 值高为主)
vrrp vrid <ID> preempt-mode timer delay <延迟秒数> # 开启抢占并设置延迟 (默认开启抢占, 延迟0秒)
vrrp vrid <ID> advertise-interval <秒数> # 设置Master发送通告报文间隔 (默认1秒)
高级配置
# 1. 认证配置 (可选, 不推荐明文):
vrrp vrid <ID> authentication-mode simple cipher <密码> # 简单明文认证 (不安全)
vrrp vrid <ID> authentication-mode md5 cipher <密码> # MD5认证 (相对安全)
# 2. 跟踪上行链路 (核心功能!) - 当上行口故障时自动降低优先级:
vrrp vrid <ID> track interface <上行接口类型> <上行接口号> reduced <降低值>
# 例如: vrrp vrid 1 track interface GigabitEthernet0/0/2 reduced 30
# 解释: 如果GE0/0/2 down, 本设备优先级降低30 (如原100 -> 70), 促使备机抢占。
# 3. VRRPv3 (支持IPv6):
vrrp version-3 # 全局启用VRRPv3
interface <接口>
vrrp vrid <ID> virtual-ip <IPv6地址> # 配置IPv6虚拟地址
vrrp vrid <ID> priority <优先级> # 同IPv4
查看命令
display vrrp [ brief ] # 查看所有VRRP组状态
display vrrp vrid <ID> [ verbose ] # 查看指定VRRP组详细信息
H3C设备
基本配置
interface <接口类型> <接口编号> # 如 interface GigabitEthernet1/0/1
ip address <真实IP> <掩码>
vrrp vrid <ID> virtual-ip <虚拟IP> # 创建组
vrrp vrid <ID> priority <优先级>
vrrp vrid <ID> preempt-mode delay <延迟秒数> # 开启抢占+延迟
高级配置
# 跟踪上行链路:
vrrp vrid <ID> track interface <上行接口> reduced <降低值>
# VRRPv3:
vrrp version v3 # 全局启用VRRPv3
interface <接口>
vrrp vrid <ID> virtual-ip <IPv6地址>
查看命令
display vrrp [ verbose | brief ]
display vrrp vrid <ID>
思科设备(VRRP)
基本配置
interface <接口类型> <编号> # 如 interface GigabitEthernet0/0
ip address <真实IP> <掩码>
vrrp <组ID> ip <虚拟IP地址> # 创建VRRP组
vrrp <组ID> priority <优先级> # 设置优先级 (默认100)
vrrp <组ID> preempt [delay <秒数>] # 开启抢占 (默认关闭抢占! 思科与华为/H3C不同)
vrrp <组ID> timers advertise [<间隔秒数>] # 设置通告间隔 (默认1秒)
高级配置
# 1. 认证:
vrrp <组ID> authentication text <明文密码> # 明文认证 (不安全)
vrrp <组ID> authentication md5 key-string [0|7] <密码> # MD5认证
# 2. 跟踪上行口 (思科常用对象跟踪):
track <跟踪对象号> interface <上行接口> line-protocol # 创建跟踪对象
vrrp <组ID> track <跟踪对象号> decrement <降低值>
# 例如:
# track 10 interface GigabitEthernet0/1 line-protocol
# vrrp 1 track 10 decrement 30
# 3. VRRPv3 (IPv6):
interface <接口>
vrrp <组ID> address-family ipv6
address <链路本地地址> autoconfig # 或手动指定 virtual-address <IPv6地址>
priority <优先级>
preempt
查看命令
show vrrp [brief | detail] # 查看所有组
show vrrp interface <接口> [组ID] # 查看指定接口/组
思科设备(HSRP)
基本配置
interface GigabitEthernet0/0 # 进入物理接口(需为三层接口)
ip address 192.168.1.1 255.255.255.0 # 配置真实IP(必须)
standby 1 ip 192.168.1.254 # 创建HSRP组1,虚拟IP(VIP)为192.168.1.254
standby 1 priority 110 # 设置本机在组1中的优先级(默认100,值越高越优先成为Active)
standby 1 preempt # 开启抢占(默认关闭!)
standby 1 name HSRP_GROUP1 # (可选)命名HSRP组,便于识别
关键参数调整
! 调整Hello包时间(秒)
standby 1 timers 1 3 # Hello=1秒,HoldTime=3秒(默认3/10秒)
! 配置抢占延迟(秒)
standby 1 preempt delay minimum 5 # 抢占前等待5秒(避免网络震荡)
! 配置认证(明文或MD5)
standby 1 authentication md5 key-string cisco # MD5认证(推荐)
standby 1 authentication text PLAIN_PWD # 明文认证(不安全)
高级配置
#创建跟踪对象(监控上行接口状态)
track 10 interface GigabitEthernet0/1 line-protocol # 跟踪G0/1接口物理状态
#绑定跟踪到HSRP组
standby 1 track 10 decrement 30 # 当G0/1宕机时,优先级降低30(如110→80)