DHCP 動態主機配置協議 Dynamic Host Configuration Protocol
局域網的 網絡協議,使用 UDP協議工作, 主要有兩個用途:給內部網絡或 網絡服務供應商自動分配 IP地址,給用戶或者內部 網絡管理員作為對所有 計算機作中央管理的手段,端口:udp 67:服務器端 ;udp 68:客戶端
DHCP具有以下功能:
1. 保證任何IP地址在同一時刻只能由一臺DHCP客戶機所使用。
2. DHCP應當可以給用戶分配永久固定的IP地址。
3. DHCP應當可以同用其他方法獲得IP地址的 主機共存(如手工配置IP地址的主機)。
4. DHCP 服務器應當向現有的BOOTP 客戶端提供服務。
DHCP有三種機制分配IP地址:
1) 自動分配方式(Automatic Allocation),DHCP服務器為主機指定一個永久性的IP地址,一旦DHCP客戶端第一次成功從DHCP服務器端租用到IP地址後,就可以永久性的使用該地址。
2) 動態分配方式(Dynamic Allocation),DHCP服務器給主機指定一個具有時間限制的IP地址,時間到期或主機明確表示放棄該地址時,該地址可以被其他主機使用。
3) 手工分配方式(Manual Allocation),客戶端的IP地址是由網絡管理員指定的,DHCP服務器只是將指定的IP地址告訴客戶端主機。
(3)DHCP的租用請求
請求 客戶端 ---DHCP discover--》 服務器端(地址池) 廣播
提供 客戶端 ---DHCP offer-----》 服務器端 廣播
選擇 客戶端 ---DHCP request---》 服務器端 廣播
確認 客戶端 ---DHCP ack-------》 服務器端 廣播
實驗 一
1、服務器端配ip,客戶端為自動獲取,綁網段,關閉防火墻,關閉selinux
2、服務器端:安裝程序包 dhcp
客戶端:安裝程序包 dhclient
3、搭建單區域的DHCP服務器
(1)DHCP服務器要有一個固定的ip地址
(2)DHCP第一個地址池與服務器同網段
修改配置文件 /etc/dhcp/dhcpd.conf
#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[全局設置]
#7 DNS解析域名
#8 DNS的全稱域名或IP地址
#10 默認租期 秒
#11 租期上限
#22 日誌
[新建一個地址池] 與DHCP相同網段的地址池
#47 subnet IP netmask 子網掩碼 {
#48 range(IP地址範圍);
#49 option domain-name-servers DNS服務器;
#50 option domain-name "全稱域名",DNS解析的區域
#51 option routers 網關;
#52 option broadcast-address 廣播地址;
#53 default-lease-time 600;租期600s
#54 max-lease-time 7200;租期上限
#55 }
此外
option ntp-server ip地址 NTP時間服務器(時間同步)
option netbios-name-servers ip地址 wins服務器(主機名與IP地址的解析)
重啟服務
#systemctl restart dhcpd
#systemctl enable dhcpd
#systemctl status dhcpd
客戶端驗證
dhclient -r 網卡名 釋放IP地址
dhclient -v 網卡名 獲取IP地址
客戶端與服務器端的記錄文件
服務器端:/var/lib/dhcpd/dhcpd.leases
客戶端:/var/lib/dhclient/dhclient.lease
實驗 二
【給某個客戶端分配固定的IP地址】
ip捆綁:ip與客戶端的MAC地址做捆綁
vim /etc/dhcp/dhcpd.conf
#75 host 保留名稱(例:boss) 新建一個保留,保留名為boss
#76 hardware ethernet 00:0c:29:6f:ce:4d;指定客戶端的MAC地址
#77 fixed-address 192.168.10.25;指定要捆綁的IP地址(該地址必須在所建的地址池的地址範圍中)
#78 }
保存退出
重啟服務驗證
實驗 三
DHCP中繼代理
實驗拓撲圖:客戶端1 ;DHCP --- 路由器 --- DHCP中繼 ;客戶端2
實驗:
跨網段分配,DHCP中繼 安裝dhcp安裝包
1、DHCP服務器:配網關,綁網段,新建20.0段地址池
vim /etc/dhcp/dhcpd.conf 新建20.0地址池,重啟服務
2、路由:配ip,綁網段,開啟路由轉發功能
vim /usr/lib/sysctl.d/00-system.conf
最後一行追加
net.ipv4.ip_forward = 1
保存退出
重啟網絡服務
#systemctl restart network
查看路由轉發是否開啟
#cat /proc/sys/net/ipv4/ip_forward
1 -- 開啟 ;0 -- 不開啟
3、中繼代理服務器:配ip,綁網段,配網關,開啟中繼代理功能
(1)安裝程序包 dhcp
(2)開啟代理功能
a、臨時開啟
#dhcrelay -i eno16777736 192.168.10.2
-i:指定哪塊網卡提供中繼代理服務
網卡名後指定DHCP服務器的IP地址
b、永久開啟
vim /usr/lib/systemd/system/dhcrelay.service
#ExecStart = /usr/sbin/dhcrelay -d --no-pid -i eno16777736 +DHCP服務器的IP地址
保存退出
重啟服務
#systemctl restart dhcrelay
#systemctl status dhcrelay
#systemctl daemon-reload 加載systemd
4、兩臺客戶端:綁網段,設置為動態獲取
<以上需要5臺機器>
若中繼代理開在路由器上
1、在路由器:安裝程序包dhcp
2、開啟代理功能(路由器上開中繼,路由器上有幾個網卡都要寫上)
a、臨時開啟
#dhcrelay -i eno16777736 -i eno33554960 192.168.10.2
-i:指定哪塊網卡提供中繼代理服務
網卡名後指定DHCP服務器的IP地址
b、永久開啟
vim /usr/lib/systemd/system/dhcrelay.service
#ExecStart = /usr/slib/dhcrelay -d --no-pid -i eno16777736 -i eno33554984 DHCP服務器的IP地址
保存退出
重啟服務
#systemctl restart dhcrelay
#systemctl status dhcrelay
#systemctl daemon-reload 加載systemd
以上的DHCP服務器是用虛擬機,一般生產都是用路由器來做DHCP服務器
DHCP 動態主機配置協議 Dynamic Host Configuration Protocol