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

防火墙之双机热备篇

为什么要在防火墙上配置双机热备技术呢?

相信大家都知道,为了提高可靠性,避免单点故障

肯定有聪明的小伙伴会想到那为什么不直接多配置两台防火墙,然后再将他们进行线路冗余,不就完成备份了吗?

答案是不可以这样,如果是路由器,这样做当然是没什么问题,但是这是防火墙,不仅要同步配置信息,而且还要同步状态信息,所以不能像路由器那样单纯的靠动态协议来实现切换,需要用到双机热备技术。

1.双机概论:目前双机热备仅支持两台防火墙设备。

2.热备概论:两台设备共同运行,在一台设备出现故障的情况下,另外一台设备可以立即替代原设备。

不仅有热备概念,还存在冷备概论。

冷备的概念:仅工作一台设备,备份一台设备,备份设备仅同步配置,并不工作,只有主设备出现故障时,再由管理员替换工作,冷备可能会造成较长时间的业务中断。

双机热备三剑客:VRRP、VGMP、HRP

VRRP   ---   虚拟路由冗余协议

VRRP在一个组内可以存在多台3层设备,存在一个master和多个backup

正常产生一个虚拟IP(可以为真实接口ip)和一个虚拟MAC

默认每1s来检测一次master是否活动   224.0.0.18  TTL=1   hold time 3s

选举规则:先优先级,默认100,大优;再接口ip地址大优;

特点:切换速度快;可以使网关的IP和MAC地址不用变化;网关的切换对主机是透明的;

可以实施上行链路追踪

在网关冗余技术中,ICMP重定向是失效的;故当上行链路DOWN时,网关将不会切换;

可以定义上行链路追踪-----该配置必须在抢占开启的情况下生效,且两台设备间的优先级差值小于下调值; 若本地存在多条上行或下行链路,建议上行链路追踪配置时的下调值之和大于优先级差值----所有上行链路全down时,才让备份设备抢占;下行链路大部分down时,可以让备份设备抢占;

VGMP ---  vrrp Group Management Protocol   (华为私有协议)

为什么会有这个?

因为VRRP彼此是独立的,所以,一个VRRP组进行切换不会其他组同步切换,而在防火墙的双机热备场景下,上下有俩个VRRP组,需要同步切换,使用传统的上行链路监控,比肩复杂,因为要监控所有的接口。所以,设计了VGMP协议,和VRRP组进行统一的切换管理。

来VGMP是怎么玩的:

首先,在一个VGMP组中,有active组和standby俩个组。每个组里面有两个状态,一个active状态,一个standby状态。

HRP:华为冗余协议

可以同步防火墙的状态和配置信息

配置信息:策略,NAT,认证,服务等等

状态信息:会话表,server-map ,黑白名单等

but!!!    HRP不能同步基本的接口和路由信息

主备的形成场景

1,FW1被设定为主设备 --- FW1中的VGMP的active组被激活,并且将上下两个VRRP组拉
入到VGMP的active组中,并且状态都是ACTIVE
2,FE2被设定为备设备 --- FW2中的VGMP的standby组被激活,并且将上下两个vrrp组拉入
到VGMP的standby组中,并且状态都是standby
(VGMP组中存在优先级的概念,ACTIVE组的默认优先级是65001,standby组默认的优先
级为65000,并且,在VGMP中,所有的主都被成为active,所有的备成为standby)
3,主设备上下两个VRRP组的接口将发送免费ARP报文

这就是主备的形成。

在接口出现故障时,它是怎么处理的呢?

FW1接口故障的切换场景

