演示:GLBP跟踪功能、权值、与不同的负载均衡方式

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

演示目标:

回忆GLBPHSRP或者VRRP在转发流量的差异

2 GLBP的优先级和抢占与HSRP或者VRRP优先级和抢占的不同之处

3 GLBP如何跟踪本地或者远端设备的接口

4 GLBP如何通过权值来启动或停止AVF的流量转发

5 GLBP通过权重方式实现负载均衡模式的配置

 

演示环境:1所示

wKioL1PfIYKwrVkHAAD3cKFCcUU575.jpg

演示步骤:

第一步完成基础配置。

R1(config)#routerospf 1

R1(config-router)#router-id1.1.1.1

R1(config-router)#network 192.168.1.0 0.0.0.255area 0

R1(config-router)#network 192.168.4.0 0.0.0.255area 0

R1(config-router)#network 172.16.1.0 0.0.0.255area 0

R1(config-router)#exit

 

 

R2(config)#router ospf 1

R2(config-router)#router-id 2.2.2.2

R2(config-router)#network 192.168.2.0 0.0.0.255area 0

R2(config-router)#network 172.16.1.0 0.0.0.255area 0

R2(config-router)#exit

 

R3(config)#router ospf 1

R3(config-router)#router-id3.3.3.3

R3(config-router)#network 192.168.1.0 0.0.0.255area 0

R3(config-router)#network 192.168.4.0 0.0.0.255area 0

R3(config-router)#network 192.168.2.0 0.0.0.255area 0

R3(config-router)#network 30.30.30.0 0.0.0.255area 0

R3(config-router)#exit

 

第二步:首先要具备笔者所著《思科CCNA认证详解与实验指南(200-120)》中所描述的关于GLBP的基础理论知识,然后再认区别如下问题:

 

GLBPHSRP或者VRRP在转发流量的差异

HSRP或者VRRP的冗余组中,在任何一个时间都只有一台活动路由器用于流量转发,而GLBP冗余组中的所有路由器都可以用于转发流量,区别只在于不同的负载均衡方式来决定。GLBP有两个层面的角色,一个叫AVG用于管理和决定谁作AVF转发路由器,并统一对客户端的ARP请求做应答,AVG使用哪个AVF的虚拟MAC来应答,那么谁就负载转发流量。

 

GLBP的优先级和抢占与HSRP或者VRRP优先级和抢占的不同之处

GLBP的优先级和HSRP或者VRRP的优先级有一些不同之处,GLBP的优先级只在选举谁是AVG(注意是选举AVG而不是AVF)时使用,而哪台路由器来作为AVF转发流量是由权值来决定的,高优先级的路由器为AVG路由器,高权值的路由器为AVF路由器,当然两个角色可以在同一台设备上,那么就可以派生出这样一种情况:一台高优先级的路由器是AVG,但是由于外部接口的链路故障,导致它的权值下降而停止它成为AVF,那么这台路由器将只用作管理AVF,不作为AVF进行流量转发。简而言之,就是这种行为的发生,并不影响它是AVG角色。而HSRP或者VRRP优先级既决定活动路由器的选举,也决定谁转发流量,因为只有活动路由器能转发流量,所以就只使用一个参数(优先级)来决定HSRP或者VRRP的管理行为和流量转发行为。

GLBP的抢占与HSRP或者VRRP的抢占也有差异,GLBP中的抢占是指对AVG扮演角色的抢占,对AVF角色不存在抢占问题,只有启动和停用,因为GLBP组中的所有路由器都转发流量,这和HSRP或者VRRP的抢占不同,因为HSRP或者VRRP的抢占既抢占活动路由器又抢占流量转发,因为只有活动路由器能转发流量,

 

请记住关键知识点:

1 GLBP的优先级关联AVG的选举,权值关联AVF和决定流量转发,无论它处于任何负载均衡模式下都是这样。这两个参数针对不同的角色,没有必然的联系。

