3.8 KiB
3.8 KiB
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 的常见工作过程可以理解为:
- 客户端从非信任端口发出 DHCP Discover
- 报文可以正常向上转发
- 真实 DHCP 服务器从信任端口返回 DHCP Offer / ACK
- 交换机允许这些来自信任端口的服务器报文下发给客户端
- 交换机根据合法分配结果生成绑定表,记录 IP、MAC、VLAN、接口等信息
典型应用场景
- 接入层用户网络
- 宿舍网
- 办公网
- 访客网络
这类场景里,最怕的是用户私接一个无线路由器或小型 DHCP 服务设备,导致别人拿到错误地址。
基本配置思路
DHCP Snooping 的常见配置思路是:
- 全局启用 DHCP Snooping
- 在相关 VLAN 上启用 DHCP Snooping
- 把上联口或服务器口设为信任端口
- 用户接入口保持为非信任端口
- 按需要限制 DHCP 报文速率
- 检查 DHCP Snooping 绑定表是否正常生成
常见问题
1. 为什么客户端获取不到地址
常见原因有:
- 没有在对应 VLAN 启用 DHCP Snooping
- DHCP 服务器所在接口没设为信任端口
- 报文速率限制过严
- 上联链路或中继配置本身有问题
2. 为什么要区分信任端口和非信任端口
因为 DHCP Snooping 的核心就是:
- 允许可信来源下发地址
- 拦截不可信来源冒充 DHCP 服务器
3. DHCP Snooping 能不能防所有 DHCP 问题
不能。
它主要防的是“非法 DHCP 服务器”问题,不是所有 DHCP 故障都能靠它解决。
一句话理解
- DHCP Snooping 就是“只信任指定接口发来的 DHCP 服务器报文”
- 它的重点是防止假 DHCP 服务器捣乱
常见厂商命令
华为
不同型号和版本命令可能略有差异,常见思路如下:
全局启用 DHCP:
dhcp enable
启用 DHCP Snooping:
dhcp snooping enable
在接口下配置为信任端口:
interface GigabitEthernet 0/0/24
dhcp snooping trusted
查看配置:
display current-configuration
思科 Cisco
全局启用 DHCP Snooping:
ip dhcp snooping
在指定 VLAN 启用:
ip dhcp snooping vlan 10
把上联口设为信任端口:
interface gigabitEthernet 0/24
ip dhcp snooping trust
限制 DHCP 报文速率:
ip dhcp snooping limit rate 20
查看 DHCP Snooping 状态:
show ip dhcp snooping
查看绑定表:
show ip dhcp snooping binding
复习时容易写错的点
- DHCP Snooping 不是 DHCP 服务本身,而是 DHCP 的安全控制技术
- 重点不是“禁止 DHCP”,而是“只允许可信来源发放地址”
- 用户接入口通常是非信任端口,上联口或服务器口通常是信任端口
- DHCP Snooping 生成的绑定表很重要,后续很多安全功能会用到它