smart-link + STP的vlan映射 + monitor-link实现二层链路的负载均衡+主备切换

news2024/9/23 15:26:11

在这里插入图片描述

一、适用场景

1、保护原有投资,不浪费原有网络设备及链路的投资;
2、对高可靠、高可用要求的业务,链路中的设备、接头、线路故障时,毫秒级切换,不影响业务的运行;
3、使用华为、华三智能管理型的交换设备(本例采用的是华为、华三的二层链路私有协议);
4、主链路坏后,该链路上跑的部门业务流量立即切换到冗余的好链路上(实现自动主备),坏链路的故障修复后,会先通过flush的arp广播帧探测目标,当链路目标恢复正常通信后,业务流量再自动切换回原链路(实现负载均衡)。

二、拓扑图(模拟器指令与实物操作指令相同)

在这里插入图片描述

三、思路与解析

(一)解决主、备链路的区分问题

1、在LSW1上关闭G0/0/1与G0/0/2接口的STP生成树协议。数据沿着主链路进行传输,网络中不存在环路,避免产生广播风暴。
2、配置smart-link上的G0/0/1为主链路master,G0/0/2为备链路slave。Smart Link组中的从接口slave在Smart Link组启动后会被阻塞。如果主链路发生故障,Smart Link放开从接口,将流量倒换到备链路。
3、部门1 即vlan 10的用户配置instance实例2映射,并在smart-link中指定该实例2为slave,即让流量默认从备用链路G0/0/2的接口走。

(二)解决链路故障后的自动切换问题

1、使用monitor-link将master的2条物理链路捆绑成一个整体,当这2条物理链路中的某个端口或线路故障时,整个master立即停止流量的转发,此时网络流量能从smart-link的slave转发,毫秒级切换。
2、使用monitor-link将slave的2条物理链路捆绑成一个整体,当这2条物理链路中的某个端口或线路故障时,整个slave立即停止流量的转发,此时网络流量能从smart-link的master转发,毫秒级切换。

(三)解决故障修复后,流量再切换回原链路的问题

1、通过配置smart-link的选项restore enable(链路断了后恢复,网络流量的回切功能开启)
2、通过配置smart-link的选项timer wtr 30(指定网络流量回切的时间),使物理链路在修复还原后,网络流量能切换回原物理链路。
3、在trunk透传的接口上允许vlan 200的Flush报文通过。刷新ARP表并指定smart-link链路捆绑的密码,加强链路捆绑的安全性。
Flush报文的说明:当Smart Link发生链路切换后,原有的转发表项将不适用于新的拓扑网络,需要对整个网络进行MAC表项和ARP表项的更新。这时,Smart Link通过发送Flush报文通知相关设备进行MAC表和ARP表项的刷新操作。由于Flush报文格式的定义根据设备制造商不同会有所区别,因此这里配置的Flush报文只用于华为交换设备之间的通信,且对端设备必须配置Flush报文接收功能。只有为接口配置了控制VLAN编号并将接口加入该VLAN,接口才能接收到Flush报文。并非需要在相关设备的所有接口上都配置从指定控制VLAN接收Flush报文功能,只有那些处于从Smart Link设备到其目的设备主、备链路上的接口才需进行此配置。
(四)解决不同网段之间的相互访问问题
1、在靠近Server的LSW4上配置vlan 10、vlan20的网关ip地址,并在LSW4上配置vlan 100的Server网段的ip地址,作为多台Server的网关ip。
2、在vlan 10的PC1与vlan 20的PC2上,指定自己网段的网关ip地址为LSW4上配置的vlan 10、vlan 20的ip地址。
3、在LSW2与LSW3上允许vlan 10用户、vlan 20用户及vlan 100的Server网络流量能通过。

四、配置过程

(一)LSW1:

System-view #进入系统视图
sysname LSW1 #交换机命名为LSW1,为以后维护多台做区分

