# 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 生成的绑定表很重要,后续很多安全功能会用到它