M-LAG 技术笔记

M-LAG 简介

M-LAG(Multichassis link aggregation,跨设备链路聚合)将两台物理设备在聚合层面虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担。

M-LAG 基础概念

如 图1-1 所示,Device A 与 Device B 形成负载分担,共同进行流量转发,当其中一台设备发生故障时,流量可以快速切换到另一台设备,保证业务的正常运行。
图1-1 M-LAG网络模型示意图

  • M-LAG 接口:与外部设备相连的二层聚合接口。与外部设备上相同聚合组相连的 M-LAG 接口属于同一 M-LAG 组。如图1-1所示,Device A上的二层聚合接口 1 和 Device B 上的二层聚合接口 2 属于同一 M-LAG 组。M-LAG 组中的 M-LAG 接口由多条链路聚合组成,且具有相同的 M-LAG 组编号。

  • peer-link 接口:连接对端 M-LAG 邻居设备用于内部控制的接口。每台 M-LAG 设备只有一个 peer-link 接口。peer-link 接口间的链路为 peer-link 链路,M-LAG 设备通过 peer-link 链路交互协议报文及传输数据流量。一个 M-LAG 系统只有一条 peer-link 链路,peer-link 链路通过运行 DRCP协议 来交互信息。

  • Keepalive 链路:检测 M-LAG 邻居状态。关于 Keepalive 机制的详细描述,请参见 Keepalive 机制。

DRCP 协议

M-LAG 通过在 peer-link 链路上运行 DRCP(Distributed Relay Control Protocol,分布式聚合控制协议)来交互分布式聚合的相关信息,以确定两台设备是否可以组成 M-LAG 系统。运行该协议的设备之间通过互发 DRCPDU(Distributed Relay Control Protocol Data Unit,分布式聚合控制协议数据单元)来交互 M-LAG 的相关信息。

DRCPDU的交互

两端 M-LAG 设备通过 peer-link 链路定期交互 DRCP 报文。当本端 M-LAG 设备收到对端 M-LAG 设备的 DRCP 协商报文后,会判断 DRCP 协商报文中的 M-LAG 系统配置是否和本端相同。如果两端的 M-LAG 系统配置相同,则这两台设备可以组成 M-LAG 系统。

DRCP 超时时间

DRCP 超时时间是指 peer-link 接口或者 M-LAG 接口等待接收 DRCPDU 的超时时间。在 DRCP 超时时间之前,如果本端 peer-link 接口或者 M-LAG 接口未收到来自对端 M-LAG 设备的 DRCPDU,则认为对端 M-LAG 设备 peer-link 接口或者 M-LAG 接口已经失效。

DRCP 超时时间同时也决定了对端 M-LAG 设备发送 DRCPDU 的速率。DRCP 超时有短超时(3秒)和长超时(90秒)两种:

  • 若本端 DRCP 超时时间为短超时,则对端 M-LAG 设备将快速发送 DRCPDU(每1秒发送1个DRCPDU)。

  • 若本端 DRCP 超时时间为长超时,则对端 M-LAG 设备将慢速发送 DRCPDU(每30秒发送1个DRCPDU)

Keepalive 机制

M-LAG 设备间通过 Keepalive 链路检测邻居状态,即通过交互 Keepalive 报文来进行 peer-link 链路故障时的双主检测。

如果在指定时间内,本端 M-LAG 设备收到对端 M-LAG 设备发送的 Keepalive 报文:

  • 如果 peer-link 链路状态为 down,则本端和对端 M-LAG 设备根据收到的 Keepalive 报文选举主从设备,保证 M-LAG 系统中仅一台 M-LAG 设备转发流量,避免两台 M-LAG 设备均升级为主设备。

  • 如果 peer-link 链路状态为 up,则 M-LAG 系统正常工作。

如果在指定时间内,本端 M-LAG 设备未收到对端 M-LAG 设备发送的 Keepalive 报文时:

  • 如果 peer-link 链路状态为 down,则认为对端 M-LAG 设备状态为 down:

    • 本端设备为主设备时,如果本端设备上存在处于 up 状态的 M-LAG 接口,则本端仍为主设备;否则,本端设备角色变为 None 角色。

    • 本端设备为从设备时,则升级为主设备。此后,只要本端设备上存在处于 up 状态的 M-LAG 接口,则保持为主设备,否则本端设备角色变为 None 角色。

    • 当设备为 None 角色时,设备不能收发 Keepalive 报文,Keepalive 链路处于 down 状态。

  • 如果 peer-link 链路状态为 up,则认为 Keepalive 链路状态为 down。此时主从设备正常工作,同时设备打印日志信息,提醒用户检查 Keepalive 链路。