vlan batch 10 20 100 200 #创建vlan10、20、100、200分别给用户PC1、PC2、Server服务器、flush报文使用
stp region-configuration #进入STP生成树配置
instance 2 vlan 10 #将实例2映射给vlan 10的用户,为负载均衡打基础
active region-configuration #激活实例配置

smart-link group 1 #创建Smart Link组1
load-balance instance 2 slave #配置实例2绑定的VLAN报文从备用接口发送,实现负载均衡
restore enable # 使能Smart Link组的回切功能,链路断开修复后,流量切换回原链路
smart-link enable #使能Smart Link组功能
port GigabitEthernet0/0/1 master # 接口加入Smart Link组,并配置为主接口
port GigabitEthernet0/0/2 slave #接口加入Smart Link组,并配置为备用接口
timer wtr 30 #设置Smart Link组回切时间
flush send control-vlan 200 password simple sz123 #指定发送Flush报文的密码为simple加密方式

interface GigabitEthernet0/0/1 # 配置G0/0/1接口
port link-type trunk # 将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 # 允许通过的vlan是用户pc1、pc2,服务器Server,flush报文
stp disable # 关闭G0/0/1接口上的生成树协议功能

interface GigabitEthernet0/0/2 #配置G0/0/2接口
port link-type trunk #将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 #允许通过的vlan是用户pc1、pc2,服务器Server,flush报文
stp disable #关闭G0/0/2接口上的生成树协议功能

interface GigabitEthernet0/0/3 #配置G0/0/3接口
port link-type access #将接口配置为access模式
port default vlan 10 #该接口允许业务vlan 10通过(即vlan 10的用户)

interface GigabitEthernet0/0/4 #配置G0/0/4接口
port link-type access #将接口配置为access模式
port default vlan 20 #该接口允许业务vlan 20通过(即vlan 20的用户)

(二)LSW2:

System-view #进入系统视图
sysname LSW2 #交换机命名为LSW2,为以后维护多台做区分
vlan batch 10 20 100 200 #创建vlan10、20、100、200分别给用户PC1、PC2、Server服务器、flush报文使用
interface GigabitEthernet0/0/1 # 配置G0/0/1接口
port link-type trunk # 将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 # 允许通过的vlan是用户pc1、pc2,服务器Server、Flush报文
smart-link flush receive control-vlan 200 password simple sz123 #指定发送Flush报文的密码为
simple加密方式,密码与LSW1匹配

interface GigabitEthernet0/0/2 # 配置G0/0/2接口
port link-type trunk #将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 # 允许通过的vlan是用户pc1、pc2,服务器Server、
Flush报文
smart-link flush receive control-vlan 200 password simple sz123 #指定发送Flush报文的密码为
simple加密方式,密码与LSW1匹配

monitor-link group 1 #配置monitor-link组,设备最多支持创建16个Monitor
Link组
port GigabitEthernet0/0/2 uplink #指定G0/0/2接口为monitor-link组的上行链路
port GigabitEthernet0/0/1 downlink 1 #指定G0/0/1接口为monitor-link组的下行链路

(三)LSW3:

System-view # 进入系统视图
sysname LSW3 #交换机命名为LSW3,为以后维护多台做区分
vlan batch 10 20 100 200 #创建vlan10、20、100、200分别给用户PC1、PC2、
Server服务器、flush报文使用
interface GigabitEthernet0/0/1 #配置G0/0/1接口
port link-type trunk # 将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 # 允许通过的vlan是用户pc1、pc2,服务器Server,
Flush报文
smart-link flush receive control-vlan 200 password simple sz123 #指定发送Flush报文的密码为
simple加密方式,密码与LSW1匹配

interface GigabitEthernet0/0/2 # 配置G0/0/2接口
port link-type trunk #将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 #允许通过的vlan是用户pc1、pc2,服务器Server、
Flush报文
smart-link flush receive control-vlan 200 password simple sz123 #指定发送Flush报文的密码为
simple加密方式,密码与LSW1匹配

