演示目标:
1 回忆GLBP与HSRP或者VRRP在转发流量的差异
2 GLBP的优先级和抢占与HSRP或者VRRP优先级和抢占的不同之处
3 GLBP如何跟踪本地或者远端设备的接口
4 GLBP如何通过权值来启动或停止AVF的流量转发
5 GLBP通过权重方式实现负载均衡模式的配置
演示环境:如图1所示
演示步骤:
第一步:完成基础配置。
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的基础理论知识,然后再认区别如下问题:
GLBP与HSRP或者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跟踪本地或者远端设备的接口
要求配置路由器R1和R2实现GLBP的冗余组1,然后要求R1为GLBP组中的AVG路由器,同时R1和R2都是AVF路由器,要求使用默认的负载均衡方式,设置R1的权值为120,要求R1监控E1/1和S2/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跟踪R1的E1/1的链路属性
R1(config)#track2 interface s2/0 line-protocol
* 定义track2跟踪R1的S2/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所示,该GLBP组1中的活动AVG是R1(local);备用AVG是R2(172.16.1.2)。
现在将会由谁来转发到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所示,如果还有其它的主机都会遵守这种轮询的状态。
第二步:如果现在切断R1的S2/0,那么此时的GLBP组中谁是AVG,谁是AVF?
如果此时切断R1的S2/0接口,GLBP组中既是AVG又是AVF的R1,此时仍然是AVG,同时AVF继续转发流量,因为R1的S2/0故障,它的权值会从120下降20,变为100,但是无有到达AVF停止流量转发的最低门限30,所以R1的AVF角色将继续转发流量,而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
现在恢复R1的S2/0接口的故障:
R1(config)#inte s2/0
R1(config-if)#no shutdown
提问:如果现恢复S2/0后,再切断R1的E1/1接口,现在R1的权值是多少,然后查看R1是否还能成为AVF,是否还能成为AVG,并说明为什么?
如下配置,当R1的E1/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
跟踪提示:R1的E1/1从UP转为down
*Jul 23 10:18:39.735: %TRACKING-5-STATE: 1interface Et1/1 line-protocol Up->Down
目前网络上GLBP的AVG是R1(不负责转发流量),AVF是R2,所有的流量都将被R2转发,所以在主机172.16.1.100上的测试流量转发的路径如图9所示。
第三步:将基于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所示。
然后,在主机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所示
注意事项:
Sometime! 有用户在反映,他们在GLBP组中的各个路由器配置了权值,但是GLBP组却不能根据权值的比列来转发数据流量,一般情况下是两个原因所致:
1、 虽然配置了权值,但是没有通过指令load-balancing weighted来改变GLBP的负载均衡方式,所以所配置的权值只会被用于接口跟踪时决定是否启用或者停用某台AVF。
2、 因为ARP缓存的原因,导致用户没有看到流量按比列来转发,所谓的“次”事实上是以ARP请求为划分。
本文转自 kingsir827 51CTO博客,原文链接:http://blog.51cto.com/7658423/1535426,如需转载请自行联系原作者