vFW搭建IRF

0f224d134848c2695d17b688cecd16df.gif

正文共:2328字 40图,预估阅读时间:5 分钟

IRF(Intelligent Resilient Framework,智能弹性架构)技术通过将多台设备连接在一起,虚拟化成一台设备,集成多台设备的硬件资源和软件处理能力,实现多台设备的协同工作、统一管理和不间断维护。

IRF主要有可实现多设备统一管理、提高可靠性、实现跨成员设备的链路聚合、提高网络的扩展能力等优势。

巧的是,操作vFW时我竟然发现有相关命令,那为什么不试一下能不能用呢?

35467e73849604df406e2daa7f348f91.png

8d5a9c37a931362e55cabf0fec546a07.png

环境准备

常规操作中,两台物理防火墙要做IRF,一般需要至少1根堆叠线(有条件的再加1根MAD检测线),在虚拟化平台内部,也就只好通过增加虚拟交换机和端口组来模拟物理线路了。

登录到ESXi管理页面,点击“网络”→“虚拟交换机”→“添加标准虚拟交换机”设置vSwitch名称信息。因为是内部线路,用不到上行链路,在这把上行链路1后面的网卡关掉;因为一个物理网卡只能加入到一个虚拟交换机中,此处删除掉上线链路能方便后续操作。

b9782899e98a86ad84c95da91a73dc68.png

然后点击“网络”→“端口组”→“添加端口组”,设置好名称并选择虚拟交换机为刚刚添加的“IRF link”。

d37047bc7ffe1cb1f74a955f4efbe627.png

创建一台名为“vFW-IRF-Linux-192.168.1.201”的虚拟机,创建过程中先添加IRF链路所用的网卡信息。

cbe10ae9dd2647107a429f6e692e2977.png

虚拟机详细配置信息如下:

b680c398205774fec9d7ed7d1b5e99c5.png

为了保证测试成功,在部署过程中特地选择了“IRF Install”。需要注意的是,不同版本支持安装方式不同,E1166系列版本支持4种部署模式。

8d9e4d7f47829287a5ed246493117900.png

E1171系列版本支持5种部署模式,多了一个Debug Mode模式。

80df4643ba50a6de0b71374cea5a9f66.png

e0c787fb1ab146da7a5c89614fce2688.png

搭建IRF基础环境

部署完成后进入系统,查看接口信息发现和普通部署不同,接口编号多了一位槽位信息。但是接口卡还是不能确定,不能确认哪个接口是IRF链路。

8d603d1993ebba7a23fa37b4c936a34e.png

简单测试一下,在设置中取消IRF port link的连接。

ae0a237674c0533397f93bbbb2419498.png

此时看到接口GE1/1/0状态DOWN了,所以初步推断vFW中接口和虚拟机设置中网卡适配器的对应关系是顺序对应

28ea831305a585a82ae051cfed8a550d.png

简单设置vFW,实现远程登录,操作更方便。(操作参考vFW设备初始化配置调优,因为控制台不支持屏幕滚动,不能查看历史信息。)

aee55ec42b5045f4479d416afd93aaea.png

本次操作我参考了vFW的IRF配置手册,和常规物理设备做IRF有所不同,官网链接如下:

http://h3c.com/cn/d_201911/1246617_30005_0.htm

验证了IRF链路之后,我们再如法炮制,添加一组MAD检测链路。创建名为MAD的虚拟交换机,并添加名为MAD link的端口组

51293bf9e1a14b4fdd23caf313b7b346.png

在虚拟机设置中添加一个新网卡

1446b4fe697a4c5d98ace5f65e384ef5.png

发现直接添加的网卡设备并没有被设备识别到。

0de7571d078191d6c196163474cbd6bf.png

此时需要重启vFW使新的网卡配置生效

a9067d773060b633e734b7b648becf70.png

efddda0c9be48fb85329161888f753c5.png

搭建IRF

链路问题都解决了,接下来先修改设备成员编号,重启生效

c1c5a7ff5f18f33e06e276446880932b.png

修改成员设备vFW1的优先级,使其成为主设备。缺省情况下,成员优先级为1

58a5efc40d03e3b01716197416460712.png

和常规配置不同,vFW配置IRF端口时端口编号需要和IRF成员设备编号相同,所以irf-port 1应该是等于常规的irf-port 1/1。

2d67937a15a5ca25b0bebd1187429499.png

cdd1513f84873b2c7819f9df4cd4dce9.png

