ITPub博客

首页 > IT基础架构 > 网络通信/物联网 > 数据中心场景中的M-LAG组网

数据中心场景中的M-LAG组网

原创 网络通信/物联网 作者:brtchen 时间:2021-05-01 15:45:42 0 删除 编辑


M-LAG简介

定义

M-LAG(Multichassis Link Aggregation Group)即跨设备链路聚合组,是一种实现跨设备链路聚合的机制,如 所示,将两台接入交换机以同一个状态和被接入的设备进行链路聚合协商,从而把链路可靠性从单板级提高到了设备级,组成双活系统。


概念

说明

DFS Group

动态交换服务组DFS Group(Dynamic Fabric Service Group),主要用于部署M-LAG设备之间的配对,M-LAG双归设备之间的接口状态,表项等信息同步需要依赖DFS Group协议进行同步。

DFS主设备

部署M-LAG且状态为主的设备,通常也称为M-LAG主设备。

DFS备设备

部署M-LAG且状态为备的设备,通常也称为M-LAG备设备。

说明:

DFS Group的角色区分为主和备,正常情况下,主设备和备设备同时进行业务流量的转发,转发行为没有区别,仅在故障场景下,主备设备的行为会有差别。

双主检测链路

双主检测链路,又称为心跳链路,是一条三层互通链路,用于M-LAG主备设备间发送双主检测报文。

说明:

正常情况下,双主检测链路不会参与M-LAG的任何转发行为, 只在故障场景下,用于检查是否出现双主的情况。双主检测链路可以通过外部网络承载(比如,如果M-LAG上行接入IP网络,那么两台双归设备通过IP网络可以互通,那么互通的链路就可以作为双主检测链路)。也可以单独配置一条三层可达的链路来作为双主检测链路(比如通过管理口)。

peer-link接口

peer-link链路两端直连的接口均为peer-link接口。

peer-link链路

peer-link链路是一条直连链路 且必须做链路聚合, 用于交换协商报文及传输部分流量。接口配置为peer-link接口后,该接口上不能再配置其它业务。

为了增加peer-link链路的可靠性,推荐采用多条链路做链路聚合。

HB DFS主设备

通过心跳链路来协商的状态为主的设备。

说明:

通过心跳链路报文来协商的设备HB DFS主备状态在正常情况下,对M-LAG的转发行为不会产生影响,仅用于二次故障恢复场景下,在原DFS主设备或备设备故障恢复且peer-link链路仍然故障时,触发HB DFS状态为备的设备上相应端口Error-Down,避免M-LAG设备在双主情况下出现的流量异常。

HB DFS备设备

通过心跳链路来协商的状态为备的设备。

说明:

通过心跳链路报文来协商的设备HB DFS主备状态在正常情况下,对M-LAG的转发行为不会产生影响,仅用于二次故障恢复场景下,在原DFS主设备或备设备故障恢复且peer-link链路仍然故障时,触发HB DFS状态为备的设备上相应端口Error-Down,避免M-LAG设备在双主情况下出现的流量异常。

M-LAG成员接口

M-LAG主备设备上连接用户侧主机(或交换设备)的Eth-Trunk接口。

为了增加可靠性,推荐链路聚合配置为LACP模式。

M-LAG成员接口角色也区分主和备,与对端同步成员口信息时,状态由Down先变为Up的M-LAG成员接口成为主M-LAG成员口,对端对应的M-LAG成员口为备。

说明:

