【华为】Smart-Link基础知识
Smark-Link技术
Smark-Link(灵活链路or备份链路,华为/华三 私有用)
Smark-Link定义
Smark-Link,又叫备份链路。一个Smark Link由两个接口组组成,其中一个接口作为另一个的备份。Smark-Link常用于双上行组网,提供可靠高效的备份与高速的切换机制。
Smark-Lin的目的
下游设备连接到上游设备,当采用单上行方式时,若出现单点故障,会造成业务中断。若采用双上行方式,将一台下游设备同时连接到两台上游设备,可降低单点故障对网络的影响。(有点像VRRP,但VRRP是网关冗余,Smartlink是链路的冗余)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-htnZROZu-1682930522581)(./图库/Smark-Link图库/smart-link示意图.png)]
如图所示,SwitchD采用双上行方式连接到SwitchB和C,这样SwitchD到达SwitchA的链路就可以有两条(SwitchD–>SwitchB–>SwitchA和SwitchD–>SwitchC–>SwitchA),但是网络中的环路会产生网络风暴。在SwitchA上配置Smark Link,正常情况下,可实现Interface2所在的链路作为Interface1所在链路的备份。若实例1所在链路发生故障,SmartLink会自动将数据流量切换到实例2所在链路,保证业务不中断。
在此类组网中采用SmarkLink技术有以下优点:
1、能够实现在双上行组网的两条链路正常情况下,一条链路处于转发,而另一条处于堵塞待命状态,从而避免环路的不利影响。
2、配置和使用更为简洁,便于用户操作。
3、当主用链路发生故障后,流量会在毫秒级的时间内迅速切换到备用链路上,极大限度的保证了数据的正常转发。
Smark-Link基本概念
SmarkLink通过两个端口互相配合工作来实现功能。这样的一对端口组储层了一个SmarkLink组。为了区别一个SmarkLink组中的两个端口,我们将其中的一个叫做主端口,另一个叫做从端口。同时利用Flush报文、SmarkLink实例和控制VLAN等机制,以更好地实现SmarkLink的功能(包括负载)
SmarkLink组
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WHT80fiP-1682930522582)(./图库/Smark-Link图库/smart-link示意图.png)]
SmarkLink组
SmarkLink组中,一个组内最多可包含两个接口,其中一个为主接口,另一个为从接口。正常情况下,只有一个接口处于Active转发状态,另一个接口被堵塞,处于待命Inactive状态。
看图一(上图)可以发现,SwitchD中interface1为SmarkLink的主接口,Interface2被配置为从接口(也叫Slave接口)
主接口/从接口
当SmarkLink组中的两个接口都处于UP状态时,主接口将由优先进入转发状态,而从接口将保存待命状态。当主接口所在的链路发生过故障时,从接口将切换为转发状态。在发生链路切换后若主链路恢复正常,但此时为了保证链路的稳定是不会主动进行抢占,我们可以通过配置抢占或链路回切功能进行切换。
正常转发情况
链路故障情况
回切时间配置
抢占配置
主接口并不一直处于转发状态,发生链路切换后,如果从接口已经处于转发状态那么此时尽管主链路恢复正常,也只能处于待命状态,直到下次链路发生切换(当然可以配置抢占功能
Flush报文
当链路组发生故障链路切换时,原有的转发表项将不适用于新的拓扑网络,需要整网进行MAC表项和ARP表项的更新。这时,SmarkLink组就要通过FLUSH来告知其他设备进行MAC和ARP和ND(ipv6)表项的刷新操作,如图SmarkLink示意图,当链路发生切换时,SwitchD会发送组播FLUSH报文通知SwitchA,B,C进行MAC和ARP表项的更新。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mzq783do-1682930522583)(./图库/Smark-Link图库/smart-link示意图.png)]
控制VLAN(Control VLAN)
1、控制VLAN的发出
发送控制VLAN是链路备份组用于广播FLUSH报文的VLAN。如图SmarkLINK所示,如果在SwitchD上开启了FLUSH报文发送功能,当发生链路切换时,设备会在发送控制VLAN内广播发送FLUSH报文
2、控制VLAN的接收
接收控制VLAN时上游设备用于接收并处理FLUSH报文的VLAN。如图Smark所示,如果上游设备ABC能够识别FLUSH报文,并开启了FLUSH报文接收处理功能,当发生链路切换时,上游设备会处理收到的属于接收控制VLAN的FLUSH报文,进而刷新MAC和ARP表。
当上游设备收到FLUSH报文时,判断该FLUSH报文的发送控制VLAN是否在收到报文的接口配置的接收控制VLAN列表中,上游设备才会接受并刷新MAC和ARP表。
总结:
发送
控制VLAN就是配合着FLUSH报文,将某某VLAN配置成控制VLAN,那么FLUSH报文将会在该VLAN内发送。
接收
下游端口发送过来的控制VLAN是多少,还要看我本机也就是上游设备,中的接收控制VLAN中,有没有添加这个VLAN,有,那么就接收这个报文,做对应的ARP和MAC地址表项处理,如果没有,那不做处理,直接转发。
SmartLink基本原理
如图所示,分别介绍SmarkLink运行的基本原理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hjvKMFnq-1682930522583)(./图库/Smark-Link图库/smart-link示意图.png)]
链路正常
在正常情况下,Interface1为主接口,Interface2为从接口。双上行链路都正常的情况下,主接口出于转发情况,所在的链路是主用链路,从接口处于待命状态,所在链路是备份接口。
数据正常工作时,数据沿着主链路进行传输。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iHsafqjB-1682930522583)(./图库/Smark-Link图库/链路正常工作时流量示意图.png)]
链路故障
当主链路故障时,主接口Interface1切换到待命状态,从接口Interface2切换到转发状态。此时,网络中相关设备上的MAC和ARP表项不再正确了,需要提供一种MAC及ARP更新的机制,目前更新机制有以下两种。
1、通过FLUSH报文通知设备,更新表项,这种方式适用于上游设备均支持Smart-link功能的设备之间(ABC)。为了实现快速链路切换,需要在D上开启FLUSH报文发送功能,在上游设备上所有处于双上行链路上的接口开启接收处理FLUSH报文的功能。
(1)SwitchD进行链路切换后,会从新的主用链路上发送该FLUSH报文,即通过Interface2来发送FLUSH。
(2)当上游设备收到FLUSH报文时,判断该FLUSH的发送控制vlan,是否在收到报文的接口,所配置的接收控制VLAN列表中。IF:不在,设备对该FLUSH报文不做处理,直接转发;IF:在,设备会处理收到的FLUSH报文,进而执行MAC地址转发表项和ARP转发表项的刷新操作。
注:当主链路故障,从接口接替后。此时,主链路恢复,不进行抢占。如果需要切换,那么要手动切换过去。用以保障网络稳定性
2、自动通过流量更新表项(适用于与不支持Smark-Link功能的设备之间)
这种方法适用于 和不支持SmarkLink功能的设备(包括其他厂商设备)对界的情况,需要有上行流量触发。(其就依靠STP正常的工作原理进行流量切换,收敛时间很慢)
处理:如果没有收到SwitchD的上行流量(TC bpdu)去触发SwitchA的MAC及ARP表项更新,那么当SwitchA收到目的设备为SwitchD的数据报文时,A仍会通过接口3转发出去,但此时报文已经不能到达SwitchD,这样就会造成流量丢失,直到其MAC或ARP表项自动老化。(MAC老化300s,ARP老化1200s)
老化了之后,就需要重新广播ARP报文后,流量才能被发送过去。
总结:
通过FLUSH报文通知设备更新的机制,无需等待表项老化。可以极大程度减少更新所需时间。
链路恢复
当原 主用链路故障恢复时,为了保证网络稳定,不会进行抢占,将继续维持在拥塞状态。但如果希望流量切换回原主用链路,那就通过如下机制进行。
1、使用SmarkLink组回切功能,需要在SwitchD上开启回切功能。当原主用链路故障恢复后,经过回切定时器设定的时间,SmarkLink会自动将流量切换回原主用链路上。
2、通过配置命令,强制让SmarkLInk立即将流量切换到原主用链路上。
Smart-link
Smart-Link组存在2个接口,主和从接口互相协同工作
Smart Link & Monitor Link
介绍
双上行组网是目前常用组网之一,一般情况下通过开启STP来实现网络中的链路冗余备份,但STP不适用于对收敛时间要求很高的用户。Smart Link和Monitor Link可以满足用户快速收敛链路的需求,可以实现主备链路的冗余备份及快速迁移。Smart Link的主要特点是:专用于双上行组网;收敛速度快(达到亚秒级);配置简单,便于用户操作。
Monitor Link通常与Smart Link配合使用,以扩展Smart Link的应用范围。Monitor Link通过监控上行链路对下行链路进行同步设置,达到上行链路故障迅速传达给下行设备,从而触发下游设备上的拓扑协议进行链路的切换,防止长时间因上行链路故障而出现流量丢失。
协议
部署双上行组网时我们就需要采用该协议来进行高速的收敛,SmartLink具体原理如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YD7Vpwbe-1682930522583)(D:\Aa_重要文件\图库\smart-link示意图.png)]
Smark-Link,又叫备份链路。一个Smark Link由两个接口组组成,其中一个接口作为另一个的备份。Smark-Link常用于双上行组网,提供可靠高效的备份与高速的切换机制。
Smark-Lin的目的
下游设备连接到上游设备,当采用单上行方式时,若出现单点故障,会造成业务中断。若采用双上行方式,将一台下游设备同时连接到两台上游设备,可降低单点故障对网络的影响。(有点像VRRP,但VRRP是网关冗余,Smartlink是针对上行组网的链路冗余)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pzcGn8vl-1682930522584)(./图库/Smark-Link图库/smart-link示意图.png)]
如图所示,SwitchD采用双上行方式连接到SwitchB和C,这样SwitchD到达SwitchA的链路就可以有两条(SwitchD–>SwitchB–>SwitchA和SwitchD–>SwitchC–>SwitchA),但是网络中的环路会产生网络风暴。在SwitchA上配置Smark Link,正常情况下,可实现Interface2所在的链路作为Interface1所在链路的备份。若实例1所在链路发生故障,SmartLink会自动将数据流量切换到实例2所在链路,保证业务不中断。而且若采用STP来提供链路冗余切换功能的话,我们采用Smart-link一个很重要的原因是其亚秒级别的收敛。
在此类组网中采用SmarkLink技术有以下优点:
1、能够实现在双上行组网的两条链路正常情况下,一条链路处于转发,而另一条处于堵塞待命状态,从而避免环路的不利影响。
2、配置和使用更为简洁,便于用户操作。
3、当主用链路发生故障后,流量会在毫秒级的时间内迅速切换到备用链路上,极大限度的保证了数据的正常转发。
介绍
基本概念
负载分担
一般情况下,Smart Link的备份链路处于空闲状态,不承担业务数据流量的转发。如希望提高链路的利用率,可以配置负载分担实例,备份链路转发指定负载分担实例内所映射的VLAN数据流量,即允许指定实例对应的VLAN数据通过备份链路进行转发(主链路此时不会对这些VLAN数据进行转发),从而使主链路和备份链路承载不同VLAN数据流量的转发,达到负载分担的目的。
smartlink组配置即可
[load-balance instance { instance-id1 [ to instance-id2 ] } &<1-10> slave,用来配置该实例绑定的VLAN报文从备用接口发送,实现负载分担方式
SmarkLink用于双上行组网,能够提供亚秒级别的快速链路链路切换,SmarkLink组通过2个接口相互配合实验功能,其中一个端口为主端口为转发状态,另一个端口处于从端口备份状态,同时还通过在控制VLAN中发送FLUSH报文方式实现当链路故障时的MAC,ARP,ND表现刷项刷新,链路故障后恢复时我们还有2个功能,一个是回切,回切功能定义了原主链路故障恢复后所经过回切定时器所定义的时间后,那么流量就会切换回原主上,或也可以使用命令强制切换回原主
配置命令
相关文章:
【华为】Smart-Link基础知识
Smark-Link技术 Smark-Link(灵活链路or备份链路,华为/华三 私有用) Smark-Link定义 Smark-Link,又叫备份链路。一个Smark Link由两个接口组组成,其中一个接口作为另一个的备份。Smark-Link常用于双上行组网,提供可靠高效的备份与…...

分享24个强大的HTML属性 —— 建议每位前端工程师都应该掌握
前期回顾 是不是在为 API 烦恼 ?好用免费的api接口大全呼之欲出_0.活在风浪里的博客-CSDN博客APi、常用框架、UI、文档—— 整理合并https://blog.csdn.net/m0_57904695/article/details/130459417?spm1001.2014.3001.5501 👍 本文专栏:…...

NIO基础 - 网络编程
non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 stream 要么是输入…...
06.toRef 和 toRefs
学习要点: 1.toRef 和 toRefs 本节课我们来要了解一下 Vue3.x 中的 ref 两个周边 API 的用法; 一.toRef 和 toRefs 1. toRef 可以将源响应式对象上的 property 创建一个 ref 对象; const obj reactive({ name : Mr.Lee, age : 10…...

RabbitMq、Kafka、RocketMq整理
MQ的主要作用:异步提高性能、解耦提高扩展性、削峰。 一、常见中间件对比 Kafka、RocketMq和RabbitMq最大的区别就是:前两个是分布式存储。 1.1、ActiveMq 优点:1)完全支持jms规范的消息中间件 ,2)提供丰富的api, 3)多种集群构建模式。 缺点:)在高并发的场景下,性能可…...

