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

news2024/10/6 12:32:36

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。

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

金蝶云星空与旺店通·企业版对接集成物料查询连通创建货品档案(cp_KW货品同步)

金蝶云星空与旺店通企业版对接集成物料查询连通创建货品档案(cp_KW货品同步) 接入系统:金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践,面向事业部制、多地点、多工厂等运营协同与管控型企业及集团公司,提供一个…

前端实现导出excel表格(合并表头)

需求:勾选行导出为excel表格(合并表头 ) 一、安装插件 npm install --save file-saver xlsx运行项目报如下警告的话 运行npm install xlsx0.16.0 --save 来降低版本号(最初我安装的版本号是0.18.16的版本)再次运行项目…

VS构建项目报错信息及解决办法01

报错信息及解决1: 报错信息详情:1>MSVCRT.lib(exe_winmain.obj) : error LNK2019: 无法解析的外部符号 _WinMain16,该符号在函数 "int cdecl scrt_common_main_seh(void)" (?__scrt_common_main_sehYAHXZ) 中被引用 原因&…

SAP RFC介绍(sRFC/aRFC/tRFC/qRFC/pRFC)

异步RFC: aRFC后缀: STARTING NEW TASK CALL FUNCTION - STARTING NEW TASK / RECEIVE / WAIT UNTIL tRFC 后缀: IN BACKGROUND TASK. CALL FUNCTION - IN BACKGROUND TASK qRFC 是tRFC的一个扩展。它允许你将多个tRFC调用序列化为一个…

RocketMQ集群4.9.2升级4.9.6版本

本文主要记录生产环境短暂停机升级RocketMQ版本的过程 一、整体思路 1.将生产环境MQ4.9.2集群同步到测试环境,并启动,确保正常运行。 2.参照4.9.2配置4.9.6集群 3.停掉4.9.2集群,启动4.9.6集群,测试确保正常运行。 4.停掉4.9.6集…

Python Web开发技巧VII

目录 装饰器inject_serializer 装饰器atomic rebase git 清理add的数据 查看git的当前工作目录 makemigrations文件名称 action(detailTrue, methods["GET"]) 如何只取序列化器的一个字段进行返回 Response和JsonResponse有什么区别 序列化器填表和单字段如…

理解Android中不同的Context

作者:两日的blog Context是什么,有什么用 在Android开发中,Context是一个抽象类,它是Android应用程序环境的一部分。它提供了访问应用程序资源和执行各种操作的接口。可以说,Context是Android应用程序与系统环境进行交…

LoadRunner使用教程

1. LoadRunner简介 LoadRunner是一款广泛使用的性能测试工具 可以对各种应用程序进行性能测试,包括Web应用程序、移动应用程序、企业级应用程序等。它提供了一个综合的性能测试解决方案,包括测试计划设计、脚本录制、测试执行、结果分析和报告生成等功…

三、函数-5.流程函数

一、常见函数 【对比】 二、示例 1、if 和 ifnull -- if(value, t, f) 如果value为true,则返回t,否则返回f ok select if(true, ok, error);-- ifnull(value1, value2) 如果value1不为空,返回value1,否则返回value2&#…

MFC表格控件CListCtrl的改造及用法

1、目的 简单描述MFC的表格控件使用方法。Qt适用习惯了以后MFC用的比较别扭,因此记录一下以备后续复制代码使用。由于MFC原生的CListCtrl比较局限,比如无法改变表格的背景色、文字颜色等设定,因此先对CListCtrl类进行重写,以便满足…

哪些报表工具更适合中国企业?看完本文就知道了

企业级报表工具是指能够处理大量数据、支持多种数据源连接、具有强大的数据分析和可视化功能的工具。进入大数据时代,企业数据量剧增、分析需求精细化且要求高效率、高灵活自主性,一般都采用BI报表工具来做智能化、可视化数据分析,推动企业的…

Neo4j数据库中导入CSV示例数据

本文简要介绍Neo4j数据库以及如何从CSV文件中导入示例数据,方便我们快速学习测试图数据库。首先介绍简单数据模型以及基本图查询概念,然后通过LOAD CSV命令导入数据,生成节点和关系。 环境准备 读者可以快速安装Neo4j Desktop,启…

Mysql中(@i:=@i+1)的介绍

i:i1 表达式 生成伪列实现自增序列 语法: select (i:i1) as ,t.* from table_name t,(select i:0) as j (i:i1)代表定义一个变量,每次叠加 1; (select i:0) as j 代表建立一个临时表,j是随便取的表名,但别名一定…

python和c++哪个更值得学,python和c++学哪个简单

大家好,本文将围绕python和c哪个更值得学展开说明,python和c学哪个简单是一个很多人都想弄明白的事情,想搞清楚c和python哪个好学需要先了解以下几个事情。 1、想学编程,选择Python 还是Java或者C? 首先,我…

MySQL索引失效原因及解决方案

MySQL索引失效原因及解决方案 在使用MySQL数据库时,索引是一种重要的性能优化工具。然而,有时候我们可能会遇到索引失效的情况。本文将介绍几种常见的MySQL索引失效原因以及相应的解决方案,并提供SQL语句的错误示例和正确示例。 1. 字符串字…

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 二)

Prop装饰器:父子单向同步 Prop装饰的变量可以和父组件建立单向的同步关系。Prop装饰的变量是可变的,但是变化不会同步回其父组件。 概述 Prop装饰的变量和父组件建立单向的同步关系: Prop变量允许在本地修改,但修改后的变化不会…

tinkerCAD案例:11.制作齿轮

tinkerCAD案例:11.制作齿轮 制作齿轮 Add a cylinder to be the main part of the gear. 添加一个圆柱体作为齿轮的主要部分。 说明 Click and drag a cylinder onto the Workplane. 单击圆柱体并将其拖动到工作平面上。 Change the cylinder dimensions to 35mm …

四、约束-1.概述

一、概念 约束是作用于表中字段上的规则,用于限制存储在表中的数据。 二、目的 保证数据库中数据的正确、有效性和完整性。 三、分类

视觉套件专项活动!与飞桨技术专家一起提升技术实力,更多荣誉奖励等你领取

作为中国最早开源的深度学习框架,飞桨深度践行开源理念,开放拥抱社区,重视生态构建,与开发者和生态伙伴共成长,已成为国内综合竞争力第一的产业级深度学习平台。截至目前,飞桨已凝聚750万名开发者。 在飞桨…

i.MX6ULL(十九) linux gpio子系统

一 简介 pinctrl 子系统重点是设置 PIN( 有的 SOC 叫做 PAD) 的复用 和电气属性, 如果 pinctrl 子系统将一个 PIN 复用为 GPIO 的话,那么接下来就要用到 gpio 子系 统了。gpio 子系统顾名思义,就是用于初始化 GPIO 并且提供相…