仅在M-LAG接入组播场景下,M-LAG成员接口的主备角色存在转发行为差异。


  1. DFS Group配对

    当M-LAG两台设备完成配置后,设备首先通过peer-link链路发送DFS Group的Hello报文。当设备收到对端的Hello报文后,会 判断报文中携带的DFS Group编号是否和本端相同,如果两台设备的DFS Group编号相同,则两台设备DFS Group配对成功。

  2. DFS Group协商主备

    配对成功后,两台设备会向对端发送DFS Group的设备信息报文,设备根据报文中携带的 DFS Group优先级以及系统MAC地址确定出DFS Group的主备状态。

    优先级高的或者MAC地址小的作为主。

  3. M-LAG成员接口协商主备

    在DFS Group协商出主备状态后,M-LAG的两台设备会通过peer-link链路发送M-LAG设备信息报文,报文中携带了M-LAG成员接口的配置信息。在成员口信息同步完成后, 确定M-LAG成员接口的主备状态。

  4. 与对端同步成员口信息时,状态由Down先变为Up的M-LAG成员接口成为主M-LAG成员口,对端对应的M-LAG成员口为备,且主备状态默认不回切,即:当M-LAG成员接口状态为主的设备故障恢复后,先前由备状态升级为主状态的接口仍保持主状态,恢复故障的M-LAG成员接口状态为备,此处与DFS Group协商主备状态不一致。 仅在M-LAG接入组播场景下,M-LAG成员接口的主备角色存在转发行为差异。

  5. 双主检测

    协商出M-LAG主备后,两台设备之间会通过双主检测链路按 照1s的周期发送M-LAG双主检测报文,一旦设备感知peer-link故障,会按照 100ms的周期发送三个双主检测链路报文,加速检测。当两台设备均能够收到对端发送的报文时,双活系统即开始正常的工作。

    在DFS Group配对失败或者peer-link故障场景下,双主检测链路用于检查是否出现双主的情况。双主检测链路可以通过外部网络承载(比如,如果M-LAG上行接入IP网络,那么两台双归设备通过IP网络可以互通,那么互通的链路就可以作为双主检测链路)。也可以单独配置一条三层可达的链路来作为双主检测链路(比如通过管理口)。
    1. 双主检测链路通过管理网口互通,DFS Group绑定的管理网口IP地址要保证可以相互通信,管理网口下绑定VPN实例,保证双主检测报文与业务流量隔离。
    2. 双主检测链路通过业务网络互通,DFS Group绑定的IP地址要保证可以三层互通。如果peer-link接口之间建立路由邻居关系,则业务网络双主检测报文会直接通过最优路由经peer-link链路传输。一旦peer-link故障,路由收敛期间,双主检测报文通过次优路径传输到对端,双主检测时间会慢0.5秒或者1秒的时间。

6、 M-LAG同步信息

正常工作后,两台设备之间会通过peer-link链路发送M-LAG同步报文实时同步对端的信息,M-LAG同步报文中包括


M-LAG防环机制

从接入设备或网络侧到达M-LAG配对设备的单播流量,会优先从本地转发出去,peer-link链路 一般情况下不用来转发数据流量。当流量通过peer-link链路广播到对端M-LAG设备,在peer-link链路与M-LAG成员口之间设置 单方向的流量隔离,即从peer-link口进来的流量不会再从M-LAG口转发出去,所以不会形成环路,这就是M-LAG单向隔离机制。

单向隔离机制实现原理  M-LAG防环机制中的单向隔离仅对广播流量等泛洪流量生效。

在设备双活接入M-LAG场景下,设备会默认按下列顺序下发全局ACL配置:
  • Rule1:允许通过源端口为peer-link接口,目的端口为M-LAG成员口的 三层单播报文;
  • Rule2:拒绝通过源端口为peer-link接口,目的端口为M-LAG成员口的所有报文;
设备通过匹配ACL规则组来对实现peer-link接口与M-LAG成员口之间的单向隔离,隔离由peer-link接口发往M-LAG成员口的 广播等泛洪流量。当M-LAG设备感知到本端的M-LAG成员口状态为Down时,会通过peer-link发送M-LAG同步报文,通知对端设备撤销自动下发的相应的M-LAG成员端口的单向隔离ACL规则组。


A、基于根桥方式配置M-LAG

M-LAG主设备和备设备均作为STP网络中的根桥且配置相同的桥ID,将两台设备模拟成同一个根桥,

stp   root primary  \\ 指定配置为生成树的根桥设备

stp bridge-address   mac-address ,配置设备参与生成树计算的桥MAC。

配置DFS Group

  dfs-group  XXX   \\ 创建DFS Group并进入DFS-Group视图

source ip   ip-addressXXXX     peer   peer-ip-addressXXX  \\指定对端心跳IP, 双主检测链路,又称为心跳链路,是一条三层互通链路,用于M-LAG主备设备间发送双主检测报文。

