练习时长两年半的双机热备

1.双机热备技术产生的背景

  • 传统的组网方式如下左图所示,内部用户和外部用户的交互报文全部通过防火墙A。如果防火墙A出现故障,内部网络中所有以防火墙A作为默认网关的主机与外部网络之间的通讯将中断,通讯可靠性无法保证。
  • 防火墙作为安全设备,一般会部署在需要保护的网络和不受保护的网络之间,即位于网络边界上。在网络边界上,如果仅仅使用一台防火墙设备,无论其可靠性多高,系统都可能会承受因为单点故障而导致网络中断的风险。为了防止一台设备出现意外故障而导致网络业务中断,可以采用两台防火墙形成双机备份。

 

2.基于VRRP的路由器冗余部署方案

VRRP(Virtual Router Redundancy Protocol)是一种容错协议,它保证当主机的下一跳路由器(默认网关)出现故障时,由备份路由器自动代替出现故障的路由器完成报文转发任务,从而保持网络通信的连续性和可靠性。同一VRRP备份组内的路由器有两种角色:Master设备(活动状态)、Backup设备(备份状态)。

VRRP在多区域防火墙组网中的应用 

为防火墙上多个区域提供双机备份功能时,需要在每一台防火墙上配置多个VRRP备份组。

VRRP在防火墙应用中存在的缺陷 

传统VRRP方式无法实现主、备用防火墙状态信息和多组VRRP状态的一致性。

VGMP基本原理 (1) 

为了保证所有VRRP备份组切换的一致性,在VRRP的基础上进行了扩展,推出了VGMP(VRRP组管理协议)来弥补此局限。将同一台防火墙上的多个VRRP备份组都加入到一个VGMP管理组,由管理组统一管理所有VRRP备份组的状态,来保证管理组内的所有VRRP备份组状态都是一致的。

  • 防火墙VGMP组状态分为三类:Load-balance、Active、Standby;
  • 防火墙VGMP组通过发送VGMP报文通告自身运行状态,从而根据Hello优先级决定主备设备,主设备VGMP组的状态为Active,备设备VGMP组的状态为Standby;
  • 当防火墙上的VGMP组为Active/Standby状态时,组内所有VRRP备份组的状态统一为Active/Standby状态。

 VGMP基本原理 (2)

当故障发生时,VGMP统一切换VRRP备份组1与VRRP备份组2的状态。当VGMP组状态为Active时,VRRP备份组的状态都是Master;当VGMP组状态为Standby时,VRRP备份组的状态都是Backup;

VGMP组管理 

状态一致性管理

  • VGMP管理组控制所有的VRRP备份组统一切换,VRRP备份组加入到管理组后状态不能单独切换。

抢占管理

  • 当原来出现故障的主设备故障恢复时,其VGMP管理组优先级也会恢复,此时可以重新将自己的VGMP管理组状态抢占为主;
  • 当VRRP备份组加入到VGMP管理组后,备份组上原来的抢占功能将失效,抢占行为发生与否必须由VGMP管理组统一决定。

通道管理

  • 所谓通道管理,就是为了确定双机热备的两台防火墙之间有哪些接口是可用的,VGMP、HRP模块将自动选用可用的接口来发送VGMP、HRP报文。

HRP基本概念

HRP(Huawei Redundancy Protocol)协议,用来实现防火墙双机之间状态信息和关键配置命令的动态备份。

备份方向

  • 支持备份的配置命令默认只能在配置主设备上执行,这些命令会自动备份到备设备上。例如,安全策略配置命令、NAT策略配置命令等;
  • 主备备份组网中,只有主设备会处理业务,主设备上生成业务表项,并向备设备备份。负载分担组网中,两台防火墙都会处理业务,都会生成业务表项并向对端设备备份。

备份通道

  • 配置和状态数据需要网络管理员指定备份通道接口进行备份。一般情况下,在两台设备上直连的端口作为备份通道,有时也称为“心跳线”(VGMP也通过该通道进行通信)。

配置备份与状态信息备份 

为了让两台设备故障切换时业务能平滑切换,两台设备间需要备份配置和状态信息。

HRP心跳线 

双机热备组网中,心跳线是两台防火墙交互消息了解对端状态、备份配置命令和各种表项的通道。

  • 心跳线两端的接口通常被称之为“心跳接口”;
  • 心跳接口可以是一个物理接口(GE接口),或者多个物理接口捆绑成的一个逻辑接口(Eth-Trunk)。

 心跳接口的状态

防火墙双机热备主备备份应用场景 

应用场景

  • 主要应用于对可靠性要求较高场景,如企业办公场景,为提升网络可靠性,可在企业网络出口部署两台防火墙构成双机热备的组网。综合考虑业务需求,双机热备采用主备模式。