1,假设FW1下的接口发生故障,接口的状态会从active状态切换到initialize状态(接口故障
的一个过渡状态)
2,VGMP组感知到接口状态变化,会降低自身的优先级(每一个接口发生故障,则优先级会
降低2。)
3,FW1会向FW2发送一个状态变更的请求报文,这个报文中会包含降低后的优先级;
4,FW2收到请求报文后,发现自身的优先级高于对方的优先级,则会将自己standby组的状
态从standby切换为active状态
5,FW2的VGMP组状态发生变化,则组中的VRRP组的状态同步发生变化,都从standby切
换到active
6,FW2回复FW1应答报文,表示允许切换
7,FW1收到应答报文后,将自身ACTIVE组的状态从ACTIVE切换到standby状态,并且,其
中的VRRP组同步将状态切换到standby,不包含故障接口的状态,依旧是initialize状态
8,FW2上下两个VRRP组将发送免费ARP报文,让交换机切换MAC地址表,之后所有的流量
将从FW2通过

主备故障切换场景 --- 整机故障

整机故障可以通过保活机制来进行切换,主设备发生故障,则不会发送HRP心跳报文,
备设备在超时时间内没有接收到主设备的保活包,则将会进行状态切换;(周期1s ,hold time 3s)

原主设备故障恢复的场景

根据有没有开启抢占分为两种不同的情况
1,如果没有开启抢占 --- 原主设备继续以备设备的身份工作
2,如果开启了抢占

  

负载分担场景

注意:抢占模式中,默认开启60s抢占延迟

不设置立马抢占的原因是为了防止接口动荡,一会没问题,一会有问题这种情况

相关文章:

防火墙之双机热备篇

为什么要在防火墙上配置双机热备技术呢? 相信大家都知道,为了提高可靠性,避免单点故障 肯定有聪明的小伙伴会想到那为什么不直接多配置两台防火墙,然后再将他们进行线路冗余,不就完成备份了吗? 答案是不…...

终端里面ifconfig命令无法运行

在 Ubuntu 以及基于 Debian 的系统中,ifconfig 命令可能不会默认安装,因为自 Ubuntu 17.10 版本开始,系统默认使用 ip 命令作为网络配置的主要工具,而 ifconfig 命令则来自 net-tools 包,该包不再作为标准工具被包含在…...

掌握Python中的文件序列化:Json和Pickle模块解析

Python 文件操作与管理:Open函数、Json与Pickle、Os模块 在Python中,文件是一个重要的数据处理对象。无论是读取数据、保存数据还是进行数据处理,文件操作都是Python编程中不可或缺的一部分。本文将详细介绍Python中文件操作的几种常用方法&…...

WordPress 6.6 “Dorsey多尔西”发布

WordPress 6.6 “Dorsey多尔西”已经发布,它以传奇的美国大乐队领袖 Tommy Dorsey 名字命名。Dorsey 以其音调流畅的长号和作品而闻名,他的音乐以其情感深度和充满活力的能量吸引了观众。 当您探索 WordPress 6.6 的新功能和增强功能时,让您的…...

核函数支持向量机(Kernel SVM)

