首页 > 其他分享 >03、Smart Link基本原理

03、Smart Link基本原理

时间:2024-04-15 18:33:05浏览次数:24  
标签:03 表项 报文 Link 链路 Smart SwitchD

Smart Link基本原理

图1描述的组网为例,按照链路正常->链路故障->链路恢复的过程,介绍Smart Link运行的基本原理。

图1 Smart Link示意图

链路正常工作原理

SwitchD上的Smart Link组包含了Interface1和Interface2两个接口,其中Interface1为主接口,Interface2为从接口。双上行链路都正常的情况下,主接口处于转发状态,所在的链路是主用链路,从接口处于待命状态,所在链路是备用链路。如图2所示,数据沿着主链路进行传输,网络中不存在环路,避免产生广播风暴。 

图2 链路正常工作时流量示意图

链路故障处理原理

图3所示,当SwitchD的主链路发生故障时,主接口Interface1切换到待命状态,从接口Interface2切换到转发状态。此时,网络中相关设备上的MAC地址转发表项和ARP表项可能不再适用,需要提供一种MAC及ARP更新的机制。目前更新机制有以下两种。

图3 主链路故障时上行流量示意图

通过Flush报文通知设备更新表项

这种方式适用于上游设备(如图3中的SwitchA、SwitchB和SwitchC)支持Smart Link功能的场景。为了实现快速链路切换,需要在SwitchD上开启Flush报文发送功能,在上游设备所有处于双上行链路上的接口开启接收处理Flush报文的功能。

  1. SwitchD进行链路切换后,会从新的主用链路上发送Flush报文,即通过Interface2发送。
  2. 当上游设备收到Flush报文时,判断该Flush报文的发送控制VLAN是否在收到报文的接口配置的接收控制VLAN列表中。如果不在接收控制VLAN列表中,设备对该Flush报文不做处理,直接转发;如果在接收控制VLAN列表中,设备会处理收到Flush报文,进而执行MAC地址转发表项和ARP表项的刷新操作。 

此后,如果SwitchA收到目的设备为SwitchD的数据报文,会根据更新后的MAC地址转发表项或ARP表项进行转发。

自动通过流量更新表项

这种方式适用于与不支持Smart Link功能的设备(包括其他厂商设备)对接的情况,需要有上行流量触发。 

图4所示,如果没有来自SwitchD的上行流量去触发SwitchA的MAC及ARP表项更新,那么当SwitchA收到目的设备为SwitchD的数据报文时,SwitchA仍会通过接口Interface3转发出去,但此时报文已经不能到达SwitchD,会造成流量丢失,直到其MAC或ARP表项自动老化。 

图4 主链路出现故障时下行流量示意图

图5所示,由于链路故障后,Interface1学习到的MAC及ARP表项会被删除,如果SwitchD有上行流量要发送,需要重新广播ARP报文后,流量才能被发送出去。当上行流量通过接口Interface4到达设备SwitchA后,SwitchA会更新自己的MAC及ARP表项,那么当SwitchA再收到目的设备为SwitchD的数据报文时,SwitchA会通过接口Interface4转发出去,报文就可以经由SwitchC到达SwitchD。 

图5 主链路出现故障时下行流量示意图

通过Flush报文通知设备更新的机制无须等到表项老化后再进行更新,可以极大程度地减少表项更新所需时间。通常,链路的切换过程可在毫秒级的时间内完成,最大限度地减少流量的丢失。

链路恢复处理原理

当原主用链路故障恢复时,Interface1将维持在阻塞状态,不进行抢占,从而保持流量稳定。如果希望流量切换到原主用链路,可以通过如下两种机制进行切换。

  • 使用Smart Link组回切功能,需要在SwitchD上使能回切功能。当原主用链路故障恢复后,经过回切定时器设定的时间,Smart Link会自动将流量切换到原主用链路上。
  • 使用配置命令强制让Smart Link立即将流量切换到原主用链路上。 

图1所示组网示例,当SwitchD的Interface1的链路恢复后,如果配置了Smart Link组回切功能,在回切定时器超时后,Interface2将被阻塞并切换到待命状态,而Interface1将切换到转发状态。而如果使用配置命令强制让Smart Link进行链路切换,在执行命令后,Interface2将被立即阻塞并切换到待命状态,而Interface1会切换到转发状态。 

 

