VRRP多备份组+策略路由实现主备负载

简介: VRRP多备份组+策略路由实现主备负载

上篇文章,我们介绍了VRRP单备份组和策略路由之间主备切换的差异(),整体上看,单备份组VRRP的主备切换速度非常快,用过调整配置,可以轻轻松松将切换时间压缩到1秒钟以内;但是主备之间无法形成有效的流量负载。

如果使用策略路由,则可以轻松配置主备设备之间的流量负载;但是策略路由是通过周期性地查询FIB表中是否存在下一跳地址对应的条目,来判断设置的报文转发下一跳地址是否可用的,当设备到下一跳的路径发生变化时,策略路由无法及时感知,可能会导致通信发生短暂中断。我们通过不断地配置、调整NQA检测,最终的切换时间还是不能很好地控制在10秒以内,对业务影响可能会比较大。


那有没有稍微好一点的实现方法呢?


有的!单备份组VRRP解决不好的问题,我们交给多备份组VRRP来试一下!


组网需求


1、核心交换机CORESW与VRRP备份组之间通过10.1.1.0/24网段进行互通;


2、在VRRP备份组10中,手工配置VRRP1为主设备,VRRP2为备设备。当VRRP1正常工作时,PCA发送到ISP的报文经VRRP1转发;当VRRP1出现故障时,PCA发送给业务地址8.8.8.8的报文通过VRRP2转发;


3、在VRRP备份组20中,手工配置VRRP2为主设备,VRRP1为备设备。当VRRP2正常工作时,PCA发送到ISP的报文经VRRP2转发;当VRRP2出现故障时,PCA发送给业务地址8.8.8.8的报文通过VRRP1转发;


4、实现PCA可以持续访问ISP的业务地址8.8.8.8。


组网图


VRRP多备份组配置组网图:

1677218056617.jpg

实验环境


Windows 10专业版(1909-18363.1556,16 GB内存)

HCL 3.0.1

MSR 36-20(Version 7.1.064, Release 0821P11)

S5820V2-54QS-GE(Version 7.1.075, Alpha 7571)


配置步骤


在配置VRRP单备份组时(),VRRP的虚拟IP地址、VRRP主备路由器的接口真实IP地址都是配置在相同网段的,通过调整成员在备份组中的优先级来实现主备设备的选举。


而VRRP多备份组的实现机制也是一样的,只需要配置一个和既有VRRP备份组不冲突的备份组号和虚拟IP地址,再配置好成员在备份组中的优先级就可以了。例如在备份组10中,VRRP1和VRRP2的VRRP备份组相关配置如下:


VRRP1


#
interface GigabitEthernet0/0
ip address 10.1.1.11 255.255.255.0
 vrrp vrid 10 virtual-ip 10.1.1.1
 vrrp vrid 10 priority 200


VRRP2



#
interface GigabitEthernet0/0
ip address 10.1.1.22 255.255.255.0
 vrrp vrid 10 virtual-ip 10.1.1.1

而在备份组20中,VRRP1和VRRP2的VRRP备份组相关配置如下:


VRRP1


#
interface GigabitEthernet0/0
ip address 10.1.1.11 255.255.255.0
 vrrp vrid 20 virtual-ip 10.1.1.2

VRRP2


#
interface GigabitEthernet0/0
ip address 10.1.1.22 255.255.255.0
 vrrp vrid 20 virtual-ip 10.1.1.2
vrrp vrid 20 priority 200

同时我们把策略路由的配置也结合起来,在CORESW设备的PCA网关下面,配置策略路由vrrp,策略路由配置为匹配所有转发流量,策略路由的动作配置为负载分担模式,应用的下一跳分别为VRRP备份组10和备份组20的虚拟IP地址。

#
acl advanced 3300
 rule 0 permit ip
#
policy-based-route vrrp permit node 10
 if-match acl 3300
 apply loadshare next-hop
 apply next-hop 10.1.1.1
 apply next-hop 10.1.1.2
#
interface Vlan-interface2
 ip address 10.2.1.254 255.255.255.0
ip policy-based-route vrrp

此时,流量的负载分担由策略路由实现,设备的主备由VRRP实现,我们也无需再配置NQA探测了。设备的完整配置如下:


VRRP1


#
interface GigabitEthernet0/0
ip address 10.1.1.11 255.255.255.0
 vrrp vrid 10 virtual-ip 10.1.1.1
 vrrp vrid 10 priority 200
 vrrp vrid 10 preempt-mode delay 3000
 vrrp vrid 20 virtual-ip 10.1.1.2
 vrrp vrid 20 preempt-mode delay 3000
#
interface GigabitEthernet0/1
ip address 20.1.1.1 255.255.255.0
 nat outbound
#
 ip route-static 0.0.0.0 0 20.1.1.2
 ip route-static 10.2.1.0 24 10.1.1.254

VRRP2


#
interface GigabitEthernet0/0
 port link-mode route
 combo enable copper
 ip address 10.1.1.22 255.255.255.0
 vrrp vrid 10 virtual-ip 10.1.1.1
 vrrp vrid 10 preempt-mode delay 3000
 vrrp vrid 20 virtual-ip 10.1.1.2
 vrrp vrid 20 priority 200
 vrrp vrid 20 preempt-mode delay 3000
