CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
网络工程师入门/课时/交换与二层
RawBlame
课时目录12 节

网络工程师入门

  1. 01网络工程师是什么
  2. 02OSI 与 TCP/IP
  3. 03IP 寻址与子网
  4. 04网络设备
  5. 05路由协议
  6. 06交换与二层
  7. 07无线网络
  8. 08网络安全
  9. 09云网络与自动化
  10. 10排障与可观测
  11. 11认证与学习路径
  12. 12综合练习

交换与二层

STP、链路聚合、MAC 表。

30 分钟

交换与二层:VLAN、STP 与链路聚合

这一课你将能做到

  1. 在 Linux 上创建 VLAN 子接口并验证通信
  2. 讲清 STP 为什么存在、根桥怎么选、广播风暴长什么样
  3. 理解并配置链路聚合,说清它和 STP 的关系

为什么要学

二层是局域网的地基:VLAN 决定谁能和谁直接说话,STP 决定冗余链路怎么待命,聚合决定带宽和可靠性怎么叠加。K8s 网络插件里大量概念(bridge、veth、VLAN 模式)都来自二层。这一课把「同网段内到底发生了什么」讲透。二层还盛产「灵异故障」:时通时断、只有部分机器受影响,九成根因在这里,值得花一整课。

先建立图像

没有 VLAN:所有部门一个广播域
   [交换机]═══ PC-A(财务)  PC-B(研发)  PC-C(访客)  ← 互相都能"听见"ARP

有 VLAN:一台交换机切成几台逻辑交换机
   [交换机]
     ├─ VLAN10 财务: 192.168.10.0/24
     ├─ VLAN20 研发: 192.168.20.0/24
     └─ VLAN30 访客: 192.168.30.0/24
   VLAN 之间不互通,必须经过三层 → 天然的策略边界

Trunk:一条线携带多个 VLAN(802.1Q 打标签)
   交换机A ══ trunk ══ 交换机B   [VLAN10|VLAN20|VLAN30 都在里头]

跟着做

步骤 1:Linux 上创建 VLAN 子接口

sudo modprobe 8021q                                    # 加载 802.1Q 模块
sudo ip link add link eth0 name eth0.20 type vlan id 20
sudo ip addr add 192.168.20.5/24 dev eth0.20
sudo ip link set eth0.20 up
ip -d link show eth0.20        # 确认 vlan id 与状态

注意:对端交换机端口必须是 trunk 且放行 VLAN 20,否则带标签的帧进来就被丢。

步骤 2:理解 STP 的存在理由

为了冗余接两条线:
      [SW1]═══════[SW2]
        ║            ║      ← 没有环路控制 = 广播风暴:广播帧绕圈复制,
      [SW3]═══════[SW4]        交换机 CPU 拉满,几秒瘫痪全网
STP 的做法:逻辑上堵住一个端口(Blocking),主链路挂了再放开

真机命令(Cisco 风格):

show spanning-tree        # 根桥、本机角色、端口状态
show spanning-tree root   # 当前根桥

步骤 3:链路聚合(bonding)

两条 1G 线绑成一个 2G 逻辑口(LACP 协商):
  优点1:带宽叠加   优点2:单线故障不断流
  注意:聚合口被当成"一个口"参与 STP,不会被误杀

Linux 上:

sudo modprobe bonding
sudo ip link add bond0 type bond mode 802.3ad
sudo ip link set eth1 down && sudo ip link set eth2 down
sudo ip link set eth1 master bond0 && sudo ip link set eth2 master bond0
cat /proc/net/bonding/bond0    # 查看协商状态与成员口

步骤 4:排二层故障三板斧

ip neigh                # ARP 通不通(同网段第一现场)
bridge fdb show         # 本机桥接 MAC 表
ethtool eth0            # 协商速率 / 双工 / 链路状态

