學習總結所用《 Linux就該這麼學 》
動態主機地址管理協議
-
動態主機配置協議(DHCP)是一種基於UDP協議且僅限於在局域網內部使用的網絡協議
-
主要用於大型的局域網環境或者存在較多移動辦公設備的局域網環境中
-
主要用途是爲局域網內部的設備或網絡供應商自動分配IP地址等參數
-
簡單來說,DHCP協議就是讓局域網中的主機自動獲得網絡參數的服務
-
DHCP涉及的常見術語:
作用域:一個完整的IP地址段,DHCP協議根據作用域來管理網絡的分佈、分配IP地址及其他配置參數
超級作用域:用於管理處於同一個物理網絡中的多個邏輯子網段。超級作用域中包含了可以統一管理的作用域列表
排除範圍:把作用域中的某些IP地址排除,確保這些IP地址不會分配給DHCP客戶端
地址池:在定義了DHCP的作用域並應用了排除範圍後,剩餘的用來動態分配給DHCP客戶端的IP地址範圍
租約:DHCP客戶端能夠使用動態分配的IP地址的時間
預約:保證網絡中的特定設備總是獲取到相同的IP地址
部署dhcpd服務程序
-
安裝dhcpd服務程序
# yum install dhcp
-
查看dhcpd服務程序的配置文件內容
# vim /etc/dhcp/dhcpd.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page #
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地址
-
配置dhcpd服務程序
# vim /etc/dhcp/dhcpd.conf ddns-update-style none; #設置DNS服務不自動進行動態更新 ignore client-updates; #忽略客戶端更新DNS記錄 subnet 192.168.40.0 netmask 255.255.255.0 { #作用域爲192.168.40.0/24網段 range 192.168.40.50 192.168.40.100; #IP地址池爲192.168.40.50-100 option subnet-mask 255.255.255.0; #客戶端默認子網掩碼 option routers 192.168.40.1; #客戶端的網關地址 option domain-name "zengzhilai.com"; #默認搜索域 option domain-name-servers 192.168.40.1; #客戶端的DNS地址 default-lease-time 21600; #默認租約時間(單位:s) max-lease-time 43200; #最大預約時間 }
-
啓動dhcpd服務,並加入開機啓動項
# systemctl start dhcpd # systemctl enable dhcpd ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'
-
Linux客戶機測試
Linux客戶機先虛擬網絡編輯設置,去掉下圖的功能,避免與自己配置的dhcpd服務程序產生衝突
客戶機
Linux6.8
重啓網絡服務,查看此時的IP地址# service network restart 正在關閉接口 eth0: [確定] 關閉環回接口: [確定] 彈出環回接口: [確定] 彈出界面 eth0: 正在決定 eth0 的 IP 信息...完成。 [確定] # ifconfig eth0 Link encap:Ethernet HWaddr 00:50:56:3E:86:08 inet addr:192.168.40.50 Bcast:192.168.40.255 Mask:255.255.255.0 inet6 addr: fe80::250:56ff:fe3e:8608/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:828 errors:0 dropped:0 overruns:0 frame:0 TX packets:249 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:58920 (57.5 KiB) TX bytes:23319 (22.7 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:256 errors:0 dropped:0 overruns:0 frame:0 TX packets:256 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:28791 (28.1 KiB) TX bytes:28791 (28.1 KiB)
-
Window10客戶端測試
禁用WLAN、以太網
重啓(即禁用再啓用)VMware Network Adapter VMnet8在CMD中輸入
ipconfig/all
查看網絡信息C:\Users\zengzhilai>ipconfig/all ...... 以太網適配器 VMware Network Adapter VMnet8: 連接特定的 DNS 後綴 . . . . . . . : zengzhilai.com 描述. . . . . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8 物理地址. . . . . . . . . . . . . : 00-50-56-C0-00-08 DHCP 已啓用 . . . . . . . . . . . : 是 自動配置已啓用. . . . . . . . . . : 是 本地鏈接 IPv6 地址. . . . . . . . : fe80::f43d:45b2:8490:738e%14(首選) IPv4 地址 . . . . . . . . . . . . : 192.168.40.51(首選) 子網掩碼 . . . . . . . . . . . . : 255.255.255.0 獲得租約的時間 . . . . . . . . . : 2019年9月10日 3:10:56 租約過期的時間 . . . . . . . . . : 2019年9月10日 9:10:56 默認網關. . . . . . . . . . . . . : 192.168.40.1 DHCP 服務器 . . . . . . . . . . . : 192.168.40.131 DHCPv6 IAID . . . . . . . . . . . : 251678806 DHCPv6 客戶端 DUID . . . . . . . : 00-01-00-01-24-DB-67-0F-74-C6-3B-9A-E7-E9 DNS 服務器 . . . . . . . . . . . : 192.168.40.1 TCPIP 上的 NetBIOS . . . . . . . : 已啓用
-
查看租約數據庫
/var/lib/dhcpd/dhcpd.leases
# cat /var/lib/dhcpd/dhcpd.leases # The format of this file is documented in the dhcpd.leases(5) manual page. # This lease file was written by isc-dhcp-4.2.5 server-duid "\000\001\000\001%\011UV\000\014)J \342"; lease 192.168.40.50 { starts 1 2019/09/09 19:00:58; ends 2 2019/09/10 01:00:58; cltt 1 2019/09/09 19:00:58; binding state active; next binding state free; rewind binding state free; hardware ethernet 00:50:56:3e:86:08; } lease 192.168.40.51 { starts 1 2019/09/09 19:10:56; ends 2 2019/09/10 01:10:56; cltt 1 2019/09/09 19:10:56; binding state active; next binding state free; rewind binding state free; hardware ethernet 00:50:56:c0:00:08; uid "\001\000PV\300\000\010"; client-hostname "LAPTOP-VFVIEPCS"; }
分配固定IP地址
-
獲取boss主機的MAC地址
先啓動dhcpd服務程序,爲boss的主機分配一個IP地址,然後查看DHCP服務器本地的日誌文件(保存這次的IP地址分配記錄),獲取主機的MAC地址
# tail -f /var/log/messages Sep 10 21:47:36 localhost dhcpd: DHCPOFFER on 192.168.40.51 to 00:50:56:c0:00:08 (LAPTOP-VFVIEPCS) via eno16777728 Sep 10 21:47:37 localhost dhcpd: DHCPREQUEST for 192.168.40.51 (192.168.40.131) from 00:50:56:c0:00:08 (LAPTOP-VFVIEPCS) via eno16777728 Sep 10 21:47:37 localhost dhcpd: DHCPACK on 192.168.40.51 to 00:50:56:c0:00:08 (LAPTOP-VFVIEPCS) via eno16777728 Sep 10 21:47:38 localhost kernel: e1000: eno16777728 NIC Link is Down Sep 10 21:47:38 localhost NetworkManager[1227]: <info> (eno16777728): link disconnected (deferring action for 4 seconds) Sep 10 21:47:42 localhost NetworkManager[1227]: <info> (eno16777728): link disconnected (calling deferred action) Sep 10 21:47:44 localhost kernel: e1000: eno16777728 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None Sep 10 21:47:44 localhost NetworkManager[1227]: <info> (eno16777728): link connected Sep 10 21:50:01 localhost systemd: Starting Session 31 of user root. Sep 10 21:50:01 localhost systemd: Started Session 31 of user root.
-
配置dhcpd服務文件
# vim /etc/dhcp/dhcpd.conf ddns-update-style none; ignore client-updates; subnet 192.168.40.0 netmask 255.255.255.0 { range 192.168.40.50 192.168.40.100; option subnet-mask 255.255.255.0; option routers 192.168.40.1; option domain-name "zengzhilai.com"; option domain-name-servers 192.168.40.1; default-lease-time 21600; max-lease-time 43200; #主機分配固定IP地址 host boss { #boss是主機名(隨意取) hardware ethernet 00:50:56:c0:00:08; #主機的MAC地址 fixed-address 192.168.40.88; #欲指定的IP地址 } }
-
查看boss主機的IP地址
注意:有時候dhcpd服務啓動沒報錯不代表配置參數沒錯,下面的出錯點在hardware ehternet
這裏,很明顯拼錯單詞了,應該是ethernet