Isc-Dhcp

根據主機名中的字元串阻止 DHCP 客戶端

  • February 10, 2017

在 Debian Jessie 上使用isc-dhcp-server時,我想根據主機名的一部分來阻止 DHCP 請求——特別是,如果主機名在“iPhone|android-”某處包含正則表達式字元串。我目前的解決方案是等到他們有租約,然後監控這些設備,然後手動將 MAC 地址添加到黑名單文件中。

這種黑名單方法變得越來越大(幾乎 256 個條目),並且越來越難以維護。

我了解如何檢查主機名的開頭以確定類,但是如何從主機名的任何部分檢查以確定分配哪個類?

聽起來您在尋找該dhcp-client-identifier欄位,這可能是也可能不是您所說的主機名。根據dhcp-eval(5),可能有一個可用的正則表達式選項。如果是這樣的話,

class "iBan" {
   match if option dhcp-client-identifier ~= "iPhone";
}
class "bandroid" {
   match if option dhcp-client-identifier ~= "andriod-";
}

然後在適當的聲明deny下這些類的其他成員。pool(或者使用更複雜的正則表達式在一個類中完成。)

引用自:https://serverfault.com/questions/831891