在 Linux、CentOS上配置DHCP服務

動態主機地址管理協議

動態主機配置協議(DHCP)是一種基於UDP協議且僅限於在局域網內部使用的網絡協議,主要用於大型的局域網環境或者存在較多移動辦公設備的局域網環境中,其主要用途是爲局域網內部的設備或網絡供應商自動分配IP地址等參數。

簡單來說,DHCP協議就是讓局域網中的主機自動獲得網絡參數的服務。在圖14-1所示的拓撲圖中存在多臺主機,如果手動配置每臺主機的網絡參數會相當麻煩,日後維護起來也讓人頭大。而且當機房內的主機數量進一步增加時(比如有100臺,甚至1000臺),這個手動配置以及維護工作的工作量足以讓運維人員崩潰。藉助於DHCP協議,不僅可以爲主機自動分配網絡參數,還可以確保主機使用的IP地址是唯一的,更重要的是,還能爲特定主機分配固定的IP地址。
在這裏插入圖片描述
DHCP協議的應用十分廣泛,無論是服務器機房還是家庭、機場、咖啡館,都會見到它的身影。比如,本書的某位讀者開了一家咖啡廳,在爲顧客提供咖啡的同時,還爲顧客免費提供無線上網服務。這樣一來,顧客就可以一邊愜意地喝着咖啡,一邊連着無線網絡刷朋友圈了。但是,作爲咖啡廳老闆的您,肯定不希望(也沒有時間)爲每一位造訪的顧客手動設置IP地址、子網掩碼、網關地址等信息。另外,考慮到咖啡館使用的內網網段一般爲192.168.10.0/24(C類私有地址),最多能容納的主機數爲200多臺。而咖啡廳一天的客流量肯定不止200人。如果採用手動方式爲他們分配IP地址,則當他們在離開咖啡廳時並不會自動釋放這個IP地址,這就可能出現IP地址不夠用的情況。這一方面會造成IP地址的浪費,另外一方面也增加的IP地址的管理成本。而使用DHCP協議,這一切都迎刃而解—老闆只需安心服務好顧客,爲其提供美味的咖啡;顧客通過運行DHCP協議的服務器自動獲得上網所需的IP地址,等離開咖啡廳時IP地址將被DHCP服務器收回,以備其他顧客使用。

既然確定在今後的生產環境中肯定離不開DHCP了,那麼也就有必要好好地熟悉一下DHCP涉及的常見術語了。

作用域:一個完整的IP地址段,DHCP協議根據作用域來管理網絡的分佈、分配IP地址及其他配置參數。

**超級作用域:**用於管理處於同一個物理網絡中的多個邏輯子網段。超級作用域中包含了可以統一管理的作用域列表。

排除範圍:把作用域中的某些IP地址排除,確保這些IP地址不會分配給DHCP客戶端。

地址池:在定義了DHCP的作用域並應用了排除範圍後,剩餘的用來動態分配給DHCP客戶端的IP地址範圍。

租約:DHCP客戶端能夠使用動態分配的IP地址的時間。

預約:保證網絡中的特定設備總是獲取到相同的IP地址。

部署dhcpd服務程序
dhcpd是Linux系統中用於提供DHCP協議的服務程序。儘管DHCP協議的功能十分強大,但是dhcpd服務程序的配置步驟卻十分簡單,這也在很大程度上降低了在Linux中實現動態主機管理服務的門檻。

在確認Yum軟件倉庫配置妥當之後,安裝dhcpd服務程序:
在這裏插入圖片描述

查看dhcpd服務程序的配置文件內容。在這裏插入圖片描述
是的,您沒有看錯!dhcp的服務程序的配置文件中只有3行註釋語句,這意味着我們需要自行編寫這個文件。如果讀者不知道怎麼編寫,可以看一下配置文件中第2行的參考示例文件,其組成架構如圖所示。
在這裏插入圖片描述
一個標準的配置文件應該包括全局配置參數、子網網段聲明、地址配置選項以及地址配置參數。其中,全局配置參數用於定義dhcpd服務程序的整體運行參數;子網網段聲明用於配置整個子網段的地址屬性。

考慮到dhcpd服務程序配置文件的可用參數比較多,下列有相關參數
dhcpd服務程序配置文件中使用的常見參數以及作用

參數 作用
ddns-update-style 類型 定義DNS服務動態更新的類型,類型包括:
none(不支持動態更新)、interim(互動更新模式)與ad-hoc(特殊更新模式)
allow/ignore client-updates 允許/忽略客戶端更新DNS記錄
default-lease-time 21600 默認超時時間
max-lease-time 43200 最大超時時間
option domain-name-servers 8.8.8.8 定義DNS服務器地址
option domain-name “domain.org” 定義DNS域名
range 定義用於分配的IP地址池
option subnet-mask 定義客戶端的子網掩碼
option routers 定義客戶端的網關地址
broadcast-address 廣播地址 定義客戶端的廣播地址
ntp-server IP地址 定義客戶端的網絡時間服務器(NTP)
nis-servers IP地址 定義客戶端的NIS域服務器的地址
hardware 硬件類型 MAC地址 指定網卡接口的類型與MAC地址
server-name 主機名 向DHCP客戶端通知DHCP服務器的主機名
fixed-address IP地址 將某個固定的IP地址分配給指定主機
time-offset 偏移差 指定客戶端與格林尼治時間的偏移差