priority   priority ,配置DFS Group的优先级

配置peer-link

interface eth-trunk   trunk-id    \\进入Eth-Trunk接口视图。

trunkport   interface-type  {  interface-number1  [  to   interface-number2  ] } &<1- n >,增加成员接口

mode   lacp-static   \\ 配置Eth-Trunk的工作模式为静态LACP模式

  \\ 去使能接口的STP功能

peer-link   peer-link-id  \\ 配置接口为peer-link接口

配置M-LAG成员接口

令 interface eth-trunk   trunk-i  \\ 进入Eth-Trunk接口视图

trunkport   interface-type  {  interface-number1  [  to   interface-number2  ] } &<1- n  \\ 增加成员接口

dfs-group   dfs-group-id   m-lag   m-lag-id  \ \配 置为M-LAG成员接口

B、基于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定时器配置一致,否则可能导致网络拓扑震荡。


  1. 执行命令 stp mode {  stp |  rstp },配置交换设备的生成树协议为STP或RSTP模式。

    V-STP场景中,不支持MSTP模式, 但支持STP多进程(MSTP进程默认是MSTP模式,目前V-STP场景仅支持STP及RSTP模式,需要将MSTP进程配置为STP或RSTP模式,作为STP进程)。

    执行命令 stp v-stp enable,使能STP进入跨设备组合工作模式。

    配置DFS Group

执行命令 dfs-group   dfs-group-id

  1. source ip   ip-address  [  vpn-instance   vpn-instance-name  ] [  peer   peer-ip-address  [  udp-port   port-number  ] ]

    配置peer-link

  2. 执行命令 interface eth-trunk  trunk-id,进入Eth-Trunk接口视图。
  3. 执行命令 trunkport  interface-type {  interface-number1 [  to  interface-number2 ] } &<1- n>,增加成员接口。
  4. 执行命令 mode  lacp-static,配置Eth-Trunk的工作模式为静态LACP模式。
  5. 执行命令 peer-link  peer-link-i

    配置M-LAG成员接口

  6. 令 interface eth-trunk  trunk-id,进入Eth-Trunk接口视图。
  7. 执行命令 trunkport  interface-type {  interface-number1 [  to  interface-number2 ] } &<1- n>,增加成员接口。
  8. 执行命令 mode {  lacp-static |  lacp-dynamic },配置Eth-Trunk的工作模式为LACP模式。
  9. 执行命令 dfs-group  dfs-group-id  m-lag  m-lag-id,配置绑定DFS Group和用户侧Eth-Trunk接口,即配置为M-LAG成员接口。

M-LAG故障场景流量转发


上行链路故障

M-LAG接入普通以太网场景,由于M-LAG主设备的上行链路故障, 通过M-LAG主设备的流量均经过peer-link链路进行转发。

当故障的上行链路恰好为双主检测链路,此时对于M-LAG正常工作没有影响。 一旦peer-link也发生故障,M-LAG出现双主冲突,双主检测又无法进行,则会出现丢包现象。

下行链路故障

DFS Group主备状态不会变化,但如果故障M-LAG成员口状态为主,则备M-LAG成员口状态由备升主,流量切换到该链路上进行转发。发生故障的M-LAG成员口所在的链路状态变为Down, 双归场景变为单归场景。 故障M-LAG成员口的MAC地址指向peer-link接口。在故障M-LAG成员口恢复后,M-LAG成员口 状态不再回切,由备升主的M-LAG成员口状态仍为主,原主M-LAG成员口在故障恢复后状态为备。

对于组播源在网络侧,组播成员在接入侧的组播流量,当M-LAG主设备的M-LAG成员口故障时,通过M-LAG同步报文通知对端设备进行组播表项刷新,M-LAG主备设备不再按照组播地址奇偶进行负载分担,而是所有组播流量都由端口状态Up的M-LAG备设备进行转发,反之亦然。

M-LAG主设备故障


M-LAG主设备故障,M-LAG备设备将升级为主,其设备侧Eth-Trunk链路状态仍为Up,流量转发状态不变,继续转发流量。M-LAG主设备侧Eth-Trunk链路状态变为Down,双归场景变为单归场景。