monitor-link group 1 #配置monitor-link组,设备最多支持创建16个Monitor
Link组
port GigabitEthernet0/0/2 uplink # 指定G0/0/2接口为monitor-link组的上行链路
port GigabitEthernet0/0/1 downlink 1 # 指定G0/0/1接口为monitor-link组的下行链路

(四)LSW4:

System-view # 进入系统视图
sysname LSW4 #交换机命名为LSW4,为以后维护多台做区分
vlan batch 10 20 100 200 #创建vlan10、20、100、200分别给用户PC1、PC2、
Server服务器、flush报文使用
interface Vlanif10 #配置vlan 10用户的网关地址
ip address 192.168.10.254 255.255.255.0 #给vlan 10配置具体的ip地址与子网掩码

interface Vlanif20 #配置vlan 20用户的网关地址
ip address 192.168.20.254 255.255.255.0 #给vlan 20配置具体的ip地址与子网掩码

interface Vlanif100 #配置vlan 100服务器的网关地址
ip address 192.168.100.254 255.255.255.0 #给vlan 30配置具体的ip地址与子网掩码

interface GigabitEthernet0/0/1 #配置G0/0/1接口
port link-type trunk #将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 # 允许通过的vlan是用户pc1、pc2,服务器Server、
Flush报文

interface GigabitEthernet0/0/2 #配置G0/0/2接口
port link-type trunk #将接口的工作配置为trunk干道模式
port trunk allow-pass vlan 10 20 100 200 # 允许通过的vlan是用户pc1、pc2,服务器Server、
Flush报文

interface GigabitEthernet0/0/3 # 配置G0/0/3接口
port link-type access # 将接口的工作配置为access业务模式
port default vlan 100 # 允许通过的vlan是服务器Server

五、vlan 10用户验证结果,从主链路正常转发,到主链路故障转移到备用链路,再到故障修复后回切到主链路

(一)在LSW1上查看smart-link状态

1、可使用命令
(1)display smart-link group all
(2)display smart-link group 1
在这里插入图片描述

2、上图显示分析:state状态为Active,即激活状态,Role为Master为主链路,slave为备用链路,inactive为非激活状态。所以当前是G0/0/1接口为主链路的激活状态,G0/0/2接口的备用链路为非激活状态(当主链路故障时,G0/0/2接口的备用链路启用)。

(二)在LSW2上查看monitor-link状态

1、在LSW2上使用命令display monitor-link group 1
在这里插入图片描述

2、上图显示分析,上行链路与下行链路都是up状态,说明smart-link运行正常。

(三)负载均衡效果验证

1、在LSW1上使用命令display smart-link group all
在这里插入图片描述

2、上图显示分析:当前负载均衡Load-Balance对应的实例是2
3、查看负载均衡配置的实例命令:
(1)STP的实例配置如下:
在这里插入图片描述

(2)上图显示分析:当前配置的实例2映射的是vlan 10的数据流量

4、通过smart-link的配置,使负载均衡实现的配置
(1)smart-link的配置命令
在这里插入图片描述

(2)通过load-balance instance 2 slave命令,指定实例2即vlan 10的数据流量从smart-link的slave链路,即G0/0/2转发。

5、验证vlan 10是从G0/0/2接口转发数据
(1)在pc1(vlan 10中的其中一台pc)上,执行ping 192.168.100.253(vlan 100中的一台服务器ip地址),测试连通性,能有server的数据回复,说明vlan 10的PC访问server 服务器正常,如下图:
在这里插入图片描述

(2)在LSW4的G0/0/2接口上抓包查看,是否有vlan 10的数据包经过,在wireshare上可以明显看到有request的icmp请求数据包,与reply的icmp回应数据包,所以vlan 10的用户或PC主链路是右侧的这条链路。
6、验证vlan 20是从G0/0/1接口转发数据
(1)在pc2(vlan 20中的其中一台pc)上,执行ping 192.168.100.253(vlan 100中的一台服务器ip地址),测试连通性,能有server的数据回复,说明vlan 20的PC访问server 服务器正常,如下图:
在这里插入图片描述

