5596 字
28 分钟
CCNA项目7-链路聚合和高可用性技术

以太信道#

以太信道(Etherchannel),俗称链路聚合,以交换机为主

交换机间多跟平行链路,通过链路聚合的方式,生成的产物就叫以太信道

  • 可以通俗的理解为一根是物理链路,一捆就是以太信道,注意一定是平行链路

STP生成树防环是通过阻塞交换机的冗余链路实现的防环,实际上就是在某一时刻端到端的流量只能通过交换机的某一根链路转发,这个链路就叫根链路

那么如果是数据中心的防环呢?

  • 数据中心的交换机接口带宽特别高,不适合用STP阻塞级联链路接口,所以需要把级联接口的两条链路做逻辑的捆绑,这个行为就叫做链路聚合。

  • 注意:链路聚合只能聚合平行的链路

    • 平行链路:就是多根链路连接了两台相同的交换机,例如两台交换机的级联接口互相连接两条网线

冗余连接在聚合成一个以太信道后,STP就不认为这是有冗余的了,生成树只关心聚合后的产物(即以太信道)

那捆绑成以太信道后生成树不阻塞了,会不会出现环路呢?

  • 不会的,以太信道有避免环路的机制

链路聚合防环#

对于STP来说,一个链路聚合组(Eth-Trunk)被看成是一条独立的逻辑链路,而不是多条物理链路。

  • 也就是说,如果是以太信道的其中一条链路发过来的数据,在泛洪时就不会再通过以太信道中的其它成员链路转发了,因为整个链路聚合组被看成是一条独立的逻辑链路

那么如果同时有两条以太信道呢?

  • 那么STP就会把这两条以太信道当作两条独立的链路去阻塞
    • 注意:STP和以太链路是两个不同的技术,可以同时使用

两种链路聚合方式#

静态链路聚合(手工聚合)#

  • 工作原理: 管理员在相连的两台设备上手动创建聚合组,并手动将物理端口添加到聚合组中。这个过程不依赖任何协议进行协商。
  • 配置方式: 双方设备上需要完全一致的配置(相同的聚合组ID,捆绑的端口数量、速率、双工模式等需要匹配)。
  • 优点
    • 配置简单: 无需处理协议交互。
    • 建立快速: 一旦配置完成,链路立即生效。
  • 缺点
    • 无法检测错误配置: 如果一端配置了捆绑,而另一端没有配置,会导致严重的二层环路或链路故障。
    • 无法检测链路层故障: 它只能检测物理链路是否断开(Link Down),但无法检测到一些链路层的问题(如单通故障)。
  • 适用场景: 对端设备不支持LACP协议的超简单网络环境。由于其风险,在现代网络中不推荐作为首选❌。

动态链路聚合(LACP聚合)(推荐)#

  • 工作原理: 使用 LACP 协议进行自动协商和管理。管理员在两端设备上创建聚合组并开启LACP功能,设备会通过发送LACPDU报文来协商建立聚合链路。

  • 工作过程:

    1. 双方设备通过发送LACPDU报文来发现对端。
    2. 交换系统优先级、端口优先级、端口密钥等信息。
    3. 只有当两端对某个端口的配置(速率、双工、VLAN等)一致,且都允许其加入聚合组时,该端口才会被激活成为活动端口。
      • ⚠注意:不是配置好LACP协议以太信道立即就能起得来,需要等待一小段时间
    4. LACP会持续监控活动链路的状态。
  • 优点:

    • 安全性高: 有效防止因一端未配置捆绑而导致的环路。
    • 容错性强: 能够检测链路层故障,并提供更快的故障倒换。
    • 灵活: 支持配置活动端口数的上限,可以实现备份链路(如8条链路捆绑,只活动4条,另外4条作为备用)。
      • 可以指定哪些活动哪些备份
      • 也可以设置在备份链路优先级变得更高后是否可以抢占现有的活动链路,以及设置抢占延迟
  • 缺点:

    • 配置比静态方式稍复杂一点。
  • 适用场景: 现代网络的绝对标准,适用于所有支持LACP的交换机、服务器、防火墙等设备之间的互联。强烈推荐使用此方式✅。

注意思科设备要先配置中继#

思科在进行以太信道聚合时,需要先将接口切换到trunk中继模式

  • 也就是说该怎么做中继就怎么做,中继做完后才能进行以太信道聚合