Python多元线性回归预测模型实验完整版
多元线性回归预测模型 实验目的 通过多元线性回归预测模型,掌握预测模型的建立和应用方法,了解线性回归模型的基本原理 实验内容 多元线性回归预测模型 实验步骤和过程 (1)第一步:学习多元线性回归预测模型相关知识。 一元线性回归模型…...
C#基础 变量在内存中的存储空间
变量存储空间(内存中) // 1byte 8bit // 1KB 1024byte // 1MB 1024KB // 1GB 1024MB // 1TB 1024GB // 通过sizeof方法 可以获取变量类型所占的内存空间(单位:字节) 有…...

你最关心的4个零代码问题,ChatGPT 帮你解答了!
作为人工智能(AI)新型聊天机器人模型 ChatGPT,刚上线5天就突破100万用户,两个多月全球用户量破亿,不愧为业界最炙热的当红炸子鸡。 ChatGPT 是一种语言生成模型,由 OpenAI 开发和训练。它是基于 Transform…...
linux的环境变量
目录 一、自定义变量和环境变量的区别 二、自定义变量 三、环境变量 四、查看所有变量(自定义变量、环境变量) 五、记录环境变量到相关的系统文件 (1)为什么要这样做? (2)环境变量相关系统…...

openQA----基于openSUSE部署openQA
【原文链接】openQA----基于openSUSE部署openQA (1)下载 openqa-bootstrap 脚本并执行 cd /opt/ curl -s https://raw.githubusercontent.com/os-autoinst/openQA/master/script/openqa-bootstrap | bash -x(2)配置apache proxy…...

