DHCP伺服器配置-Centos
一、安裝DHCP Server
使用命令yum install dhcp安裝最新版本的DHCP Server,目前使用的版本為DHCP Server 4.2.5。通過以下命令可以檢視版本資訊:
# dhcpd
顯示內容如下:
二. 環境配置
2.1 建立主配檔案dhcpd.conf
/etc/dhcp/下的dhcpd.conf檔案是DHCP伺服器的主要配置檔案,所有功能都是在該檔案中修改並實現的。在/usr/share/doc/dhcp*下有dhcpd.conf.example和dhcpd6.conf.example分別是IPv4和IPv6的配置模板,其中有詳細的註釋和所有的配置內容。
下面我們手動建立dhcpd.conf,內容如下:
ddns-update-style none; ignore client-updates; default-lease-time 21600; max-lease-time 43200; option domain-name "linuxde.net"; option domain-name-servers 202.96.199.133, 116.228.111.118; option routers 192.168.100.254; subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.50 192.168.100.100; option subnet-mask 255.255.255.0; host server1 { hardware ethernet b0:c0:c3:22:46:81; fixed-address 192.168.3.100; } }
2.2 其他設定
建立了dhcpd.conf檔案後,基本上已經可以通過service dhcpd start命令來啟動dhcpd服務了,不過還是可能會遇到其他的問題。以下內容為解決可能存在的問題:
2.2.1 更改網絡卡IP
在DHCP服務無法正常啟動,通過journalctl –xe檢視日誌發現如下錯誤資訊:
這通常是因為對應的網絡卡IP不在dhcpd.conf可分配的IP網段範圍內,比如我設定的網絡卡eth0 IP為192.168.3.100,而對應的DHCP網段為192.168.100.50~192.168.100.100,則DHCP服務無法正常啟動,只需要將eth0的IP重新修改就行了:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
將IPADDR修改為192.168.100.80後,再重啟網路服務:
# service network restart
通過ifconfig eth0檢視IP已經修改成功就可以重新啟動DHCP服務。
2.2.2 建立DHCP伺服器租約檔案
# touch /var/db/dhcpd.leases
如果沒有建立此檔案,啟動服務時候可能會提示以下錯誤資訊:
WARNING: host declarations are global. They are not limited to the scope you declared them in.
Can't open lease database /var/db/dhcpd.leases: No such file or directory --
2.2.3 配置網路介面
當出現not configured to listen on any interfaces這樣的錯誤的時候通常上因為沒有指明要在哪一張網絡卡啟動DHCP服務,所以我們需要指定網路介面名稱。操作如下:
# cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/
# vi /etc/systemd/system/dhcpd.service
內容如下:
找到ExecStart這一行,並按照如下格式修改內容:
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid <指定網絡卡介面名稱>
修改完繼續執行:
# systemctl --system daemon-reload
# systemctl restart dhcpd.service
2.2.4 設定開機啟動
使用chkconfig實現DHCP服務開機啟動:
# chkconfig dhcpd on
沒有chkconfig的話可以安裝或者採用其他方式。
三、啟動DHCP服務
在所有內容都已經配置好後,通過如下命令便可以啟動DHCP服務:
# service dhcpd start
我們在程序中檢視DHCP是否已經啟動:
# netstat –apn | grep dhcpd
得到的檢視結果如下:
說明我們的DHCP服務確實已經啟動並且成功執行。
四、測試DHCP服務
測試DHCP服務是否配置成功並且能夠如預期一樣執行有很多種方法,這裡採用比較簡單的一種,看能夠給本機Linux分配IP地址、子網掩碼等。
首先,在啟動好了需要測試網絡卡的網路服務和DHCP服務後,我們需要將Linux本機的IP設定成自動獲取,操作如下:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
可以看到對應的網絡卡配置檔案內容如下:
其中DEVICE是物理裝置即網絡卡的名稱;ONBOOT表示是否在Linux啟動時被啟用,有yes和no兩個取值;BOOTPROTO表示IP的配置方式,有 三種取值方式:none、static、dhcp,none和static均表示通過指定IP靜態配置的方法,dhcp表示通過DHCP伺服器動態分配IP的方式;IPADDR和 NETMASK指IP地址和掩碼地址。
可以看出上面採用的是靜態配置IP的方法,我們將BOORPOTO改為dhcp,並且將IPADDR和NETMASK註釋掉:
之後將檔案儲存並退出,設定成自動獲取IP地址後再重新啟動網路:
# service network restart
網路重啟成功後,再來檢視IP地址是否已經重新分配了:
# ifconfig eth0
可以看見我們的IP地址從之前靜態配置的IP 192.168.100.80變為了192.168.100.50,並且是192.168.100.50~192.168.100.100間的IP地址,同時之前設定的掩碼地址從255.255.254.0變為了255.255.255.0。
然後再檢視我們的主機域名和對應DNS伺服器地址是否設定成功:
# cat /etc/resolv.conf
可以看到結果如下:
正好是我們在dhcpd.conf中設定的內容,說明我們的DNS設定成功了。