逻辑接口#

当进行链路聚合时,并不是直接去管理那一条条的物理网线,而是创建并管理一个逻辑接口。这个逻辑接口就是 Port-Channel(不同厂商叫法不同,比如 Cisco 叫 Port-channel,华为华三叫 Eth-Trunk,但概念完全一样)。

  • 物理接口: 就像一个个独立的士兵。
  • Port-Channel 接口: 就像把这些士兵编成一个班组。您不再直接指挥每个士兵,而是向这个班组下达命令。

创建并进入一个聚合逻辑接口的配置模式

  • 思科:interface port-channel [编号],推荐两个交换机使用同一个组号,例如SW1和SW2就可以用interface port-channel 12

组号

当交换机配置完成后,当真的出现了多个以太信道链路时,就是通过组号去区分不同的以太信道链路

配置两次中继#

注意,要先在物理接口配置一次中继,然后进行链路聚合操作,聚合后还要新生成的逻辑接口里再配置一次中继

动态链路聚合的协商模式#

动态链路聚合主要有两种模式,它们总是成对工作,一端是 Active,另一端是 Active 或 Passive。

主动模式(Active Mode)#

  • 行为: 处于此模式的端口会主动发送 LACPDU 报文,试图与对端建立聚合连接。
  • 特点: 非常积极。只要物理链路连通,它就会不停地“呼喊”对端,尝试协商。
  • 比喻: 像一个积极主动的销售,会不停地打电话(发送LACPDU)给客户(对端)推销产品(建立聚合)。

被动模式(Passive Mode)#

  • 行为: 处于此模式的端口不会主动发送 LACPDU 报文,但它能够监听和回复对端发来的LACPDU报文。
  • 特点: 比较“高冷”或“矜持”。它只响应,不主动发起。
  • 比喻: 像一个大公司的前台,自己不会主动打电话出去,但如果接到销售(对端Active端口)的电话,会给予回应。

模式组合如何工作#

最关键的一点是:只有当至少一端为 Active 模式时,LACP 协商才能成功建立。

本端端口模式对端端口模式能否形成聚合?解释
ActiveActive✅ 是最佳实践。双方都主动发送和响应报文,能最快地建立聚合并检测故障。
ActivePassive✅ 是标准组合。主动方发起协商,被动方响应,协商成功。
PassivePassive❌ 否协商失败! 双方都在等待对方先开口,结果谁也不说话,无法建立聚合。
On (静态模式)On (静态模式)✅ 是 (但非动态)形成静态聚合,但不使用LACP协议,无法享受其好处。
On (静态模式)Active/Passive❌ 否模式不匹配! 一端强制开启,另一端试图协商,无法建立聚合。

为什么需要两种模式?#

这种设计提供了一定的灵活性,主要用于控制哪些端口可以发起聚合。

  • 防止不必要的聚合: 在网络中,你可能只希望特定的设备端口之间建立聚合。将不应建立聚合的端口设置为 Passive 模式,可以确保它们不会与任何主动连接的设备建立聚合(除非对端也是Active)。但如果对端是 Active,它仍然可以响应并建立聚合。
  • 实际应用: 最常见的做法是将两端都设置为 Active 模式,这样可以保证聚合链路快速建立并提供最高的可靠性。

M-LAG#

什么是M-LAG#

M-LAG 的全称是 Multi-Chassis Link Aggregation,即多机箱链路聚合

你可以把它理解为一种 “跨设备的链路聚合”

  • 普通链路聚合: 将一台设备上的多个物理端口聚合成一个逻辑端口,连接到另一台设备上。这提供了带宽和冗余,但上行设备(比如核心交换机)是一个单点故障点。如果上行交换机坏了,链路依然会中断。
  • M-LAG: 将一台设备(如下游交换机或服务器)上的多个物理端口聚合成一个逻辑端口,但这一次,这些端口分别连接到两台不同的上行设备上。这样,不仅消除了链路单点故障,还消除了设备单点故障。

一个生动的比喻

  • 普通链路聚合: 就像你用两根绳子(两条网线)把你的船(服务器)和另一艘大船(交换机A)绑在一起。绳子更结实了,但如果大船A沉了,你还是会漂走。
  • M-LAG: 你用一根绳子连到左边的大船(交换机A),另一根绳子连到右边的大船(交换机B)。然后通过一个神奇的装置(M-LAG协议),让这两艘大船协同工作,就像一艘船一样。这样,即使一艘大船沉了,你的船还会被另一艘牢牢拴住,业务不中断。