讲清楚要点

  1. VLAN 隔离的是广播域,不是安全域:真隔离要靠三层 ACL/防火墙;「VLAN 一划就安全」是常见误区。
  2. 802.1Q 标签 4 字节,插在源 MAC 之后,VLAN ID 12 位共 4094 个可用;Native VLAN 不打标签,两端不一致是经典故障。
  • STP 解决「要冗余但不能有环」的矛盾:代价是收敛时间(传统 STP 30-50 秒,RSTP 秒级,MSTP 还能按 VLAN 组做负载分担)。
  • 链路聚合的前提:两端同速率双工、同模式(LACP 对 LACP)、哈希一致;否则丢包或单活。
  • 二层故障特征:同网段不通但 IP/掩码都对 → 先查 VLAN 与端口模式,再查 MAC 表,最后查 ARP。
  • 二层安全基线:接入层开 DHCP Snooping(只信任上联口)防私接 DHCP,配 DAI(动态 ARP 检测)防 ARP 欺骗,再加端口安全限 MAC 数——三件套是企业网接入层的标配。
  • 你可能会懵的地方

    • 交换机怎么知道一个 MAC 在哪个口? 收到帧时把「源 MAC + 入端口」记进 CAM 表(学习);转发时查表,查不到就向本 VLAN 所有端口泛洪。

    • VLAN 之间怎么通信? 必须走三层:单臂路由、三层交换机 SVI 接口,或防火墙。这正是上一课路由内容的用武之地。

    • STP 把端口堵了,冗余不是白做了? 平时堵、故障时开,用「平时闲置」换「故障秒切」;MSTP 还能让不同 VLAN 组走不同链路,把闲置变成负载分担。

    • K8s 里也有这些概念吗? 有。CNI 的 bridge/VLAN 模式就是 Linux bridge + VLAN;同节点 Pod 通信是二层,跨节点靠路由;Service 的负载均衡是再上一层抽象。所以二层知识不是老古董,是看懂 CNI 报错日志的钥匙。

    • 端口安全是什么? 限制一个口能学到的 MAC 数量(如接 PC 的口只许 1 个),防私接小交换机与 MAC 仿冒,是接入层安全基线。

    错法对照

    错法问题正解
    两台交换机直连两条线不开 STP/聚合广播风暴全网瘫配 LACP 聚合,或确认 STP 生效
    两端 Native VLAN 不一致跨交换机同 VLAN 不通且难查统一 Native VLAN 或全部打标签
    用 VLAN 替代防火墙VLAN 间一路由就互通隔离靠三层策略,VLAN 只分域
    聚合两端一边 on 一边 LACP部分流量黑洞协议模式两端必须一致
    终端接入口配成 trunk带标签的帧终端收不了终端永远 access 口
    边缘端口不配 PortFast插网线要等 30 秒才通接终端的口开 PortFast 跳过收敛
    核心不手动指定 STP 根桥选举随机,拓扑不可控把核心优先级调小固定为根
    不开 DHCP Snooping私接路由器给终端发错误网关只信任上联口,压制接入侧 DHCP

    卡点急救

    1. VLAN 子接口配了不通:核对本端 ID 与对端 trunk 放行列表;tcpdump -i eth0 -e vlan 20 看帧是否带标签。
    2. 交换机 CPU 飙高、广播暴涨:疑似环路,看 STP 拓扑变化日志与各端口广播计数,先拔可疑线止血再查根因。
    3. 聚合带宽没翻倍:LACP 按流哈希,单条 TCP 流永远走一条线;用 iperf3 -c 服务器 -P 4 多流并发才测得出叠加,必要时抓包确认哈希是否把流分到了不同成员口。

    面试常问

    • STP 根桥选举规则? 比较桥 ID(优先级 + MAC),越小越优;根桥所有端口都是指定端口。生产上应手动把核心交换机优先级调小指定为根,避免选举随机。

    • Access 口和 Trunk 口的区别? Access 属于一个 VLAN、进出剥标签,接终端;Trunk 携带多 VLAN、打 802.1Q 标签,接交换机或虚拟化宿主机。

    • 链路聚合和 STP 什么关系? 聚合把多条线视为一个逻辑口,STP 以逻辑口为单位计算;聚合口要么整体转发要么整体阻塞——所以聚合既加带宽又不会被 STP 误杀。

    自测三问

    1. 同一台交换机上 VLAN10 的主机能给 VLAN20 发广播吗?
    2. STP 的端口角色有哪些?RSTP 快在哪?
    3. 为什么说「VLAN 划分不等于安全隔离」?

    小结一句话

    二层三件套:VLAN 分域、STP 防环、聚合加宽——一切为了「可扩展的可靠性」。

    延伸

    • IEEE 802.1Q 官方标准页
    • 下一课:无线网络——WiFi 标准、WPA3 与漫游。
    加载本节练习…
    ← 上一课路由协议下一课 →无线网络