在CentOS 7系統上架設DHCP服務
我架設DHCP服務使用的是CentOS 7.0.1406,核心版本號為3.10.0-123.el7.x86_64。CentOS系統安裝在虛擬機器上面,然後通過虛擬網絡卡來串接到GNS 3中架設的虛擬網路上面。整個網路拓撲是這樣的:
如果你不是很清楚虛擬機器中的CentOS系統到底是怎麼接到GNS 3中的虛擬網路上面,也沒關係,就把上圖中的那個標註為虛擬機器的PC看做是執行著CentOS 7系統的伺服器就行了。我這篇文章也只是介紹怎麼在CentOS 7系統上架設DHCP服務,並不介紹關於GNS 3的使用和網路的知識。
要架設DHCP服務,可按照如下步驟進行:
1. 安裝DHCP軟體
安裝DHCP軟體使用命令:yum install dhcp
安裝完成後,就可看到有dhcp.x86_64這個軟體,如下圖所示。另外兩個軟體(dhcp-common.x86_64和dhcp-libs.x86_64)是連帶安裝上去的。
2. 設定配置檔案/etc/dhcp/dhcpd.conf
安裝好DHCP軟體後,就需要設定配置檔案/etc/dhcp/dhcpd.conf。要設定dhcpd.conf這個配置檔案,可以先看一下檔案/usr/share/doc/dhcp*/dhcpd.conf.example,裡面有一些例子和簡單的說明。也可以使用命令man 5 dhcpd.conf檢視更詳細的說明。
在我這個案例中,我是這麼設定dhcpd.conf文件的:
---------------------------------------------------------------------------------------------------------------------------------
[[email protected]~]# vim /etc/dhcp/dhcpd.conf
authoritative;
default-lease-time600;
max-lease-time7200;
optiondomain-name "test.com";
optiondomain-name-servers 114.114.114.114;
#
#authoritative指明本DHCP伺服器是所服務網段的官方DHCP伺服器。一般情況下,配置檔案中要設定authoritative,如果不設定,可能會有一些問題。
#default-lease-time
#max-lease-time,單位為秒。在鳥哥的書中,這個值是設定客戶端可請求的最大租約有效期,而不是客戶端所能使用一個IP的最長時間。man文件裡面也有解釋“Time should be the maximumlength in seconds that will be assigned to a lease”,不過這到底是哪個意思,我就不太確定了。
#optiondomain-name設定域名。
#optiondomain-name-servers設定DNS伺服器,這裡只設置了一個DNS伺服器,也可以設定兩個 ,格式參照文件/usr/share/doc/dhcp*/dhcpd.conf.example。
#
subnet172.31.3.0 netmask 255.255.255.0 {
range 172.31.3.10 172.31.3.200;
option routers 172.31.3.254;
option broadcast-address 172.31.3.255;
}
host pc2 {
hardware ethernet 00:50:79:66:68:01;
fixed-address 172.31.3.201;
}
#
subnet172.31.1.0 netmask 255.255.255.0 {
range 172.31.1.10 172.31.1.200;
option routers 172.31.1.254;
option broadcast-address 172.31.1.255;
}
host pc4 {
hardware ethernet 00:50:79:66:68:03;
fixed-address 172.31.1.201;
}
host pc5 {
hardware ethernet 00:50:79:66:68:04;
fixed-address 172.31.1.202;
}
#
#subnet語句指定子網和子網掩碼。
#range語句指定可動態分配的IP的IP地址範圍。
#option routers語句指定閘道器地址。
#optionbroadcast-address指定廣播地址。這個不是很確定是不是一定要設定,在我這個虛擬網路中,不設定也能正常執行,但在實際網路中,不設定的話不知道會不會有問題。
#host語句可以給指定MAC地址(hardware ethernet所設定的值)的主機分配固定的IP地址(fixed-address所設定的值)。host後面接的那個是一個名稱來的(如pc2),這個名稱是可以隨便設定的,不用跟實際的主機名一致,但是該名稱在本配置檔案中必須是唯一的。
---------------------------------------------------------------------------------------------------------------------------------
3. 啟動dhcpd服務
設定完配置檔案後,最後就是啟動dhcpd服務了,使用命令:systemctl start dhcpd.service
如果沒什麼問題的話,DHCP服務器就部署好了。此時,可以檢視到dhcpd在監聽埠67,如下圖所示:
如果服務未成功啟動的話,此時可以檢視一下/var/log/messages日誌檔案(使用命令cat/var/log/messages | grep dhcp),預設DHCP的日誌都會記錄在該檔案中。如果要檢視已分配的IP,可以檢視檔案/var/lib/dhcpd/dhcpd.leases,不過好像裡面只會記錄了動態分配的IP,而不會記錄固定IP(如前面配置檔案中的172.31.3.201),即使該IP已被分配出去。正如前面已經提到的,要了解配置檔案dhcpd.conf的更詳細配置資訊,可檢視man文件(使用命令man 5 dhcpd.conf)。而要了解配置檔案dhcpd.conf裡面各option的詳細資訊,則要檢視另一個man文件(使用命令man 5 dhcp-options)。
要檢視服務狀態的話,可使用命令systemctl statusdhcpd.service。如果要停止DHCP服務的話,則是使用命令systemctl stop dhcpd.service。修改配置檔案後,要使配置檔案生效,則可使用命令systemctl restart dhcpd.service。當然,如果是在實際生產環境中,就不能隨意改變配置檔案並重啟DHCP服務了,而是要使用omshell這個命令,按官方文件的說法,這個命令可以在服務不中止的情況下改變配置。
4. 設定服務開機啟動
要設定dhcpd服務開機啟動,使用命令:systemctl enable dhcpd.service。
如果要檢查服務是否的確已設定為開機啟動,可使用命令systemctl list-unit-files。如果要取消服務開機啟動,可使用命令systemctldisable dhcpd.service。
5. 檢查測試
到上面為止,所有的配置都已完成。最後,就是要看一下客戶端能否通過DHCP協議正常獲取IP了:
可以看到,所有客戶端都有正常獲取到IP,子網掩碼和閘道器也都是正確的。
注:上面的很多資訊主要來自於紅帽的官方文件,附上鍊接https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/,開啟連結後,裡面有個Networking Guide,就在這個文件裡面有介紹如何架設DHCP伺服器,有興趣可以看看。
轉載於:https://blog.51cto.com/techsnail/1622963