M-LAG 的核心原理与优势#

1. 网络拓扑:

  • 参与M-LAG的两台交换机(称为M-LAG对等设备)通过一条特殊的Peer-Link链路连接。
  • 下游设备(如接入交换机、服务器)通过一条普通的链路聚合组(LAG)分别连接到这两台M-LAG设备上。
  • 对于下游设备来说,它认为自己只是和一台交换机建立了链路聚合!它完全感知不到上行的两台设备,因此不需要任何特殊支持。

2. 主要优势:

  • 高可靠性: 实现了设备级的冗余。任何一台上行交换机故障,业务流量会在毫秒级切换到另一台。
  • 高可用性: 支持负载分担,所有链路同时活跃,充分利用带宽。
  • 环路避免: M-LAG通过Peer-Link同步状态信息,并配合生成树协议,确保网络无环。
  • 简化网络: 对下游设备透明,网络架构更清晰,易于管理和扩展。

M-LAG的兼容性要求#

M-LGA的兼容性要求非常严格,这是因为M-LAG需要两台交换机像一台一样工作,这就要求它们的状态(MAC表、ARP表等)必须高度同步。

主要的兼容性挑战和限制

  1. 厂商锁定:

    • M-LAG 是厂商私有技术!目前没有统一的国际标准。
    • 这意味着你绝对不能将一台华为的交换机与一台思科的交换机组成M-LAG。它们之间无法通过私有协议进行状态同步。
    • 主流厂商都有自己的实现和名称:
      • Cisco: VSS(虚拟交换系统) / vPC(虚拟端口通道)
      • Huawei: M-LAG / Stack-Wise(堆叠)
      • H3C: IRF(智能弹性架构) / M-LAG
      • Juniper: MC-LAG
  2. 硬件和软件版本一致性:

    • 硬件兼容性: 组成M-LAG的两台交换机最好是完全相同的型号。即使是同一厂商,不同型号的硬件架构可能不同,可能导致无法建立M-LAG或出现性能问题。
    • 软件版本一致性: 这是最关键的一点。厂商通常要求组成M-LAG的两台交换机必须运行完全相同版本的操作系统(OS)。任何微小的版本差异都可能导致协议报文无法识别或行为不一致,从而引起M-LAG分裂或网络震荡。
  3. Peer-Link链路的苛刻要求:

    • Peer-Link是M-LAG的“生命线”,负责同步所有关键状态信息。
    • 它必须有极高的带宽和可靠性,通常本身就是一个多端口的高速链路聚合组。
    • 如果Peer-Link故障,两台交换机的状态无法同步,可能会产生“双主”故障,导致网络环路等严重问题。

总结#

特性描述
是什么跨设备的链路聚合,提供设备级冗余和负载分担。
本质两台交换机通过私有协议虚拟成一台,对下游设备透明。
优点高可靠性、高可用性、简化网络。
兼容性是严格的“厂商私有”技术,要求同品牌、同型号(或兼容列表)、同软件版本。

结论: M-LAG是一项强大的技术,但它构建了一个封闭的“系统”。在规划和部署时,必须严格遵守厂商的兼容性矩阵指南,确保硬件型号、板卡、软件版本完全匹配,才能保证其稳定运行。对于普通用户而言,这意味着你几乎无法混用不同品牌甚至不同型号的设备来组建M-LAG。

IT 技术语义的 “透明”#

上面M-LAG多处提到了透明在 IT 技术里,“A 对 B 透明”=“B 感知不到 A 的存在 / 细节”=“A 的逻辑被隐藏,B 无需关注 A”,和日常中”透明=展示所有细节“不同

先明确:日常语义 vs IT 技术语义的 “透明”,是完全反着的

场景“透明” 的含义例子
日常口语公开可见、所有细节都能被感知到“政府信息公开要透明”(公众能看到政策细节)
IT 技术不被感知、细节被隐藏、无需关注(即 “B 不需要知道 A 的存在,A 的逻辑对 B 无影响”)“上游交换机对下游服务器透明”(服务器感知不到交换机的存在,只认 “逻辑单一的链路”);“操作系统对硬件透明”(用户用软件时,感知不到 CPU、内存的具体工作细节)