配置分析

  • 防火墙VGMP状态:防火墙A为主设备,VGMP状态为Active;
  • 防火墙B为备设备,VGMP状态为Standby;
  • VRRP 备份组:防火墙下游配置VRRP备份组1 ,防火墙上游配置VRRP备份组2;VRRP备份组1和2设置防火墙A为Master,VRRP备份组1和2设置防火墙B为Backup;
  • 备份方式:默认情况下,双机热备采用自动备份方式;
  • 备份接口:防火墙GE0/0/1接口为心跳口,所连接的线路为心跳线;
  • 抢占:默认开启,默认抢占时延为60s。

防火墙双机热备主备备份工作流程 

  • 防火墙主备状态:防火墙A为主设备,VGMP状态为Active,VRRP备份组1和2状态为Matser;防火墙B为备设备,VGMP状态为Standby,VRRP备份组1和2状态为Backup;
  • 配置与状态备份:防火墙A的配置与状态信息通过心跳线实时备份到防火墙B;
  • 流量转发路径:防火墙A向交换机A和交换机C发送免费ARP报文,刷新交换机的MAC地址表。当主机A访问Internet时,首先通过ARP查询网关MAC地址(即查询VRRP Virtual IP的MAC地址),防火墙A回应VRRP Virtual MAC,主机A向交换机A发送业务报文,交换机A根据MAC表转发流量到防火墙A,防火墙A再转发到Internet。返程同理。

 防火墙双机热备主备切换 (1)

业务口/业务线路故障

  • 如图所示,防火墙A的业务口/所连业务线出现故障时,防火墙A的VGMP组优先级降低,发送VGMP请求报文;
  • 防火墙B收到对端发送的VGMP请求报文后,与自己的VGMP组优先级进行比较,发送VGMP应答报文;
  • 防火墙A收到回应报文,将VGMP组状态切换为Standby,防火墙A上的VRRP备份组1和备份组2则切换状态为Backup;
  • 防火墙B将VGMP组状态切换为Active,防火墙B上的VRRP备份组1和备份组2则切换状态为Master。由防火墙B向交换机B和D发送免费ARP报文。

 防火墙双机热备主备切换 (2)

整机故障

  • 防火墙A出现整机故障,不再发送HRP Hello报文,防火墙B五个报文周期没有收到对端发送的HRP Hello报文,则防火墙B切换为主设备,VGMP状态为Active,防火墙B上的VRRP备份组1和备份组2则切换状态为Master。

 防火墙双机热备主备切换 (3)

心跳线故障

  • 心跳线出现故障,防火墙B五个报文周期没有收到对端发送的HRP Hello报文,则防火墙B切换为主设备,VGMP状态为Active,防火墙B上的VRRP备份组1和备份组2则切换状态为Master。此时出现双主现象。

防火墙双机热备主备切回切

  • 防火墙A故障恢复后,此时VGMP组优先级恢复,在等待60s后,发送VGMP请求报文;
  • 防火墙B收到VGMP请求报文后,与自己的VGMP组优先级进行比较,发现对端的优先级较高或相等(相等时查看VGMP的配置),则回应VGMP应答报文,同时将自己的VGMP组状态切换为Standby,VRRP备份组1和2状态切换为Backup;
  • 防火墙A收到回应报文后,将自己的VGMP状态切换为Active,VRRP备份组1和2状态切换为Master。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/49647.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

1、问题: https://github.com/CocoaPods/Specs.git/:LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443的解决办法 出现这个问题的原因基本都是代理的问题: 只需要加上代理就可以了: #http代理 git conf…

机器学习03-数据理解(小白快速理解分析Pima Indians数据集)

机器学习数据理解是指对数据集进行详细的分析和探索,以了解数据的结构、特征、分布和质量。数据理解是进行机器学习项目的重要第一步,它有助于我们对数据的基本属性有全面的了解,并为后续的数据预处理、特征工程和模型选择提供指导。 数据理解…

Rman配置参数详解

using target database control file instead of recovery catalog指的是使用目标数据库控制文件代替恢复目录 1、CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default 设置rman备份过期条件:是用来决定那些备份不再需要了,它一共有三种可选项&…

Pytorch(一)

目录 一、基本操作 二、自动求导机制 三、线性回归DEMO 3.1模型的读取与保存 3.2利用GPU训练时 四、常见的Tensor形式 五、Hub模块 一、基本操作 操作代码如下: import torch import numpy as np#创建一个矩阵 x1 torch.empty(5,3)# 随机值 x2 torch.rand(5,3)# 初始化…

合作客户销售数据可视化分析

以一个案例进行实际分析: 数据来源:【地区数据分析】 以此数据来制作报表。 技巧一:词云图 以城市名称来显示合同金额的分布,合同金额越大,则城市文字显示越大。 技巧二:饼图 下面制定一个,合…

力扣 738. 单调递增的数字

