学校做网站一般多少钱/公众号关键词排名优化
M-LAG(Multichassis Link Aggregation Group)即跨设备链路聚合组,是一种实现跨设备链路聚合的机制。M-LAG主要应用于普通以太网络、VXLAN和IP网络的双归接入,可以起到负载分担或备份保护的作用。相较于另一种常见的可靠性接入技术——堆叠,M-LAG在可靠性、升级等方面有着显著的优势。
1 工作原理
1.1 基本概念
DFS (Dynamic Fabric Service) Group
用于实现M-LAG设备之间的配对,M-LAG设备之间的接口状态、表项等信息同步。
DFS Group的角色区分主备,配对成功后,两台设备经过DFS Group协商,协商出DFS主设备(M-LAG主设备)和DFS备设备。
peer-link
M-LAG设备之间的直连链路,用于传输协议报文、表项同步报文,并转发部分流量。
通常情况下,M-LAG和堆叠一样,都有一种本框进本框出的机制,尽量避免通过peer-link去转发流量。
DAD link
双主检测链路,是一条三层互通链路,用于M-LAG设备之间发送双主检测报文。
正常情况下,双主检测链路不会参与M-LAG的任何转发行为,只在DFS Group配对失败或者peer-link故障场景下,用于检查是否出现双主的情况。
H3C设备中叫keepalive链路
M-LAG成员接口
连接用户侧设备或主机的Eth-trunk接口,从而实现跨设备链路聚合的目的。
孤立端口
未加入任何M-LAG成员口的端口。
保留端口
当peer-link故障时,M-LAG分裂,配对的两台设备无法相互发送协议报文及同步报文,两台设备处于双主状态。为了避免流量转发异常,需要将一端M-LAG设备上的端口置为Error-Down,但在实际组网应用中,某些端口并不希望被置为Error-Down,这类peer-link故障时不被Error-Down的端口被称为保留端口。
缺省情况下,设备上仅管理网口和peer-link接口为保留口,其他端口需手工设置。
1.2 协议交互
❶ DFS Group配对
首先通过peer-link链路发送DFS Group的Hello报文。当设备收到对端的Hello报文后,会判断报文中携带的DFS Group编号是否和本端相同,如果两台设备的DFS Group编号相同,则两台设备DFS Group配对成功。
❷ DFS Group协商主备
配对成功后,两台设备会向对端发送DFS Group的设备信息报文,设备根据报文中携带的DFS Group优先级以及系统MAC地址确定出DFS Group的主备状态。
DFS Group的角色区分为主和备,正常情况下,主设备和备设备同时进行业务流量的转发,转发行为没有区别,仅在故障场景下,主备设备的行为会有差别。
❸ M-LAG成员接口协商主备
通过peer-link链路发送M-LAG设备信息报文,报文中携带了M-LAG成员接口的配置信息。在成员口信息同步完成后,确定M-LAG成员接口的主备状态。
与对端同步成员口信息时,状态由Down先变为Up的M-LAG成员接口成为主M-LAG成员口,对端对应的M-LAG成员口为备,且主备状态默认不回切。
❹ 双主检测
通过双主检测链路发送双主检测报文,在45秒内两台设备均能够收到对端发送的双主检测报文,双活系统即开始正常的工作;若45秒内未收到双主检测报文则心跳超时。一旦设备感知到peer-link故障,设备会快速发送双主检测链路报文,加速检测。
在DFS Group配对失败或者peer-link故障场景下,双主检测链路用于检查是否出现双主的情况。
两台设备在心跳链路Up之后即会按照周期发送双主检测报文。若DFS Group绑定了本端和对端的IP地址,则在二次故障恢复场景下(设备已使能二次故障增强功能),即原DFS主设备或备设备故障恢复且peer-link链路仍然故障时,M-LAG设备根据双主检测报文中携带的DFS信息协商出HB DFS主备状态,触发HB DFS状态为备的设备相应端口Error-Down,从而避免双主场景下的流量异常。
❺ M-LAG同步信息
通过peer-link同步MAC表项、ARP以及STP等,并发送M-LAG成员端口的状态,这样任意一台设备故障都不会影响流量的转发,保证正常的业务不会中断。
1.3 M-LAG防环
单向隔离机制
接入设备或网络侧到达M-LAG配对设备的单播流量,会优先从本地转发出去,peer-link链路一般情况下不用来转发数据流量。当流量通过peer-link链路广播到对端M-LAG设备,在peer-link链路与M-LAG成员口之间设置单方向的流量隔离。即从peer-link口进来的流量不会再从M-LAG口转发出去,所以不会形成环路
。
2 协同工作
2.1 STP
由于peer-link为二层链路,且会允许所有的VLAN通过,因此涉及到生成树的问题,这条线路是M-LAG的生命线,因此不能够被STP阻塞掉。有两种方案解决这个问题
-
手工将M-LAG设备配置为根,并将两台设备的桥ID配置成一致,这样两台设备都认为自己的是根桥,形成逻辑上的一台根桥
-
使用V-STP同步信息,无需让M-LAG交换机变成根桥
V-STP(Virtual Spanning Tree Protocol)
二层拓扑管理特性,核心思想是将两台设备的STP协议虚拟成一台设备的STP协议,对外呈现为一台设备进行STP协议计算。
STP可以感知M-LAG主备协商状态,M-LAG主备设备配置了V-STP,在M-LAG主备协商成功后,两台设备被虚拟化成一台设备进行端口角色计算和快速收敛计算。STP需要同步M-LAG主备的桥MAC信息和实例优先级信息。M-LAG主备协商成功后,M-LAG备设备使用M-LAG主设备同步过来的桥MAC信息和实例优先级信息进行STP计算和收发报文,保证虚拟化成一台设备后的STP计算参数。
当前,V-STP只能用于M-LAG组网,可以解决多级M-LAG互联场景和组成M-LAG的设备作为非根桥场景的需求。
配置V-STP功能时,需要保证组成M-LAG的两台设备上STP/RSTP定时器配置一致,否则可能导致网络拓扑震荡。
在多级M-LAG互联场景中,可以根据需要,将这两种方案结合起来使用。注意手工配置的根交换机建议开启根防护。
2.2 L3网关
当M-LAG的下游设备是二层设备时,M-LAG主备设备需要同时作为三层网关,必须保证M-LAG成员接口对应的VLANIF或VBDIF接口具有相同的IP地址和MAC地址。可以通过如下方式实现:在VLANIF或VBDIF接口上配置相同的IP地址和虚拟MAC地址(双活)。
另外还可以配置VRRP,结果是M-LAG组中的所有交换机都会扮演master的角色。
在M-LAG双归接入VXLAN的场景中,当下行一条链路发生故障时,业务流量需绕行M-LAG设备之间的peer-link链路。因此,在该场景下M-LAG设备之间必须配置静态Bypass VXLAN隧道,将绕行的业务流量引导至peer-link链路上。
2.3 路由协议
当M-LAG的下游设备是三层设备时,通常需要和M-LAG主备设备建立动态路由协议的邻居关系。在这种场景下,M-LAG主备设备要在成员口对应的VLANIF接口或VBDIF接口配置IP地址,M-LAG接口对应的VLANIF/VBDIF接口配置不同的M-LAG IPv4/IPv6 Link-local地址用于OSPF/OSPFv3动态路由协议邻居建立
,使得M-LAG成员设备和DeviceC之间建立OSPF/OSPFv3邻居。
由于M-LAG主备设备使用了相同的IP地址和MAC地址,无法同时和下游设备建立邻居关系,因此需要另外在M-LAG主备设备上配置sub地址来用于动态路由协议的邻居建立。
配置方式如下:
[DeviceB] interface vlanif 100
[DeviceB-Vlanif100] ip address 10.100.0.1 255.255.255.0
[DeviceB-Vlanif100] ospf source sub-address 10.100.0.3
[DeviceB-Vlanif100] m-lag ip address 10.100.0.3 255.255.255.0 # sub地址
[DeviceB-Vlanif100] mac-address 0000-5e00-0101
[DeviceB-Vlanif100] arp proxy enable
[DeviceB-Vlanif100] quit
3 故障恢复
3.1成上行链路故障
这种情况下,会通过peer-link链路进行转发
。M-LAG主设备上行链路故障恢复后,流量也恢复从主设备转发到网络侧。
当故障的上行链路恰好为双主检测链路,此时对于M-LAG正常工作没有影响。一旦peer-link也发生故障,M-LAG出现双主冲突,双主检测又无法进行,则会出现丢包现象。
三层场景下,需要在M-LAG主备设备之间配置逃生链路,否则到达Master设备的上行流量无法通过peer-link链路到达Backup设备。
3.2 下行链路故障
当主M-LAG成员口故障时,所在的链路状态变为Down,此时备M-LAG成员口状态由备升主,双归场景变为单归场景
。在主M-LAG成员口故障的同时,主设备学习到的DeviceA侧MAC不会被清除,直接刷新MAC表的出端口指向peer-link口,实现流量快速切换,避免未知单播泛洪。
在故障M-LAG成员口恢复后,MAC表的出端口从peer-link指向M-LAG成员口,实现流量快速切换,避免未知单播泛洪。同时,为避免主备M-LAG成员口状态切换造成的某些协议振荡,设备支持M-LAG成员口状态不再回切,即由备升主的M-LAG成员口状态仍为主,原主M-LAG成员口在故障恢复后状态为备。
在M-LAG成员口故障,设备双归变单归场景下,默认对于报文出端口为M-LAG成员接口的所有ARP表项、ND表项、静态路由表项和动态路由表项申请备份的FRR资源,使得出接口指向peer-link口并形成主备路径下发,将表项的下一跳由M-LAG成员口切换为peer-link口,从而提升故障场景下的切换性能。
3.3 设备故障
- M-LAG主设备故障,M-LAG备设备将升级为主。原主设备侧M-LAG成员口链路状态变为Down,双归场景变为单归场景。
- M-LAG备设备故障,M-LAG的主备状态不会发生变化,M-LAG备设备侧成员口链路状态变为Down。M-LAG主设备侧成员口链路状态仍为Up,流量转发状态不变,双归场景变为单归场景。
M-LAG设备故障恢复时,peer-link先UP,DFS状态重新协商,M-LAG成员口恢复UP,流量恢复负载分担。M-LAG主设备恢复后设备状态仍然为主,M-LAG备设备恢复后设备状态仍然为备。
3.4 心跳线故障
若心跳链路承载三层网络的业务,心跳故障对设备流量转发会有影响。若心跳链路承载二层业务或不承载三层业务,心跳故障对设备流量转发无影响
3.5 peer-link故障
当peer-link故障但双主检测心跳状态正常时,在双主检测延时时间(缺省值为3s)后,会触发一端M-LAG设备上除逻辑端口、管理网口和peer-link接口以外的其他接口处于Error-Down状态。M-LAG系统按照如下先后顺序判断触发哪一端M-LAG设备的接口Error-Down:
- 是否存在Up状态的上行口:若一端M-LAG设备的上行口全部为Down状态,且另一端存在Up状态的上行口,则对上行口全部为Down状态的M-LAG设备触发端口Error-Down操作。
- peer-link接口所在接口板是否全部故障:若peer-link链路为直连聚合链路,一端M-LAG设备的peer-link接口所在接口板全部故障,且另一端M-LAG设备的peer-link接口所在接口板未全部故障,则对peer-link接口所在接口板全部故障的M-LAG设备触发端口Error-Down操作。
- 带宽通量差值大小:若一端M-LAG设备计算出的带宽通量差值比另一端M-LAG设备的带宽通量差值更大,则对带宽通量差值更大的那一端M-LAG设备触发端口Error-Down操作。
- 其他场景,如图 peer-link故障组网示意图所示,则对M-LAG备设备触发端口Error-Down操作。
DFS配对成功后,M-LAG设备默认每间隔10s统计一次带宽通量;当触发双主检测时,会同时触发M-LAG设备统计此时的带宽通量。
带宽通量差值计算公式:带宽通量差值=上一次统计到的带宽通量-触发双主检测时统计到的带宽通量,且每次统计带宽通量时,不包含peer-link接口。
如果某一端M-LAG设备计算出的带宽通量差值为负值,则该M-LAG设备的带宽通量差值按照0处理。
peer-link故障恢复时,处于Error Down状态的M-LAG成员口默认将在240s后自动恢复为Up状态(为了等待M-LAG主节点将表项同步到备节点),处于Error Down状态的其它接口将立即自动恢复为Up状态,流量恢复实现负载分担。
通过配置peer-link故障但双主检测心跳状态正常时触发Error-Down的端口包括逻辑端口,会触发M-LAG备设备上VLANIF接口、VBDIF接口、LoopBack接口以及M-LAG成员口处于ERROR DOWN状态。当peer-link故障恢复后,为保证大规格ARP同步正常,设备将在DFS Group配对成功后延迟6s恢复VLANIF接口、VBDIF接口、LoopBack接口为Up状态。此时,如果在接口下配置了接口三层协议状态延时Up时间,则VLANIF接口、VBDIF接口、LoopBack接口恢复Up状态的延迟时间为两者之和。
相关文章:

华为DCN技术:M-LAG
M-LAG(Multichassis Link Aggregation Group)即跨设备链路聚合组,是一种实现跨设备链路聚合的机制。M-LAG主要应用于普通以太网络、VXLAN和IP网络的双归接入,可以起到负载分担或备份保护的作用。相较于另一种常见的可靠性接入技术…...

k8s持久化之emptyDir使用
目录 概述实践代码 概述 理解emptyDir使用,是后续k8s持久化进阶,高阶使用的基础。 实践 代码 详细说明在代码中 # 缓存数据,可以让多个容器共享数据 # 删除 Pod 时,emptyDir 数据同步消失 # 定义 initContainer -> 下载数据…...

Java露营基地预约小程序预约下单系统源码
轻松开启户外探险之旅 🌟 露营热潮来袭,你准备好了吗? 随着人们对户外生活的热爱日益增加,露营已成为许多人周末和假期的首选活动。但你是否曾因找不到合适的露营基地而烦恼?或是因为繁琐的预约流程而错失心仪的营地…...

七天速通javaSE:第四天 java方法
文章目录 前言一、什么是方法?二、方法的定义与调用1. 方法的定义2. 方法的调用3. 练习:定义比大小方法并调用 三、方法的重载四、递归五、可变参数拓展:命令行传递参数 前言 本章将学习java方法。 一、什么是方法? java方法是用…...