(2)(2)在LSW4的G0/0/1接口上抓包查看,是否有vlan 20的数据包经过,在wireshare上可以明显看到有request的icmp请求数据包,与reply的icmp回应数据包,所以vlan 20的用户或PC主链路是左侧的这条链路。
通过以上验证,说明vlan 10的网络流量默认从右侧链路转发,vlan 20的网络流量默认从左侧的链路转发,从而实现了负载均衡。
说明:在配置中,我们只做了实例2与vlan 10的映射,指定了STP实例2从smart-link的slave链路转发。而默认的STP实例1是从smart-link的master链路转发。且smart-link接口的master与slave接口均关闭了STP生成树协议(本例即LSW2的G0/0/1与G0/0/2接口)。

(四)主链路断开后,流量ping包连通性测试

1、断开vlan 10的主链路,即右侧链路后,查看vlan 10的网络流量是否会自动从备用链路(左侧链路)转发
(1)在PC1上执行ping 192.168.100.253 –t,持续发出ping包
在这里插入图片描述

(2)在LSW4的G0/0/1与G0/0/2接口上抓包
在这里插入图片描述

从上图分析,现在从PC1 vlan10到server的icmp的ping数据包是从G0/0/2接口抓到的,说明链路好的时候,vlan 10是网络流量从右侧链路转发数据包的。
(3)在LSW3的G0/0/2接口执行shutdown,模拟链路故障
在这里插入图片描述

2、查看抓包的结果与ping包的情况
(1)查看抓包的结果,LSW4抓包已经从G0/0/2停止,vlan 10的数据包已经从原右侧链路切换到备用左侧链路,说明vlan 10的网络流量主备功能切换实现。
在这里插入图片描述

(2)vlan 10的主链路虽然已经物理断开,但查看ping包仍然是连续的,从抓包结果可以看出,右侧的抓包已经停止,PC1到server的数据包已经从LSW4的G0/0/1接口正常转发了。
此时,说明主备链路的自动切换完成。

(五)主链路故障修复后,回切链路查看

1、保持以上抓包与ping包的持续,在这个基础上,回到LSW3上把G0/0/2接口undo shutdown,恢复接口的正常转发。
在这里插入图片描述

状态变为up,如上图:
2、此时,会有一段时间pc1仍走备用链路,当到了配置的切换时间后,就自动切换回主链路,该回切过程会丢3个数据包,相对用户来说,这个回切过程不影响体检。
在这里插入图片描述

六、vlan 20用户验证结果,从主链路正常转发数据包,到主链路故障转移到备用链路,再到故障修复后回切到主链路

(一)vlan 20用户从主链路正常转发数据包

PC2手动配置ip地址192.168.20.1,是vlan 20这个局域网中的用户,访问server服务器192.168.100.253,能正常通信,在LSW2的G0/0/2接口上抓包时,有PC2的request请求包与server服务器的icmp协议reply回应包,如下图:
在这里插入图片描述

(二)主链路故障后转移到备用链路

在LSW2的G0/0/2接口上执行命令shutdown,模拟vlan 20用户的主链路故障,主链路故障后,抓包停止,同时在LSW3的G0/0/2接口抓包查看,已经有Vlan 20的数据包过来,说明主备切换成功。
在这里插入图片描述

(三)主链路故障修复后回切到主链路

1、在LSW2的G0/0/2接口上执行undo shutdown,模拟主链路的修复,当完成修复时,很明显能看到有Broadcast广播的ARP数据帧,如下图:
在这里插入图片描述

2、提取LSW2的G0/0/2接口上其中一个Broadcast的广播帧,只有源,没有目标,所以目标是ff:ff:ff:ff:ff:ff,如下图所示:
在这里插入图片描述