题目来源:https://leetcode.cn/problems/monotone-increasing-digits/description/ C题解:像1234就可以直接返回1234,像120需要从个位往高位遍历,2比0大,那么2减一成为1,0变成9,变成119。 clas…

【图像分类】CNN + Transformer 结合系列.1

介绍三篇结合使用CNNTransformer进行学习的论文:CvT(ICCV2021),Mobile-Former(CVPR2022),SegNetr(arXiv2307). CvT: Introducing Convolutions to Vision Transformers, …

SpringMVC 拦截器详解

目录 一、介绍 二、过滤器与拦截器的简单对比 三、自定义拦截器 四、注册拦截器 五、案例演示-登录拦截器 5.1 自定义拦截器 5.2 注册拦截器 编写的初衷是为了自己巩固复习,如果能帮到你将是我的荣幸❣️ 一、介绍 SpringMVC提供的拦截器类似于JavaWeb中的过…

C++网络编程 TCP套接字基础知识,利用TCP套接字实现客户端-服务端通信

1. TCP 套接字编程流程 1.1 概念 流式套接字编程针对TCP协议通信,即是面向对象的通信,分为服务端和客户端两部分。 1.2 服务端编程流程: 1)加载套接字库(使用函数WSAStartup()),创建套接字&…

MySQL Windows版本下载及安装时默认路径的修改

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、MySQL 下载二、默认路径修改1、安装前准备【非常重要】2、启动安装程序总结1、MySQL下载2、MySQL默认路径修改前言 MySQL 被Oracle收购后,各种操作规范及约束也相应的跟着来了,这不,只…

【前端实习评审】对小说详情模块更新的后端接口压力流程进行了人群优化

大家好,本篇文章分享一下【校招VIP】免费商业项目“推推”第一期书籍详情模块 前端同学的开发文档周最佳作品。该同学来自安徽科技学院土木工程专业。本项目亮点难点: 1.热门书籍在更新点的访问压力; 2.书籍更新通知的及时性和有效性&#xf…

重学C++系列之友元

一、什么是友元 在C中,为了提高程序的效率,在一些场景下,引入友元,但同时类的封装性就会被破坏。 二、怎么实现友元 友元关键字(friend) // 在类中声明另一个类的成员函数来做为友元函数 // 以关键字&…

Centos部署Springboot项目详解

准备启动jar包,app.jar放入指定目录。 一、命令启动 1、启动命令 java -jar app.jar 2、后台运行 nohup java -jar app.jar >/dev/null 2>&1 & 加入配置参数命令 nohup java -Xms512M -Xmx512M -jar app.jar --server.port9080 spring.profiles…

基于鲸鱼优化算法的5G信道估计(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑…

Unity 工具之 NuGetForUnity 包管理器,方便在 Unity 中的进行包管理的简单使用

Unity 工具之 NuGetForUnity 包管理器,方便在 Unity 中的进行包管理的简单使用 目录 Unity 工具之 NuGetForUnity 包管理器,方便在 Unity 中的进行包管理的简单使用 一、简单介绍 二、NuGetForUnity 的下载导入 Unity 三、NuGetForUnity 在 Unity 的…

Jetbrains idea 代码关闭 注释自动渲染 导致换行不生效

方法1 关闭注释自动渲染 取消勾选 方法2 结尾使用 <br> 强制换行

vector使用

文章目录 vector的介绍vector的使用vector的初始化vector iterator迭代器的使用vector 空间增长问题vector的增删改查 迭代器失效总结 vector的介绍 文档介绍 vector是表示可变大小数组的序列容器。就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着…

【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境3

4、下载MaixPy IDE&#xff0c;MaixPy 使用Micropython 脚本语法&#xff0c;所以不像 C语言 一样需要编译&#xff0c;要使用MaixPy IDE , 开发板固件必须是V0.3.1 版本以上&#xff08;这里使用V0.5.0&#xff09;, 否则MaixPy IDE上会连接不上&#xff0c; 使用前尽量检查固…

宝塔设置云服务器mysql端口转发,实现本地电脑访问云mysql

环境&#xff1a;centos系统使用宝塔面板 实现功能&#xff1a;宝塔设置云服务器mysql端口转发&#xff0c;实现本地电脑访问mysql 1.安装mysql、PHP-7.4.33、phpMyAdmin 5.0 软件商店》搜索 mysql安装即可 软件商店》搜索 PHP安装7.4.33即可&#xff08;只需要勾选快速安装&…

iOS开发-实现快速登录弹窗与微信微博QQ三方登录切换控件

iOS开发-实现快速登录弹窗与微信微博QQ三方登录切换控件。 之前开发中实现快速登录弹窗与微信微博等了切换控件。 一、效果图 二、实现代码 实现背景渐变UIBlurEffect self.blurEffect [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; self.effectView [[UIVisu…