MAD 机制

peer-link 链路故障后,为了防止从设备继续转发流量,M-LAG 提供 MAD(Multi-Active Detection,多Active检测)机制,即在 M-LAG 系统分裂时将设备上部分接口置为 M-LAG MAD DOWN 状态,不允许此类接口转发流量,避免流量错误转发,尽量减少对业务影响。

当 peer-link 链路故障恢复后,为了防止丢包,从设备尽可能在延迟恢复时间内完成表项(MAC 地址表、ARP 表等)同步,其后该设备上处于 M-LAG MAD DOWN 状态的接口将恢复为 up 状态。

MAD DOWN 保持功能

当 peer-link 链路故障,Keepalive 链路正常工作时,主设备正常工作,从设备会自动关闭本设备上除 M-LAG 保留接口外的所有接口,将这些接口置为 M-LAG MAD DOWN 状态。如果此时 Keepalive 链路也发生故障,从设备上的接口会解除 M-LAG MAD DOWN 状态,并升级为主设备,使 M-LAG 系统中的两台设备都作为主设备转发流量,引起网络故障。为了避免以上情况,需要开启 M-LAG MAD DOWN 保持功能,使设备上的接口一直处于 M-LAG MAD DOWN 状态,不参与流量转发。

M-LAG 角色计算

图1-2 M-LAG 角色计算流程图

角色计算触发条件

角色计算触发条件包括:

  • M-LAG 设备在系统初始化时(包括新配置 M-LAG 或带 M-LAG 配置重启设备)。
  • peer-link 链路 UP 时,设备角色通过 peer-link 链路计算。
  • peer-link 链路故障,Keepalive 正常工作,设备角色通过 Keepalive 链路计算。
  • peer-link 链路和 Keepalive 链路均故障,根据本端 M-LAG 设备上 M-LAG 接口状态决定设备角色。
角色计算因素

当通过 peer-link 链路或 Keepalive 链路交互报文计算设备角色时,依次比较如下因素:

  • 比较设备所有M-LAG接口的状态,有可工作M-LAG接口的一端为优;

  • 比较计算前角色,若有一端为Primary,另一端为None,则Primary端优;

  • 比较 M-LAG MAD DOWN 状态,若一端存在处于 M-LAG MAD DOWN 状态的接口,另一端不存在处于 M-LAG MAD DOWN 状态的接口,则不存在处于 M-LAG MAD DOWN 状态的接口的一端优;

  • 比较设备健康状况,健康值越小越优,设备无故障运行时,健康值为0;

  • 比较设备角色优先级,越高越优;

  • 比较设备桥MAC,越小越优。

上述因素按顺序比较,结果为优的一端角色计算为Primary,另一端为Secondary。如果设备通过peer-link链路计算角色,则不比较设备所有M-LAG接口的状态。

M-LAG系统建立及工作过程

图1-3 M-LAG建立及工作过程示意图

如 图1-3 所示,Device A 和 Device B 之间 M-LAG 系统建立及工作过程如下:

  1. 当 M-LAG 设备完成 M-LAG 系统参数配置后,两端设备通过 peer-link 链路定期发送 DRCP 报文。当本端收到对端的 DRCP 协商报文后,会判断 DRCP 协商报文中的 M-LAG 接口编号是否和本端相同。如果两端的 M-LAG 接口编号相同,则这两台设备组成 M-LAG 系统。

  2. 配对成功后,两端设备会确定出主从状态。依次比较两端 M-LAG 设备的初始角色、M-LAG MAD DOWN 状态、设备的健康值、角色优先级、设备桥 MAC,比较结果更优的一端为主设备,具体比较原则请参见“M-LAG角色计算”。主从协商后,M-LAG设备间会进行配置一致性检查。有关一致性检查的详细介绍,请参见“配置一致性检查功能”。

  3. 当主从角色确定后,两端设备通过 Keepalive 链路周期性地发送 Keepalive 报文检测邻居状态。

  4. M-LAG 系统开始工作后,两端设备之间会实时同步对端的信息,例如 MAC 地址表项、ARP 表项等,这样任意一台设备故障都不会影响流量的转发,保证正常的业务不会中断。

M-LAG设备工作模式