核函数支持向量机(Kernel SVM)是一种非常强大的分类器,能够在非线性数据集上实现良好的分类效果。以下是关于核函数支持向量机的详细数学模型理论知识推导、实施步骤与参数解读,以及两个多维数据实例(一个未优化模型&a…...

二分查找(折半查找)

这次不排序了,对排好序的数组做个查找吧 介绍 二分查找排序英文名为BinarySort,是一种效率较高的查找方法要求线性表必须采用顺序存储结构 基本思路 通过不断地将搜索范围缩小一半来找到目标元素: 1、假定数组为arr,需要查找的…...

arcgis紧凑型切片缓存(解决大范围切片,文件数量大的问题)

ArcGIS 切片缓存的紧凑型存储格式是一种优化的存储方式,用于提高切片缓存的存储效率和访问速度。紧凑型存储格式将多个切片文件合并为一个单一的 .bundle 文件,从而减少文件系统的开销和切片的加载时间。这类格式已经应用很久了,我记得2013我…...

ESP32CAM人工智能教学15

ESP32CAM人工智能教学15 Flask服务器TCP连接 小智利用Flask在计算机中创建一个虚拟的网页服务器服务器,让ESP32Cam通过WiFi连接,把摄像头拍摄到的图片发送到电脑中,并在电脑中保存成图片文件。 Flask是用Python编写的网页服务程序WebServer。…...

Pandas 33个冷知识 0721

Pandas 33个冷知识 从Excel读取数据: 使用 pd.read_excel(file.xlsx) 来读取Excel文件。 写入Excel: 使用 df.to_excel(file.xlsx, indexFalse) 将DataFrame写入Excel文件。 创建日期索引: 使用 df.set_index(pd.to_datetime(df[date])) 创建日期索引。 向后填充缺失值: 使用…...

C++ map和set的使用

目录 0.前言 1.关联式容器 2.键值对 3.树形结构的关联式容器 3.1树形结构的特点 3.2树形结构在关联式容器中的应用 4.set 4.1概念与性质 4.2使用 5.multiset 5.1概念与性质 5.2使用 6.map 6.1概念与性质 6.2使用 7.multimap 7.1概念与性质 7.2使用 8.小结 &a…...

yarn的安装和配置以及更新总结,npm的对照使用差异

1. Yarn简介 Yarn 是一个由 Facebook 开发的现代 JavaScript 包管理器,旨在提供更快、更安全、更可靠的包管理体验。 1.1 什么是Yarn Yarn 是一个快速、可靠和安全的 JavaScript 包管理器,它通过并行化操作和智能缓存机制,显著提升了依赖安…...

【Git命令】git rebase之合并提交记录

使用场景 在本地提交了两个commit,但是发现根本没有没必要分为两次,需要想办法把两次提交合并成一个提交;这个时候可以使用如下命令启动交互式变基会话: git rebase -i HEAD~N这里 N 是你想要重新调整的最近的提交数。 如下在本地…...

为什么品牌需要做 IP 形象?

品牌做IP形象的原因有多方面,这些原因共同构成了IP形象在品牌建设中的重要性和价值,主要原因有以下几个方面: 增强品牌识别度与记忆点: IP形象作为品牌的视觉符号,具有独特性和辨识性,能够在消费者心中留…...

Kubernetes 1.24 版弃用 Dockershim 后如何迁移到 containerd 和 CRI-O

在本系列的上一篇文章中,我们讨论了什么是 CRI 和 OCI,Docker、containerd、CRI-O 之间的区别以及它们的架构等。最近,我们得知 Docker 即将从 kubernetes 中弃用!(查看 kubernetes 官方的这篇文章)那么让我…...

70. 爬楼梯【 力扣(LeetCode) 】

一、题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 二、测试用例 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶…...

R语言优雅的把数据基线表(表一)导出到word

基线表(Baseline Table)是医学研究中常用的一种数据表格,用于在研究开始时呈现参与者的初始特征和状态。这些特征通常包括人口统计学数据、健康状况和疾病史、临床指标、实验室检测、生活方式、社会经济等。 本人在既往文章《scitb包1.6版本发…...

XMl基本操作

引言 使⽤Mybatis的注解⽅式,主要是来完成⼀些简单的增删改查功能. 如果需要实现复杂的SQL功能,建议使⽤XML来配置映射语句,也就是将SQL语句写在XML配置⽂件中. 之前,我们学习了,用注解的方式来实现MyBatis 接下来我们…...

Linux——Shell脚本和Nginx反向代理服务器

1. Linux中的shell脚本【了解】 1.1 什么是shell Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁 Shell 既是一种命令语言,有是一种程序设计语言 Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问…...

pyspark使用 graphframes创建和查询图的方法

1、安装graphframes的步骤 1.1 查看 spark 和 scala版本 在终端输入: spark-shell --version 查看spark 和scala版本 1.2 在maven库中下载对应版本的graphframes https://mvnrepository.com/artifact/graphframes/graphframes 我这里需要的是spark 2.4 scala 2.…...

【web】-flask-简单的计算题(不简单)

打开页面是这样的 初步思路,打开F12,查看头,都发现了这个表达式的base64加密字符串。编写脚本提交答案,发现不对; 无奈点开source发现源代码,是flask,初始化表达式,获取提交的表达式&#xff0…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

LLM基础1_语言模型如何处理文本

基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

C++使用 new 来创建动态数组

问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...