2 GLBP的抢占功能只针对AVG角色,AVF只有启动和停用不存在抢占。

 

注意:下面将通过一种有逻辑的实验顺序来论证上文的描述!

 

第三步:配置GLBP跟踪本地或者远端设备的接口

要求配置路由器R1R2实现GLBP的冗余组1,然后要求R1GLBP组中的AVG路由器,同时R1R2都是AVF路由器,要求使用默认的负载均衡方式,设置R1的权值为120,要求R1监控E1/1S2/0接口,如果S2/0接口故障,那么权值将减20,但是R1仍然可以成为AVF路由器并转发流量,如果E1/1接口故障,那么权值将下减100,当R1的权值降至30时,该路由器将不再成为AVF路由器,直到权值恢复为110,那么R1再成为AVF路由器。

 

路由器R1的配置

R1(config)#intee1/0

R1(config-if)#glbp 1 ip 172.16.1.254

R1(config-if)#glbp 1 preempt   * 配置AVG角色的抢占功能

R1(config-if)#glbp 1 priority 254   * 配置AVG选举时的优先级

R1(config-if)#glbp 1 weighting 120 lower 30upper 110

E1/0配置权值为120,当权值降低30时该路由器停止成为AVF路由器,当权值恢复为110时该路由器重新成为AVF路由器。

R1(config-if)#glbp 1 weighting track 1decrement 100

如果所跟踪的track1故障,那么权值下降100

R1(config-if)#glbp 1 weighting track 2decrement 20

如果所跟踪的track2故障,那么权值下降20

R1(config-if)#exit

 

R1(config)#track1 interface e1/1 line-protocol

定义track1跟踪R1E1/1的链路属性

R1(config)#track2 interface s2/0 line-protocol

定义track2跟踪R1S2/0的链路属性

 

路由器R2的配置:

R2(config)#intee1/0

R2(config-if)#glbp 1 ip 172.16.1.254

R2(config-if)#glbp 1 preempt

R2(config-if)#exit

 

   配置完成后,可以通过在R1上执行show glbp detail指令查看GLBP的状态,如2所示,该GLBP1中的活动AVGR1local);备用AVGR2(172.16.1.2)

wKioL1PfIdfgV7IvAAMYifanYCE371.jpg

现在将会由谁来转发到30.30.30.1的流量:

    在目前的实验环境中,两台路由器都可以转发流量,不同的源主机使用不同的AVF,这是默认的负载均衡方式,比如源主机172.16.1.100使用AVF_R2(00-07-b4-00-01-02)来转发到30.30.30.1的流量,如3所示,而另一台主机172.16.1.101使用AVF_R1(00-07-b4-00-01-01)来转发流量,发4所示,如果还有其它的主机都会遵守这种轮询的状态。

wKiom1PfIOajI0f4AAGftNuNObw732.jpg

第二步:如果现在切断R1S2/0,那么此时的GLBP组中谁是AVG,谁是AVF

     如果此时切断R1S2/0接口,GLBP组中既是AVG又是AVFR1,此时仍然是AVG,同时AVF继续转发流量,因为R1S2/0故障,它的权值会从120下降20,变为100,但是无有到达AVF停止流量转发的最低门限30,所以R1AVF角色将继续转发流量,而AVG只与优先级相关,与权值无关,所以此时的R1既是AVG同时又是AVF

 

通过关闭S2/0接口来制造故障:

R1(config)#intes2/0

R1(config-if)#shutdown

R1(config-if)#exit

 

跟踪提示:S2/0的链路从UP转为down

*Jul 23 10:07:23.931: %TRACKING-5-STATE: 2interface Se2/0 line-protocol Up->Down

wKiom1PfISjjdJgPAAMNNT6dehg187.jpg

wKiom1PfIY2BJLZRAAH7Qxu76OQ831.jpg


现在恢复R1S2/0接口的故障:

R1(config)#inte s2/0

R1(config-if)#no shutdown

