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

DHCP涉及的常見術語:
作用域:一個完整的IP地址段,DHCP協議根據作用域來管理網絡的分布、分配IP地址及其他配置參數。 超級作用域:用於管理處於同一個物理網絡中的多個邏輯子網段。超級作用域中包含了可以統一管理的作用域列表。 排除范圍:把作用域中的某些IP地址排除,確保這些IP地址不會分配給DHCP客戶端。 地址池:在定義了DHCP的作用域並應用了排除范圍后,剩余的用來動態分配給DHCP客戶端的IP地址范圍。 租約:DHCP客戶端能夠使用動態分配的IP地址的時間。 預約:保證網絡中的特定設備總是獲取到相同的IP地址。
安裝dhcpd服務程序:
[root@zhangjh ~]# yum install dhcp -y
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地址、子網掩碼、網關、DNS地址等網絡信息分配給有需要的客戶端,而且當客戶端的租約時間到期后還可以自動回收所分配的IP地址,以便交給新加入的客戶端。
編輯dhcp配置文件:
[root@zhangjh ~]# vim /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example #系統給出的配置文件模板
# see dhcpd.conf(5) man page
ddns-update-style none; #設置DNS服務不自動進行動態更新
ignore client-updates; #忽略客戶端更新DNS記錄
subnet 192.168.38.0 netmask 255.255.255.0 { #作用域為192.168.38.0/24網段
range 192.168.38.10 192.168.38.110; #IP地址池為192.168.38.10-110
option subnet-mask 255.255.255.0; #定義客戶端默認的子網掩碼
option routers 192.168.38.251; #定義客戶端的網關地址
option domain-name "http://cnblogs.com/zhangjianghua"; #定義默認的搜索域
option domain-name-servers 192.168.38.251; #定義客戶端的DNS地址
default-lease-time 21600; #定義默認租約時間(單位:秒)
max-lease-time 43200; #定義最大預約時間(單位:秒)
} #結束符號
啟動dhcpd服務並加入開機啟動項
[root@zhangjh ~]# systemctl start dhcpd [root@zhangjh ~]# systemctl enable dhcpd ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'
配置完成后就可以開啟客戶端來驗證結果了,客戶端網卡配置文件改為dhcp獲取。
分配固定IP地址:
在DHCP協議中有個術語是“預約”,它用來確保局域網中特定的設備總是獲取到固定的IP地址。
在dhcpd服務程序的配置文件中,按照如下格式將IP地址與MAC地址進行綁定:
host 主機名稱 {
hardware ethernet 該主機的MAC地址;
fixed-address 欲指定的IP地址;
}
修改dhcp配置文件:
[root@zhangjh ~]# vim /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
ddns-update-style none;
ignore client-updates;
subnet 192.168.38.0 netmask 255.255.255.0 {
range 192.168.38.10 192.168.38.110;
option subnet-mask 255.255.255.0;
option routers 192.168.38.251;
option domain-name "http://cnblogs.com/zhangjianghua";
option domain-name-servers 192.168.38.251;
default-lease-time 21600;
max-lease-time 43200;
host zhangjianghua{ #指定主機名
hardware ethernet 00:0c:29:e4:ee:ff; #該主機的MAC地址
fixed-address 192.168.38.88; #想要給主機綁定的IP地址
}
}
修改完配置文件后,重啟dhcpd服務
[root@zhangjh ~]# systemctl restart dhcpd
然后再客戶端重啟網卡,查看IP地址,已經被綁定為192.168.38.88.
