動態主機配置協議vim
動態主機配置協議(DHCP)是一種基於 UDP 協議且僅限於在局域網內部使用的網絡協議,主要用於大型的局域網環境或者存在較多移動辦公設備的局域網環境中,其主要用途是爲局域網內部的設備或網絡供應商自動分配 IP 地址等參數。服務器
➢ 做用域:一個完整的 IP 地址段,DHCP 協議根據做用域來管理網絡的分佈、分配 I地址及其餘配置參數。網絡
➢ 超級做用域:用於管理處於同一個物理網絡中的多個邏輯子網段。超級做用域中包含了能夠統一管理的做用域列表。dom
➢ 排除範圍:把做用域中的某些 IP 地址排除,確保這些 IP 地址不會分配給 DHCP 客戶ide
➢ 地址池:在定義了DHCP的做用域並應用了排除範圍後,剩餘的用來動態分配給DHC客戶端的 IP 地址範圍。this
➢ 租約:DHCP 客戶端可以使用動態分配的 IP 地址的時間。spa
➢ 預定:保證網絡中的特定設備老是獲取到相同的 IP 地設計
部署 dhcpd 服務程序rest
安裝 dhcpd 服務程序code
[root@localhost Desktop]# yum install dhcp Loaded plugins: langpacks, product-id, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. rhel7 | 4.1 kB 00:00 Resolving Dependencies --> Running transaction check ---> Package dhcp.x86_64 12:4.2.5-27.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: dhcp x86_64 12:4.2.5-27.el7 rhel7 506 k Transaction Summary ================================================================================ Install 1 Package Total download size: 506 k Installed size: 1.4 M Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 12:dhcp-4.2.5-27.el7.x86_64 1/1 rhel7/productid | 1.6 kB 00:00 Verifying : 12:dhcp-4.2.5-27.el7.x86_64 1/1 Installed: dhcp.x86_64 12:4.2.5-27.el7 Complete!
查看 dhcpd 服務程序的配置文件內容。
[root@localhost Desktop]# cat /etc/dhcp/dhcpd.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page
沒有看錯!dhcp 的服務程序的配置文件中只有 3 行註釋語句,這意味着咱們須要自行編寫這個文件。一個標準的配置文件應該包括全局配置參數、子網網段聲明、地址配置選項以及地址配置參數。其中,全局配置參數用於定義 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 偏移差 | 指定客戶端與格林尼治時間的偏移差 |
自動管理 IP地址
DHCP 協議的設計初衷是爲了更高效地集中管理局域網內的 IP 地址資源。DHCP 服務器會自動把 IP 地址、子網掩碼、網關、DNS 地址等網絡信息分配給有須要的客戶端,並且當客戶端的租約時間到期後還能夠自動回收所分配的 IP 地址,以便交給新加入的客戶端。
DHCP客戶端與服務器須要處於同一種網絡模式—僅主機模式(Hostonly),不然就會產生物理隔離,從而沒法獲取IP地址。在配置 dhcpd 服務程序時,配置文件中的每行參數後面都須要以分號(;)結尾。
[root@localhost Desktop]# 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-servers 192.168.10.1; default-lease-time 21600; max-lease-time 43200; }
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-servers 192.168.10.1; | 定義客戶端的DNS地址 |
default-lease-time 21600; | 定義默認租約時間(單位:秒) |
max-lease-time 43200; | 定義最大預定時間(單位:秒) |
} | 結束符 |
重啓服務並加入到啓動項,並清空iptables。
[root@localhost Desktop]# systemctl restart dhcpd [root@localhost Desktop]# systemctl enable dhcpd ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'
[root@localhost Desktop]# iptables -F
[root@localhost Desktop]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
把客戶端打開,並設置成自動獲取IP,並重啓網卡。
重啓客戶端的網卡服務後便可看到自動分配到的 IP 地址
分配固定 IP 地址
在 DHCP 協議中有個術語是「預定」,它用來確保局域網中特定的設備老是獲取到固定的 IP 地址。換句話說,就是 dhcpd 服務程序會把某個 IP 地址私藏下來,只將其用於相匹配的特定設備。要想把某個 IP 地址與某臺主機進行綁定,就須要用到這臺主機的 MAC 地址。MAC 地址是網卡上面的一串獨立的標識符,具有惟一性,所以不會存在衝突的狀況.
在dhcpd服務程序的配置文件中,按照以下格式將IP地址與MAC地址進行綁定。
host 主機名稱 { | |||
hardware | ethernet | 該主機的MAC地址; | |
fixed-address | 欲指定的IP地址; | ||
} |
[root@localhost Desktop]# 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-servers 192.168.10.1; default-lease-time 21600; max-lease-time 43200; host test { hardware ethernet 00:0c:29:6e:8b:e5; fixed-address 192.168.10.88; } }
保存退出配置文件,而後重啓 dhcpd 服務程序
[root@localhost Desktop]# systemctl restart dhcpd
重啓客戶端網卡,查看ip