1. 程式人生 > 其它 >使用DHCP動態管理主機地址

使用DHCP動態管理主機地址

動態主機地址管理協議

動態主機配置協議(DHCP)是一種基於UDP協議且僅限於在區域網內部使用的網路協議,主要用於大型的區域網環境或者存在較多移動辦公裝置的區域網環境中,其主要用途是讓區域網中的主機自動獲得網路引數(IP地址、子網掩碼、閘道器地址以及DNS地址等引數)。

DHCP涉及的常見術語:

作用域:一個完整的IP地址段,DHCP協議根據作用域來管理網路的分佈、分配IP地址及其他配置引數。
超級作用域:用於管理處於同一個物理網路中的多個邏輯子網段。超級作用域中包含了可以統一管理的作用域列表。
排除範圍:把作用域中的某些IP地址排除,確保這些IP地址不會分配給DHCP客戶端。
地址池:在定義了DHCP的作用域並應用了排除範圍後,剩餘的用來動態分配給DHCP客戶端的IP地址範圍。
租約:DHCP客戶端能夠使用動態分配的IP地址的時間。
預約:保證網路中的特定裝置總是獲取到相同的IP地址。

作用域=地址池+排除範圍。地址池才是真正可分配的IP地址範圍。

租約有預設租約(軟限制)和最大租約(硬限制)。

預約是通過繫結裝置MAC和IP地址,使得該裝置總是獲取該IP地址。

部署dhcpd服務程式

安裝dhcp服務程式:yum install -y dhcp。

dhcpd服務的配置檔案:/etc/dhcp/dhcpd.conf。內容只有幾行註釋,配置檔案需要自行編輯。註釋中有指明可以參考示例檔案/usr/share/doc/dhcp*/dhcpd.conf.example。

dhcpd服務程式配置檔案的架構:

一個標準的配置檔案應該包括全域性配置引數、子網網段宣告、地址配置選項以及地址配置引數。其中,全域性配置引數用於定義dhcpd服務程式的整體執行引數;子網網段宣告用於配置整個子網段的地址屬性。

dhcpd服務程式配置檔案中使用的常見引數以及作用:

引數 作用

ddns-update-style 型別(ddns:動態DNS地址更新技術)
定義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 偏移差 指定客戶端與格林尼治時間的偏移差

自動管理IP地址

例項1:保證至少100臺裝置能夠使用機房的本地DHCP伺服器自動獲取IP地址並正常上網。

虛擬機器先把服務端和客戶機的自帶dhcp服務關閉,以免衝突。

dhcp伺服器192.168.10.10要做的:編輯dhcpd服務的配置檔案,注意dhcpd服務配置檔案中的每行引數後面都需要以分號(;)結尾,重啟dhcpd服務並加入開機啟動項。

vim /etc/dhcp/dhcpd.conf
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 start dhcpd #重啟dhcpd服務
systemctl enable dhcpd #把dhcpd服務加入啟動項

客戶機要做的:設定網絡卡為自動獲取IP地址(多種配置網絡卡的方法,編輯網絡卡配置檔案、nmtui、nm-connection-editor均可),重啟網絡卡服務(systemctl restart network),檢視網絡卡引數看是否自動獲取了ip地址(ifconfig)。

分配固定IP地址

在DHCP中,“預約”用來確保區域網中特定的裝置總是獲取到固定的IP地址。即該地址只會分配給特定裝置,即使特定裝置不在該區域網內,該地址也不會分配出去。

MAC地址是網絡卡上面的一串獨立的識別符號,具備唯一性,不會存在衝突的情況。通過IP地址與裝置MAC地址繫結即可實現為裝置分配固定IP地址的功能。

dhcp伺服器要做的:

1.獲取特定裝置的MAC地址(直接檢視裝置的網絡卡資訊獲得;或先通過啟動dhcpd程式為裝置分配IP地址,檢視dhcp伺服器本地的日誌檔案/var/log.message的相關記錄,當中就會有分配過IP地址的裝置的MAC地址資訊);
2.按下面格式編輯dhcpd配置檔案,重啟dhcpd服務:

vim /etc/dhcp/dhcpd.conf
...
subnet x.x.x.x netmask x.x.x.x {
...
host 主機名稱 { #包裹在作用域定義中
hardware ethernet 該主機的MAC地址;
fixed-address 欲指定的IP地址;
}
}

注意,Windows系統中看到的MAC地址,格式為xx-xx-xx-xx-xx-xx,間隔符為減號(-)。但是在Linux系統中,MAC地址的間隔符則為冒號(:),在Linux中配置dhcpd服務的IP地址與MAC繫結時,MAC的間隔符也為冒號(:)。

例項2:在例項1的基礎上,配置dhcpd,使得特定客戶機總是獲取特定IP地址192.168.10.88。

dhcp伺服器:

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;
host linuxprobe {
hardware ethernet 00:0c:29:e9:be:e2;
fixed-address 192.168.10.88;
}
}
systemctl restart dhcpd

MAC地址為00:0c:29:e9:be:e2的客戶機:重啟網絡卡服務。檢視網絡卡資訊,能看到IP地址會變成192.168.10.88。