一个IRF端口可以与一个或多个IRF物理端口绑定,以提高IRF链路的带宽以及可靠性。可绑定的IRF物理端口的最大数目为2。一个IRF端口必须有至少一个数据通道和控制通道,这两种通道可以部署在一个IRF物理端口上,也可以部署在不同的IRF物理端口上

配置时可以看到,添加成员端口时后面可选type类型,如果不选择,则是将数据通道和控制通道部署在了一个物理端口上

fb95d3eb0de16c03f45263e6d23b902d.png

而如果指定参数区分端口类型,则需要添加两个成员端口;这些差异在配置中都可以看到。

3a71f8ee993ef7c864c97310028df0c4.png

并且从命令提示可以看到,IRF配置的生效方式和常规也不同,需要保存配置后重启网卡来生效。相对于之前的操作,算是有所简化。

vFW2修改成员编号之后发现无法远程,登录控制台查看确认为配置不匹配导致。启动配置文件信息如下,接口仍是旧的接口编号。

d3f67ca96a3efb2ac75bfaad13d0f352.png

97f15d2ff3fa96d0c585fe01e62f9b6a.png

官网解释如下:

修改成员编号后,但是没有重启本设备,则原编号继续生效,各物理资源仍然使用原编号来标识。修改成员编号后,如果保存当前配置,重启本设备,则新的成员编号生效,需要用新编号来标识物理资源;配置文件中,只有IRF端口的编号以及IRF端口下的配置、成员优先级会继续生效,其它与成员编号相关的配置(比如普通物理接口的配置等)不再生效,需要重新配置。

55b6512f9ce83cb606b687dd334ca695.png

保存一下当前配置。

826a6a276d06bb436fa57535476a20b4.png

再次查看配置文件,发现接口编号同步过来了。

eebebd0fe35a656407a721af203a1945.png

按照指导操作(进入到IRF-port下,添加成员端口,重启网卡)完成IRF配置,因为默认开启了irf auto-merge,所以会自动加入IRF。

08e70dd671e0459379a1ffe6fcc7765c.png

搭建完成后,查看IRF状态如下。

321b61e3d7aae0385da945e228ce2d23.png

查看设备接口信息如下。

4ace69c8c763f0b3e1a61dbfd966fba9.png

并且又发现了一个save safely操作,实际使用发现和常规保存一样。

e334ea3189e42bb03bccde35a4b3eccd.png

6516032475637d4ae5f2b6446414e252.png

MAD检测

IRF链路故障会导致一个IRF变成多个新的IRF。未尽量降低IRF分裂对业务的影响,一般建议配置MAD(Multi-Active Detection,多Active检测)检测。MAD主要提供分裂检测、冲突处理和故障恢复功能,不同MAD检测方式冲突处理原则不同,不允许同时配置:LACP MAD和ARP MAD、ND MAD冲突处理的原则不同;BFD MAD和ARP MAD、ND MAD冲突处理的原则不同。

虽然当前环境下用不到,但我还是选择用BFD MAD这种常用的检测方式来演示一下。首先按照完成配置,具体如下:

#
vlan 3000
#
interface Vlan-interface3000mad bfd enablemad ip address 30.3.3.1 255.255.255.0 member 1mad ip address 30.3.3.2 255.255.255.0 member 2
#
interface GigabitEthernet1/3/0port link-mode bridgeport access vlan 3000
#
interface GigabitEthernet2/3/0port link-mode bridgeport access vlan 3000

检测状态发现不正常,显示为Faulty,正常应该显示Normal

242ab77661970e1dbdb1c1215dbdd422.png

调整端口组VLAN ID为对应的3000

8e0bcb4849d01a66cc18649670d3a986.png

此时MAD状态恢复正常Normal状态。

5e9f9b2037798ae06742fa78e8a9a715.png

f72e5c43f284d19a73d6a6ecf4760438.png

IRF信息查看

日常操作中,除了使用display irf显示IRF中所有成员设备的相关信息使用display mad verbose显示MAD配置信息外,还会用到display irf configuration显示IRF中所有成员设备的配置信息

85038190b1ce554c1c03e2ba6fd8ba71.png

使用display irf forwarding显示指定成员设备收到的IRF Hello报文的信息

19b5736301efb5fced0fbf2c5535ac14.png

使用display irf link显示IRF链路信息

9fd38267df6a408f4b450d53b071889c.png

还有一些其它操作可以参考之前文章(IRF堆叠使用问题分析)。

0abfa27e6b405405ea4ec45d337d6cd0.png

使用场景探索

提醒一下,也就是做实验,日常使用可不要像我这么玩,还是很吃服务器性能的,CPU消耗最严重。vFW设备内查看CPU、内存利用率。

