<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    什么是DHCP?為什么要用DHCP?

    VSole2022-06-02 22:53:19

    前言

    動態主機配置協議DHCP(Dynamic Host Configuration Protocol)是一種網絡管理協議,用于集中對用戶IP地址進行動態管理和配置。

    DHCP于1993年10月成為標準協議,其前身是BOOTP協議。DHCP協議由RFC 2131定義,采用客戶端/服務器通信模式,由客戶端(DHCP Client)向服務器(DHCP Server)提出配置申請,DHCP Server為網絡上的每個設備動態分配IP地址、子網掩碼、默認網關地址,域名服務器(DNS)地址和其他相關配置參數,以便可以與其他IP網絡通信。

    01

       為什么要使用DHCP?

    在IP網絡中,每個連接Internet的設備都需要分配唯一的IP地址。DHCP使網絡管理員能從中心結點監控和分配IP地址。當某臺計算機移到網絡中的其它位置時,能自動收到新的IP地址。DHCP實現的自動化分配IP地址不僅降低了配置和部署設備的時間,同時也降低了發生配置錯誤的可能性。另外DHCP服務器可以管理多個網段的配置信息,當某個網段的配置發生變化時,管理員只需要更新DHCP服務器上的相關配置即可,實現了集中化管理。

    總體來看,DHCP帶來了如下優勢:

    • 準確的IP配置:IP地址配置參數必須準確,并且在處理“ 192.168.XXX.XXX”之類的輸入時,很容易出錯。另外印刷錯誤通常很難解決,使用DHCP服務器可以最大程度地降低這種風險。
    • 減少IP地址沖突:每個連接的設備都必須有一個IP地址。但是,每個地址只能使用一次,重復的地址將導致無法連接一個或兩個設備的沖突。當手動分配地址時,尤其是在存在大量僅定期連接的端點(例如移動設備)時,可能會發生這種情況。DHCP的使用可確保每個地址僅使用一次。
    • IP地址管理的自動化:如果沒有DHCP,網絡管理員將需要手動分配和撤消地址。跟蹤哪個設備具有什么地址可能是徒勞的,因為幾乎無法理解設備何時需要訪問網絡以及何時需要離開網絡。DHCP允許將其自動化和集中化,因此網絡專業人員可以從一個位置管理所有位置。
    • 高效的變更管理:DHCP的使用使更改地址,范圍或端點變得非常簡單。例如,組織可能希望將其IP尋址方案從一個范圍更改為另一個范圍。DHCP服務器配置有新信息,該信息將傳播到新端點。同樣,如果升級并更換了網絡設備,則不需要網絡配置。

    02

     DHCP是怎么工作的?

    DHCP協議采用UDP作為傳輸協議,DHCP客戶端發送請求消息到DHCP服務器的68號端口,DHCP服務器回應應答消息給DHCP客戶端的67號端口。

    只有跟DHCP客戶端在同一個網段的DHCP服務器才能收到DHCP客戶端廣播的DHCP DISCOVER報文。當DHCP客戶端與DHCP服務器不在同一個網段時,必須部署DHCP中繼來轉發DHCP客戶端和DHCP服務器之間的DHCP報文。在DHCP客戶端看來,DHCP中繼就像DHCP服務器;在DHCP服務器看來,DHCP中繼就像DHCP客戶端。

    2.1 無中繼場景時DHCP客戶端首次接入網絡的工作原理

    如下圖所示,在沒有部署DHCP中繼的場景下,首次接入網絡DHCP客戶端與DHCP服務器的報文交互過程,該過程稱為DHCP報文四步交互。

    無中繼場景時DHCP客戶端首次接入網絡的報文交互示意圖

    第一步:發現階段

    首次接入網絡的DHCP客戶端不知道DHCP服務器的IP地址,為了學習到DHCP服務器的IP地址,DHCP客戶端以廣播方式發送DHCP DISCOVER報文(目的IP地址為255.255.255.255)給同一網段內的所有設備(包括DHCP服務器或中繼)。DHCP DISCOVER報文中攜帶了客戶端的MAC地址(chaddr字段)、需要請求的參數列表選項(Option55)、廣播標志位(flags字段)等信息。

    第二步:提供階段

    與DHCP客戶端位于同一網段的DHCP服務器都會接收到DHCP DISCOVER報文,DHCP服務器選擇跟接收DHCP DISCOVER報文接口的IP地址處于同一網段的地址池,并且從中選擇一個可用的IP地址,然后通過DHCP OFFER報文發送給DHCP客戶端。

    通常,DHCP服務器的地址池中會指定IP地址的租期,如果DHCP客戶端發送的DHCP DISCOVER報文中攜帶了期望租期,服務器會將客戶端請求的期望租期與其指定的租期進行比較,選擇其中時間較短的租期分配給客戶端。

    DHCP服務器在地址池中為客戶端分配IP地址的順序如下:

    • DHCP服務器上已配置的與客戶端MAC地址靜態綁定的IP地址。
    • 客戶端發送的DHCP DISCOVER報文中Option50(請求IP地址選項)指定的地址。
    • 地址池內查找“Expired”狀態的IP地址,即曾經分配給客戶端的超過租期的IP地址。
    • 在地址池內隨機查找一個“Idle”狀態的IP地址。
    • 如果未找到可供分配的IP地址,則地址池依次自動回收超過租期的(“Expired”狀態)和處于沖突狀態(“Conflict”狀態)的IP地址。回收后如果找到可用的IP地址,則進行分配;否則,DHCP客戶端等待應答超時后,重新發送DHCP DISCOVER報文來申請IP地址。

    設備支持在地址池中排除某些不能通過DHCP機制進行分配的IP地址。例如,客戶端所在網段已經手工配置了地址為192.168.1.100/24的DNS服務器,DHCP服務器上配置的網段為192.168.1.0/24的地址池中需要將192.168.1.100的IP地址排除,不能通過DHCP分配此地址,否則,會造成地址沖突。

    為了防止分配出去的IP地址跟網絡中其他客戶端的IP地址沖突,DHCP服務器在發送DHCP OFFER報文前通過發送源地址為DHCP服務器IP地址、目的地址為預分配出去IP地址的ICMP ECHO REQUEST報文對分配的IP地址進行地址沖突探測。如果在指定的時間內沒有收到應答報文,表示網絡中沒有客戶端使用這個IP地址,可以分配給客戶端;如果指定時間內收到應答報文,表示網絡中已經存在使用此IP地址的客戶端,則把此地址列為沖突地址,然后等待重新接收到DHCP DISCOVER報文后按照前面介紹的選擇IP地址的優先順序重新選擇可用的IP地址。

    此階段DHCP服務器分配給客戶端的IP地址不一定是最終確定使用的IP地址,因為DHCP OFFER報文發送給客戶端等待16秒后如果沒有收到客戶端的響應,此地址就可以繼續分配給其他客戶端。通過下面的選擇階段和確認階段后才能最終確定客戶端可以使用的IP地址。

    第三步:選擇階段

    如果有多個DHCP服務器向DHCP客戶端回應DHCP OFFER報文,則DHCP客戶端一般只接收第一個收到的DHCP OFFER報文,然后以廣播方式發送DHCP REQUEST報文,該報文中包含客戶端想選擇的DHCP服務器標識符(即Option54)和客戶端IP地址(即Option50,填充了接收的DHCP OFFER報文中yiaddr字段的IP地址)。

    DHCP客戶端廣播發送DHCP REQUEST報文通知所有的DHCP服務器,它將選擇某個DHCP服務器提供的IP地址,其他DHCP服務器可以重新將曾經分配給客戶端的IP地址分配給其他客戶端。

    第四步:確認階段

    當DHCP服務器收到DHCP客戶端發送的DHCP REQUEST報文后,DHCP服務器回應DHCP ACK報文,表示DHCP REQUEST報文中請求的IP地址(Option50填充的)分配給客戶端使用。

    DHCP客戶端收到DHCP ACK報文,會廣播發送免費ARP報文,探測本網段是否有其他終端使用服務器分配的IP地址,如果在指定時間內沒有收到回應,表示客戶端可以使用此地址。如果收到了回應,說明有其他終端使用了此地址,客戶端會向服務器發送DHCP DECLINE報文,并重新向服務器請求IP地址,同時,服務器會將此地址列為沖突地址。當服務器沒有空閑地址可分配時,再選擇沖突地址進行分配,盡量減少分配出去的地址沖突。

    當DHCP服務器收到DHCP客戶端發送的DHCP REQUEST報文后,如果DHCP服務器由于某些原因(例如協商出錯或者由于發送REQUEST過慢導致服務器已經把此地址分配給其他客戶端)無法分配DHCP REQUEST報文中Option50填充的IP地址,則發送DHCP NAK報文作為應答,通知DHCP客戶端無法分配此IP地址。DHCP客戶端需要重新發送DHCP DISCOVER報文來申請新的IP地址。

    2.2 有中繼場景時DHCP客戶端首次接入網絡的工作原理

    有DHCP中繼的場景中,首次接入網絡的DHCP客戶端和DHCP服務器的工作原理與無中繼場景時DHCP客戶端首次接入網絡的工作原理相同。主要差異是DHCP中繼在DHCP服務器和DHCP客戶端之間轉發DHCP報文,以保證DHCP服務器和DHCP客戶端可以正常交互。下面僅針對DHCP中繼的工作原理進行介紹。

    如下圖所示,在部署DHCP中繼的場景下,首次接入網絡DHCP客戶端與DHCP服務器的報文交互過程。

    有中繼場景時DHCP客戶端首次接入網絡的報文交互示意圖

    第一步:發現階段

    DHCP中繼接收到DHCP客戶端廣播發送的DHCP DISCOVER報文后,進行如下處理:

    • 檢查DHCP報文中的hops字段,如果大于16,則丟棄DHCP報文;否則,將hops字段加1(表明經過一次DHCP中繼),并繼續下面的操作。
    • 檢查DHCP報文中的giaddr字段。如果是0,將giaddr字段設置為接收DHCP DISCOVER報文的接口IP地址。如果不是0,則不修改該字段,繼續下面的操作。
    • 將DHCP報文的目的IP地址改為DHCP服務器或下一跳中繼的IP地址,源地址改為中繼連接客戶端的接口地址,通過路由轉發將DHCP報文單播發送到DHCP服務器或下一跳中繼。

    如果DHCP客戶端與DHCP服務器之間存在多個DHCP中繼,后面的中繼接收到DHCP DISCOVER報文的處理流程同前面所述。

    第二步:提供階段

    DHCP服務器接收到DHCP DISCOVER報文后,選擇與報文中giaddr字段為同一網段的地址池,并為客戶端分配IP地址等參數,然后向giaddr字段標識的DHCP中繼單播發送DHCP OFFER報文。

    DHCP中繼收到DHCP OFFER報文后,會進行如下處理:

    • 檢查報文中的giaddr字段,如果不是接口的地址,則丟棄該報文;否則,繼續下面的操作。
    • DHCP中繼檢查報文的廣播標志位。如果廣播標志位為1,則將DHCP OFFER報文廣播發送給DHCP客戶端;否則將DHCP OFFER報文單播發送給DHCP客戶端。

    第三步:選擇階段

    中繼接收到來自客戶端的DHCP REQUEST報文的處理過程同無中繼場景下的選擇階段。

    第四步:確認階段

    中繼接收到來自服務器的DHCP ACK報文的處理過程同無中繼場景下的確認階段。

    2.3 DHCP客戶端重用曾經使用過的地址的工作原理

    DHCP客戶端非首次接入網絡時,可以重用曾經使用過的地址。如下圖所示,DHCP客戶端與DHCP服務器交互DHCP報文,以重新獲取之前使用的IP地址等網絡參數,該過程稱為兩步交互。

    DHCP客戶端重用曾經使用過的IP地址的報文交互過程

    第一步:選擇階段

    客戶端廣播發送包含前一次分配的IP地址的DHCP REQUEST報文,報文中的Option50(請求的IP地址選項)字段填入曾經使用過的IP地址。

    第二步:確認階段

    DHCP服務器收到DHCP REQUEST報文后,根據DHCP REQUEST報文中攜帶的MAC地址來查找有沒有相應的租約記錄,如果有則返回DHCP ACK報文,通知DHCP客戶端可以繼續使用這個IP地址。否則,保持沉默,等待客戶端重新發送DHCP DISCOVER報文請求新的IP地址。

    2.4 DHCP客戶端更新租期的工作原理

    DHCP服務器采用動態分配機制給客戶端分配IP地址時,分配出去的IP地址有租期限制。DHCP客戶端向服務器申請地址時可以攜帶期望租期,服務器在分配租期時把客戶端期望租期和地址池中租期配置比較,分配其中一個較短的租期給客戶端。租期到期或者客戶端下線釋放地址后,服務器會收回該IP地址,收回的IP地址可以繼續分配給其他客戶端使用。這種機制可以提高IP地址的利用率,避免客戶端下線后IP地址繼續被占用。如果DHCP客戶端希望繼續使用該地址,需要更新IP地址的租期(如延長IP地址租期)。

    DHCP客戶端更新租期的過程如下圖所示。

    DHCP客戶端更新租期示意圖

    • 當租期達到50%(T1)時,DHCP客戶端會自動以單播的方式向DHCP服務器發送DHCP REQUEST報文,請求更新IP地址租期。如果收到DHCP服務器回應的DHCP ACK報文,則租期更新成功(即租期從0開始計算);如果收到DHCP NAK報文,則重新發送DHCP DISCOVER報文請求新的IP地址。
    • 當租期達到87.5%(T2)時,如果仍未收到DHCP服務器的應答,DHCP客戶端會自動以廣播的方式向DHCP服務器發送DHCP REQUEST報文,請求更新IP地址租期。如果收到DHCP服務器回應的DHCP ACK報文,則租期更新成功(即租期從0開始計算);如果收到DHCP NAK報文,則重新發送DHCP DISCOVER報文請求新的IP地址。
    • 如果租期時間到時都沒有收到服務器的回應,客戶端停止使用此IP地址,重新發送DHCP DISCOVER報文請求新的IP地址。

    客戶端在租期時間到之前,如果用戶不想使用分配的IP地址(例如客戶端網絡位置需要變更),會觸發DHCP客戶端向DHCP服務器發送DHCP RELEASE報文,通知DHCP服務器釋放IP地址的租期。DHCP服務器會保留這個DHCP客戶端的配置信息,將IP地址列為曾經分配過的IP地址中,以便后續重新分配給該客戶端或其他客戶端。客戶端可以通過發送DHCP INFORM報文向服務器請求更新配置信息。

    如下圖所示,部署DHCP中繼時,更新租期的過程與上述過程相似。

    客戶端通過DHCP中繼更新租期示意圖

    03

      DHCP使用場景

    DHCP提供了兩種地址分配機制,網絡管理員可以根據網絡需求為不同的主機選擇不同的分配策略。

    • 動態分配機制:通過DHCP為主機分配一個有使用期限的IP地址。
    • DHCP使用了租期的概念,或稱為設備IP地址的有效期。租用時間是不定的,主要取決于用戶在某地連接Internet需要多久,這種分配機制適用于主機需要臨時接入網絡或者空閑地址數小于網絡主機總數且主機不需要永久連接網絡的場景。
    • 靜態分配機制:網絡管理員通過DHCP為指定的主機分配固定的IP地址。
    • 相比手工靜態配置IP地址,通過DHCP方式靜態分配機制避免人工配置發生錯誤,方便管理員統一維護管理。
    dhcp客戶端服務器
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    DHCP于1993年10月成為標準協議,其前身是BOOTP協議。DHCP使網絡管理員能從中心結點監控和分配IP地址。當某臺計算機移到網絡中的其它位置時,能自動收到新的IP地址。
    DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網的網絡協議,主要作用就是給內部網或網絡服務供應商自動分配IP地址。當一個客戶端需要獲取一個IP地址時,將會向DHCP服務器發送廣播包,收到請求的服務器會提供一個可用的IP地址給客戶端,所以可以監聽該協議的包。本文介紹實施DHCP被動掃描的方法。
    DHCP Client和DHCP Server之間建立一道防火墻,以抵御網絡中針對DHCP的各種攻擊。DHCP Client將無法獲取正確的IP地址和相關信息,導致合法客戶無法正常訪問網絡或信息安全受到嚴重威脅。將與合法DHCP服務器直接或間接連接的接口設置為信任接口,其他接口設置為非信任接口。
    DHCP是基于UDP協議工作的服務,該服務工作于UDP的67和68號端口。其中,UDP 67號端口作為DHCP客戶端廣播請求,UDP 68號端口作為DHCP服務器回應廣播請求。我們可以借助Nmap的broadcast-dhcp-discover.nse和dhcp-discover.nse腳本來實施DHCP服務掃描。下面介紹使用這兩個腳本實施DHCP服務掃描的方法。
    Quarkslab發現“PixieFail”漏洞,開源UEFI代碼中的嚴重缺陷需要立即修補。這些漏洞統稱為PixieFAIL,是在對NetworkPkg進行粗略檢查時在EDK II的網絡堆棧中發現的,并且可以在網絡啟動過程中被利用。
    安全專家披露了九個漏洞,這些漏洞被統一稱為NAME:WRECK,影響了流行的TCP / IP網絡通信堆棧中DNS協議的實現。安全公司Forescout和以色列安全研究小組JSOF的研究人員發現了這些漏洞。“這些堆棧的廣泛使用以及易受攻擊的DNS客戶端的外部暴露通常會大大增加攻擊面。”研究人員將分析重點放在DNS協議的“消息壓縮”功能及其在TCP / IP堆棧上的實現。閱讀研究人員發表的報告。研究人員進行的研究提供了有關漏洞利用的技術細節。
    100 個網絡基礎知識普及,看完成半個網絡高手!
    100 個網絡基礎知識普及,看完成半個網絡高手!
    大多數計算機系統設計為可與多個用戶一起使用。特權是指允許用戶執行的操作。普通特權包括查看和編輯文件或修改系統文件。特權升級意味著用戶獲得他們無權獲得的特權。這些特權可用于刪除文件,查看私人信息或安裝不需要的程序,例如病毒。
    一文吃透 Linux 提權
    2021-10-23 07:09:32
    特權升級意味著用戶獲得他們無權獲得的特權。通常,當系統存在允許繞過安全性的錯誤或對使用方法的設計假設存在缺陷時,通常會發生這種情況。結果是,具有比應用程序開發人員或系統管理員想要的特權更多的應用程序可以執行未經授權的操作。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类