動態主機配置協議(DHCP)是一種基於UDP協議且僅限於在局域網內部使用的網絡協議,主要用於大型的局域網環境或者存在較多移動辦公設備的局域網環境中,其主要用途是爲局域網內部的設備或網絡供應商自動分配IP地址等參數。python
DHCP概念拓撲圖:vim
DHCP涉及的常見術語:服務器
做用域:一個完整的IP地址段,DHCP協議根據做用域來管理網絡的分佈、分配IP地址及其餘配置參數。 超級做用域:用於管理處於同一個物理網絡中的多個邏輯子網段。超級做用域中包含了能夠統一管理的做用域列表。 排除範圍:把做用域中的某些IP地址排除,確保這些IP地址不會分配給DHCP客戶端。 地址池:在定義了DHCP的做用域並應用了排除範圍後,剩餘的用來動態分配給DHCP客戶端的IP地址範圍。 租約:DHCP客戶端可以使用動態分配的IP地址的時間。 預定:保證網絡中的特定設備老是獲取到相同的IP地址。
[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地址,以便交給新加入的客戶端。dom
編輯dhcp配置文件:spa
[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服務並加入開機啓動項rest
[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獲取。router
在DHCP協議中有個術語是「預定」,它用來確保局域網中特定的設備老是獲取到固定的IP地址。server
在dhcpd服務程序的配置文件中,按照以下格式將IP地址與MAC地址進行綁定:blog
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.