第14篇:广播域与冲突域:交换机 vs 集线器

关键词:广播域、冲突域、集线器、交换机、VLAN、CSMA/CD、半双工、全双工、广播风暴


一、引言

在网络基础面试中,"交换机和集线器的区别"是必考题。答案往往笼统地说"交换机隔离冲突域,集线器不隔离"。但这个答案没有触及本质:什么是广播域?什么是冲突域?为什么需要隔离它们?隔离后对网络性能有什么影响?本文将从底层原理出发,用直观的方式讲清楚这两个域的概念,以及交换机和集线器在处理数据帧时的本质差异。

二、核心概念

2.1 冲突域(Collision Domain)

冲突域是指在同一时间内,如果两个设备同时发送数据,会发生数据碰撞(冲突)的区域。

特性 说明
产生原因 共享介质上多个设备同时发送导致信号叠加
检测机制 CSMA/CD(载波监听多路访问/冲突检测)
影响 冲突导致帧损坏,需要重传,降低有效带宽
隔离方式 交换机的每个端口是一个独立的冲突域

2.2 广播域(Broadcast Domain)

广播域是指广播帧能够到达的所有设备的集合。

特性 说明
产生原因 目的 MAC 地址为 FF:FF:FF:FF:FF:FF 的帧被泛洪到所有端口
影响 广播过多占用带宽,严重时引发广播风暴
隔离方式 路由器(三层设备)隔离广播域;交换机通过 VLAN 隔离广播域
默认范围 一个未划 VLAN 的交换机所有端口属于同一广播域

2.3 集线器(Hub)的工作原理

集线器工作在物理层(OSI 第一层),对数据毫无认知。

行为 说明
收到帧 将信号放大后从所有其他端口转发
智能程度 无,不识别 MAC 地址、IP 地址、VLAN 标签
双工模式 半双工,同一时刻只能发送或接收
冲突域 所有端口在同一个冲突域
广播域 所有端口在同一个广播域

集线器(Hub)的工作原理 - 图示

2.4 交换机(Switch)的工作原理

交换机工作在数据链路层(OSI 第二层),能识别 MAC 地址。

行为 说明
学习 从入端口记录源 MAC 地址到 MAC 地址表
转发 查 MAC 地址表,单播帧从指定端口发出
泛洪 未知单播或广播帧从所有同 VLAN 端口发出
双工模式 全双工,可同时发送和接收
冲突域 每个端口是一个独立的冲突域
广播域 默认所有端口属于同一广播域,VLAN 可进一步划分

交换机(Switch)的工作原理 - 图示

三、技术细节

3.1 集线器 vs 交换机:域的隔离对比

维度 集线器(Hub) 交换机(Switch)
OSI 层级 物理层(L1) 数据链路层(L2)
冲突域数量 1 个(所有端口共享) N 个(每个端口 1 个)
广播域数量 1 个 1 个(未划 VLAN)/ 多个(划 VLAN)
转发方式 信号放大后转发到所有端口 查 MAC 表精准转发
带宽利用 共享带宽 独享带宽
双工模式 半双工 全双工
碰撞处理 CSMA/CD 退避重传 全双工无碰撞
当前应用 已基本淘汰 主流设备

3.2 VLAN 对广播域的隔离

交换机默认所有端口属于同一个广播域。通过 VLAN,一个交换机可以划分成多个独立的广播域。

配置前 配置后
所有端口在 VLAN 1 VLAN 10、VLAN 20、VLAN 30 各自独立
广播帧到达所有端口 广播帧只在同 VLAN 内泛洪
一台终端广播影响全网 广播被限制在所属 VLAN 内

数值示例:假设一台 24 口交换机,12 台 PC 在 VLAN 10,12 台 PC 在 VLAN 20。

指标 不分 VLAN 划分 VLAN 后
广播域数量 1 个(24 台 PC) 2 个(各 12 台 PC)
冲突域数量 24 个 24 个(不变)
单次广播影响范围 24 台 PC 12 台 PC
ARP 泛洪影响 全部 24 台 仅同 VLAN 12 台

3.3 CSMA/CD 与全双工

模式 CSMA/CD 说明
半双工 需要 同一时刻只能发送或接收,需要检测冲突
全双工 不需要 同时收发,点对点专用链路,不会冲突

现代以太网交换机端口均为全双工,CSMA/CD 已被淘汰。但在理解冲突域的概念时,仍需了解 CSMA/CD 的历史背景。

3.4 路由器隔离广播域

设备 隔离冲突域 隔离广播域 说明
集线器 否 否 所有端口共享同一冲突域和广播域
交换机 是(每端口) 否(默认) 每端口独立冲突域,广播域需 VLAN 划分
路由器 是(每端口) 是(每接口) 每个接口独立冲突域和广播域

四、实战配置/案例分析

4.1 案例一:通过抓包观察广播域范围

实验场景:验证 VLAN 划分前后广播域的变化。

# ========== 划分 VLAN 前 ==========
# 交换机所有端口在 VLAN 1
# PC1(GE0/0/1)ping 一个不存在的 IP 192.168.1.200
# PC1 发送 ARP 请求,目的 MAC = FF:FF:FF:FF:FF:FF