为什么 IT 技术要把 “隐藏” 定义为 “透明”?—— 理解术语的设计逻辑

IT 技术中 “透明” 的定义,本质是为了描述 “分层架构中的‘无需关心’原则”

IT 系统是分层的(比如 “下游服务器→M-LAG 交换机→核心网” 就是三层),每一层只需要和 “直接对接的上 / 下层” 交互,不需要知道 “更上层 / 更下层” 的具体实现细节。这种 “无需关心”,就用 “透明” 来描述 ——被透明的对象,其细节被 “封装” 起来,对上层 / 下层不可见,避免增加交互复杂度

再举 2 个常见 IT 场景,帮你强化 “技术透明 = 隐藏细节” 的认知

  1. 例子 1:“虚拟化技术对应用透明”

    • 我们在虚拟机里跑软件(如 Excel),Excel 完全 “感知不到自己跑在虚拟机上,还是物理机上”—— 虚拟机的硬件模拟、资源调度等细节,对 Excel 是 “隐藏” 的。
    • 技术上就说 “虚拟化层对应用透明”,而不是 “虚拟化层把细节展示给应用”。
  2. 例子 2:“路由器对主机透明”

    • 你的电脑(主机)访问百度时,只需要知道 “百度的 IP”,不需要知道 “数据包要经过多少台路由器、路由器之间怎么转发”—— 这些路由器的存在和工作细节,对电脑是 “隐藏” 的。
    • 技术上就说 “中间的路由器对主机透明”,电脑只需要和 “直接连接的网关” 交互即可。

以太信道的负载均衡#

无论是静态还是动态,一旦聚合组成功建立,它们都使用相同的负载均衡算法(也称为负载分担方式)。

  • 基于流的负载均衡: 数据流量不是以单个数据包为单位随机分发,而是根据一条条的“数据流”来分配。交换机通过哈希算法计算数据包的特定特征(如源/目的IP地址、源/目的MAC地址、VLAN ID、四层端口号等),根据计算结果决定该数据流走哪条物理链路。

  • 例如:有10M数据,两台交换机通过两根物理链路连接在一起,当建立以太信道后,负载均衡算法会尽量让5M数据从网线1发送,剩下的5M数据从网线2发送,负载均衡的算法越细致,就越能接近这个值

思考:两台路由器之间需要做链路聚合吗?#

PixPin_2025-10-12_13-43-18

可以,但没必要

因为在路由器上连接多条平行链路不用担心有环路,路由器了解PC所在网络的路由信息是靠路由的学习机制了解到的,而这些动态路由选择协议本身就是带有防环机制的,所以路由器之间想要防环根本不需要阻塞其中一条链路,只需要运行路由选择协议就可以,这个环天生就不存在

  • 同时,以太信道是一个比较偏向2层的技术,和绝大多数路由选择协议都不太兼容

  • 以太信道可以优化STP,减少其带来的负面影响,路由器不会运行生成树协议

思科实操#

PixPin_2025-10-13_10-24-39

  • 上面两台是汇聚交换机,下面是一台接入交换机
  • 所有接口配置都是中继模式
SW1
enable
configure terminal
# 同时配置e0/0、e0/1、e0/2,使用接口组模式进入
interface range ethernet 0/0 - 2
shutdown
switchport trunk encapsulation dot1q
switchport mode trunk
SW2
enable
configure terminal
interface range ethernet 0/0 - 2
shutdown
switchport trunk encapsulation dot1q
switchport mode trunk
SW3
enable
configure terminal
interface range ethernet 0/0 - 1
shutdown
switchport trunk encapsulation dot1q
switchport mode trunk

然后三台交换机同时no shutdown

SW3
# 启用快速每VLAN生成树
spanning-tree mode rapid-pvst
SW2
spanning-tree mode rapid-pvst
SW1
spanning-tree mode rapid-pvst
# SW1做主根桥
spanning-tree vlan 1-4094 root primary
SW2
# SW2做备份根桥
spanning-tree vlan 1-4094 root secondary

三台交换机都创建一个VLAN10

SW1&SW2&SW3
vlan 10

然后SW1查看VLAN进程show spanning-tree vlan 10,显示SW1为根桥,三个端口都为指定端口

PixPin_2025-10-12_18-09-29

