当前位置: 首页 > 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…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性&#xf…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐)​​ 在 save_images 方法中,​​删除或注释掉所有与 metadata …...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...