3、提取广播帧的最后一帧查看,很明显已经有了Destination目标,所以已经通过广播的方式找到了目标。
Flush报文:当Smart Link发生链路切换后,原有的转发表项将不适用于新的拓扑网络,需要对整个网络进行MAC表项和ARP表项的更新。这时,Smart Link通过发送Flush报文通知相关设备进行MAC表和ARP表项的刷新操作。由于Flush报文格式的定义根据设备制造商不同会有所区别,因此这里配置的Flush报文只用于华为交换设备之间的通信,且对端设备必须配置Flush报文接收功能。只有为接口配置了控制VLAN编号并将接口加入该VLAN,接口才能接收到Flush报文。并非需要在相关设备的所有接口上都配置从指定控制VLAN接收Flush报文功能,只有那些处于从Smart Link设备到其目的设备主、备链路上的接口才需进行此配置。
在这里插入图片描述

4、此时vlan 20所转发的数据从右侧的备用链路,切换到左侧的主链路上来了,也就是说主链路故障修复后,vlan 20网络的流量已经回切到主链路上来。
在这里插入图片描述

通过验证,主链路正常时,网络流量会根据映射配置的vlan实现负载均衡,主链路故障后,自动切换到备用链路,当主链路修复后,网络流量又能回切到负载均衡状态。本文至此结束,不足之处敬请批评指正。

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

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

相关文章

香橙派 AIpro评测

一. 香橙派AIpro开箱 官网外观: ​ ​ 外观实测:做工精致,散热片有精致的金属感 ​ ​ 反面:由于加装了wifi蓝牙模块,如果需要做外壳,需要注意保护天线贴片。在树莓派pi5的前面一版,增加了wifi…

MedSegDiff: Medical Image Segmentation with Diffusion Probabilistic Model 论文总结

题目:MedSegDiff: Medical Image Segmentation(图像分割)with Diffusion Probabilistic Model(扩散概率模型) 论文(MIDL会议):MedSegDiff: Medical Image Segmentation with Diffusi…

【数组】Leetcode 452. 用最少数量的箭引爆气球【中等】

用最少数量的箭引爆气球 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴从不同点 完全垂直 地…

Linux C++ Socket 套接字、select、poll、epoll 实例

文章目录 1. 概述2. TCP 网络编程实例2.1 服务器端2.2 客户端2.3 运行截图 3. I/O 模型3.1 阻塞式I/O模型3.2 非阻塞I/O模型3.3 I/O 复用模型3.4 信号驱动式I/O3.5 异步I/O模型 4. I/O复用之 select4.1 select 函数描述4.2 服务端代码4.3 客户端代码4.4 运行截图 5. I/O复用之 …

虚拟海外仓用什么系统最好?5个步骤帮你选出适合自己仓库的WMS系统

面对国际市场越来越大的仓储需求,虚拟海外仓的受众还是非常广泛的。不过很多经营虚拟海外仓的企业往往都会陷入管理混乱,低效的怪圈。 要想突破这个经营的瓶颈,快速发展企业,选择一个适合自己的海外仓WMS系统是个不错的选择。 1…

Java中Stack的使用详解

Stack是一种运算受限的线性表,其特点在于仅允许在表的一端(即表尾)进行插入和删除操作。这一端被称为栈顶,而相对的另一端则称为栈底。向一个栈插入新元素的操作称为进栈或入栈,它将新元素放到栈顶元素的上面&#xff…

昂达固态硬盘数据恢复方法:全面解析与操作指南

在数字化时代,数据已经成为我们生活和工作中不可或缺的一部分。而固态硬盘(SSD)由于其读写速度快、抗震性强等优点,慢慢取代了传统的机械硬盘,成为我们存储数据的主要选择。然而,即便再先进的存储设备&…

如何远程访问Redis?

远程访问Redis是一种常见的需求,特别是在分布式系统或跨地域网络中。通过远程访问,我们可以轻松地对远程的Redis数据库进行操作和管理。 天联保障数据安全 对于远程访问Redis的安全性问题,我们可以借助天联来保障数据的安全。天联是一种基于…