M-LAG 设备工作模式分为以下两种:

  • M-LAG 系统工作模式:作为 M-LAG 系统成员设备参与报文转发。
  • 独立工作模式:脱离 M-LAG 系统独立工作,独自转发报文。

当 M-LAG 系统分裂时,为了避免 M-LAG 系统中的两台设备都作为主设备转发流量的情况,需要 M-LAG 设备独立工作。在 peer-link 链路和 Keepalive 链路均处于 DOWN 状态时,从设备会立即或经过一段时间切换到独立运行模式。

M-LAG 设备切换到独立运行模式后,聚合接口发送的 LACP 报文中携带的 M-LAG 系统参数还原为聚合接口的 LACP 系统 MAC 地址和 LACP 系统优先级,使同一 M-LAG 组中的两个聚合接口的 LACP 系统 MAC 地址和 LACP 系统优先级不一致。这样只有一边聚合接口的成员端口可以被选中,通过被选中的设备转发业务流量,避免流量转发异常。

配置一致性检查功能

M-LAG 系统建立过程中会进行配置一致性检查,以确保两端 M-LAG 设备配置匹配,不影响 M-LAG 设备转发报文。M-LAG 设备通过交换各自的配置信息,检查配置是否匹配。目前 M-LAG 支持对两种类型的配置一致性检查:

  • Type 1 类型配置:影响 M-LAG 系统转发的配置。如果 Type 1 类型配置不匹配,则将从设备上 M-LAG 接口置为 down 状态。

  • Type 2 类型配置:仅影响业务模块的配置。如果 Type 2 类型配置不匹配,从设备上 M-LAG 接口依然为 up 状态,不影响 M-LAG 系统正常工作。由 Type 2 类型配置对应的业务模块决定是否关闭该业务功能,其他业务模块不受影响。

为了避免设备 M-LAG 接口震荡,设备会在延迟恢复定时器(缺省为30s)一半时间之后进行配置一致性检查。

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

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

相关文章

【政策】正文关键词提取总结

附:样本构建流程: 候选样本圈选,这一步的目的是选出潜在的高质量样本,找到一部分高难度样本,并过滤掉可能的意图不明或无意义数据。样本圈选的方法见下文。 对圈选出的样本随机抽样一小部分进行人工标注。 利用少量的…

Vue3 虚拟列表组件库 virtual-list-vue3 的使用

Vue3 虚拟列表组件库 virtual-list-vue3 的基本使用 分享个人写的一个基于 Vue3 的虚拟列表组件库,欢迎各位来进行使用与给予一些更好的建议😊 概述:该组件组件库用于提供虚拟化列表能力的组件,用于解决展示大量数据渲染时首屏渲…

特征缩放的学习

两边同时除以最大范围,除了除以最大值以外,你还可以执行所谓的均值归一化。这看起来是,你从原始特征开始,然后你重新缩放他们,使两者其中以零为中心。以前它们只有大于零的值,现在他们既有负值又有正值这通…

【大模型实战篇】vLLM的由来以及大模型部署、推理加速实践

1. 问题背景分析及vLLM的由来 大模型毫无疑问,在工作、生活中已经逐渐扮演越来越重要的角色。但大模型的尺寸一般都比较大,处理一个大模型请求的成本可能比传统关键字查询高出 10 倍。推理的成本代价较高,因此提高大模型服务系统的吞吐量&…

[JAVAEE] 网络编程

目录 一. 什么是socket套接字 二. socket套接字 2.1 socket套接字根据传输层协议分类 2.2 TCP流套接字 UDP数据报套接字主要特点 三. UDP数据报套接字编程 3.1 DatagramSocket 是UDP socket, 用于发送和接受数据报 3.2 DatagramPacket 是UDP socket 发送和接收的数据报 …

SDF,一个从1978年运行至今的公共Unix Shell

关于SDF 最近发现了一个很古老的公共Unix Shell服务器,这个项目从1978年运行至今,如果对操作系统,对Unix感兴趣,可以进去玩一玩体验一下 SDF Public Access UNIX System - Free Shell Account and Shell Access 注册方式 我一…

物联网低功耗广域网LoRa开发(二):LoRa开发环境搭建及驱动移植

一、STM32CubeMX加载固件库 将F0固件库添加进来 二、IAR介绍、安装及快捷操作 (一)IAR介绍 1、简介 C/C编译器和调试器 集成开发环境(IDE) 实时操作系统和中间件 开发套件 硬件仿真器以及状态机建模工具2、IAR与Keil对比 MDK默认只创建工程&#xf…

