4. 二层网络设计:交换机的角色、STP/RSTP/MSTP协议选择、链路聚合(LACP)配置思路

二层网络,说白了就是咱们局域网(LAN)的基石。交换机在这层扮演的角色,就是快速、准确地转发数据帧。但别小看这个“转发”,里面坑不少。我这些年排查过的网络故障,至少有一半跟二层环路、链路冗余设计不合理有关。

这一章,咱们就聊聊交换机在二层到底该干什么,以及怎么选生成树协议、怎么配链路聚合。嗯,都是实战里绕不开的东西。

4.1 交换机的核心角色:转发、过滤与学习

交换机不是傻傻地广播所有数据。它有三个基本动作:

  • 学习:记录每个端口收到的源MAC地址,建立MAC地址表。
  • 转发:查MAC表,知道目标MAC在哪个端口,就只往那个端口发。
  • 过滤:如果目标MAC和源MAC在同一个端口,直接丢弃,不浪费带宽。

我在项目里见过有人把交换机当Hub用,所有端口都在广播风暴里打转。为什么?因为MAC表被撑爆了,或者环路没处理好。所以,理解交换机的这三个动作,是设计二层网络的第一步。

关键指标:MAC地址表容量、转发延迟、背板带宽。选型时别只看端口数,这些参数决定了交换机能扛多大流量。

4.2 生成树协议:STP、RSTP、MSTP怎么选?

冗余链路是必须的,但环路是致命的。生成树协议(STP)就是用来打破环路的。不过,STP有三个版本,选错了会出大问题。

4.2.1 STP(802.1D)—— 老古董,但得懂

STP通过选举根桥、阻塞冗余端口来消除环路。收敛时间30-50秒。嗯,这个速度在今天看来,简直慢得让人抓狂。我记得有一次,一台核心交换机重启,整个网络等了快一分钟才恢复,业务部门电话都打爆了。

STP的五个状态:Blocking、Listening、Learning、Forwarding、Disabled。其中Listening和Learning各15秒,这就是慢的根源。

4.2.2 RSTP(802.1w)—— 快速收敛,默认首选

RSTP把状态缩减到三个:Discarding、Learning、Forwarding。收敛时间缩短到1-3秒。怎么做到的?它引入了边缘端口(Edge Port)和点到点链路的概念。说白了,就是让交换机“猜”得更准,不用傻等计时器。

我个人习惯,只要不是特别老的设备,一律用RSTP。它兼容STP,但性能好得多。

避坑指南:我曾经在接入层交换机上忘了配边缘端口,结果一台PC插拔网线,整个生成树重新计算,网络抖了3秒。配RSTP时,记得把连接终端的端口设成 spanning-tree portfast(思科)或 stp edged-port(华为)。

4.2.3 MSTP(802.1s)—— 多实例,适合大型网络

MSTP把多个VLAN映射到不同的生成树实例(Instance)里。每个实例独立计算拓扑,可以做负载均衡。比如VLAN 10走链路A,VLAN 20走链路B,互不干扰。

我建议,如果你的网络超过50台交换机,或者有多个VLAN需要做流量分担,直接上MSTP。但要注意,所有交换机上的MSTP域名和修订号必须一致,否则实例会乱套。

协议 收敛时间 VLAN支持 适用场景
STP 30-50秒 所有VLAN共用一棵树 小型网络、老旧设备
RSTP 1-3秒 所有VLAN共用一棵树 中小型网络、标准配置
MSTP 1-3秒 多实例,VLAN可分组 大型网络、多VLAN负载均衡

注意:MSTP的实例0(IST)必须包含所有VLAN,否则未映射的VLAN会被阻塞。我见过有人忘了配实例0,结果一堆VLAN不通,排查了半天。

4.3 链路聚合(LACP):把多条链路绑成一条

链路聚合,就是把多个物理端口捆绑成一个逻辑端口,增加带宽、提高可靠性。LACP(802.3ad)是标准协议,能自动协商聚合。

4.3.1 配置思路

  1. 创建聚合组:在交换机上创建一个Eth-Trunk(华为)或Port-Channel(思科)。
  2. 加入成员端口:把物理端口加进去。注意,成员端口的速率、双工模式、VLAN配置必须一致。
  3. 启用LACP:设置模式为Active(主动协商)或Passive(被动协商)。两端至少一端是Active。
  4. 检查状态:确认聚合组Up,成员端口都处于Selected状态。

举个例子,华为交换机上的配置:

interface Eth-Trunk 1
  port link-type trunk
  port trunk allow-pass vlan 10 20 30
  mode lacp-static
  #
interface GigabitEthernet0/0/1
  eth-trunk 1
interface GigabitEthernet0/0/2
  eth-trunk 1

思科交换机上的配置:

interface Port-channel 1
  switchport mode trunk
  switchport trunk allowed vlan 10,20,30
  spanning-tree portfast trunk
  #
interface GigabitEthernet0/1
  channel-group 1 mode active
interface GigabitEthernet0/2
  channel-group 1 mode active

个人经验:我习惯把LACP模式设成Active,这样两端都能主动发协商报文,收敛更快。另外,聚合组里最好用相同型号的板卡和线缆,否则可能出现成员端口状态不一致。

4.3.2 负载均衡算法

链路聚合不是简单的轮询,它根据哈希算法把流量分配到不同成员端口。常见算法有:

  • 基于源MAC
  • 基于目标MAC
  • 基于源IP+目标IP
  • 基于源IP+目标IP+端口号

我建议,如果是三层流量,用源IP+目标IP;如果是二层流量,用源MAC+目标MAC。选错了,可能导致某条链路撑爆,其他链路空闲。

4.4 知识结构图:二层网络设计核心逻辑

下面这张图,把交换机角色、生成树协议选择、链路聚合配置串起来了。你想想看,设计一个二层网络,其实就是这三件事:

二层网络设计核心逻辑 二层网络设计核心逻辑 交换机角色 转发 / 过滤 / 学习 生成树协议 链路聚合 (LACP) STP RSTP MSTP LACP 配置思路 设计要点 1. 交换机角色:MAC学习、转发、过滤是基础,MAC表容量决定规模。 2. 生成树协议:小型网络用RSTP,大型多VLAN网络用MSTP,老旧设备才用STP。 3. 链路聚合:LACP模式两端一致,成员端口配置一致,哈希算法按流量类型选。 4. 避坑:边缘端口、MSTP实例0、聚合组负载均衡,这三样最容易出问题。

4.5 实战避坑清单

最后,我把自己踩过的坑整理成清单,你配置的时候对照着检查:

  • 环路问题:STP/RSTP/MSTP必须启用,否则广播风暴会瞬间打垮网络。我曾经在测试环境忘了开STP,结果两台交换机互连,整个办公室断网10分钟。
  • 端口配置不一致:链路聚合的成员端口,速率、双工、VLAN必须一样。否则LACP协商失败,端口变成独立状态。
  • MSTP域名不统一:所有交换机的MSTP域名和修订号必须一致,否则实例计算会出错,导致部分VLAN不通。
  • 边缘端口漏配:连接PC、服务器的端口,记得配边缘端口(PortFast),否则设备插拔会触发生成树重新计算。
  • 负载均衡算法选错:二层流量用MAC哈希,三层流量用IP哈希。选错了,链路利用率不均。

一句话总结:二层网络设计,就是让交换机高效转发、让生成树打破环路、让链路聚合提升带宽。这三件事做好了,网络就稳了八成。