# 在 GE0/0/24 端口抓包,结果:
# 能看到 PC1 发出的 ARP 请求 → 广播到达所有端口

# ========== 划分 VLAN 后 ==========
# GE0/0/1 加入 VLAN 10,GE0/0/24 加入 VLAN 20
[SW] interface GigabitEthernet 0/0/1
[SW-GigabitEthernet0/0/1] port link-type access
[SW-GigabitEthernet0/0/1] port default vlan 10
[SW-GigabitEthernet0/0/1] quit

[SW] interface GigabitEthernet 0/0/24
[SW-GigabitEthernet0/0/24] port link-type access
[SW-GigabitEthernet0/0/24] port default vlan 20
[SW-GigabitEthernet0/0/24] quit

# PC1 再发送 ARP 请求
# 在 GE0/0/24 端口抓包,结果:
# 看不到 PC1 发出的 ARP 请求 → 广播被 VLAN 隔离

4.2 案例二:广播异常现象与排查

故障描述:某办公楼网络突然变慢,所有终端无法正常上网,交换机 CPU 利用率接近 100%。

排查过程:

# 步骤1:检查交换机 CPU
<HUAWEI> display cpu-usage
  CPU Usage: 95%            ← 异常高

# 步骤2:检查接口统计
<HUAWEI> display interface GigabitEthernet 0/0/1
  Input:
    Broadcast packets: 1250000    ← 广播包数量异常大且快速增加
    Multicast packets: 850000
  Output:
    Broadcast packets: 1180000

# 步骤3:定位广播源
# 通过端口逐段关闭排查,发现关闭 GE0/0/8 后广播包骤降
# GE0/0/8 下接的 PC 中了病毒,不断发送广播包

# 临时处理:关闭端口
[HUAWEI] interface GigabitEthernet 0/0/8
[HUAWEI-GigabitEthernet0/0/8] shutdown
[HUAWEI-GigabitEthernet0/0/8] quit

# 永久措施:
# 1. 划分 VLAN 限制广播范围
# 2. 配置广播风暴抑制
[HUAWEI] interface GigabitEthernet 0/0/8
[HUAWEI-GigabitEthernet0/0/8] storm-control broadcast min-rate 1000 max-rate 10000
[HUAWEI-GigabitEthernet0/0/8] quit
# # 当广播流量超过 10000 pps 时开始抑制(限速),低于 1000 pps 时停止抑制(防震荡)

4.3 案例三:交换机端口数量与域的数量

问题:一台 48 口交换机,配置了 4 个 VLAN(VLAN 10/20/30/40),每个 VLAN 各 12 个端口。请问有多少个冲突域和广播域?

域类型 数量 计算方式
冲突域 48 个 每个端口 1 个冲突域 = 48
广播域 4 个 每个 VLAN 1 个广播域 = 4

4.4 案例四:广播风暴抑制配置

# ========== 在接口视图下配置风暴抑制(推荐) ==========
[HUAWEI] interface GigabitEthernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] storm-control broadcast min-rate 1000 max-rate 10000
[HUAWEI-GigabitEthernet0/0/1] storm-control multicast min-rate 500 max-rate 5000
[HUAWEI-GigabitEthernet0/0/1] storm-control unknown-unicast min-rate 500 max-rate 5000
[HUAWEI-GigabitEthernet0/0/1] quit

# ========== 查看风暴抑制状态 ==========
<HUAWEI> display storm-control interface GigabitEthernet 0/0/1
  GigabitEthernet0/0/1:
    Broadcast       : [1000, 10000] pps   (Suppressed: 15000 packets)
    Multicast       : [500, 5000] pps     (Suppressed: 0 packets)
    Unknown-Unicast : [500, 5000] pps     (Suppressed: 0 packets)

注意:风暴抑制通常在接口视图下逐端口配置;不同 VRP 版本对 min-rate/max-range 与 threshold 两种语法的支持情况不同,建议以实际设备版本的手册为准。

五、总结

概念 定义 隔离设备
冲突域 同一时间两个设备发送会冲突的区域 交换机(每端口)
广播域 广播帧能到达的所有设备集合 路由器(每接口)、交换机(每 VLAN)
设备 冲突域 广播域 典型应用
集线器 1 个(全共享) 1 个 已淘汰
交换机(无 VLAN) N 个(每端口) 1 个 小型网络
交换机(有 VLAN) N 个(每端口) V 个(每 VLAN) 主流方案
路由器 N 个(每接口) N 个(每接口) 跨网段互联
排错要点 对应命令
广播包数量异常 display interface X 查看 Broadcast packets
CPU 利用率异常 display cpu-usage
VLAN 划分是否生效 display vlan / display port vlan X
风暴抑制是否生效 display storm-control interface X

思考

  1. 如果一台 24 口交换机没有配置任何 VLAN(所有端口在默认 VLAN 1),连接了 24 台 PC,有多少个冲突域?多少个广播域?
  2. 为什么在万兆以太网(10Gbps)中,不再使用 CSMA/CD?
  3. 如果一个 VLAN 内的终端数量从 10 台增加到 1000 台,广播域的大小变化会对网络产生什么影响?有什么解决方案?

下篇预告:第15篇:环路是怎么产生的:一次广播风暴故障实录