提问:如果现恢复S2/0后,再切断R1E1/1接口,现在R1的权值是多少,然后查看R1是否还能成为AVF,是否还能成为AVG,并说明为什么?

     如下配置,当R1E1/1被切断时,R1的权值将减少100,从原本的120减少100降至20,所以现在R1将不再是AVF路由器,它将停止转发流量,因为已经降至最低权值门限值30,但是这不并影响它AVG路由器的角色,再次强调AVG路由器只与优先级相关,AVG路由器的选举与权值无关,所以R1将仍然充当AVG的角色,而不再充当AVF角色如8所示,直到R1的权值恢复成AVF的重用最高门限值110后,才能充当AVF路由器。

 

R1(config)#intee1/1

R1(config-if)#shutdown

R1(config-if)#exit

 

跟踪提示:R1E1/1UP转为down

*Jul 23 10:18:39.735: %TRACKING-5-STATE: 1interface Et1/1 line-protocol Up->Down


wKiom1PfIfWze1PQAANI9IRCL8E688.jpg

 目前网络上GLBPAVGR1(不负责转发流量),AVFR2,所有的流量都将被R2转发,所以在主机172.16.1.100上的测试流量转发的路径如9所示。

 wKiom1PfIiuxqL6oAACx75Oml6U919.jpg


第三步:将基于round-bobin(循环)负载均衡的模式,改为基于权重的负载均衡。在实验这两种负载均衡模式之前首先来回忆并理解GLBP几种负载均衡模式的区别:

基于主机的负载均衡(host-dependent):该方案将始终让某台主机使用相同的AVF来转发流量,它是依靠判断信源主机的MAC地址来判断的,只源MAC地址相同,那么就表示该流量出自同一台主机,就始终使用同一台AVF和流量转发,如果是另一主机,那么将使用另一AVF做流量转发。

循环负载均衡(round-robin):依次轮流的使用GLBP中各个AVF来做流量转发,这是GLBP默认的负载均衡方式。

基于权值的负载均衡(weighted):基于AVF通告的权值来决定谁转发,权值越高,被选为转发器的可能就越大。比如:当前实验环境中路由器R1的权值是120,然后将R2的权值改为60,那么如果在R1和R2都是AVF的情况下,GLBP将通过让R1转发2次流量后,让R2转发一次,也就是按照2:1(120:60)的比率来转发流量,这里所谓的“次”事实上是以ARP请求为划分,更具体的讲AVG使用AVF1的MAC地址来为客户端作2次应答后,再用AVF2的MAC地址来作一次应答。

 

首先恢复路由器R1

R1(config)#intee1/1

R1(config-if)#no shutdown

R1(config-if)#exit

 

改变两台路由器GLBP的负载均衡方式,改变R2的权值为60

 

路由器R1的配置:

interface Ethernet1/0

 ipaddress 172.16.1.1 255.255.255.0

glbp 1 ip 172.16.1.254

 glbp1 priority 254

 glbp1 preempt

 glbp 1 weighting 120 lower 30 upper 110   保持实验先前配置的权值120

 glbp 1 load-balancing weighted    * 改变GLBP的负载均衡方式为基于权值作负载均衡

 glbp1 weighting track 1 decrement 100

 glbp1 weighting track 2 decrement 20

 

路由器R2的配置:

interface Ethernet1/0

 ipaddress 172.16.1.2 255.255.255.0

glbp 1 ip 172.16.1.254

 glbp1 preempt

 glbp 1 weighting 60    * 改变R2的权值为60

 glbp 1 load-balancing weighted  * 改变GLBP的负载均衡方式为基于权值作负载均衡

 

   完成上述配置后,可以在R1上查看GLBP的负载均衡方式已经为基于权值(或叫权重)进行负载均衡如10所示。

 wKiom1PfImLAR4UAAAI-moSgaDI821.jpg

    然后,在主机172.16.1.100上去ping 30.30.30.1共计3次,然后每一次在ping以前都使用arp –d清除主机的ARP缓存,其目的是避免主机使用ARP缓存转发,隐藏实验的真相,因为GLBP将通过让R1转发2次流量后,让R2转发一次,也就是按照2:1(120:60)的比率来转发流量,这里所谓的“次”事实上是以ARP请求为划分,更具体的讲AVG使用AVF1的MAC地址来为客户端作2次应答后,再用AVF2的MAC地址来作一次应答,如图11所示