如果是M-LAG备设备发生故障,M-LAG的主备状态不会发生变化,M-LAG 备设备侧Eth-Trunk链路状态变为Down。M-LAG主设备侧Eth-Trunk链路状态仍为Up,流量转发状态不变,继续转发流量,双归场景变为单归场景。

peer-link故障

缺省情况下,M-LAG应用在普通以太网络、VXLAN网络或IP网络的双归接入, peer-link故障但双主检测心跳状态正常时,会触发M-LAG备设备上 除逻辑端口、管理网口、peer-link接口和堆叠口以外的其他接口处于Error-Down状态。M-LAG应用在TRILL网络的双归接入,peer-link故障但双主检测心跳状态正常时,会触发M-LAG备设备上的M-LAG接口处于Error-Down状态。

peer-link故障恢复时,处于Error Down状态的 M-LAG接口默认将在240s后自动恢复为Up状态,处于Error Down状态的其它接口将立即自动恢复为Up状态。

通过命令可以配置M-LAG场景下peer-link故障但双主检测心跳状态正常时,触发Error-Down的端口包括逻辑端口。如当M-LAG应用在VXLAN网络或IP网络的双归接入,peer-link故障但双主检测状态正常时,会触发M-LAG备设备上VLANIF接口、VBDIF接口、LoopBack接口以及M-LAG成员口处于Error-Down状态。

M-LAG二次故障(peer-link故障+M-LAG设备故障)

当peer-link故障但双主检测心跳状态正常会触发DFS备设备上某些端口处于Error-Down状态,此时DFS状态为主的设备继续工作。在该场景的基础上,若DFS状态为主的设备由于断电、 主控板损坏、整机故障重启等其他故障导致主设备不能工作时,由 中3所示,此时M-LAG主备设备皆不能正常转发流量。

在该场景下,可以借助M-LAG二次故障增强功能来实现该故障场景下业务不中断的可靠性要求,如 所示,通过M-LAG二次故障增强功能来说明不同的故障阶段和产生的行为:
  1. Peer-link链路故障: 若Peer-link链路故障但双主检测心跳链路状态正常将会触发DFS状态为备的设备上某些端口处于ERROR DOWN(端口Error-Down范围可以参见 )状态,DFS状态为主的设备继续工作。
  2. DFS状态为主的设备故障:若DFS状态为主的设备在peer-link链路故障后由于断电、 主控板损坏、整机故障重启等其他故障导致不能工作时,此时M-LAG主备设备皆不能转发流量,业务中断。
  3. 二次故障增强功能使能:在上述场景基础下,若M-LAG已使能二次故障增强功能,则DFS状态为备的设备会借助M-LAG双主检测机制感知到DFS主设备故障(在一定周期内接收不到任何的M-LAG双主检测心跳报文)后,将升级为DFS主设备并恢复设备上处于ERROR DOWN状态的端口为Up状态,继续转发流量。
  4. 设备故障恢复:若原DFS状态为主的设备故障恢复后但peer-link故障仍故障
    • 若配置LACP M-LAG的系统ID在一定时间内切换为本设备的LACP系统ID,则在LACP协商时接入侧仅选择上行链路中的一条链路为活动链路,实际流量转发正常。
    • 若配置LACP M-LAG的系统ID为缺省情况,即系统ID不回切,M-LAG两台设备均使用同一系统ID来与接入侧设备协商,链路均能被选中成为活动链路。该场景下,由于peer-link链路仍然故障,M-LAG两端无法同步对端的优先级、系统MAC等信息,形成M-LAG两台设备双主的情况,可能导致组播流量异常。此时,如 所示,可以借助心跳链路报文中携带必要的DFS Group协商主备的必要信息(如DFS Group优先级、系统MAC等)来协商M-LAG两台设备的HB DFS主备信息,触发HB DFS状态为备的设备上某些端口处于ERROR DOWN(端口Error-Down范围可以参见 )状态,HB DFS状态为主的设备继续工作。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31535697/viewspace-2770568/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: CSS和istack
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2018-05-05

  • 博文量
    4
  • 访问量
    13658