圖解網(wǎng)絡(luò):什么是DHCP動態(tài)主機配置協(xié)議?
DHCP是網(wǎng)絡(luò)技術(shù)世界一項特別偉大的技術(shù),解決了靜態(tài)配置IP繁瑣的過程,其動態(tài)分配IP地址的特性,使得網(wǎng)絡(luò)變得靈活可擴展。
如果沒有 DHCP,很難想象我們將如何連接到互聯(lián)網(wǎng)或本地網(wǎng)絡(luò),DHCP 是我們在 IP 網(wǎng)絡(luò)上的設(shè)備如何相互通信以及與我們周圍的世界通信的重要組成部分。
那么DHCP背后的原理是什么?為什么說DHCP是革命性的技術(shù)?在配置DHCP的時候要注意什么?
本文,瑞哥就用圖解的形式帶大家揭開DHCP的神秘面紗,讓我們直接開始!
什么是DHCP?
英文全稱:Dynamic Host Configuration Protocol
中文名稱:動態(tài)主機配置協(xié)議
是一種網(wǎng)絡(luò)管理協(xié)議
DHCP術(shù)語
- DHCP有許多專業(yè)術(shù)語,下面我們來簡單了解一下:
- DHCP Discover:當(dāng)客戶端 (PC) 啟動時,它會通過以太網(wǎng)廣播 DHCP Discover 消息來定位同一子網(wǎng)中的所有可用 DHCP 服務(wù)器,到達同一子網(wǎng)中的所有 DHCP 服務(wù)器。
- DHCP Offer:當(dāng) DHCP 服務(wù)器收到來自客戶端的 DHCP Discover 消息時,它還會通過以太網(wǎng)廣播 DHCP Offer 消息,通知客戶端它可用。
- DHCP Request:收到 DHCP Offer 消息的客戶端識別出在同一子網(wǎng)上有可用的 DHCP 服務(wù)器,然后它通過以太網(wǎng)向服務(wù)器廣播 DHCP 請求消息,請求網(wǎng)絡(luò)配置數(shù)據(jù),包括自己的 IP 地址。
- DHCP Reservation:網(wǎng)絡(luò)的預(yù)定義 IP 地址范圍
- DHCP ACK:DHCP確認
- DHCP Server:DHCP服務(wù)器,運行和管理 DHCP 信息的設(shè)備
- DHCP Client:DHCP客戶端,負責(zé)請求 IP 地址并與 DHCP 服務(wù)器建立 DHCP 連接
- DHCP Relay Agent:DHCP 中繼代理,是在本地 DHCP 客戶端和遠程 DHCP 服務(wù)器之間發(fā)送請求和回復(fù)的主機或路由器,當(dāng)多個LAN中只有一個 DHCP 服務(wù)器時,中繼代理會處理所有網(wǎng)絡(luò)的請求。
- Lease Time:租用時間,客戶端可以使用分配給它的 IP 地址的時間
DHCP 基本拓撲
DHCP組成部分
上面我們介紹了DHCP的術(shù)語,一般DHCP會包含以下部分:
DHCP組成部分
這個就印證了上面的DHCP 基本拓撲圖,IP地址池、子網(wǎng)、DHCP租約我們會在DHCP原理中介紹。
DHCP原理
DHCP 在應(yīng)用層運行以動態(tài)地為客戶端分配 IP 地址,這是通過共享 DHCP 事務(wù)或 DHCP 會話來實現(xiàn)的:
DHCP過程
我們來用一張圖來簡單的解釋以下DHCP的握手過程:
DHCP的握手過程
- 第一步:discover:客戶端發(fā)送一個dhcp discover消息通知服務(wù)器
- 第二步:offer:服務(wù)器回應(yīng)一個可用的IP地址和其他參數(shù)
- 第三步:request:客戶端從服務(wù)器請求IP地址
- 第四步:acknowledge:服務(wù)器回應(yīng)一個可用的IP地址和其他參數(shù)
為了方便大家記憶,我們將圖簡化一下:
DHCP工作過程
我們來看一下DHCP工作過程的抓包:
DHCP工作過程的抓包分析
DHCP 租約
每個 IP 地址都不會無限期地屬于某一臺計算機,與 IP 地址一起,DHCP 服務(wù)器將發(fā)送一個稱為租用時間的到期日期,表示主機何時需要更新地址,DHCP 租約可以避免一定程度上的IP地址的浪費,因為可能有些IP分配出去了,但是所屬計算機已經(jīng)不在某個局域網(wǎng)了,這個時候如果這個地址還不釋放的話,久而久之就會造成浪費。
DHCP租約周期如下:
- 客戶端通過向 DHCP 服務(wù)器請求一個 IP 地址租用的分配過程來獲得一個 IP 地址租用。
- 如果客戶端已從現(xiàn)有租約中獲得 IP 地址,則在重啟時需要刷新其 IP 地址,并聯(lián)系 DHCP 服務(wù)器重新分配IP 地址。
- 租約未到期,則客戶端綁定相關(guān)租約和IP地址。
- 租約到期,客戶端將聯(lián)系最初授予租約的服務(wù)器來更新它,獲得繼續(xù)使用其 IP 地址的權(quán)力。
- 如果客戶端移動到不同的網(wǎng)絡(luò),它的動態(tài) IP 地址將被終止,它會從新網(wǎng)絡(luò)的 DHCP 服務(wù)器請求一個新的 IP 地址。
配置DHCP
Windows
windows配置dhcp比較簡單,而且也幾乎是默認的配置方式:
- 打開【網(wǎng)絡(luò)和internet設(shè)置】
網(wǎng)絡(luò)和internet設(shè)置
- 點擊你連接的網(wǎng)絡(luò)的【屬性】
網(wǎng)絡(luò)屬性
- 找到【IP設(shè)置】
找到【IP設(shè)置】
看到我的電腦已經(jīng)是設(shè)置成DHCP獲取的方式了
ip設(shè)置
點開【IP設(shè)置】我們看到有DHCP和手動兩種設(shè)置方式。
我們來看下通過DHCP設(shè)置后,我的IP地址是多少:
查看本機IP地址
可以看到通過DHCP自動分配后,我的電腦IP地址為:192.168.50.234
Linux
我以我的一個云服務(wù)器為例子給大家演示一下,我的這臺云服務(wù)器是香港的,Centos系統(tǒng),那么網(wǎng)絡(luò)配置文件都是在/etc/sysconfig/network-scripts/路徑下。
我們來看一下這臺服務(wù)器的網(wǎng)絡(luò)設(shè)置:
more /etc/sysconfig/network-scripts/ifcfg-eth0
- 1.
命令行顯示:
# Created by cloud-init on instance boot automatically, do not edit. # BOOTPROTO=dhcp DEVICE=eth0 MTU=1450 ONBOOT=yes TYPE=Ethernet USERCTL=no
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
服務(wù)器的網(wǎng)絡(luò)設(shè)置
由此可見我的這臺云服務(wù)器的ip地址也是DHCP的方式。
查看DHCP分配的地址租約
我們怎么去查看DHCP分配的地址租約呢?
還是以我這臺香港的云服務(wù)器為例:
執(zhí)行命令:
cat /var/lib/dhclient/dhclient--eth0.lease
- 1.
結(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; }
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
DHCP分配的地址租約
我們看到有一項參數(shù)叫option dhcp-lease-time 86400,這個就是租期時間,單位是秒。
我們還能看出:
- renew 6 2022/07/09 20:31:46;:重新設(shè)置的時間
- rebind 0 2022/07/10 05:51:52;:將要重新綁定的時間
- expire 0 2022/07/10 09:49:26;:到期時間
以上就是DHCP的設(shè)置部分,我們最后看看DHCP的優(yōu)缺點。
DHCP的優(yōu)缺點
DHCP優(yōu)點
- 減少 IP 沖突:手動分配 IP 地址會增加網(wǎng)絡(luò)中不正確或重復(fù)地址的可能性,使用 DHCP可以確保通過集中控制自動、準(zhǔn)確地分配地址。
- 簡化網(wǎng)絡(luò)管理:借助DHCP,網(wǎng)絡(luò)管理員可以輕松監(jiān)控、管理和分配 IPv4 和 IPv6 地址。
- 降低成本: 與手動分配 IP 相比,DHCP 有助于節(jié)省大量時間,尤其是對于大型企業(yè)而言,它還可以節(jié)省資金和其他資源,因為公司不需要有專門的專家來持續(xù)監(jiān)督知識產(chǎn)權(quán)管理和分配。
DHCP缺點
DHCP 本身并不安全,如果惡意行為者訪問 DHCP 服務(wù)器,他們可能會造成嚴(yán)重破壞。
如果 DHCP 服務(wù)器沒有備份并且服務(wù)器出現(xiàn)故障,它所服務(wù)的設(shè)備也會出現(xiàn)故障。
如果網(wǎng)絡(luò)只有一個 DHCP 服務(wù)器,則 DHCP 服務(wù)器可能是單點故障。
總結(jié)
DHCP 是 1985 年網(wǎng)絡(luò) IP 管理協(xié)議 Bootstrap 協(xié)議 ( BOOTP ) 的擴展,用于為網(wǎng)絡(luò)上的每臺主機動態(tài)分配 IP 地址和其他信息,以便它們能夠高效地進行通信。DHCP 自動、集中管理 IP 地址的分配,簡化了網(wǎng)絡(luò)管理員的工作,除了IP 地址,DHCP 還為主機分配子網(wǎng)掩碼、默認網(wǎng)關(guān)和域名服務(wù)器地址等配置,從而使網(wǎng)絡(luò)管理員的工作更加輕松。