GLBP网关负载均衡协议原理-ielab

2024-01-25 13:08

本文主要是介绍GLBP网关负载均衡协议原理-ielab,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GLBP全称Gateway Load Balancing Protocol(网关负载均衡协议),是思科的专有协议。GLBP不仅提供冗余网关,还在各网关之间提供负载均衡。他弥补了现有的冗余路由器协议的局限性, 设计GLBP的目的是自动选择和同时使用多个可用的网关。和HSRP、VRRP不同的是,GLBP可充分利用资源,同时无需配置多个组和管理多个默认网关配置。

GLBP组中最多可以有4台路由器作为IP默认网关。这些网关被称为AVF(Active Virtual Forwarder,活跃虚拟转发器)。GLBP自动管理虚拟MAC地址的分配、决定谁负责处理转发工作(这是区别于HSRP和VRRP的关键,在GLBP中有一个虚拟IP,但对应多个虚拟MAC)。

GLBP提供了以下功能:

GLBP AVG(活跃虚拟网关,Active Virtual Gateway):一个GLBP组中的成员会选举出一个网关,成为该组的AVG。其他组成员作为AVG的备用网关,以防AVG发生故障。AVG会为GLBP组中的每个成员分配一个虚拟MAC地址。

GLBP AVF(活跃虚拟转发者,Active Virtual Forwarder):AVG会为网关分配虚拟MAC地址,每个网关都有责任转发那些发到这个虚拟MAC地址的数据包。这些网关是虚拟MAC地址的AVF.

GLBP 通信(Communication):GLBP成员之间通过每3秒钟向组播地址224.0.0.102,UDP3222端口发送Hello数据包,来进行通信。

活动网关选举:

使用类似于HSRP的机制选举活动网关,
选举比较

**1.优先级(1-255 默认100)

2.ip地址**

优先级最高的路由器成为活动路由器,若优先级相同则IP地址最高的路由器成为活动路由器。称作Active Virtual Gateway,其他非AVG提供冗余。

某路由器被推举为AVG后,和HSRP不同的工作开始了,AVG分配虚拟的MAC地址给其他GLBP组成员。

所有的GLBP组中的路由器都转发包,但是各路由器只负责转发与自己的虚拟MAC地址的相关的数据包。

GLBP允许进行自动选择,并同时使用组中的所有可用网关。GLBP组中的成员会选举出一个网关来担任该组的AVG。其他组成员则为AVG提供备份,以防AVG出现故障。AVG会为GLBP组中的每个成员分配一个虚拟MAC地址。所有路由器都会作为AVF来发送到虚拟MAC地址的数据帧提供转发。当客户端发送ARP请求来获得默认网关的地址时,AVG会在ARP响应中发送这些虚拟MAC地址。一个GLBP组中最多可以由4个组成员。做法是在为用户提供单一IP的同时,每台路由器都为用户提供不同的MAC地址,这样,用户发到组IP的数据包就成功地被分担各个路由器上了。

GLBP支持使用多台默认路由器同时为相同过的默认网关IP地址提供流量的负载分担,在这种环境中,GLBP支持下列负载分担模式。

GLBP协议支持三种负载均衡方式:

第一:根据不同主机的源mac地址

第二:根据arp请求轮询

第三:根据路由器的权重分配,权重越高被分配的可能性越大

bluefox(config-subif)#GLbp 1 load-balancing ?
  host-dependent Load balance equally, source MAC determines forwarder choice
  round-robin Load balance equally using each forwarder in turn
  weighted Load balance in proportion to forwarder weighting
  
主机相关负载分担算法:只要某个虚拟MAC地址还在GLBP组中参与流量转发,就确保某主机总是使用这个虚拟MAC地址进行通信。

循环负载分担算法:当客户端发送ARP请求来解析默认网关的MAC地址时,每个客户端接收到的ARP响应中包含的MAC地址,是循环算法中下一个可用路由器的MAC地址。所有路由器的MAC地址会被按顺序放入地址解析响应中,作为默认网关IP地址对应的MAC地址返回给客户端。

加权负载分担算法:被定向到一台路由器的负载量取决于该路由器所通告的加权值。
GLBP的加权决定了一台路由器是否充当虚拟转发者的角色。管理员可以设置初始加权值,并且可以指定门限值。管理员可以配置GLBP来追踪接口状态并设置一个减量值,当被追踪的接口关闭时,以这个减量值来降低加权值。当GLBP路由器的加权下降到低于一个特定的值时,路由器就不会再成为活跃虚拟转发者。而当加权上升到高于一个特定的值时,路由器可以恢复其活跃虚拟转发者的角色。

GLBP的加权机制与HSRP或VRRP不同。HSRP和VRRP中只定义了一个门限值。如果路由器优先级下降到这个门限值以下,路由器就会获得活跃状态。GLBP中定义了两个门限值:当路由器加权减少时使用一个较低的门限值,当路由器加权增加时使用一个较高的门限值。这个双门限值机制比单门限值系统更为灵活。

这篇关于GLBP网关负载均衡协议原理-ielab的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/643357

相关文章

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、