日常更新笔记+不再推送日记
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
## 概念:数据结构
|
||||
数据结构是计算机村粗知足的方式(规则)
|
||||
雷也可以算作为一种数据结构
|
||||
|
||||
简单理解就是人定义的存储数据和表示数据之间关系的规则
|
||||
|
||||
常用的数据结构
|
||||
- 数组、栈、队列、链表、树、图、堆、散列表
|
||||
|
||||
### 线性表
|
||||
线性表是一种数据结构,是由N个具有先沟通呢特性的数据元素的有序序列
|
||||
比如数组、ArraryList、Stack、Queue、链表等
|
||||
|
||||
##### 顺序存储
|
||||
数组、stack、queue、list、arraylist都是顺序存储
|
||||
用一组地址连续的存储单元依次存储线性表的各个元素
|
||||
|
||||
#### 链式存储
|
||||
单向列表、双向列表、循环列表都是链式存储
|
||||
在存储单元中的存储地址不一定连续,但是通过
|
||||
|
||||
+11
-10
@@ -37,15 +37,16 @@
|
||||
5. [[泛型]]和[[泛型约束]]
|
||||
6. [[List]]
|
||||
7. [[Dictionary]]
|
||||
8. LinkedList
|
||||
9. 泛型栈和队列
|
||||
10. 委托事件
|
||||
11. 匿名函数
|
||||
12. lambda
|
||||
13. List排序
|
||||
14. 协变逆变
|
||||
15. 多线程
|
||||
16. 预处理器
|
||||
17. 反射
|
||||
8. 顺序存储和链式存储
|
||||
9. LinkedList
|
||||
10. 泛型栈和队列
|
||||
11. 委托事件
|
||||
12. 匿名函数
|
||||
13. lambda
|
||||
14. List排序
|
||||
15. 协变逆变
|
||||
16. 多线程
|
||||
17. 预处理器
|
||||
18. 反射
|
||||
# 杂记
|
||||
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:通常对应终端例如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
|
||||
|
||||
+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