#
interface GigabitEthernet0/1
ip address 30.1.1.1 255.255.255.0
 nat outbound
#
 ip route-static 0.0.0.0 0 30.1.1.2
 ip route-static 10.2.1.0 24 10.1.1.254

CORESW


#
vlan 1
#
vlan 2
#
policy-based-route vrrp permit node 10
 if-match acl 3300
 apply loadshare next-hop
 apply next-hop 10.1.1.1
 apply next-hop 10.1.1.2
#
interface Vlan-interface1
 ip address 10.1.1.254 255.255.255.0
#
interface Vlan-interface2
 ip address 10.2.1.1 255.255.255.0
ip policy-based-route vrrp
#
interface GigabitEthernet1/0/1
port access vlan 2
#
 ip route-static 0.0.0.0 0 10.1.1.1
#
acl advanced 3300
 rule 0 permit ip

ISP


#
interface LoopBack1
 ip address 8.8.8.8 255.255.255.0
#
interface GigabitEthernet0/0
ip address 20.1.1.2 255.255.255.0
#
interface GigabitEthernet0/1
ip address 30.1.1.2 255.255.255.0


验证配置


测试从PCA到ISP的业务联通性。

1677218242718.jpg

 

业务访问正常,看一下流量的转发路径。

1677218247483.jpg


可以看到,流量成功负载到了两个VRRP的备份组上,但是显示的IP地址是接口的真实IP地址。我们看一下VRRP1设备上备份组的详细状态信息。

1677218259784.jpg

可以看到,VRRP的工作模式为Standard标准协议模式,存在的备份组数目为2,都在接口GigabitEthernet0/0下面,VRRP1在备份组10中的角色是Master,备份组的虚拟IP地址为10.1.1.1,可以看到备份组虚拟IP地址对应的虚拟MAC地址、对应接口的主IP地址等信息;VRRP1在备份组20中的角色是Backup,备份组的虚拟IP地址为10.1.1.2,没有显示备份组虚拟IP地址对应的虚拟MAC地址,对应接口的主IP地址是VRRP2设备的接口IP地址。


接下来,我们在PCA上开启长ping,分别DOWN掉VRRP1和VRRP2的下联口,查看一下业务中断情况。


可以看到,DOWN掉VRRP1的下联口时,出现了一个丢包,这个勉强还是可以接受的。接着我们DOWN掉VRRP2的下联口。

1677218274185.jpg

此时的丢包就比较严重了,又是11个包,这个就有点不能接受了。经过分析,发现出现了短暂的VRRP报文交互“异常”,DOWN掉VRRP1的下联口之后,再次使能接口时,VRRP1在两个备份组内都是Master角色。

1677218283529.jpg

原因是VRRP1在备份组20中的master_down_timer计时器超时,快速切换到将Master角色,同时将adver_timer设置为advertisement_interval,在这个时间段内,即使设备端口恢复,在adver_timer的时间周期内,也不会向外发布VRRP通告报文。这部分的详细实现请参考RFC文档()的第6章节状态机切换。


同时,VRRP2在两个备份组内都是Master角色。

1677218295333.jpg

原因是VRRP2在备份组10中收到了优先级为零的VRRP通告报文,快速切换到将Master角色,同时将master_down_timer计时器设置为skew_time。抓包看就是这样:

1677218307759.jpg

 

但是等待时间不应该这么长,我就看了一下交换机的接口状态。

1677218312775.jpg

可以看到,我们在模拟接口闪断之后,交换机的互联口切换到了DISCARDING状态,然后经过大约31秒,接口才经LEARNING状态切换为正常的FORWARDING状态。那我们把接口配置成边缘端口试一下。

1677218338661.jpg

然后就能看到接口UP之后,VRRP1很快抢占回Master了。


所以,配置VRRP多备份组来实现设备的主备,同时配置策略路由来实现流量在不同备份组之间的负载分担是基本可行的。

相关文章
|
2月前
|
网络架构
网络割接,用VRRP替换HSRP,你得这么割才行!
网络割接,用VRRP替换HSRP,你得这么割才行!
|
5月前
|
网络虚拟化 网络架构
网工记背命令(7)----静态路由(负载分担,主备备份)
网工记背命令(7)----静态路由(负载分担,主备备份)
37 0
|
5月前
|
网络虚拟化 网络架构
静态路由实现路由负载分担
配置思路 采用如下的思路配置静态路由实现路由负载分担: 1. 创建VLAN并配置各接口所属VLAN,配置各VLANIF接口的IP地址。 2. 配置数据流来回两个方向的静态路由。 3. 在各主机上配置IP地址和默认网关。
|
5月前
|
网络虚拟化 网络架构 Windows
VRRP多备份组+策略路由实现主备负载
VRRP多备份组+策略路由实现主备负载
|
5月前
|
负载均衡 Windows
简单对比一下VRRP和策略路由之间主备切换的差异
简单对比一下VRRP和策略路由之间主备切换的差异
|
网络安全
VRRP 主备切换的时间
VRRP 主备切换的时间
749 2
|
Linux 网络虚拟化
Cisco—HSRP下实现DHCP主备冗余
Cisco—HSRP下实现DHCP主备冗余
160 1
Cisco—HSRP下实现DHCP主备冗余
|
网络协议 Shell 数据安全/隐私保护