Oracle-修改用户名

1、项目背景 需要将导入一份最新的用户数据在tbl用户上,但需要将原来的tbl用户数据保留并能实现两个用户的比对。 2、解决思路 思路一:1)新建用户tbl_feng,导入数据;2)将两个用户换名称 3)比对 思路二&…

STM32实现HAL库LED点灯

目录 一、相关环境 STM32CubeMX 介绍 安装下载 相关配置完善 尝试使用该软件,点亮LED灯 项目创建 代码示例 二、任务实现 1、使用HAL库方式完成LED灯的周期闪烁 要求1 项目创建 代码示例 要求2 项目创建 代码示例 2、使用仿真软件分析仪功能观察…

VS2022配合Qt与boost.asio实现一个TCP异步通信系统远程操作mysql数据库

上一篇博客我们通过boost.asio搭建了一个简单的异步服务器,但是那是基于命令行的,所有用起来还是相当枯燥的,这次我们配合Qt实现一个简陋的前端页面来控制后端mysql数据库中的表,实现添加密钥的功能(本次博客使用的boost版本是1.8…

为什么大部分新手做抖音小店赚不到钱?

大家好,我是喷火龙。 今天来给大家聊聊,为什么大部分新手做抖店赚不到钱? 不知道大家想过这个问题没有,可能有些人把赚不到钱的原因归结于市场、或者平台、又或者运营技术以及做店经验。 但我觉得这些都不是重点,重…

关于RAG(检索增强生成)的一些知识

写在前面 最近一直在看AI相关的文章,不出意外的话,后续几篇应该都是关于这方面的。希望能和大家一起了解这方面的技术。 什么是RAG 检索增强生成 (RAG,全称Retrieval-Augmented Generation) 是一种利用从外部来源获取的事实来提高生成式 AI 模型的准确…

视频监控管理平台LntonCVS安防监控平台实现接入监控视频资源的视频汇聚方案

随着各行业数字化转型的不断推进,视频监控技术在行业内的安防应用及管理支撑日益增多。然而,由于前期规划不清晰、管理不到位等问题,视频监管系统普遍存在以下问题: 1. 各部门单位在视频平台建设中以所属领域为单位,导…

Intellij IDEA创建springboot 3.2.5 项目

1、idea file -> new ->Project 点击 2、创建项目配置 完成配置-> 点击Next 3、选择对应jar 包 -> 点击Create 4、删除 .mvn、mvnw、mvnw.cmd

宝塔Nginx设置图片访问跨域

宝塔Nginx设置图片访问跨域 针对某一个站点设置 找到对应的站点点击 “设置” 增加对应header设置 代码: location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${#允许跨域add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Headers X-Requeste…

数字图像处理系列 | 非线性滤波 (4)

非线性滤波就不能做卷积了 文章目录 前言. 去除噪声如果使用线性滤波 1. 中值滤波2. 重新思考一下 -- 高斯平滑滤波高斯平滑哪里不好用呢?but,我们是不是可以结合高斯平滑滤波的优点和非线性滤波的优点,来做这个去噪呢? 3. Bilat…

融资融券保证金比例,融资融券最低利率4.0%

融资融券保证金比例是指投资者交付的保证金与融资、融券交易金额的比例,用于控制投资者初始资金的放大倍数。这个比例分为融资保证金比例和融券保证金比例。 融资融券保证金比例的计算 1. 融资保证金比例是指投资者融资买入证券时交付的保证金与融资交易金额的比例…

Rust之函数式语言特性:迭代器和闭包(一):概述

开发环境 Windows 11Rust 1.78.0 VS Code 1.89.1 项目工程 这次创建了新的工程minigrep. 函数式语言特性:迭代器和闭包 Rust的设计从许多现有语言和技术中获得了灵感,其中一个重要影响是函数式编程。函数式编程通常包括通过在参数中传递函数、从其他函数返回函数、…

线程池(详细)

Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二&…