Files
My-Notes/笔记/网络工程/01_二层交换技术/DHCP_Snooping.md
T

171 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 生成的绑定表很重要,后续很多安全功能会用到它