正则表达式基础一
BRE(basic regular expression):匹配数据流中的文本字符 普通文本匹配 特殊字符 正则表达式存在一些特殊字符,如需当成普通文本来匹配,必须加上转义,即反斜杠\,如下所示 .*[]^${}?|() 指定出现位置的字符 ^ 指定行首…...
Java中的内存泄露、内存溢出与栈溢出
内存泄露、内存溢出与栈溢出 1、概述2、内存泄漏、内存溢出和栈溢出2.1、内存泄漏2.2、内存溢出2.3、栈溢出 2、总结 1、概述 大家好,我是欧阳方超。本次就Java中几个相似而又不同的概念做一下介绍。内存泄漏、内存溢出和栈溢出都是与内存相关的问题,但…...

时序预测 | Matlab实现SSA-GRU、GRU麻雀算法优化门控循环单元时间序列预测(含优化前后对比)
时序预测 | Matlab实现SSA-GRU、GRU麻雀算法优化门控循环单元时间序列预测(含优化前后对比) 目录 时序预测 | Matlab实现SSA-GRU、GRU麻雀算法优化门控循环单元时间序列预测(含优化前后对比)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现SSA-GRU、GRU麻雀算法…...

Java+springboot开发的医院HIS信息管理系统实现,系统部署于云端,支持多租户SaaS模式
一、项目技术框架 前端:AngularNginx 后台:JavaSpring,SpringBoot,SpringMVC,SpringSecurity,MyBatisPlus,等 数据库:MySQL MyCat 缓存:RedisJ2Cache 消息队列&…...
【前端面经】Vue-Vue中的 $nextTick 有什么作用?
Vue.js 是一个流行的 JavaScript 框架,它提供了许多实用的功能,其中之一就是 $nextTick 方法。 在 Vue.js 中, $nextTick 方法可以确保我们在更新 DOM 之后再去执行某些操作,从而避免由于 DOM 更新而导致的问题。这个方法非常实用…...

