1. 程式人生 > >DHCP 動態主機配置協議   Dynamic Host Configuration Protocol

DHCP 動態主機配置協議   Dynamic Host Configuration Protocol

dhcp

局域網的 網絡協議,使用 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