DHCP是網(wǎng)絡(luò)技術(shù)世界一項(xiàng)特別偉大的技術(shù),解決了靜態(tài)配置IP繁瑣的過程,其動(dòng)態(tài)分配IP地址的特性,使得網(wǎng)絡(luò)變得靈活可擴(kuò)展。


(相關(guān)資料圖)

如果沒有 DHCP,很難想象我們將如何連接到互聯(lián)網(wǎng)或本地網(wǎng)絡(luò),DHCP 是我們?cè)?IP 網(wǎng)絡(luò)上的設(shè)備如何相互通信以及與我們周圍的世界通信的重要組成部分。

那么DHCP背后的原理是什么?為什么說DHCP是革命性的技術(shù)?在配置DHCP的時(shí)候要注意什么?

本文,瑞哥就用圖解的形式帶大家揭開DHCP的神秘面紗,讓我們直接開始!

什么是DHCP?

英文全稱:Dynamic Host Configuration Protocol

中文名稱:動(dòng)態(tài)主機(jī)配置協(xié)議

是一種網(wǎng)絡(luò)管理協(xié)議

DHCP術(shù)語DHCP有許多專業(yè)術(shù)語,下面我們來簡單了解一下:DHCP Discover:當(dāng)客戶端 (PC) 啟動(dòng)時(shí),它會(huì)通過以太網(wǎng)廣播 DHCP Discover 消息來定位同一子網(wǎng)中的所有可用 DHCP 服務(wù)器,到達(dá)同一子網(wǎng)中的所有 DHCP 服務(wù)器。DHCP Offer:當(dāng) DHCP 服務(wù)器收到來自客戶端的 DHCP Discover 消息時(shí),它還會(huì)通過以太網(wǎng)廣播 DHCP Offer 消息,通知客戶端它可用。DHCP Request:收到 DHCP Offer 消息的客戶端識(shí)別出在同一子網(wǎng)上有可用的 DHCP 服務(wù)器,然后它通過以太網(wǎng)向服務(wù)器廣播 DHCP 請(qǐng)求消息,請(qǐng)求網(wǎng)絡(luò)配置數(shù)據(jù),包括自己的 IP 地址。DHCP Reservation:網(wǎng)絡(luò)的預(yù)定義 IP 地址范圍DHCP ACK:DHCP確認(rèn)DHCP Server:DHCP服務(wù)器,運(yùn)行和管理 DHCP 信息的設(shè)備DHCP Client:DHCP客戶端,負(fù)責(zé)請(qǐng)求 IP 地址并與 DHCP 服務(wù)器建立 DHCP 連接DHCP Relay Agent:DHCP 中繼代理,是在本地 DHCP 客戶端和遠(yuǎn)程 DHCP 服務(wù)器之間發(fā)送請(qǐng)求和回復(fù)的主機(jī)或路由器,當(dāng)多個(gè)LAN中只有一個(gè) DHCP 服務(wù)器時(shí),中繼代理會(huì)處理所有網(wǎng)絡(luò)的請(qǐng)求。Lease Time:租用時(shí)間,客戶端可以使用分配給它的 IP 地址的時(shí)間

DHCP 基本拓?fù)?/p>DHCP組成部分

上面我們介紹了DHCP的術(shù)語,一般DHCP會(huì)包含以下部分:

DHCP組成部分

這個(gè)就印證了上面的DHCP 基本拓?fù)鋱D,IP地址池、子網(wǎng)、DHCP租約我們會(huì)在DHCP原理中介紹。

DHCP原理

DHCP 在應(yīng)用層運(yùn)行以動(dòng)態(tài)地為客戶端分配 IP 地址,這是通過共享 DHCP 事務(wù)或 DHCP 會(huì)話來實(shí)現(xiàn)的:

DHCP過程

我們來用一張圖來簡單的解釋以下DHCP的握手過程:

DHCP的握手過程

第一步:discover:客戶端發(fā)送一個(gè)dhcp discover消息通知服務(wù)器第二步:offer:服務(wù)器回應(yīng)一個(gè)可用的IP地址和其他參數(shù)第三步:request:客戶端從服務(wù)器請(qǐng)求IP地址第四步:acknowledge:服務(wù)器回應(yīng)一個(gè)可用的IP地址和其他參數(shù)

