大型網路手動配置 IP 工作量大且易衝突。DHCP 集中管理,修改閘道/DNS 只需改伺服器單一設定檔,客戶端重啟即生效。但單一 DHCP 伺服器故障將導致全網無法取得 IP,故須建立備援機制。
兩台 DHCP 伺服器不能服務相同 IP 範圍 (會衝突),必須將可用 IP 池分割給不同伺服器,或跨子網互為主備。
# DHCP1 (主)
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.3 10.0.0.100; # 分配前段
}
# DHCP2 (備)
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.101 10.0.0.254; # 分配後段
}
同網段內兩台伺服器同時運作,範圍互不重疊,零衝突。
# DHCP1
subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.1 10.0.0.100; } # 10網段主
subnet 20.0.0.0 netmask 255.255.255.0 { range 20.0.0.100 20.0.0.200; } # 20網段備
# DHCP2
subnet 20.0.0.0 netmask 255.255.255.0 { range 20.0.0.1 20.0.0.100; } # 20網段主
subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.100 10.0.0.200; } # 10網段備
效果:每個子網都有主伺服器負責主要配發,另一台保留部分範圍作備援。單台故障時,另一台仍能服務該子網剩餘 IP,大幅提升可用性。
ip helper-address) 將請求轉發至集中式 DHCP 伺服器群。ddns-update-style interim;
ignore client-updates;
default-lease-time 600;
max-lease-time 7200;
authoritative;
# 子網 10.0.0.0/24
subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.254;
option subnet-mask 255.255.255.0;
option domain-name-servers 10.0.0.1, 10.0.0.2;
range dynamic-bootp 10.0.0.10 10.0.0.100; # 依伺服器角色調整範圍
}
# 子網 20.0.0.0/24
subnet 20.0.0.0 netmask 255.255.255.0 {
option routers 20.0.0.254;
option subnet-mask 255.255.255.0;
option domain-name-servers 20.0.0.1, 20.0.0.2;
range dynamic-bootp 20.0.0.10 20.0.0.100;
}
service dhcpd start / systemctl start dhcpdcat /var/lib/dhcpd/dhcpd.leasesdhclient -v eth0 觀察取得 IP 過程。dhcpd.conf 與 dhcpd.leases。