RK3568平台开发系列讲解(设备树篇)device_node 转换成 platform_device

🚀返回专栏总目录 文章目录 一、DTB转换规则二、转换源码分析沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍通过设备树 device_node 转换成 platform_device 一、DTB转换规则 device 部分是用 platform_device 结构体来描述硬件资源的, 所以内核最终会…

深入理解 source 和 sh、bash 的区别

1 引言 在日常使用 Linux 的过程中,脚本的执行是不可避免的需求之一,而 source、sh、bash 等命令则是执行脚本的常用方式。尽管这些命令都能运行脚本,但它们之间的执行方式和效果却有着显著的区别。这些区别可能会影响到脚本的环境变量、工作…

基于Java Springboot鲜花商城系统

一、作品包含 源码数据库设计文档PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA 数据库:MySQL8.0 …

413: Quick Sort

解法&#xff1a; #include <bits/stdc.h> using namespace std; const int N1e55; int a[N]; int n;int main(int argc, char** argv) {cin>>n;for (int i0;i<n;i) cin>>a[i];sort(a,an);for (int i0;i<n;i) cout<<a[i]<<" "…

通过轻易云高效实现ERP数据无缝传输

高效集成领星ERP数据至金蝶云星空 领星ERP数据集成到金蝶云星空&#xff1a;发货结算报告对接销售出库单&#xff08;日本站&#xff09; 在企业的日常运营中&#xff0c;数据的高效流动和准确处理至关重要。本文将分享一个实际运行的系统对接集成案例&#xff1a;如何将领星E…

在 WSL2 Ubuntu22.04环境安装 MySQL

一、安装步骤 1.1. 确保/etc/apt/sources.list源配置文件一切正常 sudo nano /etc/apt/sources.list需要包括以下内容 deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted…

通信塔台、网点、线路数据

通信塔台&#xff1a; 数量&#xff1a; 通信电缆&#xff1a; 通信网点&#xff1a;

C#桌面应用制作计算器

C#桌面应用制作简易计算器&#xff0c;可实现数字之间的加减乘除、AC按键清屏、Del按键清除末尾数字、/-按键取数字相反数、%按键使数字缩小100倍、按键显示运算结果等...... 页面实现效果 功能实现 布局 计算器主体使用Panel容器&#xff0c;然后将button控件排列放置Pane…

【C++进阶】C++11 -- 智能指针

【C进阶】C11 -- 智能指针 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;C&#x1f96d; &#x1f33c;文章目录&#x1f33c; 1. 智能指针的使用场景分析 2. RAII和智能指针的设计思路 3. C标准库智能指针的使用 4. 智能指针的原…

web——upload-labs——第一关

今天新开一个upload-labs的靶场&#xff0c;文件上传&#xff0c;加油&#xff01;&#xff01;&#xff01;&#xff01; 先讲讲文件上传 文件上传&#xff1a;在Web开发中&#xff0c;文件上传功能是一个允许用户将文件&#xff08;例如图片、文档&#xff09;上传到服务器…

提升企业库存管理效率:聚水潭与金蝶云星空集成方案

查询聚水潭库存生成金蝶物料盘点作业 在企业的日常运营中&#xff0c;库存管理和物料盘点是至关重要的环节。为了实现高效、准确的数据对接&#xff0c;我们采用了轻易云数据集成平台&#xff0c;将聚水潭的库存数据无缝集成到金蝶云星空系统中。本案例将详细介绍如何通过API接…

MacOS下,如何在Safari浏览器中打开或关闭页面中的图片文字翻译功能

MacOS下&#xff0c;如何在Safari浏览器中打开或关闭页面中的图片文字翻译功能 在Mac上的Safari浏览器中&#xff0c;可以通过实况文本功能来实现图片中的文本翻译。关闭步骤具体步骤如下&#xff1a; 在浏览器地址栏&#xff0c;鼠标右击翻译按钮&#xff0c;然后点击“首选…

使用 PyAnsys 在 Ansys 随机振动分析中检索螺栓连接中的力和应力

介绍 随机振动模拟通常用于评估组件承受运输过程中振动的能力。随机振动分析利用先前模态分析的频率和模式内容对通过功率谱密度 (PSD) 负载定义的频谱和功率内容进行线性叠加。在大多数装配模型中&#xff0c;螺栓连接&#xff08;由求解器变为 BEAM188 元素&#xff09;通常…