GLBP

7 Aug

GLBP(GatewayLoad Balancing Protocol网关负载均衡协议)是思科私有协议,和HSRPVRRP一样也能提供提供冗余网关。不同点是:HSRPVRRP配成多个组,不同PC的网关设为不同组的IP地址来实现负载均衡。而GLBP设成相同网关也能负载均衡。(原理是:虽然VR的三层IP地址是相同的,但二层虚拟Mac地址不同)

GLBP组会选出一个AVG(Active Virtual Gateway虚拟活动网关)来分配最多4个不同的虚拟Mac地址。AVG只有一个,负责响应ARP请求,给客户不同的Mac地址并根据负载均衡策略来实现负载均衡。组内路由器AVF(Active Virtual forwarder虚拟活动转发路由器)根据被分配到的虚拟Mac地址来转发数据。AVG本身也是AVF。

GLBP工作原理:

AVG的选举类似和HSRP中Active路由器的选举。优先级最高的为AVG,次高的为备份AVG,其余路由器处于监听状态。一个GLBP组只能有一个AVG和一个备份AVG。选出AVG后,AVG会为组内路由器(AVF)分配虚拟Mac地址路由器。如果某AVF出故障了,其他路由器将成为该虚拟Mac地址的AVF,以实现冗余功能。

GLBP的负载均衡:

有不同主机简单地轮询(默认方式)和根据路由器的权重weighting这两种方式来实现负载均衡。

默认的不同主机简单地轮询方式比较简单,例如:GLBP组中有3台路由器R1,R2,R3。R1是AVG,组中有4个AVF,MAC分别为0007.b400.0101 / 02 / 03 / 04。R1是0007.b400.0101的AVF。R2是0007.b400.0102的AVF。R3是0007.b400.0103 / 04这两个的AVF。那么R1,R2,R3将分别承担25%,25%,50%的流量。

例子2:GLBP组中有5台路由器R1,R2,R3,R4,R5。R1是AVG,组中仍只有4个AVF,MAC分别为0007.b400.0101 / 02 / 03 / 04。R1是0007.b400.0101的AVF。R2是0007.b400.0102的AVF。R3是0007.b400.0103的AVF。R4是0007.b400.0104的AVF。R5处于监听状态。那么R1,R2,R3,R4将分别承担25%的流量。如果R4发生故障,R5将成为0007.b400.0104的AVF替代R4。

如果改成按权重值来实现负载均衡,则权重越大,转发数据的机会越大。例如:配置路由器R1的权重为200,下限为160,上限为180。如果权重值跌破下限就失去作为AVF的身份,就不能转发数据了。只有权重值高于上限时才能恢复成为AVF的身份,才能转发数据。现在追踪R1的端口的二层故障,如果出故障将权重减去50。R1的上行链路出故障后,R1的权重变为150(200-50=150)低于下限160,R1将失去AVF的身份,其他路由器顶上。只有当R1的上行链路恢复后,R1才能恢复AVF的身份继续转发数据。

GLBP配置:

R1,R2,R3配置成GLBP虚拟网关:

20160209194320281

R1上将VR的三层IP地址设为192.168.1.254,AVG的优先级设为200,开启抢占AVG。

20160209194753076

R2和R3的f1/0口同样配置,唯一的区别是R2上将AVG的优先级设为180,R3上将AVG的优先级设为120。这样R1的AVG优先级最高,R1将成为AVG。查看GLBP信息:

20160209195813924

现在PC上只要将网关设为VR的虚拟三层IP地址:192.168.1.254就能实现网关的冗余。R1,R2,R3除非全down掉,否则PC始终能ping通R4。

AVG的作用仅限于响应ARP,真实转发数据还是靠AVF进行的。现在来看一下负载均衡,默认是round-robin不同主机简单地轮询:

20160209200321511

打开ARP的debug模式,不断清空ARP表后,让PC去ping R4,会看到PC经由不同的网关去往R4,实现了负载均衡

20160209201808838

将负载均衡的方式改为比较权值:

20160209205520557

将R1的f0/0口shutdown后,发现原本Forwarder1,的权值变成了70,经过30秒时延后,将失去AVF身份,R3将成为新的AVF:

20160209211032086

查看GLBP的摘要信息发现原本Forward1从Active变成了Listen,Forward1的AVF变成了R3:

20160209205744069

Leave a Reply

Your email address will not be published. Required fields are marked *