Linux

從分發中排除子網?

  • November 2, 2018

在 Windows 的 DHCP 伺服器中,可以將整個子網排除在沒有預留的客戶端之外。他們稱之為“從分發中排除的 IP 地址”。

現在我想在 Linux 的 DHCPD 上做同樣的事情。所以我有這些子網

# servers
subnet 192.168.91.0 netmask 255.255.255.0 {
 range 192.168.91.2 192.168.91.254;
 option routers 192.168.91.1;
}

# desktop computers
subnet 192.168.234.0 netmask 255.255.255.0 {
 range 192.168.234.2 192.168.234.254;
 option routers 192.168.234.1;
}

永遠不應為使用者桌面分配“伺服器”範圍內的 IP。只有有預訂的主機才能從“伺服器”範圍內獲得一台。但是任何人都可以從“桌面”範圍內獲得 IP。

問題

如何在 Linux 的 DHCPD 中做到這一點?

簡單 - 不要添加範圍。

# servers
subnet 192.168.91.0 netmask 255.255.255.0 {
 option routers 192.168.91.1;
}

然後稍後在您的配置中,您可以根據需要將該子網中的特定 IP 分配給特定的 MAC 地址。

這是我的實際 DHCP 伺服器的一個範例(對不起,在我的 Pi 家裡,不是在“專業環境”中,但無論如何都是一樣的……只是規模問題)

$ cat /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 700;
ddns-update-style none;
authoritative;
log-facility local7;
lease-file-name "/etc/dhcp/leases.dhcpd";

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
option ms-classless-routes code 249 = array of unsigned integer 8;

#notice no range in this subnet
subnet 192.168.1.0 netmask 255.255.255.0 {
 option domain-name "home.test";
 option domain-name-servers 192.168.1.2;
 option routers 192.168.1.1;
 option rfc3442-classless-static-routes 24, 10,99,97, 192,168,1,2;
 option ms-classless-routes 24, 10,99,97, 192,168,1,2;
}

subnet 10.99.97.0 netmask 255.255.255.0 {
 range 10.99.97.150 10.99.97.175;
 option domain-name "home.test";
 option domain-name-servers 192.168.1.2;
 option routers 10.99.97.2;
}

host webdev{
hardware ethernet 08:00:27:74:07:21;
fixed-address 192.168.1.90;
}

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