jupyter notebook的markdown语法不起作用
在这个界面编辑,发现markdown你编辑的是什么就是什么,不起作用,然而点一下: 右上角“Notebook转发”,就会单独跳出一个jupyter notebook的界面,此时就会奏效:...

Redis 学习笔记(2)
目录 1 Redis的持久化1.1 RDB持久化方案1.2 AOF持久化方案 2 Redis架构2.1 主从复制架构2.2 哨兵集群设计2.3 哨兵集群设计 3 Redis事务机制4 Redis过期策略与内存淘汰机制4.1 过期策略4.2 内存淘汰机制 5 Redis高频面试题4.1 缓存穿透4.2 缓存击穿4.3 缓存雪崩 1 Redis的持久化…...

快慢指针:删除有序数组中的重复项
题目链接:. - 力扣(LeetCode) 思路好想,代码实现不好想 class Solution {public int removeDuplicates(int[] nums) {int fast 1,slow 1;while(fast < nums.length){if(nums[fast] ! nums[fast-1]){nums[slow] nums[fast]…...

用户登录错误次数太多锁定账号
当用户登录验证码错误次数太多时,需要限制用户在10分钟之内不能再次登录。 限制方案: 1.通过Redis ZSet key可以设置为用户名,value可以设置为UUID,score设置为当前时间戳 每次用户登录时,通过 rangeByScore 查询对…...

tedsign vue3 web-端框架中封装一个验证码组件 以及对应node 接口逻辑说明
一个这样的组件 我直接上代码了 <template><t-loading size"small" :loading"loading" show-overlay><div class"container" click"refresh"><div v-if"svg" class"svg" v-html"svg&…...

探索Scala并发编程之巅:高效并行处理的艺术
标题:探索Scala并发编程之巅:高效并行处理的艺术 引言 在现代软件开发中,随着多核处理器的普及,编写能够充分利用硬件能力的并发程序变得至关重要。Scala,这门结合了面向对象和函数式编程特性的语言,提供…...

AudioLM: 音频生成的革命性模型
AudioLM: 音频生成的革命性模型 AudioLM是一种革命性的音频生成模型,它结合了深度学习和自然语言处理的先进技术,能够生成高质量、逼真的音频内容。本文将探讨AudioLM的基本原理、工作机制、应用场景以及对音频生成领域的影响和未来发展方向。 一、Aud…...

C++ Vector的模拟实现
vector的介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而…...

Kubernetes之Controller详解
本文尝试从Kubernetes Controller的种类、交互逻辑、最佳实践、伪代码示例及历史演进5个方面对其进行详细阐述,希望对您有所帮助! 一、Kubernetes Controller种类 Kubernetes Controller Manager 是 Kubernetes 集群的核心组件之一,负责管理…...

openlayers性能优化——开启图层预加载、减少空白等待时间
使用切片图层时、地图拖拽会有空白图片,为了减少空白等待时间,我们可以开始图层预加载。 const map_top new Map({layers: [new TileLayer({preload:Infinity, //预加载source: new StadiaMaps({layer: "outdoors",}),}),],target: "ma…...

BlockingQueue详解(含动画演示)
目录 BlockingQueue详解0、BlockingQueue简介BlockingQueue接口中方法注释BlockingQueue的实现,总结计划 1、ArrayBlockingQueue简介2、ArrayBlockingQueue的继承体系3、ArrayBlockingQueue的构造方法①、 ArrayBlockingQueue(int capacity)②、ArrayBlockingQueue(…...

wordpress商用付费主题与免费主题的区别
WordPress免费主题与WordPress付费主题,都可以用,但存在非常大的差别。从直观的感受,简单地说就是,WordPress免费主题能用,WordPress付费主题好用。如果涉及到其它的方面,WordPress商用付费主题与免费主题之…...

【ARM Trace32(劳特巴赫) 使用介绍 2.7 -- bat 脚本传参数给 trace32 cmm 脚本】
请阅读【Trace32 ARM 专栏导读】 文章目录 bat 脚本传参数给 trace32脚本可变参数传入CMM 脚本接收参数运行BAT脚本bat 脚本传参数给 trace32脚本 在使用 Trace32 的过程中,如果每次都是通过GUI 界面来操作,是习惯使用命令行工作的人所不能忍受的!!!,那么能不同通过脚本…...

NavicatforMySQL11.0软件下载-NavicatMySQL11最新版下载附件详细安装步骤
我们必须承认Navicat for MySQL 支援 Unicode,以及本地或远程 MySQL 服务器多连线,使用者可浏览数据库、建立和删除数据库、编辑数据、建立或执行 SQL queries、管理使用者权限(安全设定)、将数据库备份/复原、汇入/汇出数据&…...

弱监督学习
弱监督学习(Weak Supervision)是一种利用不完全、不精确或噪声数据进行模型训练的方法。以下是一些常用的弱监督方法及其原理: 1. 数据增强(Data Augmentation) 原理: 数据增强是一种通过增加训练数据的多…...

代码随想录算法训练营第五十天|LeetCode1143 最长公共子序列、LeetCode1035 不相交的线、LeetCode53 最大子数组和
题1: 指路:1143. 最长公共子序列 - 力扣(LeetCode) 思路与代码: 类似于最长重复子数组,我们依旧定义一个二维数组dp[i][j],其含义为从0到以i-1结尾的nums1数组和从0到j-1结尾的nums2数组的最…...

百日筑基第三天-SOA初步了解
百日筑基第三天-SOA初步了解 SOA(Service-Oriented Architecture,面向服务的架构)是一种软件设计原则,它倡导将应用程序分解为独立的服务单元,这些服务通过定义良好的接口相互通信,以实现业务功能。而RPC&…...

「2024中国数据要素产业图谱1.0版」重磅发布,景联文科技凭借高质量数据采集服务入选!
近日,景联文科技入选数据猿和上海大数据联盟发布的《2024中国数据要素产业图谱1.0版》数据采集服务板块。 景联文科技是专业数据服务公司,提供从数据采集、清洗、标注的全流程数据解决方案,协助人工智能企业解决整个AI链条中数据采集和数据标…...

条码二维码读取设备在医疗设备自助服务的重要性
医疗数字信息化建设的深入推进,医疗设备自助服务系统已成为医疗服务领域的一大趋势,条码二维码读取设备作为自助设备的重要组成部分,通过快速、准确地读取条形码二维码信息,不公提升了医疗服务效率,还为患者提供了更加…...

centos 7.8 安装sql server 2019
1.系统环境 centos 7.8 2.数据库安装文件准备 下载 SQL Server 2019 (15.x) Red Hat 存储库配置文件 sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo 采用yum源进行不安装下载,这时yum 会自动检测…...

Android焦点机制结合WMS
文章前提: 了解WMS基本作用了解window的概念,phoneWindow,rootViewImpl了解view的事件分发 开始: 讲三件事情: window的创建,更新焦点的更新事件的分发 Window的创建,更新: wi…...

Hive分区和分桶
分区: 根据某一列进行进行划分存储,常用的有时间分区; 查询数据时只需要扫描特定的分区数据,不需要全盘扫描,节省时间, 方便数据归档和清理 创建分区表 create table table_name( col1 int, col2 string ) partition …...

GPT-5的到来~
IT之家6月22日消息,在美国达特茅斯工程学院周四公布的采访中,OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布,给出了肯定答案并表示将在一年半后发布。此外,穆拉蒂在采访中还把GPT-4到GPT-5的飞跃描述为高中生到博士生的成长。“像 GPT-4 这样的系统则更像是聪明的…...

责任链模式(设计模式)
责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许多个对象有机会处理请求,从而避免请求的发送者和接收者之间的耦合。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理…...

计算机图形学入门20:加速光线追踪
1.前言 前文说了Whitted-style光线追踪技术的原理以及光线与平面的交点计算方式,对于现在应用最广的Polygon Mesh显式曲面来说,一个复杂场景中的多边形面总数可能达到千万甚至亿万以上,如果每个像素发射光线都和场景中每个平面进行求交点计算…...

sys.stdin对象——实现标准输入
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 sys.stdin是一个标准化输入对象,可以连续输入或读入文件所有内容,不结束,不能直接使用。输入完成后&am…...