為了方便大家記憶,我們將圖簡化一下:

DHCP工作過程

我們來看一下DHCP工作過程的抓包:

DHCP工作過程的抓包分析

DHCP 租約

每個(gè) IP 地址都不會(huì)無限期地屬于某一臺(tái)計(jì)算機(jī),與 IP 地址一起,DHCP 服務(wù)器將發(fā)送一個(gè)稱為租用時(shí)間的到期日期,表示主機(jī)何時(shí)需要更新地址,DHCP 租約可以避免一定程度上的IP地址的浪費(fèi),因?yàn)榭赡苡行㊣P分配出去了,但是所屬計(jì)算機(jī)已經(jīng)不在某個(gè)局域網(wǎng)了,這個(gè)時(shí)候如果這個(gè)地址還不釋放的話,久而久之就會(huì)造成浪費(fèi)。

DHCP租約周期如下:

客戶端通過向 DHCP 服務(wù)器請(qǐng)求一個(gè) IP 地址租用的分配過程來獲得一個(gè) IP 地址租用。如果客戶端已從現(xiàn)有租約中獲得 IP 地址,則在重啟時(shí)需要刷新其 IP 地址,并聯(lián)系 DHCP 服務(wù)器重新分配IP 地址。租約未到期,則客戶端綁定相關(guān)租約和IP地址。租約到期,客戶端將聯(lián)系最初授予租約的服務(wù)器來更新它,獲得繼續(xù)使用其 IP 地址的權(quán)力。如果客戶端移動(dòng)到不同的網(wǎng)絡(luò),它的動(dòng)態(tài) IP 地址將被終止,它會(huì)從新網(wǎng)絡(luò)的 DHCP 服務(wù)器請(qǐng)求一個(gè)新的 IP 地址。配置DHCP

Windows

windows配置dhcp比較簡單,而且也幾乎是默認(rèn)的配置方式:

打開【網(wǎng)絡(luò)和internet設(shè)置】

網(wǎng)絡(luò)和internet設(shè)置

點(diǎn)擊你連接的網(wǎng)絡(luò)的【屬性】

網(wǎng)絡(luò)屬性

找到【IP設(shè)置】

找到【IP設(shè)置】

看到我的電腦已經(jīng)是設(shè)置成DHCP獲取的方式了

ip設(shè)置

點(diǎn)開【IP設(shè)置】我們看到有DHCP和手動(dòng)兩種設(shè)置方式。

我們來看下通過DHCP設(shè)置后,我的IP地址是多少:

查看本機(jī)IP地址

可以看到通過DHCP自動(dòng)分配后,我的電腦IP地址為:192.168.50.234

Linux

我以我的一個(gè)云服務(wù)器為例子給大家演示一下,我的這臺(tái)云服務(wù)器是香港的,Centos系統(tǒng),那么網(wǎng)絡(luò)配置文件都是在/etc/sysconfig/network-scripts/路徑下。

我們來看一下這臺(tái)服務(wù)器的網(wǎng)絡(luò)設(shè)置:

more /etc/sysconfig/network-scripts/ifcfg-eth0

命令行顯示:

# Created by cloud-init on instance boot automatically, do not edit.#BOOTPROTO=dhcpDEVICE=eth0MTU=1450ONBOOT=yesTYPE=EthernetUSERCTL=no

服務(wù)器的網(wǎng)絡(luò)設(shè)置

由此可見我的這臺(tái)云服務(wù)器的ip地址也是DHCP的方式。

查看DHCP分配的地址租約

我們?cè)趺慈ゲ榭碊HCP分配的地址租約呢?

還是以我這臺(tái)香港的云服務(wù)器為例:

執(zhí)行命令:

cat /var/lib/dhclient/dhclient--eth0.lease

結(jié)果顯示:

