圖解網(wǎng)絡(luò):什么是DHCP動(dòng)態(tài)主機(jī)配置協(xié)議?
DHCP是網(wǎng)絡(luò)技術(shù)世界一項(xiàng)特別偉大的技術(shù),解決了靜態(tài)配置IP繁瑣的過程,其動(dòng)態(tài)分配IP地址的特性,使得網(wǎng)絡(luò)變得靈活可擴(kuò)展。
如果沒有 DHCP,很難想象我們將如何連接到互聯(lián)網(wǎng)或本地網(wǎng)絡(luò),DHCP 是我們在 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 請求消息,請求網(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é)請求 IP 地址并與 DHCP 服務(wù)器建立 DHCP 連接
- DHCP Relay Agent:DHCP 中繼代理,是在本地 DHCP 客戶端和遠(yuǎn)程 DHCP 服務(wù)器之間發(fā)送請求和回復(fù)的主機(jī)或路由器,當(dāng)多個(gè)LAN中只有一個(gè) DHCP 服務(wù)器時(shí),中繼代理會(huì)處理所有網(wǎng)絡(luò)的請求。
- Lease Time:租用時(shí)間,客戶端可以使用分配給它的 IP 地址的時(shí)間
DHCP 基本拓?fù)?
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ù)器請求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ù)器請求一個(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ù)器請求一個(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
- 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è)置
由此可見我的這臺(tái)云服務(wù)器的ip地址也是DHCP的方式。
查看DHCP分配的地址租約
我們怎么去查看DHCP分配的地址租約呢?
還是以我這臺(tái)香港的云服務(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分配的地址租約
我們看到有一項(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ò)管理員的工作更加輕松。