Ubuntu DHCP客戶端IP地址分配規則
Ubuntu系統中,DHCP客戶端通過**ISC DHCP Client(dhclient)**工具實現IP地址的自動獲取,其分配規則主要由DHCP服務器配置決定,客戶端遵循服務器返回的參數設置網絡屬性。以下是核心分配規則及客戶端行為邏輯:
客戶端默認通過DHCP協議向服務器發送DHCPDISCOVER
廣播請求,服務器響應DHCPOFFER
提供可用IP地址,客戶端確認DHCPREQUEST
后,服務器發送DHCPACK
完成分配。分配的IP地址為臨時租用,需遵循以下租約規則:
服務器可通過host聲明將特定MAC地址與固定IP綁定,客戶端每次請求時,服務器優先分配該固定IP。配置示例如下(需修改/etc/dhcp/dhcpd.conf
):
host specific-client {
hardware ethernet 00:11:22:33:44:55; # 客戶端MAC地址
fixed-address 192.168.1.100; # 綁定的固定IP
}
客戶端需保持MAC地址不變,重啟后仍會獲取綁定的固定IP。
服務器通過range
參數定義可動態分配的IP地址池,客戶端從池中隨機獲取未被占用的IP。配置示例如下:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100; # 動態IP池范圍
option routers 192.168.1.1; # 默認網關
option subnet-mask 255.255.255.0; # 子網掩碼
option domain-name-servers 8.8.8.8; # DNS服務器
}
客戶端獲取的IP地址會在range
指定的區間內變動(如192.168.1.10-192.168.1.100)。
客戶端獲取IP后,會在租約到期前50%時間(如默認租約600秒,則300秒時)發送DHCPREQUEST
請求續約。若服務器響應DHCPACK
,則延長租約;若未收到響應,客戶端會在到期前87.5%時間(如525秒時)再次嘗試續約,若仍未成功,則釋放IP并重新發起DHCPDISCOVER
請求。
Ubuntu客戶端通過/etc/dhcp/dhclient.conf
配置DHCP行為,默認配置(如自動接受服務器返回的所有參數)即可滿足需求。若需自定義,可修改以下參數:
request subnet-mask, routers, domain-name-servers;
)。hook
腳本在獲取IP后執行自定義操作(如重啟網絡服務)。若服務器有多個網卡,需通過/etc/default/isc-dhcp-server
配置文件指定DHCP服務監聽的網卡(如INTERFACESv4="ens33"
),客戶端僅能從該網卡所在的子網獲取IP地址。
以上規則共同確保Ubuntu客戶端能從DHCP服務器獲取合法的IP地址,并通過網絡參數配置實現正常通信。