天天看點

DHCP伺服器配置-Centos一、安裝DHCP Server二. 環境配置三、啟動DHCP服務四、測試DHCP服務

一、安裝DHCP Server

使用指令yum install dhcp安裝最新版本的DHCP Server,目前使用的版本為DHCP Server 4.2.5。通過以下指令可以檢視版本資訊:

# dhcpd
           

顯示内容如下:

DHCP伺服器配置-Centos一、安裝DHCP Server二. 環境配置三、啟動DHCP服務四、測試DHCP服務

二. 環境配置

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檢視日志發現如下錯誤資訊:

DHCP伺服器配置-Centos一、安裝DHCP Server二. 環境配置三、啟動DHCP服務四、測試DHCP服務

這通常是因為對應的網卡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
           

内容如下:

DHCP伺服器配置-Centos一、安裝DHCP Server二. 環境配置三、啟動DHCP服務四、測試DHCP服務

找到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伺服器配置-Centos一、安裝DHCP Server二. 環境配置三、啟動DHCP服務四、測試DHCP服務

說明我們的DHCP服務确實已經啟動并且成功運作。

四、測試DHCP服務

測試DHCP服務是否配置成功并且能夠如預期一樣運作有很多種方法,這裡采用比較簡單的一種,看能夠給本機Linux配置設定IP位址、子網路遮罩等。

首先,在啟動好了需要測試網卡的網絡服務和DHCP服務後,我們需要将Linux本機的IP設定成自動擷取,操作如下:

# vim /etc/sysconfig/network-scripts/ifcfg-eth0
           

可以看到對應的網卡配置檔案内容如下:

DHCP伺服器配置-Centos一、安裝DHCP Server二. 環境配置三、啟動DHCP服務四、測試DHCP服務

其中DEVICE是實體裝置即網卡的名稱;ONBOOT表示是否在Linux啟動時被激活,有yes和no兩個取值;BOOTPROTO表示IP的配置方式,有 三種取值方式:none、static、dhcp,none和static均表示通過指定IP靜态配置的方法,dhcp表示通過DHCP伺服器動态配置設定IP的方式;IPADDR和 NETMASK指IP位址和掩碼位址。

可以看出上面采用的是靜态配置IP的方法,我們将BOORPOTO改為dhcp,并且将IPADDR和NETMASK注釋掉:

DHCP伺服器配置-Centos一、安裝DHCP Server二. 環境配置三、啟動DHCP服務四、測試DHCP服務

之後将檔案儲存并退出,設定成自動擷取IP位址後再重新啟動網絡:

# service network restart
           

網絡重新開機成功後,再來檢視IP位址是否已經重新配置設定了:

# ifconfig eth0
           
DHCP伺服器配置-Centos一、安裝DHCP Server二. 環境配置三、啟動DHCP服務四、測試DHCP服務

可以看見我們的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
           

可以看到結果如下:

DHCP伺服器配置-Centos一、安裝DHCP Server二. 環境配置三、啟動DHCP服務四、測試DHCP服務

正好是我們在dhcpd.conf中設定的内容,說明我們的DNS設定成功了。

繼續閱讀