最近在使用PXE安装系统时,遇到机房有若干DHCP服务器提供DHCP服务,折腾了一通,在接入交换机上,用Mac ACL把另外不需要的DHCP服务器屏蔽了,交换机型号:Quanta LB6M
如何发现网络内几个DHCP服务?
发一个DHCP DISCOVER数据包,然后抓DHCP OFFER 数据包。
- 使用nmap发送DHCP请求:
sudo nmap -script broadcast-dhcp-discover -e eth
- 使用tcpdump监听DHCP服务器的响应
sudo tcpdump -e -vvv -i eth0 port bootps
在Quanta LB6M上配置MAC ACL,屏蔽特定DHCP服务
1.进入全局配置,创建一个mac acl策略
# enable
# config
(Config)# mac access-list extended deny-dhcp-192.168.1.1 //创建一条mac acl
(Config-mac-access-list)# deny 00:B0:2C:12:E7:5B 00:00:00:00:00:00 any //阻止指定mac源地址到任意地址的访问 ,注意mac mask为wildmask,置成FF会导致所有阻断
(Config-mac-access-list)# exit
2.再创建一个允许访问的默认acl策略
(Config)# mac access-list extended permit-all //再创建一个运行访问的默认acl
(Config-mac-access-list)# permit any any
(Config-mac-access-list)# exit
3.在某个接口上绑定两个mac acl策略
(Config)# interface 0/26 //编辑某个接口的策略
(Interface 0/26)# mac access-group deny-dhcp-192.168.1.1 in 1 //绑定mac阻止的策略到接口 in方向,序号1
(Interface 0/26)# mac access-group permit-any in 99 //绑定默认允许策略到接口in方向,序号99
(Interface 0/26)# exit
附:
可能的其他方法
- 方法1: 使用MAC绑定,把不需要的DHCP服务器的MAC绑定到不用的接口上。
- 方法2: 在交换机上启动DHCP Reply到指定的服务器。
上面这两个方法,未作验证。