网关冗余协议的传统目标是在默认网关故障时提供无缝切换,但多数方案只解决高可用,不解决多台设备同时利用的问题。以HSRP和VRRP为例,它们会选举一个活跃网关,其余设备虽然在线,却不会转发终端流量,造成上行链路和转发能力闲置。GLBP(Gateway Load Balancing Protocol)在设计上扩展了这一思路,不仅提供冗余,还通过多个虚拟MAC地址让组内多台路由器同时工作。那么GLBP是否真正具备自动负载均衡功能?从转发模型和ARP响应机制来看,答案是肯定的,但它的负载均衡并不是简单的流量平均,而是基于虚拟转发者的一种受控分配。

需要先厘清一个常见误解:GLBP并不把同一条数据流拆分到多条路径,而是以终端主机为粒度进行流量分配。每台主机ARP解析得到的网关MAC地址可能不同,主机后续发送的数据帧就会对应到不同的物理路由器,从而在终端接入侧形成负载分担效果。理解这一点,才能准确判断GLBP是否满足不同场景下的负载均衡预期。
一、AVG与AVF的选举分工:自动负载均衡的底座
GLBP组内路由器通过组播地址224.0.0.102周期发送Hello消息,组内成员会选举出一个AVG(Active Virtual Gateway,活跃虚拟网关)。AVG的选举依据与HSRP类似,先比较优先级,优先级相同则比较接口IP地址,较高者胜出。AVG最重要的职责并不是转发数据,而是以网关身份响应终端发来的ARP请求,并为组内维护最多四个虚拟MAC地址。正是这个响应过程决定了各台主机会使用哪个虚拟MAC,从而把不同主机引导到不同的物理转发者上。
负责实际转发的角色叫AVF(Active Virtual Forwarder,活跃虚拟转发者)。一个GLBP组最多可以有四个AVF,每个AVF对应一个虚拟MAC地址。AVG本身通常也兼任AVF,因此不会浪费转发资源。当某台主机获得虚拟MAC地址A后,它发出的所有数据帧都带有该目的MAC,二层交换机会将帧送到负责该虚拟MAC的AVF。这样,组内多台路由器同时承载不同主机的流量,自动负载均衡的基础就建立起来了。若某个AVF发生故障,其他路由器会接管对应的虚拟MAC,冗余切换也得以保留。
可以用一个简单表格对比GLBP与传统网关冗余协议的差异:
| 协议 | 是否自动负载均衡 | 虚拟MAC数量 | 同时转发者数量 |
|---|---|---|---|
| HSRP | 否,仅主备模式 | 1个 | 1台 |
| VRRP | 否,仅主备模式 | 1个 | 1台 |
| GLBP | 是,自动分配虚拟MAC | 最多4个 | 最多4台 |
可以看出,GLBP的自动负载均衡能力来自虚拟MAC的分配机制,而不是依靠额外的路由协议或策略路由。
二、三种负载均衡算法:轮询、主机依赖与权重
GLBP默认使用轮询算法(round-robin)。每当AVG收到一个新的ARP请求时,它会按照顺序把下一个虚拟MAC地址返回给请求主机。例如第一台主机得到MAC地址1,第二台主机得到MAC地址2,第三台主机得到MAC地址3,以此类推。轮询实现简单,在主机数量较多时流量会近似均匀地分布在各个AVF上。但它不关心主机的活跃程度,如果某台主机产生大量流量,而它恰好分到某个AVF,可能会造成瞬时不平衡。
为了改善会话稳定性,GLBP提供主机依赖算法(host-dependent)。该算法会根据主机的MAC地址执行哈希运算,再将哈希结果映射到某个虚拟MAC。这样同一台主机每次发起ARP请求都会得到相同的虚拟MAC,即使主机重启或清理ARP缓存,流量仍然回到原来的转发者。主机依赖适合需要保持长连接或避免会话中断的场景,代价是负载分布可能不如轮询均匀。
权重算法(weighted)则进一步引入转发能力的差异。如果组内路由器上行带宽不同,可以为每台设备配置不同权重,AVG按照权重比例分配虚拟MAC。例如路由器A权重为200,路由器B权重为100,那么大约三分之二的ARP请求会得到路由器A的虚拟MAC。权重算法通常还需要配合接口跟踪,当上行链路质量下降时动态降低权重。下面是一段配置示例:
interface GigabitEthernet0/0 ip address 192.168.1.11 255.255.255.0 glbp 1 ip 192.168.1.1 glbp 1 priority 150 glbp 1 preempt glbp 1 load-balancing weighted glbp 1 weighting 200 lower 80 upper 95
上述命令将本机优先级设为150并开启抢占,负载均衡算法设为权重模式,权重为200,并定义了当权重低于80或高于95时触发相应事件。实际部署时需要根据设备能力和链路带宽调整这些阈值。
三、配置与验证:让负载均衡落地
在思科设备上启用GLBP并不复杂,关键是理解每一条命令的作用。首先要进入接口配置模式,为接口配置真实IP地址,然后用glbp 1 ip 192.168.1.1指定组号和虚拟网关IP。默认负载均衡算法就是轮询,如果需要修改,使用glbp 1 load-balancing host-dependent或glbp 1 load-balancing weighted。优先级和抢占命令影响AVG选举,不直接影响负载均衡,但会影响哪台设备负责ARP响应和虚拟MAC分配的管理。
interface GigabitEthernet0/1 ip address 192.168.1.12 255.255.255.0 glbp 1 ip 192.168.1.1 glbp 1 priority 120 glbp 1 load-balancing round-robin
第二台路由器加入组后,默认也会成为AVF,并等待AVG分配虚拟MAC。使用show glbp可以查看组状态、AVG/AVF角色、虚拟MAC地址和负载均衡算法。输出会列出每个虚拟转发者对应的物理接口和状态,例如Active或Listen。若某台路由器显示为Active,表示它正在转发对应虚拟MAC的流量。
Router# show glbp brief Interface Grp Fwd Pri State Address Active router Standby router Gi0/0 1 - 150 Active 192.168.1.1 local 192.168.1.12 Gi0/1 1 - 120 Listen 192.168.1.1 192.168.1.11 local
上述输出中,Gi0/0对应设备的优先级高,成为AVG,Gi0/1设备处于Listen状态。但Listen并不代表不转发,只要它被分配了虚拟MAC,就会作为AVF活跃。更详细的show glbp会列出每个虚拟转发者的具体MAC和转发状态。
验证自动负载均衡是否生效,可以在终端主机上执行ARP查询,查看不同主机解析到的网关MAC是否不同。如果所有主机都解析到同一个MAC,需要检查负载均衡算法是否被错误配置为固定模式,或者是否有AVF因为权重过低而退出转发。另外,主机依赖算法下同一主机始终得到同一MAC是正常现象,不能据此判断负载均衡失效。
四、GLBP自动负载均衡的边界与适用场景
GLBP的自动负载均衡能力很强,但它并不是万能的。一个GLBP组最多支持四个AVF,也就是最多四台路由器同时转发。如果网络规模很大,单个组可能无法充分利用所有设备,此时可以创建多个GLBP组或结合其他负载分担技术。此外,GLBP以主机为粒度分配流量,它无法识别不同业务流的带宽需求,因此对于单台主机产生的大流量场景,无法做到更细粒度的拆分。
在企业园区网或分支机构的接入层,GLBP非常适合作为默认网关冗余协议。终端设备不需要特殊配置,只需把默认网关指向GLBP虚拟IP,就能自动获得冗余和负载均衡。相比HSRP和VRRP,GLBP减少了备份设备的资源浪费,也降低了上行链路的单点压力。但在数据中心或核心层,通常还会使用ECMP、PBR或SDN控制器来实现更灵活的流量调度,GLBP则更多作为主机侧的第一跳冗余机制存在。
总体上,GLBP确实具备自动负载均衡能力,这种能力来自AVG对虚拟MAC的分配以及AVF对虚拟MAC的转发。只要理解轮询、主机依赖和权重三种算法的差异,并根据实际主机数量、会话特征和链路带宽选择合适算法,就能在不过度增加运维复杂度的情况下,把多台网关设备的转发资源同时利用起来。