DHCP協議的設計初衷是爲了更高效地集中管理局域網內的IP地址資源。DHCP服務器會自動把IP地址、子網掩碼、網關、DNS地址等網絡信息分配給有需要的客戶端,而且當客戶端的租約時間到期後還可以自動回收所分配的IP地址,以便交給新加入的客戶端。

模擬一個真實生產環境的需求:

“機房運營部門:明天會有100名學員自帶筆記本電腦來我司培訓學習,請保證他們能夠使用機房的本地DHCP服務器自動獲取IP地址並正常上網”。

機房所用的網絡地址及參數信息如表14-2所示。
機房所用的網絡地址以及參數信息

參數名稱 值
默認租約時間 21600秒
最大租約時間 43200秒
IP地址範圍 192.168.10.50~192.168.10.150
子網掩碼 255.255.255.0
網關地址 192.168.10.1
DNS服務器地址 192.168.10.1
搜索域 linuxprobe.com
在瞭解了真實需求以及機房網絡中的配置參數之後,我們按照表14-3來配置DHCP服務器以及客戶端。

前文講到,作用域一般是個完整的IP地址段,而地址池中的IP地址纔是真正供客戶端使用的,因此地址池應該小於或等於作用域的IP地址範圍。另外,由於VMware Workstation虛擬機軟件自帶DHCP服務,爲了避免與自己配置的dhcpd服務程序產生衝突,應該先按照圖所示將虛擬機軟件自帶的DHCP功能關閉。

在這裏插入圖片描述

在這裏插入圖片描述

可隨意開啓幾臺客戶端,準備進行驗證。但是一定要注意,DHCP客戶端與服務器需要處於同一種網絡模式—僅主機模式(Hostonly),否則就會產生物理隔離,從而無法獲取IP地址。劉遄老師建議開啓1~3臺客戶端虛擬機驗證一下效果就好,以免物理主機的CPU和內存的負載太高。

在確認DHCP服務器的IP地址等網絡信息配置妥當後就可以配置dhcpd服務程序了。請注意,在配置dhcpd服務程序時,配置文件中的每行參數後面都需要以分號(;)結尾,這是規定。另外,dhcpd服務程序配置文件內的參數都十分重要,因此在這裏在中羅列出了每一行參數,並對其用途進行了簡單介紹。

在這裏插入圖片描述
vim /etc/dhcp/dhcpd.conf
ddns-update-style none;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.150;
option subnet-mask 255.255.255.0;
option routers 192.168.10.1;
option domain-name “linuxprobe.com”;
option domain-name-servers 192.168.10.1;
default-lease-time 21600;
max-lease-time 43200;
}

|dhcpd服務程序配置文件中使用的參數以及作用

dhcpd服務程序配置文件中使用的參數以及作用

參數 作用
ddns-update-style none; 設置DNS服務不自動進行動態更新
ignore client-updates; 忽略客戶端更新DNS記錄
subnet 192.168.10.0 netmask 255.255.255.0 { 作用域爲192.168.10.0/24網段
range 192.168.10.50 192.168.10.150; IP地址池爲192.168.10.50-150(約100個IP地址)
option subnet-mask 255.255.255.0; 定義客戶端默認的子網掩碼
option routers 192.168.10.1; 定義客戶端的網關地址
option domain-name “linuxprobe.com”; 定義默認的搜索域
option domain-name-servers 192.168.10.1; 定義客戶端的DNS地址
default-lease-time 21600; 定義默認租約時間(單位:秒)
max-lease-time 43200; 定義最大預約時間(單位:秒)
} 結束符
啓動服務

在這裏插入圖片描述

重啓客戶端網絡
systemctl restart network

在這裏插入圖片描述

分配固定IP地址
在DHCP協議中有個術語是“預約”,它用來確保局域網中特定的設備總是獲取到固定的IP地址。換句話說,就是dhcpd服務程序會把某個IP地址私藏下來,只將其用於相匹配的特定設備。

要想把某個IP地址與某臺主機進行綁定,就需要用到這臺主機的MAC地址。MAC地址是網卡上面的一串獨立的標識符,具備唯一性,因此不會存在衝突的情況,如圖所示。
在這裏插入圖片描述
在Linux系統或Windows系統中,都可以通過查看網卡的狀態來獲知主機的MAC地址。在dhcpd服務程序的配置文件中,按照如下格式將IP地址與MAC地址進行綁定。

host 主機名稱 {
hardware ethernet 該主機的MAC地址;
fixed-address 欲指定的IP地址;
}
如果不方便查看主機的MAC地址,該怎麼辦呢?比如,要給老闆使用的主機綁定IP地址,總不能隨便就去查看老闆的主機信息吧。針對這種情況,告訴大家一個很好的辦法。我們首先啓動dhcpd服務程序,爲老闆的主機分配一個IP地址,這樣就會在DHCP服務器本地的日誌文件中保存這次的IP地址分配記錄。然後查看日誌文件,就可以獲悉主機的MAC地址了(即下面加粗的內容)。
在這裏插入圖片描述

設置綁定的IP
在這裏插入圖片描述

在這裏插入圖片描述
systemctl restart network
客戶端重啓網絡
成功綁定
在這裏插入圖片描述
至此 DHCP服務配置完畢!

發佈了49 篇原創文章 · 獲贊 4 · 訪問量 2638
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章