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

相关文章

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文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

SpringCloud负载均衡spring-cloud-starter-loadbalancer解读

《SpringCloud负载均衡spring-cloud-starter-loadbalancer解读》:本文主要介绍SpringCloud负载均衡spring-cloud-starter-loa... 目录简述主要特点使用负载均衡算法1. 轮询负载均衡策略(Round Robin)2. 随机负载均衡策略(

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

kotlin中的模块化结构组件及工作原理

《kotlin中的模块化结构组件及工作原理》本文介绍了Kotlin中模块化结构组件,包括ViewModel、LiveData、Room和Navigation的工作原理和基础使用,本文通过实例代码给大家... 目录ViewModel 工作原理LiveData 工作原理Room 工作原理Navigation 工

Java的volatile和sychronized底层实现原理解析

《Java的volatile和sychronized底层实现原理解析》文章详细介绍了Java中的synchronized和volatile关键字的底层实现原理,包括字节码层面、JVM层面的实现细节,以... 目录1. 概览2. Synchronized2.1 字节码层面2.2 JVM层面2.2.1 ente