VRRP虚拟网关冗余协议
1. VRRP
1.1 简介
一旦网络网关或关键节点出现故障,将对业务造成灾难性故障,链路失效无法检测,业务稳定性受到威胁。
VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)将可以承担网关功能的一组路由器加入到备份组中,形成一台虚拟路由器,由VRRP的选举机制决定哪台路由器承担转发任务,局域网内的主机只需将虚拟路由器配置为缺省网关。主路由器出现故障,备路由器可以取代Master续履行网关职责,从而保证网络内的主机不间断地与外部网络进行通信。
1.2 VRRP角色
-
Master
- VRRP组中实际转发数据包的路由器,在一个VRRP组中,仅有Master响应对虚拟IP地址的ARP请求
-
Backup
- 在VRRP组中处于监听状态,一旦Master出现故障,Backup就开始接替工作
1.3 VRRP优先级
-
优先级取值范围0到255(数值越大表明优先级越高)
-
优先级0为系统保留给特殊用途来使用,255则是系统保留给IP地址拥有者
-
当路由器为IP地址拥有者时,其优先级始终为255。因此,当备份组内存在IP地址拥有者时,只要其工作正常,则为Master路由器。
1.4 VRRP工作方式
-
非抢占方式
此模式下,Master角色一旦确定,不会因为再给Backup配置更高的优先级而被抢占
-
抢占方式
一旦发现自己的优先级比当前的Master路由器的优先级高,就会对外发送VRRP通告报文。备份组内路由器重新选举Master路由器,并最终取代原有的Master路由器。相应地,原来的Master路由器将会变成Backup路由器
1.5 VRRP认证
-
simple
简单字符认证。发送VRRP报文的路由器将认证字填入到VRRP报文中,而收到VRRP报文的路由器会将收到的VRRP报文中的认证字和本地配置的认证字进行比较。如果认证字相同,则认为接收到的报文是真实、合法的VRRP报文;否则认为接收到的报文是一个非法报文。
-
md5
MD5认证。发送VRRP报文的路由器利用认证字和MD5算法对VRRP报文进行摘要运算,运算结果保存在Authentication Header(认证头)中。收到VRRP报文的路由器会利用认证字和MD5算法进行同样的运算,并将运算结果与认证头的内容进行比较。如果相同,则认为接收到的报文是真实、合法的VRRP报文;否则认为接收到的报文是一个非法报文。
在一个安全的网络中,用户也可以不设置认证方式
1.6 VRRP定时器
VRRP定时器分为两种:VRRP通告报文间隔时间定时器和VRRP抢占延迟时间定时器。
-
VRRP通过报文时间间隔定时器
Master路由器会定时发送VRRP通告报文,通知备份组内的路由器自己工作正常,默认为1s
如果Backup路由器在等待了3个间隔时间后,依然没有收到VRRP通告报文,则认为自己是Master路由器,并对外发送VRRP通告报文,重新进行Master路由器的选举
-
VRRP抢占延迟时间定时器
为了避免备份组内的成员频繁进行主备状态转换,让Backup路由器有足够的时间搜集必要的信息(如路由信息),Backup路由器接收到优先级低于本地优先级的通告报文后,不会立即抢占成为Master,而是等待一定时间(抢占延迟时间)后,才会对外发送VRRP通告报文取代原来的Master路由器
1.7 VRRP工作过程
-
路由器使能VRRP功能后,会根据优先级确定自己在备份组中的角色。优先级高的路由器成为Master路由器,优先级低的成为Backup路由器。
Master路由器定期发送VRRP通告报文,通知备份组内的其他路由器自己工作正常;Backup路由器则启动定时器等待通告报文的到来。
Master会使用虚拟MAC发送ARP报文,使与Master连接的主机或者客户端建立与虚拟MAC对应的ARP映射表。
-
在抢占方式下,当Backup路由器收到VRRP通告报文后,会将自己的优先级与通告报文中的优先级进行比较。如果大于通告报文中的优先级,则成为Master路由器;否则将保持Backup状态。
-
在非抢占方式下,只要Master路由器没有出现故障,备份组中的路由器始终保持Master或Backup状态,Backup路由器即使随后被配置了更高的优先级也不会成为Master路由器。
-
如果Backup路由器的定时器超时后仍未收到Master路由器发送来的VRRP通告报文,则认为Master路由器已经无法正常工作,此时Backup路由器会认为自己是Master路由器,并对外发送VRRP通告报文。备份组内的路由器根据优先级选举出Master路由器,承担报文的转发功能。
1.8 VRRP三个状态
状态 | 描述 |
---|---|
初始状态(Initialize) | 路由器刚刚启动时进入此状态,通过VRRP报文交换数据后进入其他状态 |
活动状态(Master) | VRRP组中路由器通过VRRP报文交换后确定的当前转发数据包的一种状态 |
备份状态(Backup) | VRRP组中路由器通过VRRP报文交换后确定的当前处于监听的一种状态 |
-
初始状态(Initialize)
在这个状态下VRRP是不可用的,在这个状态下的设备是不会处理VRRP报文的,通常是刚配置VRRP时和检测到故障是会是这个状态
-
活动状态(Master)
- 定期发送VRRP报文。
- 以虚拟MAC地址响应对虚拟IP地址的ARP请求。
- 转发目的MAC地址为虚拟MAC地址的IP报文。
- 如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。
- 如果收到比自己优先级大的报文则转为Backup状态。
- 如果收到优先级和自己相同的报文,并且发送端的IP地址比自己的IP地址大,则转为Backup状态。
- 当接收到接口的Shutdown事件时,转为Initialize。
-
备份状态(Backup)
- 接收Master发送的VRRP报文,判断Master的状态是否正常。
- 对虚拟IP地址的ARP请求,不做响应。
- 丢弃目的MAC地址为虚拟MAC地址的IP报文。
- 丢弃目的IP地址为虚拟IP地址的IP报文。
- Backup状态下如果收到比自己优先级小的报文时,丢弃报文,立即切换为Master(仅在抢占模式下生效)。
- 如果收到优先级和自己相同或者比自己高的报文,则重置定时器,不进一步比较IP地址。
- 当接收到接口的Shutdown事件时,转为Initialize。
- 如果MASTER_DOWN_INTERVAL定时器超时,则切换为Master。
1.9 VRRP两种模式
-
主备备份模式
此模式下,正常只有Master转发数据
-
负载分担模式
通过创建多个拥有不同虚拟IP的备份组,为不同的VLAN指定网关实现负载分担
在实际组网中单独使用VRRP往往无法保证在网络主链路发生故障时及时有效的将用户数据流切换到备份链路上,因此往往需要配合使用NQA、BFD等技术。
2. NQA
NQA(Network Quality Analyzer,网络质量分析),通过发送探测报文,对链路状态、网络性能、网络提供的服务及服务质量进行分析。NQA还提供了与Track和应用模块联动的功能,实时监控网络状态的变化。
nqa test-instance admin vrrp # 配置管理员为admin,测试实例名称为vrrp的测试组
test-type icmp # 配置测试类型为ICMP
destination-address ipv4 X.X.X.X # 配置监测目的地址
frequency 5 # 测试频率5s
probe-count 2 # 一次NQA测试中探测的次数为2
start now # 马上生效
接口下配置
vrrp vrid 10 track nqa admin vrrp reduced 100 # VRRP中track关联对应nqa