ce221f8437cb894ae292b65e7d3c1c28.png

主机CPU使用情况。

8b0075449713b26dd14dcc3c80be5fe2.png

数据转发消耗了很大的CPU。

ef32a22820622dc306af91f0f5798c17.png

IRF接口使用率始终保持在500Mb左右。

750d835d710270c31b4091e8c55dcd61.png

MAD检测端口也差不多有100Mb的广播报文。

66abcab6e83feb2c3b1105ae538fa410.png

最终确认为MAD检测链路消耗了过多主机资源,关掉之后CPU利用率降到了25%。

3f74452fcc28fe4a89b82e36d68a610d.png

我开始也在想,既然都使用vFW了,为什么还要做IRF呢?配置不够了直接扩容配置不就行了吗?但后来我意识到这实际上主要是为了提高网络的健壮性

像我这样在一台服务器上搭两台vFW的实际应用场景应该是没有,更多的可能是现场有多台服务器的场景,不同服务器上的vFW做IRF,这样能分担不同的流量场景,并且通过冗余配置和联动配置来实现业务的高可靠性,实现一台服务器挂死之后另一台服务器的感知,来响应这部分业务。

关于在vFW环境下怎么验证冗余备份的可靠性配置,还得容我再想一下。

8c437334c6bee83a79ef77700543c2ea.gif

长按二维码
关注我们吧

39a3d25b049eb60beeb5c250cf237d33.jpeg

更多推荐

           

脱掉等保的“神秘外衣”

主机安全漏洞解决方案

H3C防火墙特征库升级失败排查

V7防火墙配置基本操作

vFW设备初始化配置调优

网络后沿:零信任网络

       

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

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

相关文章

两个月软考-高项上岸

文章目录 前言结缘软考功亏一篑有始有终2个月计划资料部分计划截图 总结 前言 我们看小说或者电视剧电影都会看到这样的情节,主角一开始锦衣玉食,突然家道中落,啥都没了,主角再一路奋起重新找回了属于自己的一切;还有…

Vue项目中实现浏览器标签页名字的动态修改

修改router/index.js文件 路由条目下面添加meta属性 meta:{title:DevOps运维平台 }示例 使用Vue的全局守卫函数beforeEach,在路由切换前动态修改浏览器标签页名字 router.beforeEach((to,from,next) > {document.title to.meta.titlenext() })

Error: Cannot find module ‘E:\Workspace_zwf\mall\build\webpack.dev.conf.js‘

执行:npm run dev E:\Workspace_zwf\zengwenfeng-master>npm run dev> mall-app-web1.0.0 dev E:\Workspace_zwf\zengwenfeng-master > webpack-dev-server --inline --progress --config build/webpack.dev.conf.jsinternal/modules/cjs/loader.js:983thr…

[笔记]ARMv7/ARMv8 交叉编译器下载

开发 Cortex-A7、Cortex-A72 或其他 ARM 架构 profile 芯片时,经常需要下载对应架构的交叉编译器,所以写这篇笔记,用于记录一下交叉编译器下载流程,免得搞忘。 编译环境:ubuntu 虚拟机 下载地址 我们可以从 ARM 官网…

09 视频分片上传Minio和播放

文章目录 一、流程设计1. 分片上传实现思路2. 文件分片上传流程3. 视频播放流程 二、代码实现1. 后端代码2. 文件上传前端代码3. 视频播放前端代码 一、流程设计 1. 分片上传实现思路 2. 文件分片上传流程 3. 视频播放流程 二、代码实现 1. 后端代码 pom.xml <dependenc…

多线程案例-单例模式

单例模式 设计模式的概念 设计模式好比象棋中的"棋谱".红方当头炮,黑方马来跳.针对红方的一些走法,黑方应招的时候有一些固定的套路.按照套路来走局势就不会吃亏. 软件开发中也有很多常见的"问题场景".针对这些问题的场景,大佬们总结出了一些固定的套路.按…

vue实现可拖拽列表

直接上代码 <!-- vue实现可拖拽列表 --> <template><div><button click"logcolig">打印数据</button><TransitionGroup name"list" tag"div" class"container"><divclass"item"v-f…

深度学习记录--激活函数

激活函数的种类 对于激活函数的选择&#xff0c;通常有以下几种 sigmoid&#xff0c;tanh&#xff0c;ReLU&#xff0c;leaky ReLU 激活函数的选择 之前logistic回归一直使用的激活函数都是sigmoid函数&#xff0c;但一般来说&#xff0c;tanh函数是比sigmoid函数更加好的选…

