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多备份组配置组网图:

 

实验环境

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的业务联通性。

 

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

 

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

 

可以看到,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的下联口。

 

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

 

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

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

 

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

 

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

 

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

 

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

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Danileaf_Guo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值