日常更新笔记+不再推送日记
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
/服务器迁移/
|
/服务器迁移/
|
||||||
/Ignore/
|
/Ignore/
|
||||||
/简历/
|
/简历/
|
||||||
|
/日记/
|
||||||
|
|
||||||
|
|
||||||
# OS files
|
# OS files
|
||||||
|
|||||||
+4
-3
@@ -28,9 +28,10 @@
|
|||||||
- [x] [[Stack]] #study/csharp
|
- [x] [[Stack]] #study/csharp
|
||||||
- [x] [[Queue]] #study/csharp
|
- [x] [[Queue]] #study/csharp
|
||||||
- [x] [[Hashtable]] #study/csharp
|
- [x] [[Hashtable]] #study/csharp
|
||||||
- [ ] 泛型和泛型约束 #study/csharp
|
- [x] 泛型和泛型约束 #study/csharp
|
||||||
- [ ] List #study/csharp
|
- [x] List #study/csharp
|
||||||
- [ ] Dictionary #study/csharp
|
- [x] Dictionary #study/csharp
|
||||||
|
- [x] 顺序存储和链式存储 #study/csharp ✅ 2026-06-24
|
||||||
- [ ] LinkedList #study/csharp
|
- [ ] LinkedList #study/csharp
|
||||||
- [ ] 泛型栈和队列 #study/csharp
|
- [ ] 泛型栈和队列 #study/csharp
|
||||||
- [ ] 委托事件 #study/csharp
|
- [ ] 委托事件 #study/csharp
|
||||||
|
|||||||
@@ -1,28 +1,31 @@
|
|||||||
# 日常 List
|
# 日常 List
|
||||||
> 这里放每天会自动刷新的小任务。完成后 Tasks 会按 `🔁 every day` 生成下一次。
|
> 这里放每天会自动刷新的小任务。完成后 Tasks 会按 `🔁 every day` 生成下一次。
|
||||||
|
|
||||||
- [ ] eNSP #daily 🔺 🔁 every day 📅 2026-06-24
|
- [ ] 网工 #daily 🔺 🔁 every day 📅 2026-06-26
|
||||||
|
- [x] 网工 #daily 🔺 🔁 every day 📅 2026-06-24 ✅ 2026-06-24
|
||||||
- [x] eNSP #daily 🔺 🔁 every day 📅 2026-06-23 ✅ 2026-06-23
|
- [x] eNSP #daily 🔺 🔁 every day 📅 2026-06-23 ✅ 2026-06-23
|
||||||
- [x] eNSP #daily 🔺 🔁 every day 📅 2026-06-22 ✅ 2026-06-22
|
- [x] eNSP #daily 🔺 🔁 every day 📅 2026-06-22 ✅ 2026-06-22
|
||||||
- [x] eNSP #daily 🔺 🔁 every day 📅 2026-06-21 ✅ 2026-06-21
|
- [x] eNSP #daily 🔺 🔁 every day 📅 2026-06-21 ✅ 2026-06-21
|
||||||
- [ ] Linux #daily 🔺 🔁 every day 📅 2026-06-24
|
- [ ] Linux #daily 🔺 🔁 every day 📅 2026-06-26
|
||||||
|
- [x] Linux #daily 🔺 🔁 every day 📅 2026-06-24 ✅ 2026-06-24
|
||||||
- [x] Linux #daily 🔺 🔁 every day 📅 2026-06-23 ✅ 2026-06-23
|
- [x] Linux #daily 🔺 🔁 every day 📅 2026-06-23 ✅ 2026-06-23
|
||||||
- [x] Linux #daily 🔺 🔁 every day 📅 2026-06-22 ✅ 2026-06-22
|
- [x] Linux #daily 🔺 🔁 every day 📅 2026-06-22 ✅ 2026-06-22
|
||||||
- [x] Linux #daily 🔺 🔁 every day 📅 2026-06-21 ✅ 2026-06-21
|
- [x] Linux #daily 🔺 🔁 every day 📅 2026-06-21 ✅ 2026-06-21
|
||||||
- [ ] C# #daily ⏫ 🔁 every day 📅 2026-06-24
|
- [ ] C# #daily ⏫ 🔁 every day 📅 2026-06-26
|
||||||
|
- [x] C# #daily ⏫ 🔁 every day 📅 2026-06-24 ✅ 2026-06-24
|
||||||
- [x] C# #daily ⏫ 🔁 every day 📅 2026-06-22 ✅ 2026-06-22
|
- [x] C# #daily ⏫ 🔁 every day 📅 2026-06-22 ✅ 2026-06-22
|
||||||
- [x] C# #daily ⏫ 🔁 every day 📅 2026-06-21 ✅ 2026-06-22
|
- [x] C# #daily ⏫ 🔁 every day 📅 2026-06-21 ✅ 2026-06-22
|
||||||
- [ ] C++ 或 UE #weekly ⏬ 🔁 every week
|
- [ ] C++ 或 UE #weekly ⏬ 🔁 every week
|
||||||
- [ ] 今日复盘:记录完成情况和明天第一件事 🔼 🔁 every day 📅 2026-06-24
|
- [ ] 今日复盘:记录完成情况和明天第一件事 🔼 🔁 every day 📅 2026-06-26
|
||||||
- [x] 今日复盘:记录完成情况和明天第一件事 🔼 🔁 every day 📅 2026-06-23 ✅ 2026-06-23
|
- [x] 今日复盘:记录完成情况和明天第一件事 🔼 🔁 every day 📅 2026-06-23 ✅ 2026-06-23
|
||||||
- [x] 今日复盘:记录完成情况和明天第一件事 🔼 🔁 every day 📅 2026-06-22 ✅ 2026-06-23
|
- [x] 今日复盘:记录完成情况和明天第一件事 🔼 🔁 every day 📅 2026-06-22 ✅ 2026-06-23
|
||||||
- [x] 今日复盘:记录完成情况和明天第一件事 🔼 🔁 every day 📅 2026-06-21 ✅ 2026-06-22
|
- [x] 今日复盘:记录完成情况和明天第一件事 🔼 🔁 every day 📅 2026-06-21 ✅ 2026-06-22
|
||||||
- [ ] 学习吉他 🔼 🔁 every day 📅 2026-06-24
|
- [ ] 学习吉他 🔼 🔁 every day 📅 2026-06-26
|
||||||
|
- [x] 学习吉他 🔼 🔁 every day 📅 2026-06-24 ✅ 2026-06-24
|
||||||
- [x] 学习吉他 🔼 🔁 every day 📅 2026-06-23 ✅ 2026-06-23
|
- [x] 学习吉他 🔼 🔁 every day 📅 2026-06-23 ✅ 2026-06-23
|
||||||
- [x] 学习吉他 🔼 🔁 every day 📅 2026-06-22 ✅ 2026-06-23
|
- [x] 学习吉他 🔼 🔁 every day 📅 2026-06-22 ✅ 2026-06-23
|
||||||
- [x] 学习吉他 🔼 🔁 every day 📅 2026-06-21 ✅ 2026-06-22
|
- [x] 学习吉他 🔼 🔁 every day 📅 2026-06-21 ✅ 2026-06-22
|
||||||
- [x] 今日复盘:记录完成情况和明天第一件事 🔼 🔁 every day 📅 2026-06-20 ✅ 2026-06-20
|
- [x] 今日复盘:记录完成情况和明天第一件事 🔼 🔁 every day 📅 2026-06-20 ✅ 2026-06-20
|
||||||
- [ ] 主页打卡⏬ 🔁 every day 📅 2026-06-21
|
|
||||||
|
|
||||||
## 显示今日的样例:
|
## 显示今日的样例:
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ sort by priority
|
|||||||
> ==记得把今日任务详细的规划在时间线上↓==
|
> ==记得把今日任务详细的规划在时间线上↓==
|
||||||
|
|
||||||
- [ ] 14:40 - 15:40 eNSP
|
- [ ] 14:40 - 15:40 eNSP
|
||||||
|
- [ ] 复盘
|
||||||
|
|
||||||
## 复盘
|
## 复盘
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
## 概念:数据结构
|
||||||
|
数据结构是计算机村粗知足的方式(规则)
|
||||||
|
雷也可以算作为一种数据结构
|
||||||
|
|
||||||
|
简单理解就是人定义的存储数据和表示数据之间关系的规则
|
||||||
|
|
||||||
|
常用的数据结构
|
||||||
|
- 数组、栈、队列、链表、树、图、堆、散列表
|
||||||
|
|
||||||
|
### 线性表
|
||||||
|
线性表是一种数据结构,是由N个具有先沟通呢特性的数据元素的有序序列
|
||||||
|
比如数组、ArraryList、Stack、Queue、链表等
|
||||||
|
|
||||||
|
##### 顺序存储
|
||||||
|
数组、stack、queue、list、arraylist都是顺序存储
|
||||||
|
用一组地址连续的存储单元依次存储线性表的各个元素
|
||||||
|
|
||||||
|
#### 链式存储
|
||||||
|
单向列表、双向列表、循环列表都是链式存储
|
||||||
|
在存储单元中的存储地址不一定连续,但是通过
|
||||||
|
|
||||||
+11
-10
@@ -37,15 +37,16 @@
|
|||||||
5. [[泛型]]和[[泛型约束]]
|
5. [[泛型]]和[[泛型约束]]
|
||||||
6. [[List]]
|
6. [[List]]
|
||||||
7. [[Dictionary]]
|
7. [[Dictionary]]
|
||||||
8. LinkedList
|
8. 顺序存储和链式存储
|
||||||
9. 泛型栈和队列
|
9. LinkedList
|
||||||
10. 委托事件
|
10. 泛型栈和队列
|
||||||
11. 匿名函数
|
11. 委托事件
|
||||||
12. lambda
|
12. 匿名函数
|
||||||
13. List排序
|
13. lambda
|
||||||
14. 协变逆变
|
14. List排序
|
||||||
15. 多线程
|
15. 协变逆变
|
||||||
16. 预处理器
|
16. 多线程
|
||||||
17. 反射
|
17. 预处理器
|
||||||
|
18. 反射
|
||||||
# 杂记
|
# 杂记
|
||||||
1. [[命名法]]
|
1. [[命名法]]
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# getent passwd
|
||||||
|
|
||||||
|
作用:查看有哪些用户
|
||||||
|
|
||||||
|
共有7份信息:
|
||||||
|
用户名:密码(X):用户ID:组ID:描述信息:HOME目录:执行终端(默认bash)
|
||||||
|
|
||||||
|
# getent group
|
||||||
|
|
||||||
|
作用:查看有哪些用户组
|
||||||
|
|
||||||
|
共有3份信息:
|
||||||
|
组名:组认证(显示为X):组ID
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
执行条件:root权限
|
||||||
|
|
||||||
|
groupadd \[用户组名]
|
||||||
|
|
||||||
|
groupdel \[用户组名]
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
# 创建用户:useradd \[-g -d] \[用户名]
|
||||||
|
|
||||||
|
参数:
|
||||||
|
- -g:指定用户的组,不指定会创建同名组并加入,如果有同名组必须用-g
|
||||||
|
- -d:指定用户的home路径,默认在`/home/用户名`下
|
||||||
|
|
||||||
|
|
||||||
|
# 删除用户:userdel \[-r] \[用户名]
|
||||||
|
|
||||||
|
参数:
|
||||||
|
- -r:删除用户的HOME目录,附带即可无需指定path
|
||||||
|
|
||||||
|
# 查询用户所属组:id \[用户名]
|
||||||
|
|
||||||
|
# 修改用户:usermod \[-aG] \[用户组] \[用户名]
|
||||||
|
|
||||||
|
作用:将指定的用户加入指定的用户组中
|
||||||
|
|
||||||
|
参数:
|
||||||
|
- aG:
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
## ls -l的信息
|
||||||
|
### 第一组:权限控制信息
|
||||||
|
- 样式:drwxr-xr-x
|
||||||
|
- 作用:描述权限控制信息
|
||||||
|
详解:
|
||||||
|
- 总共分为10个槽位
|
||||||
|
- 第1槽位:表示信息状态
|
||||||
|
- 状态:-或d或l
|
||||||
|
- -:表示文件
|
||||||
|
- d:表示文件夹
|
||||||
|
- l:表示软连接
|
||||||
|
- 2至4三个槽位:表示所属用户权限
|
||||||
|
- 5至7三个槽位:表示所属用户组权限
|
||||||
|
- 8至10三个槽位:表示其他用户权限
|
||||||
|
- 后面三组三个权限细节:
|
||||||
|
- 状态:r、w、x或-
|
||||||
|
- 第一个槽:r或-,读权限
|
||||||
|
- 第二个槽:w或-,写权限
|
||||||
|
- 第三个槽:x或-,执行权限
|
||||||
|
|
||||||
|
### 第二组:硬链接数
|
||||||
|
- 样式:单个数字
|
||||||
|
- 作用:表述文件或目录的硬链接数
|
||||||
|
### 第三组:用户名
|
||||||
|
- 样式:\[用户名]
|
||||||
|
### 第四组:用户组
|
||||||
|
- 样式:\[用户组]
|
||||||
|
|
||||||
|
## 常用场景细节
|
||||||
|
###### 1.删除文件需要什么权限,w吗?
|
||||||
|
不!删除文件需要你有被删除文件父文件夹的w和x权限
|
||||||
|
###### 2.文件夹没有读权限,能进去查看吗?
|
||||||
|
不相干,可以总结为:rx能cd能ls,单x能进去无法ls,单r进去不也ls不了
|
||||||
|
想进去文件夹,需要有文件夹的执行x权限(依赖cd)
|
||||||
|
想查看文件夹(ls),需要有文件夹的读rx权限(ls需要x执行权限进去,没有x也不能r)
|
||||||
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
Linux支持:
|
||||||
|
- 配置多个用户
|
||||||
|
- 配置多个用户组
|
||||||
|
- 一个用户加入多个用户组
|
||||||
|
|
||||||
|
Linux的权限管控有两个级别,分别是:
|
||||||
|
- 针对用户的权限控制
|
||||||
|
- 针对用户组的权限控制
|
||||||
|
针对某个文件,可以控制用户的权限,也可以控制用户组的权限
|
||||||
|
|
||||||
|
# 用户组
|
||||||
|
相关命令:(root权限)
|
||||||
|
- 创建:[[groupadd&groupdel|groupadd]]
|
||||||
|
- 删除:[[groupadd&groupdel|groupdel]]
|
||||||
|
|
||||||
|
# 用户
|
||||||
|
相关命令:
|
||||||
|
- [[useradd&userdel&id&usermod|useradd]]
|
||||||
|
- [[useradd&userdel&id&usermod|userdel]]
|
||||||
|
- [[useradd&userdel&id&usermod|id]]
|
||||||
|
- [[useradd&userdel&id&usermod|usermod]]
|
||||||
|
# 查询用户/用户组:
|
||||||
|
- [[getent]] passwd
|
||||||
|
- [[getent]] group
|
||||||
@@ -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、Trunk、Hybrid
|
||||||
Access:通常对应终端例如PC、打印机
|
|
||||||
Trunk:通常对应交换机之间的链路
|
|
||||||
Hybrid:同时兼顾Access和Trunk的功能,应用场景较少
|
|
||||||
|
|
||||||
关于VLAN TAG:
|
## 三种接口模式的作用
|
||||||
Access:接收时根据接口配置打VLAN TAG,发送时剥离VLAN TAG
|
|
||||||
Trunk:对于没有VLAN TAG的,打上Native Vlan TAG,对于不允许放行的,接收或发送时丢弃
|
这三种模式本质上是交换机接口在 VLAN 场景下的工作方式。
|
||||||
Hybrid:自定义哪些VLAN打TAG,哪些VLAN不打TAG
|
|
||||||
|
它们分别解决的问题是:
|
||||||
|
- 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
|
||||||
|
|||||||
+110
-3
@@ -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`,华为常见直接讲 `端口隔离`
|
||||||
+182
-2
@@ -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
|
||||||
|
```
|
||||||
|
|
||||||
|
## 复习时容易写错的点
|
||||||
|
|
||||||
|
- 风暴抑制不是彻底解决环路的方法
|
||||||
|
- 它限制的是报文速率,不是简单“把这类报文全部禁掉”
|
||||||
|
- 除了广播风暴,还可能有组播风暴和未知单播风暴
|
||||||
|
- 阈值设置过低也可能影响正常业务
|
||||||
Reference in New Issue
Block a user