lease { interface "eth0"; fixed-address 172.16.2.231; option subnet-mask 255.255.0.0; option routers 172.16.0.1; option dhcp-lease-time 86400; option dhcp-message-type 5; option domain-name-servers 8.8.4.4; option dhcp-server-identifier 172.16.0.2; option interface-mtu 1450; option dhcp-renewal-time 40305; option classless-static-routes 32.169.254.169.254 172.16.0.2,0 172.16.0.1; option broadcast-address 172.16.255.255; option dhcp-rebinding-time 72705; option host-name "host-172-16-2-231"; option domain-name "openstacklocal"; renew 6 2022/07/09 09:49:26; rebind 6 2022/07/09 19:34:44; expire 6 2022/07/09 23:22:59;}lease { interface "eth0"; fixed-address 172.16.2.231; option subnet-mask 255.255.0.0; option routers 172.16.0.1; option dhcp-lease-time 86400; option dhcp-message-type 5; option domain-name-servers 8.8.4.4; option dhcp-server-identifier 172.16.0.2; option interface-mtu 1450; option dhcp-renewal-time 39746; option classless-static-routes 32.169.254.169.254 172.16.0.2,0 172.16.0.1; option broadcast-address 172.16.255.255; option dhcp-rebinding-time 72146; option host-name "host-172-16-2-231"; option domain-name "openstacklocal"; renew 6 2022/07/09 20:31:46; rebind 0 2022/07/10 05:51:52; expire 0 2022/07/10 09:49:26;}

DHCP分配的地址租約

我們看到有一項(xiàng)參數(shù)叫option dhcp-lease-time 86400,這個(gè)就是租期時(shí)間,單位是秒。

我們還能看出:

renew 6 2022/07/09 20:31:46;:重新設(shè)置的時(shí)間rebind 0 2022/07/10 05:51:52;:將要重新綁定的時(shí)間expire 0 2022/07/10 09:49:26;:到期時(shí)間

以上就是DHCP的設(shè)置部分,我們最后看看DHCP的優(yōu)缺點(diǎn)。

DHCP的優(yōu)缺點(diǎn)

DHCP優(yōu)點(diǎn)

減少 IP 沖突:手動(dòng)分配 IP 地址會(huì)增加網(wǎng)絡(luò)中不正確或重復(fù)地址的可能性,使用 DHCP可以確保通過集中控制自動(dòng)、準(zhǔn)確地分配地址。簡化網(wǎng)絡(luò)管理:借助DHCP,網(wǎng)絡(luò)管理員可以輕松監(jiān)控、管理和分配 IPv4 和 IPv6 地址。降低成本: 與手動(dòng)分配 IP 相比,DHCP 有助于節(jié)省大量時(shí)間,尤其是對(duì)于大型企業(yè)而言,它還可以節(jié)省資金和其他資源,因?yàn)楣静恍枰袑iT的專家來持續(xù)監(jiān)督知識(shí)產(chǎn)權(quán)管理和分配。

DHCP缺點(diǎn)

DHCP 本身并不安全,如果惡意行為者訪問 DHCP 服務(wù)器,他們可能會(huì)造成嚴(yán)重破壞。

如果 DHCP 服務(wù)器沒有備份并且服務(wù)器出現(xiàn)故障,它所服務(wù)的設(shè)備也會(huì)出現(xiàn)故障。

如果網(wǎng)絡(luò)只有一個(gè) DHCP 服務(wù)器,則 DHCP 服務(wù)器可能是單點(diǎn)故障。

總結(jié)

DHCP 是 1985 年網(wǎng)絡(luò) IP 管理協(xié)議 Bootstrap 協(xié)議 ( BOOTP ) 的擴(kuò)展,用于為網(wǎng)絡(luò)上的每臺(tái)主機(jī)動(dòng)態(tài)分配 IP 地址和其他信息,以便它們能夠高效地進(jìn)行通信。DHCP 自動(dòng)、集中管理 IP 地址的分配,簡化了網(wǎng)絡(luò)管理員的工作,除了IP 地址,DHCP 還為主機(jī)分配子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)和域名服務(wù)器地址等配置,從而使網(wǎng)絡(luò)管理員的工作更加輕松。

標(biāo)簽: DHCP