Windows Server DHCP服务不支持OUI黑名单,但可通过作用域排除、预留无效IP、交换机端口安全或DHCP Snooping等组合方式实现等效MAC前缀拒绝。
windows server 的 dhcp 服务本身不支持基于 mac 地址前缀(oui)的“拒绝策略”——它没有内置的 oui 黑名单或条件性拒绝功能。但你可以通过组合使用 作用域排除、预留+保留地址池 和 网络层控制 实现等效效果,核心思路是:不让目标设备获得有效 ip,而非在 dhcp 协议层面“拦截请求”。
用 DHCP 作用域排除 + 静态绑定绕过实现逻辑拒绝
虽然不能直接写“拒绝 00-11-22 开头的设备”,但可反向操作:预估这类设备可能出现的 IP 区间,将其从作用域中排除,再把剩余可用地址全部用于正常设备。
- 打开 DHCP 管理控制台 → 选中对应作用域 → 右键“作用域选项” → “新建排除范围”
- 例如,若已知某品牌设备常被分配到 192.168.1.100–192.168.1.149,就将该段设为排除范围
- 确保排除后仍有足够地址供合法客户端租用(否则会导致租用失败,表现为 169.254.x.x)
用 DHCP 预留 + 无效地址池制造“静默失效”
对已知 MAC 前缀的设备,为其创建 DHCP 预留,但指定一个**不可路由、非网关子网、或已被占用的 IP**(如 0.0.0.0、127.0.0.1 或网关自身地址),使客户端即使拿到地址也无法通信。
- 在作用域下右键“预留” → 新建 → 输入 MAC 地址(可填 00-11-22-xx-xx-xx,但 DHCP 不支持通配符,需逐条添加已知具体 MAC)
- IP 地址栏填入一个无意义地址(如 192.168.1.255,若该地址未被使用且不在子网有效范围内)
- 客户端仍会收到该 IP,但因 ARP 失败、路由不可达或 DAD 冲突(见事件 ID 4199)而自动放弃,最终 fallback 到 APIPA
配合交换机/防火墙做真正源头阻断
DHCP 是应用层协议,底层依赖 UDP 广播。更可靠的方式是在网络接入层拦截:
- 在接入交换机上启用端口安全(Port Security),限制允许的 MAC 前缀(如 Cisco 的
switchport port-security mac-address 0011.2200.0000 mask ffff.ff00.0000) - 或配置 DHCP Snooping,并添加 DHCP 黑名单(部分厂商支持基于 OUI 的过滤,如华为 S5735 的
dhcp snooping check mac-address+ OUI 白名单) - 防火墙规则可丢弃来自特定 MAC 前缀设备的 DHCP Discover 请求(需支持 L2 过滤,如 pfSense + netmap 或 Suricata)
不推荐但可行的 PowerShell 临时方案
若仅需短期控制,可在 DHCP 服务器上用脚本定期扫描新租约,匹配 MAC 前缀后立即删除:
- 运行
Get-DhcpServerv4Lease -ScopeId 192.168.1.0获取当前租约 - 用
Where-Object { $_.ClientId -like "001122*" }筛选(ClientId 字段即客户端 MAC,不含分隔符) - 对匹配项执行
Remove-DhcpServerv4Lease - 注意:这会造成租约频繁中断,客户端日志出现大量 Event ID 1003/1004,仅适合测试环境

















