当前位置: 首页 > news >正文

防火墙双机热备---VRRP,VGMP,HRP(超详细)

双机热备技术-----VRRP,VGMP,HRP三个组成

注:与路由器VRRP有所不同,路由器是通过控制开销值控制数据包流通方向

防火墙双机热备:

        1.主备备份模式

        双机热备最大的特点就是防火墙提供了一条专门的备份通道(心跳线)用于防火墙之间传输备份会话表,Server-map表等重要信息和配置。并且心跳线也为防火墙提供协商通道。

                1.主用设备---会处理业务和流量,并将设备上的会话表等信息以及配置信息通过心跳线实时同步给备用通道

                2.备用设备---不会处理业务流量,只是通过心跳线,接收来自于主用设备的状态信息以及配置信息

                一旦主用设备发生故障,会通过心跳线重新协商主备状态,如果进行切换,同时,业务流量也需要被上下行设备的路由信息引导到新的主用设备上,否则流量还是无法通讯

        2.负载分担模式

        在该情境下,两台防火墙均为主用设备(不同的pc),都需要建立会话,都需要处理业务流量,同时两台防火墙又都相互作为对方的备用设备,接收对方的配置和会话。

FW2为1.0的主设备,FW3为2.0的主,且两个防火墙互相备份

总结:双机热备为了提供网络的可靠性,避免网络的单点故障

VRRP和VGMP

回顾路由器vrrp:VRRP(虚拟路由冗余协议)_vrrp协议-CSDN博客

        为何创建两个VRRP?

        在双机热备场景中,因为需要上下行流量的统一切换,故需要创建两个VRRP组,分别加入上行接口和下行接口。从而控制上下行设备的流量控制转向。---且两个不同的VRRP组的Active设备必须为同一个防火墙。

切换原理:FW2会向配置了VRRP组的接口发送免费ARP报文,其中携带了备份组的IP和MAC,好让交换机或者路由器改变MAC表或者路由表,从而达到切换线路的目的

        VRRP备份组之间是相互独立的,当一台设备出现多个VRRP备份组时,VRRP备份组之间的状态时无法同步的。

VGMP解决VRRP问题

                VGMP----VRRP组管理协议---实现对VRRP备份的统一管理,保证多个VRRP组状态的一致性

        如何实现一致性?

        将防火墙上所有的VRRP备份组都加入到同一个VGMP组中,由VGMP组来集中监控并管理所有的VRRP备份组状态。如果VGMP检测到其中一个VRRP备份组状态发生变化,则VGMP会控制组中所有VRRP组统一进行状态切换,保证一致性。


        VGMP存在状态和优先级两个属性。并且有三条运行原则

VGMP的状态决定了组内VRRP备份组的状态,也决定了防火墙的主备状态

VGMP组的状态是由两个防火墙的VGNP组通过比较优先级来决定的

                优先级高的为Active,低的为Standby

VGMP组会根据组内VRRP备份组的状态变化来更新自己的优先级

                每个VRRP备份组的状态切换为初始化状态,VGMP组的优先级降低2

VGMP实现过程

        当FW1接口发生故障时,VGMP组控制VRRP备份组状态统一切换过程

1.FW1G1/0/3接口故障,FW1上的VRRP备份组2发生状态切换(由主----初始化)

2.FW1的VGMP组感知到这一变化后,会降低自身的优先级,然后与FW2的VGMP组比较优先级,重新协商主备状态

3.协商后,FW1的VGMP状态变为Standby,FW2的VGMP组状态变为Active

4.同时,由于VGMP组的状态决定了组内的VRRP备份组状态,所有FW1和FW2身上各自的VRRP备份组1和备份组2都会进行状态切换

5.FW2成为Active状态,并从上下游分别发送免费ARP报文,更新设备的MAC地址表


VGMP报文结构

        在防火墙中,优先级信息会通过VGMP报文传递,是对VRRP报文进行修改和扩展

        1.标准的VRRP报文的“TYPE”字段恒定为1,而VGMP增加了2;

                在VGMP 中,1代表标准的VRRP报文,2代表VGMP报文

        2.在标准的VGMP报文中,“virtual Rtr ID",携带的是VRRP备份组的组ID,即VRID。

                在VGMP中,恒定为0

        3.去掉了VRRP的IP地址字段

        4.标准VRRP报文的优先级字段,在VGMP中被修改为”TYPE2"字段

                TYPE2=1,则报文为心跳链路探测报文

                TYPE2=5,则报文为一致性检查报文。 ----检查双机热备状态下,两台防火墙的是否配置了相同的策略

                TYPE2=2,VRRP报文才会进一步封装VGMP报文头。----该报文才能被认为是真正的VGMP报文。

                        会根据VGMP中的“vType”字段继续被分为三种不同的报文

