Dhcp

為什麼 ISC DHCP 伺服器忽略固定地址語句?

  • January 19, 2021

我希望屬於不同 VLAN 的設備具有不同的路由器。例如:

  • VLAN 10.0.10.0/24 內的設備 10.0.10.84 將其路由器設置為 10.0.10.1,而:
  • 屬於 10.0.11.0/24 的設備 10.0.11.6 應該使用路由器 10.0.11.1。

我這樣配置 ISC DHCP 伺服器:

subnet 10.0.10.0 netmask 255.255.255.0 {
   option subnet-mask 255.255.0.0;
   option routers 10.0.10.1;
   ...

   pool {
       failover peer "dhcp-primary";
       max-lease-time 1800;
       range 10.0.10.200 10.0.10.210;
   }
}

subnet 10.0.11.0 netmask 255.255.255.0 {
   option subnet-mask 255.255.0.0;
   option routers 10.0.11.1;
   ...

   pool {
       failover peer "dhcp-primary";
       max-lease-time 1800;
       range 10.0.11.200 10.0.11.210;
   }
}

host nmap-tests {
   hardware ethernet de:ad:c0:de:ca:fe;
   fixed-address 10.0.11.6;
}

不幸的是,這不起作用。當我執行nmap --script broadcast-dhcp-discover時,轉儲tcpdump -n -i eth0 port bootps or port bootpc -v顯示原始請求:

0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from de:ad:c0:de:ca:fe ...

和回應:

10.0.10.5.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, ...
     Your-IP 192.168.1.205
     Client-Ethernet-Address de:ad:c0:de:ca:fe

鑑於配置,我希望 DHCP 伺服器以固定地址 10.0.11.6 進行響應,而不是池中的 IP 地址。

配置有什麼問題?

eth1.10以下配置僅在 DHCP 伺服器使用多個介面時有效,例如eth1.11在 VLAN 的情況下。如果只有一個介面,則subnet語句應包含在一個shared-network塊中。

根據文件

shared-network語句用於通知 DHCP 伺服器某些 IP 子網實際上共享相同的物理網路。共享網路中的任何子網都應在共享網路語句中聲明。

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