wKiom1PfIrKhAR6nAAKw8j__jAA567.jpg

注意事项:

Sometime! 有用户在反映,他们在GLBP组中的各个路由器配置了权值,但是GLBP组却不能根据权值的比列来转发数据流量,一般情况下是两个原因所致:

1、 虽然配置了权值,但是没有通过指令load-balancing weighted来改变GLBP的负载均衡方式,所以所配置的权值只会被用于接口跟踪时决定是否启用或者停用某台AVF

2、 因为ARP缓存的原因,导致用户没有看到流量按比列来转发,所谓的“次”事实上是以ARP请求为划分。

    



本文转自 kingsir827 51CTO博客,原文链接:http://blog.51cto.com/7658423/1535426,如需转载请自行联系原作者

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
弹性计算 负载均衡 NoSQL
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)(四)
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)
112 0
|
弹性计算 负载均衡 NoSQL
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)(二)
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)
|
弹性计算 负载均衡 NoSQL
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)(一)
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)
|
3月前
|
负载均衡 Cloud Native 容灾
阿里云负载均衡SLB价格_ALB、NLB和CLB区别_负载均衡功能和使用场景说明
阿里云负载均衡SLB分为应用型ALB、网络型NLB及传统型CLB。ALB与NLB仅支持按量付费,而CLB则提供包年包月和按量付费选项。ALB专长于7层HTTP/HTTPS/QUIC协议处理,支持丰富的内容路由功能;NLB聚焦于4层TCP/UDP/TCPSSL协议,擅长处理大规模并发连接。两者均基于NFV技术,支持自动弹性伸缩,并与云原生环境如ACK/SAE/K8S深度集成。此外,SLB提供多协议支持、多级容灾、安全防护等功能,确保服务的高可用性和安全性。具体收费方面,ALB的基础版实例费为0.049元/小时起,NLB实例费限时免费,两者还需支付性能容量单位LCU费及公网网络费(仅公网实例)
|
4月前
|
负载均衡 监控 Kubernetes
Service Mesh 是一种用于处理服务间通信的基础设施层,它通常与微服务架构一起使用,以提供诸如服务发现、负载均衡、熔断、监控、追踪和安全性等功能。
Service Mesh 是一种用于处理服务间通信的基础设施层,它通常与微服务架构一起使用,以提供诸如服务发现、负载均衡、熔断、监控、追踪和安全性等功能。
|
弹性计算 负载均衡 NoSQL
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)(三)
【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)
109 0
|
5月前
|
XML 负载均衡 Java
Spring Boot 中实现负载均衡:概念、功能与实现
【6月更文挑战第28天】在分布式系统中,负载均衡(Load Balancing)是指将工作负载和流量分配到多个服务器或服务实例上,以提高系统可用性和响应速度。负载均衡器可以是硬件设备,也可以是软件解决方案。
281 0
|
6月前
|
弹性计算 负载均衡 监控
SLB高级功能
SLB高级功能
97 4
|
6月前
|
负载均衡 算法 Java
SpringCloud负载均衡源码解析 | 带你从表层一步步剖析Ribbon组件如何实现负载均衡功能
SpringCloud负载均衡源码解析 | 带你从表层一步步剖析Ribbon组件如何实现负载均衡功能
158 0
|
缓存 负载均衡 算法
【2022】Nginx使用ngx_http_upstream_module实现负载均衡功能
【2022】Nginx使用ngx_http_upstream_module实现负载均衡功能
140 0