VGMP组需要携带上VGMP组优先级信息,才可以代替VRRP进行管理

        类型(mode) --- 代表报文是请求报文,还是应答报文

        VGMP-ID --- 代表VGMP组为Active还是Standby组

        优先级 ---代表VGMP组的优先级

在双机热备中,除了VRRP标准报文以外,其他所有报文的发送接收,都是基于心跳线完成的


标准的VRRP协议是一个跨四层封装协议,即没有传输层封装,直接IP封装。

而VGMP继承了VRRP的特点,但是也增加了UDP进行封装的模式。

        IP协议封装 --- 组播报文---只能在心跳线上传输

                数据链路层+ IP协议封装+ VRRP协议+ VGMP协议+ VGMP数据

                不能跨网段传输,不受安全策略控制(安全策略就对单播有效

        UDP封装 --- 单播报文

                数据链路层+IP协议封装+ UDP封装+ VRRP协议+ VGMP协议+ VGMP数据

                只要路由可达,就可以跨越网段传输,但是收到安全策略控制。

                端口号=18514


VGMP工作过程

VGMP组缺省情况

        每台防火墙提供两个VGMP组,默认情况下,Active组的优先级为65001,状态为Active;Atandby组优先级为65000,状态为Standby。


主备备份双机热备状态形成过程

接口故障过程

        上图表示的是主用设备的接口的发生过程变化情况,而当主用设备发生故障,主用设备的VGMP组将不会发送HRP心跳报文。如果备用设备的VGMP组连续三次收不到,则认定对端故障,从而将 自身切换为主用状态。

        当原主用设备故障恢复后,如果配置了抢占功能,那么原主重新成为主用设备,如果没有配置,则原主保持在备份状态。----缺省情况下,主动抢占功能开启,抢占延迟时间为60秒。

接口故障恢复


负载分担双机热备状态形成过程

接口故障

VGMP总结

1. 故障监控 --- VGMP组能够监控VRRP备份组状态变化。

2. 状态切换 --- VGMP组感知到VRRP备份组状态变化后,会调整自己的优先级,并与对端的VGMP组 重新协商主备状态

3. 流量引导 --- 两个VGMP组主备状态建立或切换后,会强制组内的VRRP备份组统一进行状态切换, 然后由状态为Active的VRRP备份组发送免费的ARP报文来引导流量

仅仅适用于防火墙上行或下行设备为交换机的场景


VGMP特殊场景

防火墙连接路由器场景

故障监控

        VGMP组使用的 故障监控方式,是直连监控接口状态。 --- 就是直接将接口加入到VGMP组中,当 VGMP组中的接口故障,VGMP可以直接感知到变化,从而降低自己的优先级。

        如果是负载分担方式的双机热备,则需要在每个业务接口上执行特殊命令,将业务接口分别加入到 Active和Standby组中。

流量引导

        VGMP的流量引导功能,将流量自动引导到主用设备---手工将备用设备所在链路的OSPF开销值改大。VGMP具备根据状态自动调整OSPF的cost数值。 --- 启用流量引导功能后,如果防火墙上存在状态为 Active的VGMP组,则防火墙会正常对外发布路由;如果防火墙上VGMP组状态为Standby,则防火墙 在发布路由时,将Cost增加65500

防火墙透明接入,连接交换机场景

故障监控

        防火墙接口出现在二层,没有IP地址。故障监控方式为通过VLAN监控接口状态。--- 将二层业 务接口加入VLAN,VGMP监控VLAN。当VGMP中的接口故障时,VGMP组会通过VLAN感知到接口状态 变化,从而降低自身优先级

流量引导

        当VGMP组状态为Active时,组内的VLAN能够转发流量。当VGMP组状态为Standby时,组内 VLAN被禁用,不能转发流量。 

防火墙透明接入,连接路由器场景

        故障监控和流量引导与上一个相同,该组网只支持负载分担方式的双机热备,不支持主备备份场景。---原因:如果工作在主备备份,那么备份设备的VLAN会被禁用,导致上下行 路由器无法通讯,无法建立OSPF邻居

VGMP组监控技术

        VGMP可以监控自己本身的接口---物理接口,VRRP接口等。

        但是VGMP还可以监控远端接口。 --- VGMP监控远端接口的方式,只适用于防火墙业务接口工作在 三层时;因为此时接口才能存在IP地址,才可以与远端设备发送IP-link或BFD的探测报文。

总结

每当VGMP组监控的一个接口故障时,无论是直接监控还是简介监控,无论监控的是本地还是远 端,VGMP优先级都是降低2。

只有主用设备才会将流量引导到本设备上,备用设备则是想尽办法拒绝流量引导到本设备。

HRP(双机热备协议)协议

HRP数据报文、HRP心跳报文、HRP一致性检查报文。

HRP协议功能

动态数据备份---实时备份防火墙的会话表,Server-map表,黑白名单,nat

关键配置命名备份---display;reset;debugging不支持备份;网络基本配置如接口地址和路由不能够备份,这些要在双机热备建立前配置完成。

HRP概述

        在主备组网中,由主设备将状态数据和配置命名同步给备份设备

        而在负载分担组网中,状态数据双方均会想对端同步。但是配置命令,不可以。---原因,如果允许两台主用设备之间相互配置命令,可能会造成两台设备命名相互冲突。--引入了“配置主设备”和“配置从设备”。---在负载分担组网中,发送备份配置命令的防火墙为配置主设备(HRP_M),接收配置命令的防火墙成为配置从设备(HRP_S)---在负载分担组网中,谁 最先建立双机热备状态的防火墙会成为配置主设备;即最先启动双机热备功能的

HRP备份方式

1.自动备份 --- 默认开启的,能够自动 实时备份配置命令和 周期性备份状态信息

        主用设备每执行一次可备份命令,该命令都会立即被同步到备用设备。注意:对于这些可备份 命令,备用设备不能配置,只能等到主用设备的同步。

        对于不可备份命令---分别配置

        对于状态信息,周期性备份(部分状态信息)。

2.手工批量备份 --- 需要管理员手工触发的,每执行一次手工批量备份命令,主用设备就会立即同步一 次配置命令和状态信息。

3.快速备份 --- 仅适用于负载分担场景的,用来 应对报文来回路径不一致的场景。

        主要为了保证状态信息的及时同步,快速备份功能仅仅备份状态信息,是为了弥补自动备份的 时差问题。

        如果启动快速备份功能,主设备将 实时进行状态信息备份。

心跳链路探测报文

        心跳口必须是状态独立且独立具有IP地址的接口,且该接口不要参与到其他协议的工作过程中,以免产生不必要的影响。

HRP一致性检查报文

        该报文是用于检测双机热备状态下两台防火墙的双机热备配置是否一致,以及策略配置是否相同 的

相关文章:

防火墙双机热备---VRRP,VGMP,HRP(超详细)

双机热备技术-----VRRP,VGMP,HRP三个组成 注:与路由器VRRP有所不同,路由器是通过控制开销值控制数据包流通方向 防火墙双机热备: 1.主备备份模式 双机热备最大的特点就是防火墙提供了一条专门的备份通道(心…...

MQTT实现智能家居------4、在Linux上运行MQTT

进入主目录,创建一个MQTT文件夹 cd ~ mkdir MQTT 用FileZilla连接开发板,将我发布的压缩包解压以后放进MQTT 安装cmake sudo apt-get install cmake g编译 & 运行 echo sudo apt-get update >> build.sh #向build.sh文件写入内容 chmod…...

VMware建立linux虚拟机

本文适用于初学者,帮助初学者学习如何创建虚拟机,了解在创建过程中各个选项的含义。 环境如下: CentOS版本: CentOS 7.9(2009) 软件: VMware Workstation 17 Pro 17.5.0 build-22583795 1.配…...

大模型文集开篇稿

2023年,我国AI大模型行业规模已达到147亿元人民币(前瞻产业研究院 数据)。AI大模型的行业应用及技术进步能有效提升各行业生产要素的产出效率并提高了数据要素在生产要素组合中的地位。供给方面,当前AI大模型企业主要通过深化通用…...

python pickle模块

pickle 是 Python 的一个标准模块,它实现了基本的二进制协议,用于对象的序列化和反序列化。序列化是指将对象转换为字节流的过程,这样对象就可以被保存到文件中或通过网络传输。反序列化是指将字节流转换回对象的过程。 使用 pickle 序列化对…...

第16届蓝桥杯模拟赛3 python组个人题解

第16届蓝桥杯模拟赛3 python组 思路和答案不保证正确 1.填空 如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问, 2024 的最大的质因数是多少? 因为是填空题,所以直接枚举2023~2 &am…...

企业知识管理战略整合新路径

跨部门知识协同机制 现代企业知识管理的核心挑战在于突破组织孤岛效应,跨部门知识协同机制的构建需依托结构化流程与智能化工具的融合。通过建立标准化知识元数据体系,企业可实现文档分类、版本控制及权限管理的统一规范,其中Baklib作为云端…...

GO 快速升级Go版本

由于底层依赖升级了,那我们也要跟着升,go老版本已经不足满足需求了,必须要将版本升级到1.22.0以上 查看当前Go版本 命令查看go版本 go version [rootlocalhost local]# go version go version go1.21.4 linux/amd64 [rootlocalhost local]# …...

RBAC授权

4 RBAC授权 4.1 什么是RBAC 在Kubernetes中,所有资源对象都是通过API进行操作,他们保存在etcd里。而对etcd的操作我们需要通过访问kube-apiserver来实现,上面的Service Account其实就是APIServer的认证过程,而授权的机制是通过RBA…...

搜广推校招面经三十一

vivo策略算法 一、机器学习中 L1 和 L2 正则化的原理 见【搜广推校招面经二十五】 L1 正则化将某些特征权重置0实现模型简化,而 L2 正则化主要通过平滑权重来实现模型简化。 1.1. 正则化的原理 正则化的核心思想是在损失函数中加入一个惩罚项(Regula…...

【JavaWeb13】了解ES6的核心特性,对于提高JavaScript编程效率有哪些潜在影响?

文章目录 🌍一. ES6 新特性❄️1. ES6 基本介绍❄️2. 基本使用2.1 let 声明变量2.2 const 声明常量/只读变量2.3 解构赋值2.4 模板字符串2.5 对象拓展运算符2.6 箭头函数 🌍二. Promise❄️1. 基本使用❄️2. 如何解决回调地狱问题2.1回调地狱问题2.2 使…...

C++知识整理day9——继承(基类与派生类之间的转换、派生类的默认成员函数、多继承问题)

文章目录 1.继承的概念和定义2.基类与派生类之间的转换3.继承中的作用域4.派生类的默认成员函数5.实现一个不能被继承的类6.继承与友元7.继承与静态成员8.多继承和菱形继承问题8.1 继承分类及菱形继承8.2 虚继承 1.继承的概念和定义 概念: 继承(inheritance)机制是⾯…...

pyautogui库的screenshot()函数

# 方法一 screenshot pyautogui.screenshot() screenshot.save("screenshot.png")# 方法二 # 获取屏幕分辨率 screen_width, screen_height pyautogui.size()# 截取桌面屏幕 screenshot pyautogui.screenshot(region(0, 0, screen_width, screen_height)) screens…...

App测试--逍遥模拟器抓包问题

一、环境 逍遥模拟器、burp、adb、openssl(kali)。 二、配置 1.burp证书转换 下载证书 将burp证书复制进kali,使用kali的openssl(自带),执行以下命令。 openssl x509 -inform der -in cacert.der -out burp.pem openssl x509 -subject_hash_old -in…...

STM32 HAL库0.96寸OLED显示液晶屏

本文介绍了使用STM32 HAL库通过I2C协议驱动0.96寸OLED显示屏的方法。首先概述了OLED的基本特性和应用,然后详细讲解了汉字点阵生成的方法,并提供了完整的代码示例,包括初始化、清屏、字符串显示和自定义汉字显示函数。这些代码实现了在STM32F…...

动态表头导出EasyExcel

在 Spring Boot 中结合 EasyExcel 实现动态表头导出&#xff08;无实体类&#xff0c;表头和字段&#xff08;前端传表名&#xff0c;字段值动态查询&#xff0c;返回List<Map<String,Object>>&#xff09;由前端传递&#xff09;可以通过以下步骤实现。以下是完整…...

【前端】react+ts 轮播图的实现

一、场景描述 在很多网站的页面中都有轮播图&#xff0c;所以我想利用react.js和ts实现一个轮播图。自动轮播图已经在前面实现过了&#xff0c;如&#xff1a;https://blog.csdn.net/weixin_43872912/article/details/145622444?sharetypeblogdetail&sharerId145622444&a…...

清华大学出品DeepSeek 四部教程全收录(附下载包),清华deepseek文档下载地址

文章目录 前言一、清华大学deepseek教程&#xff08;四部&#xff09;二、清华大学deepseek教程全集1.清华大学第一版《DeepSeek&#xff1a;从入门到精通》2.清华大学第二版《DeepSeek赋能职场》3.清华大学第三版《普通人如何抓住DeepSeek红利》4.清华大学第四版&#xff1a;D…...

Android 布局系列(三):RelativeLayout 使用指南

引言 在 Android 开发中&#xff0c;布局管理是构建用户界面的核心。RelativeLayout 曾经是 Android 中非常流行的一种布局方式&#xff0c;广泛应用于各种项目中。它通过相对位置关系组织视图元素&#xff0c;使得我们可以根据父容器或者其他视图的位置来灵活调整子视图的布局…...

ubuntu20.04音频aplay调试

1、使用指定声卡&#xff0c;aplay 播放命令 aplay -D plughw:1,0 test2.wav2、 录音 arecord -Dhw:1,0 -d 10 -f cd -r 44100 -c 2 -t wav test.wav3、各个参数含义 -D 指定声卡编号 plughw:0,0 //0,0代表card0,device0&#xff0c;可以通过arecord -l获取 -f 录音格式 S16_LE…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...