SW2查看VLAN进程show spanning-tree vlan 10,可以发现连接SW1的链路,有一根是转发状态,另一根被阻塞了

PixPin_2025-10-12_18-09-55

现在开始做SW1和SW2间两条平行链路的捆绑

  1. SW1和SW2先进入这两个端口interface range ethernet 0/0 - 1

  2. 以太信道静态绑定指令:channel-group [组号] mode on,这里是绑定SW1和SW2,推荐组号使用12,在SW1和SW2都执行这条指令

    • 注意,如果后面不加mode on,在较新的Cisco IOS版本中,会被系统自动不全为channel-group 1 mode active,即使用动态LACP方式创建以太信道
  3. 使用show interfaces status查看状态,会发现已经多了一条以太信道的逻辑接口

    PixPin_2025-10-12_18-18-55

  4. 然后还需要进入以太信道的逻辑接口再配置一遍中继模式

    SW1&SW2
    interface port-channel 12
    switchport trunk encapsulation dot1q
    switchport mode trunk
  5. 验证以太信道状态show etherchannel summary

    PixPin_2025-10-12_18-35-29

    • S - Layer2:代表工作在二层
    • U - in use:代表逻辑接口Po12正在使用
    • P - bundled in port-channel:该物理接口已成功加入链路聚合组(Port-Channel),并且当前是活跃的成员端口
    • Protocol -:捆绑以太信道没有使用协议,所以协议这里是横杠
  6. 再次查看生成树状态show spanning-tree vlan 10,这个时候生成树就已经不关心物理接口e0/0e0/1了,而是直接关注这两个物理接口捆绑得到的以太信道的逻辑接口,只要这个生成的以太信道不被阻塞,里面的成员链路就可以正常参与到数据的转发

    PixPin_2025-10-12_18-46-30

    • Desg指定端口(DP):例如SW1作为根桥,SW1的Po12就是指定端口
    • root根端口(RP):SW2的Po12就是根端口,是非根桥交换机上通往根桥的最优路径端口
  7. 全局配置模式修改以太信道负载均衡,port-channel load-balance [模式]

  8. 查看当前负载均衡的算法:show etherchannel load-balance

    PixPin_2025-10-13_10-22-26

    • src-dst-ip:同时基于源目IP做负载均衡

华为实操#

  1. 先配置SW1和SW2的主机名

  2. 华为配置以太信道时和思科是不一样的,华为在配置以太信道前不能做中继

    SW1
    # 这里组号也用的12
    interface Eth-Trunk 12
    # 华为的静态链路聚合
    mode manual load-balance
    # 绑定方式一绑定成员端口
    trunkport GigabitEthernet 0/0/1 to 0/0/2
    # 配置中继
    port trunk allow-pass vlan all

    然后通过display this查看配置状态

  3. 华为想改以太信道的负载均衡方式需要在以太信道的逻辑接口配置模式去配置,load-balance [模式],华为默认就是静态链路聚合(思科默认是动态链路聚合)

  4. 配置SW2

    SW2
    interface Eth-Trunk 12
    mode manual load-balance
    # 另一种绑定端口的方式进入物理端口后添加该物理端口
    interface GigabitEthernet 0/0/1
    eth-trunk 12
    interface GigabitEthernet 0/0/2
    eth-trunk 12
    interface Eth-Trunk 12
    port link-type trunk
    port trunk allow-pass vlan all
  5. SW1和SW2分别创建VLAN10,vlan 10

  6. SW1和SW2都执行stp mode rstp

  7. 配置SW1为主根桥stp root primary

  8. 配置SW2为备份根桥stp root secondary

  9. 配置好后通过display eth-trunk 12验证

    PixPin_2025-10-13_10-39-16

  10. 通过display port vlan查看接口,G0/0/1和G0/0/2这两个物理接口已经看不出来状态了,只关心聚合成的Eth-Trunk12的状态

    PixPin_2025-10-13_11-18-36

  11. 然后通过display stp查看SW1的生成树状态

    PixPin_2025-10-13_11-20-30

  12. SW2的生成树状态

    PixPin_2025-10-13_11-22-22

CCNA项目7-链路聚合和高可用性技术
https://fuwari.cbba.top/posts/ccna项目7-链路聚合和高可用性技术/
作者
Chen_Feng
发布于
2025-10-13
许可协议
CC BY-NC-SA 4.0