基于STATCOM的风力发电机稳定性问题仿真分析(Simulink)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
如何写出高质量的代码
背景说明: 你是否曾经为自己写的代码而感到懊恼?你是否想过如何才能写出高质量代码?那就不要错过这个话题!在这里,我们可以讨论什么是高质量代码,如何写出高质量代码等问题。无论你是初学者还是资深开发人…...

15.基于主从博弈的智能小区代理商定价策略及电动汽车充电管理
说明书 MATLAB代码:基于主从博弈的智能小区代理商定价策略及电动汽车充电管理 关键词:电动汽车 主从博弈 动态定价 智能小区 充放电优化 参考文档:《基于主从博弈的智能小区代理商定价策略及电动汽车充电管理》基本复现 仿真平台&#…...

ChatGPT实现多语种翻译
语言翻译 多语种翻译是 NLP 领域的经典话题,也是过去很多 AI 研究的热门领域。一般来说,我们认为主流语种的互译一定程度上属于传统 AI 已经能较好完成的任务。比如谷歌翻译所采用的的神经机器翻译(NMT, Neural Machine Translation)技术就一度让世人惊…...
volatile关键字原理的使用介绍和底层原理解析和使用实例
文章目录 volatile关键字原理的使用介绍和底层原理解析和使用实例1. volatile 关键字的作用2. volatile 的底层原理3. volatile 的使用案例4. volatile 的原子性问题5. 如何解决 volatile 的原子性问题6. volatile 的实现原理7. 小结8. volatile的最佳实践9. 案例:使用volatile…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...