标签:03,表项,报文,Link,链路,Smart,SwitchD
From: https://www.cnblogs.com/laixufei/p/18136678

相关文章

  • P10320 勇气(Courage)
    原题链接题解请看这我补充一点:由于\(x\leqslant2\)和\(n\leqslant2\)很明显不对劲,所以要特判一下二点:像这种看起来需要模拟来找答案的不妨手推一下数学式子来找答案code#include<bits/stdc++.h>usingnamespacestd;intmain(){doublex,n;cin>>x>>n;......
  • dpdk报错/lib64/libibverbs.so.1: version `IBVERBS_1.8' not found (required by /us
    问题出现的原因:启动的程序需要dpdk,因为不是root用户,调用dodk的程序时报错:EAL:Errorcreating'/run/user/0/dpdk':PermissiondeniedEAL:Cannotcreateruntimedirectory一开始解决的方法是在绑定网卡的时候,/usr/local/sbin/bindnet.sh-vb ,绑定的时候给与普通用户使用的......
  • 27天【代码随想录算法训练营34期】第七章 回溯算法part03(● 39. 组合总和 ● 40.组合
    39.组合总和怎么才能避免重复?比现在数小的数就别append到path里面了,之前肯定都试过了classSolution:defcombinationSum(self,candidates:List[int],target:int)->List[List[int]]:result=[]candidates.sort()self.backtracking(cand......
  • BZOJ 4403序列统计
    BZOJ4403序列统计解析序列满足单调不降序列,所以每个数可以选多次,我们可以把不同位置的同一个数看成多个,这样把区间为\([L,R]\)中的每一个数加上\(i\),得到的区间大小为\([L+1,R+n]\),也就是从\(R-L+n\)个数中选\(n\)个。\[\begin{aligned}&{\sum^n_{i=1}C^{i......
  • 03 Vue3路由
    Vue3的路由与Vue2相似,关于Vue2的路由器相关可以参考Vue2vue-router下面是一些补充路由器工作模式history模式优点:URL更加美观,不带有#,更接近传统的网站URL。缺点:后期项目上线,需要服务端配合处理路径问题,否则刷新会有404错误。constrouter=createRouter({ history:c......
  • 03、VRRP协议报文
    VRRP协议报文VRRP协议报文用来将Master设备的优先级和状态通告给同一备份组的所有Backup设备。VRRP协议报文封装在IP报文中,发送到分配给VRRP的IP组播地址。在IP报文头中,源地址为发送报文接口的主IP地址(不是虚拟IP地址),目的地址是224.0.0.18,TTL是255,协议号是112。主IP地址(Prima......
  • P10330 [UESTCPC 2024] 黑白珠串
    原题链接1.极限构造法,黑珠数量\(\geqslant\)\(max(y_i)\),白珠数量\(\geqslant\)\(max(x_i-y_i)\)再观察样例,发现刚好把1全部放左边,0全部放右边时等号成立code#include<bits/stdc++.h>usingnamespacestd;intx,y[100005];intmain(){intk;cin>>k;......
  • 03、IS-IS认证
    IS-IS认证IS-IS认证是基于网络安全性的要求而实现的一种认证手段,通过在IS-IS报文中增加认证字段对报文进行认证。当本地路由器接收到远端路由器发送过来的IS-IS报文,如果发现认证密码不匹配,则将收到的报文进行丢弃,达到自我保护的目的。认证的分类根据报文的种类,认证可以分为......
  • 03、OSPF与BFD联动
    OSPF与BFD联动定义双向转发检测BFD(BidirectionalForwardingDetection)是一种用于检测转发引擎之间通信故障的检测机制。BFD对两个系统间的、同一路径上的同一种数据协议的连通性进行检测,这条路径可以是物理链路或逻辑链路,包括隧道。OSPF与BFD联动就是将BFD和OSPF协议关联......
  • npm link实操详细指南
    参考资料:https://www.cnblogs.com/zhangzl419/p/15210835.html1、什么时候使用npmlink?npmlink用来在本地项目和本地npm包之间建立连接,可以在本地进行模块测试。npm包在开发和迭代更新时,不适合直接发布到线上或者直接发布测试版本进行调试,会导致过程繁......