由于 DHCP 协议是二层的,无法找到网络中那台非法 DHCP 服务器的源、目的 IP 地址
如果网络里面同时有多台 DHCP 服务器,而你的交换机没有阻止 DHCP 协议的发布,那么这个网是很危险的(我所在的小区里也有这样的情况,如果我架设了 DHCP,我会看到 /var/lib/dhcp/dhcpd.leases 看到很多被分配的 IP)
我们可以采取用 tcpdump 抓包的方法,来判断对方的 MAC,如果有了 MAC 就好办了
普通情况下,tcpdump 抓到的包都是 3 层的,只能看到 IP 头和其他 4 层头(比如 TCP/UDP)
tcpdump 下面有个 -e 参数
-e Print the link-level header on each dump line.
这个是关键,还有一个关键部分就是 port,因为 dhcp 协议会用到 UDP/67,知道这两点就好办了,抓包,抓完以后看看 MAC 就可以了
有了 MAC 就好办了,再用 arp -n 就能看到其 IP,接下来就是在网关上封掉他的 MAC,让他“投案自首”吧 ^_^
[root@platinum root]# tcpdump -e -i eth1 -nn port 67 -c 3 2>&1|awk '/bootp/{print " --> "}'
0:0c:85:ad:e5:af --> ff:ff:ff:ff:ff:ff
e7:0a:19:80:03:09 --> 0:0c:85:ad:e5:af
0:0c:85:ad:e5:af --> e7:0a:19:80:03:09
[root@platinum root]#