【Python】 生成二维码

创建了一个使用 python 创建二维码的程序。 下面是生成的程序的图像。 功能描述 输入网址&#xff08;URL&#xff09;。 输入二维码的名称。 当单击 QR 码生成按钮时&#xff0c;将使用 QRname 中输入的字符将 QR 码生成为图像。 程序代码 import qrcode import tkinterd…

Oracle的错误信息帮助:Error Help

今天看手册时&#xff0c;发现上面有个提示&#xff1a; Error messages are now available in Error Help. 点击 View Error Help&#xff0c;显示如下&#xff0c;其实就是oerr命令的图形化版本&#xff1a; 点击Database Error Message Index&#xff0c;以下界面等同于命令…

Python中利用遗传算法探索迷宫出路

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 当处理迷宫问题时&#xff0c;遗传算法提供了一种创新的解决方案。本文将深入探讨如何运用Python和遗传算法来解决迷宫问题。迷宫问题是一个经典的寻路问题&#xff0c;寻找从起点到终点的最佳路径。遗传算法是一…

Java解决矩阵对角线元素的和问题

Java解决矩阵对角线元素的和问题 01 题目 给你一个正方形矩阵 mat&#xff0c;请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例 1&#xff1a; 输入&#xff1a;mat [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a…

连接Redis报错解决方案

连接Redis报错&解决方案 问题描述&#xff1a;Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝&#xff0c;无法连接。 问题原因&#xff1a;redis启动方式不正确 解决方案&#xff1a; 在redis根目录下打开命令行窗口&#xff0c;输入命令redi…

听GPT 讲Rust源代码--src/tools(12)

File: rust/src/tools/rust-analyzer/crates/rust-analyzer/src/config.rs 在Rust源代码中&#xff0c;rust/src/tools/rust-analyzer/crates/rust-analyzer/src/config.rs文件的作用是定义和解析rust-analyzer的配置文件。该文件包含了各种配置项的数据结构和枚举类型&#xf…

MQTT主题、通配符和最佳实践

MQTT主题在MQTT生态系统非常重要&#xff0c;因为代理&#xff08;broker&#xff09;依赖主题确定哪个客户端接收指定的主题。本文我们将聚集MQTT主题、MQTT通配符&#xff0c;详细讨论使用它们的最佳实践&#xff0c;也会探究SYS主题&#xff0c;提供给代理&#xff08;broke…

【npm | npm常用命令及镜像设置】

npm常用命令及镜像设置 概述常用命令对比本地安装全局安装--save &#xff08;或 -S&#xff09;--save-dev &#xff08;或 -D&#xff09; 镜像设置设置镜像方法切换回npm官方镜像选择镜像源 主页传送门&#xff1a;&#x1f4c0; 传送 概述 npm致力于让 JavaScript 开发变得…

iOS——UIPickerView选择器

UIPickerView UIPickerView是 iOS 开发中常用的用户界面组件之一&#xff0c;用于在垂直方向上显示一个滚动的列表&#xff0c;用户可以通过滚动选择其中的一项。 UIPickerView的协议方法 UIPickerView和UItableView差不多&#xff0c;UIPickerView也要设置代理和数据源。UI…

fl studio2024试用版本如何汉化中文?

fl studio2024全称Fruity Loops Studio2024&#xff0c;这款软件也被人们亲切的称之为水果&#xff0c;它是一款功能强大的音乐创作编辑软件&#xff0c;拥有全功能的录音室&#xff0c;大混音盘以及先进的音乐制作工具&#xff0c;用户通过使用该软件&#xff0c;就可以轻松制…

2020年第九届数学建模国际赛小美赛B题血氧饱和度的变异性解题全过程文档及程序

2020年第九届数学建模国际赛小美赛 B题 血氧饱和度的变异性 原题再现&#xff1a; 脉搏血氧饱和度是监测患者血氧饱和度的常规方法。在连续监测期间&#xff0c;我们希望能够使用模型描述血氧饱和度的模式。   我们有36名受试者的数据&#xff0c;每个受试者以1 Hz的频率连…

CSPNet: A New Backbone that can Enhance Learning Capability of CNN(2019)

文章目录 -Abstract1 Introduction2 Related workformer work 3 Method3.1 Cross Stage Partial Network3.2 Exact Fusion Model 4 Experiments5 Conclusion 原文链接 源代码 - 梯度信息重用&#xff08;有别于冗余的梯度信息&#xff09;可以减少计算量和内存占用提高效率&am…