网关负载平衡协议(GLBP)是第一跳冗余协议(FHRP)之一, 它像其他第一跳冗余协议一样提供冗余, 还提供负载平衡。这是思科专有协议, 可以同时执行这两种功能。它使用单个虚拟IP地址和多个虚拟Mac地址在多个路由器上提供负载平衡。
GLBP协议:
- 虚拟IP地址:从本地子网分配一个IP地址作为虚拟IP地址, 该子网被配置为所有本地主机的默认网关。
- 实际虚拟网关(AVG):它是在单个组中运行GLBP的路由器之一, 负责为组中的每个成员分配虚拟Mac地址并负责响应来自设备的ARP请求。 AVG在组中具有最高优先级值或IP地址。
- 实际虚拟转发器(AVF):这些路由器包括单个GLBP组中的AVG。在由AVG为任务分配数据之后, 它们实际上负责转发数据。如果万一AVG出现故障, 则其中一个AVF可以成为AVG。
- 抢占:在这种状态下, 其中一个AVF将成为AVG路由器(当AVG路由器关闭时)。另外, 当AVG路由器再次出现时, 由于其优先级仍然更高(假定), 它将成为AVG路由器。
- 对象追踪:GLBP使用加权方案来确定GLBP组中每个路由器的转发能力。 GLBP会跟踪界面并调整其权重, 即, 如果被跟踪的界面出现问题, 则界面会降低一定值(根据配置)。
GLBP概念:
实际虚拟网关(AVG)为运行同一组GLBP的所有其他路由器提供虚拟Mac地址。其余的路由器是实际虚拟转发器(AVF)。当来自子网设备的ARP请求知道虚拟IP地址的Mac地址时, AVG将提供其中一个虚拟Mac地址。 AVG将使用Round Robin算法或其他已应用的算法提供虚拟Mac地址。这样, 所有运行GLBP的设备都将用于转发流量。
GLBP虚拟Mac地址分配:子网设备(主机)要发送流量时, 它通过发送ARP请求来为虚拟IP(网关)请求一个Mac地址。响应ARP请求, AVG将提供虚拟Mac地址之一(由AVG提供给AVF)。
虚拟网关冗余:为了检测网关故障, GLBP成员通过以下方式相互通信你好消息, 每3秒发送到多播地址224.0.0.102。如果AVG失败, 则具有最高优先级的AVF将成为AVG, 即负责提供AVF的Mac地址。
虚拟转发器冗余:就像在高速钢, 如果其中一个AVF发生故障, 则同一GLBP组中的另一个AVF将负责转发数据包。 GLBP组中最多可以有4个路由器。
GLBP负载平衡:
GLBP使用3种算法进行负载平衡–
- 轮循:AVG将按顺序分配虚拟Mac地址, 例如, 首先将虚拟Mac地址分配给AVF1, 然后分配给AVF2, 依此类推。
- 依赖主机:如果特定主机每次都需要特定的虚拟Mac地址, 则AVG将特定的AVF分配给主机。
- 加权的:负载将根据要求进行分配, 即按比例分配虚拟Mac地址。如果我们想让某些AVF处理更多的流量, 请更改权重。
配置:
在给定的拓扑中, 有两个名为R1和R2的路由器, 其中R1通过fa0 / 0 ip地址为10.1.1.1/24连接, 而R2通过fa0 / 0 ip地址为10.1.1.2/24连接。
为路由器R1分配IP地址。
r1(config)# int fa0/0
r1(config-if)# ip add 10.1.1.1 255.255.255.0
为路由器R2分配IP地址。
r2(config)# int fa0/0
r2(config-if)# ip address 10.1.1.2 255.255.255.0
现在, 配置虚拟IP, GLBP优先级, 抢占和负载平衡类型。
r1(config-if)# glbp 1 ip 10.1.1.100
r1(config-if)# glbp 1 priority 120
r1(config-if)# glbp 1 preempt
r1(config-if)# glbp 1 load-balancing round-robin
在这里, 从本地子网和优先级中分配虚拟IP为10.1.1.100(为R1分配更高的优先级, 因为我们希望此路由器成为AVG)。此外, 已启用抢占, 并且类型为循环的负载均衡。现在, 为r2配置相同的GLBP。
r2(config-if)# glbp 1 ip 10.1.1.100
r2(config-if)# glbp 1 priority 100
r2(config-if)# glbp 1 preempt
r2(config-if)# glbp 1 load-balancing round-robin
注意 :在这里, 交换机位于AVG和AVF之间, 那么当AVG断开时, 交换机如何在另一个端口上学习相同的Mac地址?当AVG下降, 则新当选的AVG会产生一个免费ARP来刷新交换机的CAM表和主机ARP缓存中。
优点 :
- GLBP支持明文和MD5密码验证。
- 它最多支持1024个虚拟路由器(GLBP组)。
- 允许使用单个虚拟IP和多个虚拟Mac地址共享负载。