日常更新笔记+不再推送日记

This commit is contained in:
2026-06-27 22:29:38 +08:00
parent 0292147403
commit a7132b4779
21 changed files with 1243 additions and 37 deletions
@@ -0,0 +1,170 @@
# DHCP Snooping
## DHCP Snooping 是什么
DHCP Snooping 是一种二层安全技术,用来防止非法 DHCP 服务器向终端错误分配地址。
可以简单理解为:
交换机帮我们“盯住 DHCP 报文”,只允许可信任的 DHCP 服务器方向终端分配地址,其他不可信端口发来的 DHCP 服务器报文会被拦截。
## 作用
DHCP Snooping 的核心作用是:
- 防止私接 DHCP 服务器
- 防止终端拿到错误的 IP、网关、DNS
- 建立 DHCP Snooping 绑定表
- 为后续安全特性提供基础,例如动态 ARP 防护等
## 信任端口与非信任端口
### 信任端口 Trusted Port
通常连接:
- 正常 DHCP 服务器
- 上联交换机
- 汇聚层或核心层方向
信任端口允许转发 DHCP 服务器发出的报文。
### 非信任端口 Untrusted Port
通常连接:
- PC
- 打印机
- 普通终端
- 接入层用户口
非信任端口默认不应该发送 DHCP 服务器报文。如果发送,交换机会进行拦截。
## 工作思路
DHCP Snooping 的常见工作过程可以理解为:
1. 客户端从非信任端口发出 DHCP Discover
2. 报文可以正常向上转发
3. 真实 DHCP 服务器从信任端口返回 DHCP Offer / ACK
4. 交换机允许这些来自信任端口的服务器报文下发给客户端
5. 交换机根据合法分配结果生成绑定表,记录 IP、MAC、VLAN、接口等信息
## 典型应用场景
- 接入层用户网络
- 宿舍网
- 办公网
- 访客网络
这类场景里,最怕的是用户私接一个无线路由器或小型 DHCP 服务设备,导致别人拿到错误地址。
## 基本配置思路
DHCP Snooping 的常见配置思路是:
1. 全局启用 DHCP Snooping
2. 在相关 VLAN 上启用 DHCP Snooping
3. 把上联口或服务器口设为信任端口
4. 用户接入口保持为非信任端口
5. 按需要限制 DHCP 报文速率
6. 检查 DHCP Snooping 绑定表是否正常生成
## 常见问题
### 1. 为什么客户端获取不到地址
常见原因有:
- 没有在对应 VLAN 启用 DHCP Snooping
- DHCP 服务器所在接口没设为信任端口
- 报文速率限制过严
- 上联链路或中继配置本身有问题
### 2. 为什么要区分信任端口和非信任端口
因为 DHCP Snooping 的核心就是:
- 允许可信来源下发地址
- 拦截不可信来源冒充 DHCP 服务器
### 3. DHCP Snooping 能不能防所有 DHCP 问题
不能。
它主要防的是“非法 DHCP 服务器”问题,不是所有 DHCP 故障都能靠它解决。
## 一句话理解
- **DHCP Snooping 就是“只信任指定接口发来的 DHCP 服务器报文”**
- **它的重点是防止假 DHCP 服务器捣乱**
## 常见厂商命令
### 华为
不同型号和版本命令可能略有差异,常见思路如下:
全局启用 DHCP
```bash
dhcp enable
```
启用 DHCP Snooping
```bash
dhcp snooping enable
```
在接口下配置为信任端口:
```bash
interface GigabitEthernet 0/0/24
dhcp snooping trusted
```
查看配置:
```bash
display current-configuration
```
### 思科 Cisco
全局启用 DHCP Snooping
```bash
ip dhcp snooping
```
在指定 VLAN 启用:
```bash
ip dhcp snooping vlan 10
```
把上联口设为信任端口:
```bash
interface gigabitEthernet 0/24
ip dhcp snooping trust
```
限制 DHCP 报文速率:
```bash
ip dhcp snooping limit rate 20
```
查看 DHCP Snooping 状态:
```bash
show ip dhcp snooping
```
查看绑定表:
```bash
show ip dhcp snooping binding
```
## 复习时容易写错的点
- DHCP Snooping 不是 DHCP 服务本身,而是 DHCP 的安全控制技术
- 重点不是“禁止 DHCP”,而是“只允许可信来源发放地址”
- 用户接入口通常是非信任端口,上联口或服务器口通常是信任端口
- DHCP Snooping 生成的绑定表很重要,后续很多安全功能会用到它
@@ -1,7 +1,198 @@
标题三个都是属于生成树协议
实际生产中无需太关心生成树的算法,知道效果即可
厂商默认的设备在机器芯片算力足够的情况下都是开启的
# STP、RSTP、MSTP
主要是作用是防止回环/广播风暴,当遇到链路某个节点疯狂转发相同包时,对包的转发请求进行丢弃
## 作用
配置流程大概是开启相关生成树协议,指定边缘端口edge和根端口root,保护根端口
STP、RSTP、MSTP 都属于生成树协议,核心作用是:
- 防止二层网络中因为冗余链路产生环路
- 避免广播风暴
- 避免 MAC 地址表震荡
- 在保证无环的前提下保留链路冗余
可以简单理解为:
二层交换网络为了防止单点故障,常常会接入冗余链路,但冗余链路一多,就可能形成环路。生成树协议会从逻辑上阻塞部分端口,让网络形成一棵无环的树;当主链路故障时,再让备用链路接管转发。
## 基本概念
### 1. 根桥 Root Bridge
生成树会先选出一台交换机作为根桥,整张网络的拓扑计算都围绕根桥进行。
### 2. 根端口 Root Port
每台非根桥交换机都会选出一个到根桥路径最优的端口,称为根端口。
### 3. 指定端口 Designated Port
每个网段都会选出一个负责向该网段转发数据的端口,称为指定端口。
### 4. 阻塞端口
如果某个端口既不是根端口,也不是指定端口,通常就会被阻塞,从而避免环路。
## STP 的工作思路
STP 的大致流程可以概括为:
1. 先选举根桥
2. 每台非根桥交换机选举根端口
3. 每个网段选举指定端口
4. 其余不参与转发的端口进入阻塞状态
这样就能在物理上有环、逻辑上无环。
## STP、RSTP、MSTP 的区别
### STP
STP 是最基础的生成树协议,优点是原理清晰,缺点是收敛速度较慢。
### RSTP
RSTP 是快速生成树协议,相比 STP,收敛速度更快,链路切换也更快,更适合实际网络使用。
### MSTP
MSTP 是多生成树协议,可以把不同 VLAN 映射到不同生成树实例,让不同业务走不同链路,从而更好地利用冗余带宽。
可以简单记成:
- STP:基础版
- RSTP:快速版
- MSTP:可按实例划分、适合多 VLAN 场景
## 常见理解误区
### 1. 生成树不是“丢弃重复包”
生成树的重点不是发现某个包重复后再丢弃,而是提前通过阻塞端口避免二层环路形成。
### 2. 不是“手工指定根端口”
实际配置里,一般是通过调整桥优先级来影响根桥选举,通过调整路径开销等方式影响端口角色,而不是直接简单写成“手工指定根端口”。
### 3. 不是算力够就默认都开
不同厂商、不同型号、不同系统版本的默认行为可能不完全一样。复习时更稳妥的说法是:
- 生成树功能在交换网络中非常常见
- 是否默认开启,要以具体厂商设备为准
## 常见保护特性
### 边缘端口 Edge Port
连接终端主机的端口一般可以配置为边缘端口,这样端口能够更快进入转发状态。
### 根保护 Root Protection
用于防止接入层或下游设备错误地抢占根桥位置,保证预期的根桥不被替换。
### BPDU 保护
一般用于边缘端口。当边缘端口意外收到 BPDU 时,设备可以采取保护动作,防止网络拓扑异常。
### 环路保护 Loop Protection
用于降低某些异常场景下端口错误切换带来的风险。
## 一句话理解
- **生成树的本质是“阻塞冗余链路中的一部分端口,避免二层环路”**
- **RSTP 比 STP 收敛更快**
- **MSTP 适合多 VLAN 场景**
## 常见厂商命令
### 华为
查看生成树状态:
```bash
display stp
```
查看某接口生成树状态:
```bash
display stp interface GigabitEthernet 0/0/1
```
查看 MSTP 配置:
```bash
display stp region-configuration
```
开启 STP
```bash
stp enable
```
把交换机优先级调低,提升其成为根桥的概率:
```bash
stp priority 4096
```
把接口配置为边缘端口:
```bash
stp edged-port enable
```
配置根保护:
```bash
stp root-protection
```
### 思科 Cisco
查看生成树状态:
```bash
show spanning-tree
```
查看某 VLAN 的生成树信息:
```bash
show spanning-tree vlan 10
```
查看某接口生成树状态:
```bash
show spanning-tree interface gigabitEthernet 0/1
```
启用快速生成树:
```bash
spanning-tree mode rapid-pvst
```
把交换机设为根桥优先:
```bash
spanning-tree vlan 10 root primary
```
把接入口设为边缘端口:
```bash
spanning-tree portfast
```
启用 BPDU Guard
```bash
spanning-tree bpduguard enable
```
## 复习时容易写错的点
- 生成树的核心是“防环”,不是“包重复了再丢弃”
- 根桥是选举出来的,根端口和指定端口也是计算出来的
- MSTP 不是单纯“更高级的 STP”,它的重要特点是支持多实例
- 是否默认开启生成树,要看具体厂商和设备型号,不要写得太绝对
@@ -1,9 +1,180 @@
这是VLAN的三个配置
Access:通常对应终端例如PC、打印机
Trunk:通常对应交换机之间的链路
Hybrid:同时兼顾Access和Trunk的功能,应用场景较少
# Access、Trunk、Hybrid
关于VLAN TAG
Access:接收时根据接口配置打VLAN TAG,发送时剥离VLAN TAG
Trunk:对于没有VLAN TAG的,打上Native Vlan TAG,对于不允许放行的,接收或发送时丢弃
Hybrid:自定义哪些VLAN打TAG,哪些VLAN不打TAG
## 三种接口模式的作用
这三种模式本质上是交换机接口在 VLAN 场景下的工作方式。
它们分别解决的问题是:
- Access:接口主要属于一个 VLAN,常用于接终端
- Trunk:接口可以传递多个 VLAN,常用于交换机之间互联
- Hybrid:接口也可以传递多个 VLAN,并且能灵活控制哪些报文带 Tag、哪些不带 Tag
## Access
Access 接口通常连接:
- PC
- 打印机
- 摄像头
- 普通服务器接入口
特点:
- 一般只属于一个 VLAN
- 接收无 Tag 报文时,会把它归入该接口所属 VLAN
- 发送给终端时,通常发送无 Tag 报文
可以简单理解为:
Access 口主要是“给普通终端用的端口”。
## Trunk
Trunk 接口通常连接:
- 交换机与交换机
- 交换机与路由器
- 交换机与三层交换机
- 交换机与需要承载多个 VLAN 的设备
特点:
- 可以允许多个 VLAN 通过
- 发送报文时,通常会保留 VLAN Tag
- 对于某些厂商设备,特定 VLAN 的报文可以不带 Tag 发送,这通常与缺省 VLAN 或 Native VLAN 相关
可以简单理解为:
Trunk 口主要是“在一条链路上同时传多个 VLAN 的流量”。
## Hybrid
Hybrid 接口常见于华为等厂商设备。
特点:
- 也可以通过多个 VLAN
- 可以灵活指定哪些 VLAN 报文带 Tag,哪些 VLAN 报文不带 Tag
- 功能比 Access 和 Trunk 更灵活
应用场景:
- 一些需要同时承载多 VLAN,又希望部分流量以无 Tag 形式收发的场景
## Tag 的基本理解
VLAN Tag 可以理解为二层帧里携带的 VLAN 标识信息。
它的作用是让交换设备知道:
- 这个报文属于哪个 VLAN
## 三种模式下对 Tag 的常见处理
### Access
- 接收无 Tag 报文:归入接口所属 VLAN
- 发送报文给终端:通常去掉 Tag 再发送
### Trunk
- 可以传递多个 VLAN 的流量
- 一般情况下,允许通过的 VLAN 报文会被转发
- 是否带 Tag 发送,要结合厂商实现和缺省 VLAN/Native VLAN 的规则理解
### Hybrid
- 可同时处理多个 VLAN
- 可以手工指定某些 VLAN 报文带 Tag,某些 VLAN 报文不带 Tag
## PVID 的理解
PVID 可以理解为接口收到 **无 Tag 报文** 时,默认把它划入哪个 VLAN。
复习时常见理解:
- Access 口收到无 Tag 报文,通常归入自己的 PVID
- Trunk 口收到无 Tag 报文,也会按 PVID 处理
- Hybrid 口收到无 Tag 报文,同样与 PVID 有关
## 一句话总结
- **Access:一般给终端,一个口通常进一个 VLAN**
- **Trunk:一条链路传多个 VLAN**
- **Hybrid:更灵活,可自定义 Tag 与 Untag 行为**
## 常见厂商命令
### 华为
进入接口:
```bash
interface GigabitEthernet 0/0/1
```
配置 Access
```bash
port link-type access
port default vlan 10
```
配置 Trunk
```bash
port link-type trunk
port trunk allow-pass vlan 10 20 30
```
配置 Hybrid
```bash
port link-type hybrid
port hybrid tagged vlan 10 20
port hybrid untagged vlan 30
```
查看接口 VLAN 信息:
```bash
display port vlan
```
### 思科 Cisco
进入接口:
```bash
interface gigabitEthernet 0/1
```
配置 Access
```bash
switchport mode access
switchport access vlan 10
```
配置 Trunk
```bash
switchport mode trunk
switchport trunk allowed vlan 10,20,30
```
配置 Native VLAN
```bash
switchport trunk native vlan 10
```
查看 VLAN
```bash
show vlan brief
```
查看 Trunk
```bash
show interfaces trunk
```
## 复习时容易写错的点
- Access、Trunk、Hybrid 不是“VLAN 的三个协议”,而是接口的三种常见工作模式
- VLAN Tag 的处理不能写得太绝对,尤其是 Trunk 口是否带 Tag,最好结合厂商规则理解
- Hybrid 在华为设备里比较常见,Cisco 常见讨论里更多是 Access 和 Trunk
@@ -1,3 +1,110 @@
Vlan协议是最常用的协议
主要用来隔离业务逻辑或减少广播区域的作用
用VLAN号来区别不同的区域
# VLAN
## VLAN 是什么
VLAN 不是严格意义上的“一个协议”,更准确地说,它是一种 **二层网络划分技术**
VLAN 的核心作用是:
- 划分广播域
- 隔离不同业务
- 提高网络管理灵活性
- 降低广播流量对整网的影响
可以简单理解为:
即使多台主机接在同一台交换机上,也可以通过划分不同 VLAN,把它们逻辑上分到不同网络中。这样不同 VLAN 之间默认不能直接二层通信。
## 为什么要用 VLAN
如果交换机不划分 VLAN,那么默认情况下,同一交换网络中的广播报文会在较大范围内传播。
使用 VLAN 后,可以带来这些好处:
- 不同部门或业务可以隔离
- 广播域变小,广播报文影响范围更小
- 网络结构更清晰
- 后续做三层网关、ACL、策略控制时更方便
## VLAN 的基本特点
- 每个 VLAN 用一个 VLAN ID 来区分
- 不同 VLAN 属于不同的广播域
- 同一 VLAN 内的主机可以直接二层通信
- 不同 VLAN 之间默认不能直接通信
- 如果不同 VLAN 之间要通信,通常需要通过三层设备或 VLANIF 接口
## 默认 VLAN
很多交换机出厂后都会有默认 VLAN,常见是 VLAN 1。
复习时要注意:
- 默认 VLAN 的存在很常见
- 但生产环境中不建议过度依赖默认 VLAN
- 不同厂商设备的默认行为和最佳实践可能有差异
## VLAN 的通信规律
### 同一 VLAN 内
主机可以进行二层通信。
### 不同 VLAN 之间
默认不能直接二层通信。
如果要通信,需要借助:
- 路由器
- 三层交换机
- VLANIF 接口
## 一句话理解
- **VLAN 的本质是“把一个物理交换网络逻辑划分成多个广播域”**
- **同 VLAN 可二层通信,不同 VLAN 默认不能直接通信**
## 常见厂商命令
### 华为
创建 VLAN
```bash
vlan 10
```
查看 VLAN
```bash
display vlan
```
查看 VLAN 10 详细信息:
```bash
display vlan 10
```
### 思科 Cisco
创建 VLAN
```bash
vlan 10
```
查看 VLAN
```bash
show vlan brief
```
查看 Trunk 相关信息:
```bash
show interfaces trunk
```
## 复习时容易写错的点
- VLAN 更准确地说是一种二层划分技术,不建议直接写成“VLAN 协议”
- VLAN 的核心作用是划分广播域,不只是“隔离业务逻辑”
- 不同 VLAN 之间默认不能通信,如果要互通,需要三层转发
@@ -0,0 +1,125 @@
# 端口隔离
## 端口隔离是什么
端口隔离是一种二层隔离技术,用来限制同一交换机上某些端口之间的直接通信。
可以简单理解为:
这些主机虽然接在同一台交换机上,甚至可能属于同一个 VLAN,但彼此之间不能直接互访,只能按照既定方向访问网关、上联口或服务器。
## 作用
端口隔离的核心作用是:
- 防止同一接入网内终端之间互相访问
- 提高接入层安全性
- 减少内网横向传播风险
- 适合“用户彼此隔离,但都要能上网”的场景
## 典型应用场景
- 宿舍网
- 酒店网络
- 访客网络
- 同一楼层大量接入终端的园区网络
这类场景的常见需求是:
- 终端之间不要互通
- 终端可以访问默认网关
- 终端可以访问上联网络或互联网
## 与 VLAN 的区别
VLAN 和端口隔离都能起到一定的隔离作用,但思路不同。
### VLAN
- 主要用于划分广播域
- 不同 VLAN 默认不能直接二层通信
- 更适合从网络逻辑分区的角度做隔离
### 端口隔离
- 主要用于限制端口之间的互访
- 常常发生在同一个 VLAN 内
- 更适合做“同网段用户彼此不能访问”的控制
一句话理解:
- **VLAN 更像是“分小区”**
- **端口隔离更像是“同小区里住户彼此不开门”**
## 工作思路
端口隔离的常见思路是:
1. 把多个接入口加入同一个隔离组
2. 同组端口之间禁止二层互通
3. 上联口或网关口通常不做同样限制
4. 终端仍可通过上联口访问外部网络
## 常见问题
### 1. 端口隔离后是不是完全不能通信
不是。
一般是“同组接入口之间不能直接互通”,但到上联口、网关口的通信通常仍然允许,否则用户也无法正常上网。
### 2. 端口隔离能不能代替 VLAN
不能完全代替。
VLAN 解决的是广播域划分问题,端口隔离解决的是端口互访限制问题,两者作用层面不同。
### 3. 端口隔离能不能代替 ACL
也不能完全代替。
端口隔离偏二层控制,ACL 更偏三层、四层的精细匹配控制。
## 一句话理解
- **端口隔离的重点是“同一接入网络里的终端彼此不能直接访问”**
- **它常与 VLAN 配合使用,而不是互相替代**
## 常见厂商命令
### 华为
常见写法:
```bash
interface GigabitEthernet 0/0/1
port-isolate enable group 1
```
把多个接入口加入同一隔离组后,这些端口之间通常不能直接互访。
查看配置:
```bash
display current-configuration interface GigabitEthernet 0/0/1
```
### 思科 Cisco
Cisco 常见对应思路是使用 Protected Port
```bash
interface gigabitEthernet 0/1
switchport mode access
switchport protected
```
查看接口交换属性:
```bash
show interfaces switchport
```
## 复习时容易写错的点
- 端口隔离不等于 VLAN
- 端口隔离常常发生在同一 VLAN 内
- 端口隔离不是“全断”,通常仍允许终端访问上联口或网关
- Cisco 常见叫法更多是 `protected port`,华为常见直接讲 `端口隔离`
@@ -1,3 +1,183 @@
通常用于链路带宽不足够的时候
# 聚合链路
可以将两条物理链路在逻辑上汇聚成一条逻辑链路,起到增大带宽/提高可靠性的作用
## 聚合链路是什么
聚合链路也常叫 **链路聚合**,是指把多条物理链路在逻辑上捆绑成一条链路来使用。
它的核心作用是:
- 提高链路带宽
- 提高链路可靠性
- 在一定程度上实现负载分担
可以简单理解为:
原来一条链路承担业务,现在把多条物理链路组合成一个逻辑接口,对上层看来就像一条更大的链路。
## 为什么要用聚合链路
如果只有一条上联链路,可能会遇到两个问题:
- 带宽不够
- 单链路故障后业务中断
使用聚合链路后:
- 多条链路可以一起承载流量
- 某一条成员链路故障时,其余链路仍可继续工作
- 网络可用性更高
## 基本特点
- 聚合链路由多条物理接口组成
- 对外表现为一个逻辑接口
- 成员接口需要满足一定的一致性要求
- 流量通常不会对单个会话做逐包乱序转发,而是按照一定规则分担到不同成员链路
## 聚合链路的常见方式
### 1. 手工聚合
手工把多个接口加入同一个聚合组,适合简单场景。
### 2. LACP
LACP 是链路聚合控制协议,用于动态协商链路聚合。
它的特点是:
- 自动协商成员链路
- 有助于提高配置一致性和稳定性
- 在实际网络中很常见
## 聚合链路的作用
### 1. 增大带宽
多条物理链路共同承载流量,整体可用带宽提升。
### 2. 提高可靠性
某条物理链路故障时,只要还有其他成员链路正常,逻辑链路一般还能继续工作。
### 3. 简化管理
多条物理链路对外看成一个逻辑接口,配置和管理更统一。
## 常见理解误区
### 1. 聚合后单个会话带宽一定翻倍
不一定。
链路聚合通常是基于源 MAC、目的 MAC、源 IP、目的 IP、端口号等字段做负载分担。多个会话整体吞吐量可能增加,但单个会话未必能把所有成员链路带宽都用满。
### 2. 任意接口都能直接聚合
不行。
成员接口通常要满足一些基本一致性要求,例如:
- 接口速率一致
- 双工模式一致
- 二层属性一致
- 允许通过的 VLAN 等配置一致
### 3. 聚合链路能完全替代生成树
不能这么理解。
聚合链路可以减少并行链路带来的管理复杂度,但二层冗余网络里仍可能需要生成树参与整体防环。
## 聚合链路与 VLAN、STP 的关系
### 与 VLAN 的关系
聚合链路本身可以作为 Access、Trunk 或其他类型逻辑接口使用,常见于承载多个 VLAN 的上联链路。
### 与 STP 的关系
如果多条物理链路已经成功加入同一个聚合组,那么生成树通常把这组链路当作一个逻辑链路来看待,而不是把每条成员链路单独看待。
## 一句话理解
- **链路聚合就是“多条物理链路合成一条逻辑链路”**
- **主要目的是提带宽、保可靠**
- **LACP 是常见的动态聚合方式**
## 常见厂商命令
### 华为
创建 Eth-Trunk
```bash
interface Eth-Trunk 1
```
把物理接口加入聚合组:
```bash
interface GigabitEthernet 0/0/1
eth-trunk 1
```
查看聚合链路信息:
```bash
display eth-trunk 1
```
查看聚合摘要:
```bash
display trunkmembership eth-trunk 1
```
配置 LACP 模式:
```bash
interface Eth-Trunk 1
mode lacp-static
```
### 思科 Cisco
创建聚合口:
```bash
interface port-channel 1
```
把接口加入聚合组:
```bash
interface range gigabitEthernet 0/1 - 2
channel-group 1 mode active
```
查看 EtherChannel 摘要:
```bash
show etherchannel summary
```
查看聚合口信息:
```bash
show interfaces port-channel 1
```
常见模式:
```bash
channel-group 1 mode on
channel-group 1 mode active
channel-group 1 mode passive
```
其中常见理解:
- `on`:手工聚合
- `active/passive`LACP
## 复习时容易写错的点
- 聚合链路不只是“带宽不够时才用”,它还有提高可靠性的作用
- 聚合后看到的是逻辑接口,不是多条链路各自独立工作
- 单流量不一定能跑满所有成员链路
- 成员接口配置必须匹配,否则可能无法成功聚合
@@ -0,0 +1,136 @@
# 风暴抑制
## 风暴抑制是什么
风暴抑制是一种二层流量控制技术,用来限制某类异常报文在接口上的速率,防止它们过多占用带宽和设备资源。
它不是“完全不让报文通过”,而是:
- 当某类流量超过阈值时进行限制
- 让网络不至于因为异常流量被拖垮
## 作用
风暴抑制的核心作用是:
- 抑制广播风暴
- 抑制组播风暴
- 抑制未知单播风暴
- 保护交换机 CPU、接口带宽和整网稳定性
## 广播风暴、组播风暴、未知单播风暴
### 广播风暴
网络中广播报文过多,导致大量端口都被广播流量占满。
常见原因:
- 二层环路
- 主机异常发送广播
- 某些协议报文大量泛滥
### 组播风暴
组播报文过多,影响正常业务转发。
### 未知单播风暴
交换机查不到目的 MAC 时,会对报文进行泛洪。如果这类报文太多,也会造成资源浪费。
## 常见触发场景
- 二层网络出现环路
- 接入口接入异常设备
- 病毒、木马或异常程序不断发包
- 主机网卡故障
- 接口配置错误导致报文泛洪
## 基本配置思路
风暴抑制的常见思路是:
1. 识别要限制的流量类型
2. 在接口上设置阈值
3. 当流量超过阈值时进行丢弃、限速或保护动作
4. 再结合生成树、端口安全等手段一起做整体防护
## 常见问题
### 1. 风暴抑制能不能解决环路根因
不能。
风暴抑制更多是在“出问题时减轻损害”,真正解决二层环路,还是要靠生成树等机制。
### 2. 阈值是不是越小越安全
不是。
阈值过小可能会误伤正常业务,导致广播、组播等合法流量也被限制。
### 3. 为什么要限制未知单播
因为未知单播会被泛洪。如果大量出现,也会像广播一样占用交换网络资源。
## 一句话理解
- **风暴抑制的本质是“限制异常二层流量速率,防止网络被打满”**
- **它是缓解手段,不是根治环路的核心手段**
## 常见厂商命令
### 华为
不同型号和版本命令可能略有差异,常见思路是在接口下限制广播、组播、未知单播流量。
常见写法示例:
```bash
interface GigabitEthernet 0/0/1
storm-constrain broadcast cir 1000
storm-constrain multicast cir 1000
storm-constrain unknown-unicast cir 1000
```
查看接口配置:
```bash
display current-configuration interface GigabitEthernet 0/0/1
```
### 思科 Cisco
限制广播流量:
```bash
interface gigabitEthernet 0/1
storm-control broadcast level 5.00
```
限制组播流量:
```bash
storm-control multicast level 5.00
```
限制未知单播流量:
```bash
storm-control unicast level 5.00
```
超过阈值后的动作:
```bash
storm-control action shutdown
```
查看配置:
```bash
show storm-control
```
## 复习时容易写错的点
- 风暴抑制不是彻底解决环路的方法
- 它限制的是报文速率,不是简单“把这类报文全部禁掉”
- 除了广播风暴,还可能有组播风暴和未知单播风暴
- 阈值设置过低也可能影响正常业务