[DHCP服務]——DHCP詳解

Jelly_lyj發表於2017-03-18

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

 

1. DHCP是一個區域網的網路協議,採用UDP協議工作

 

2. DHCP作用

   (1)主要應用在大型的區域網環境中,用於給區域網中的主機動態地獲得網路引數資訊;

        (網路引數資訊包括:IP地址、子網掩碼、Gateway地址、DNS伺服器地址等)

   (2)這種集中管理、分配IP地址的方式有利於提高地址的利用率、減少衝突,網路管理員也能夠利用DHCP Server對區域網內的主機進行更好的管理。

 

3.DHCP基本工作原理  

   DHCP Client和DHCP Server之間的資料傳遞過程如圖所示:                         

                                       

第一步:

DHCP客戶端在其區域網內廣播傳送DHCP Discover包,尋找該區域網內的DHCP伺服器,其中:
     • 只要安裝了TCP/IP協議的主機都能接受到這種廣播,但只有DHCP伺服器才作出迴應
     • 源MAC是自己的MAC地址,目的MAC是FFFF.FFFF.FFFF的廣播
     • 源IP是0.0.0.0(現在還沒有IP,就用全0地址),目的IP是255.255.255.255的三層廣播
     • DHCP Discover包含的內容有:客戶機的MAC地址和主機名
     • DHCP Discover是UDP資料包

第二步:

DHCP伺服器收到DHCP Discover後都會作出迴應,根據客戶端的MAC地址和自身的配置,有三種IP分配方式:
    • 若日誌檔案中有記錄該MAC之前曾租用過某IP,且當前無人使用,則分配此IP
    • 若配置中有規定該MAC租用固定IP,則分配此IP
    • 若都沒有,則從地址池中隨機選取(有多個sunet時,它分配的一定是同一個區域網網段的那個)
    • 可以通過ARP廣播的方式確認該IP地址是否被使用
選取IP後將此IP標記,廣播一個DHCP Offer包:
    • DHCP Offer包中包含:客戶機的MAC地址,提供的合法IP,子網掩碼,組約期限,伺服器標識等引數
    • 此時客戶機還沒有IP地址,所以是以廣播的方式傳送。

第三步:

客戶端收到DHCP Offer後,選擇一個Offer包(即一個網路租約資訊):
    • 如果該區域網內有多個DHCP伺服器,則客戶端會選擇它收到的第一個offer包
然後客戶端會給該區域網中的所有主機傳送廣播包(DHCP Request):
    • 告知自己已接受的出租IP和DHCP伺服器的IP。

第四步:

伺服器收到Request包,伺服器和客戶機確認租約關係。
伺服器回送dhcp ack/dhcp nack包、告知期限、開始租約計時。
( 以dhcp ack包向客戶機廣播出去,當客戶機確認了收之後,就配置自己的IP地址(和相關網路引數),完成初始化.)

如果遇到客戶端離線或租約到期,則斷線。

總結來看:

               

 

4.Linux中與DHCP相關的檔案、埠

4.1 DHCP Server端

        (1) /etc/dhcp/dhcpd.conf

             DHCP伺服器的主要配置檔案

        (2) /usr/sbin/dhcpd

             啟動整個DHCP daemon的指令碼檔案

        (3) /var/lib/dhcpd/dhcpd.leases

             記錄著伺服器與客戶端租約建立的起始日與到期日

             大致看看其中的內容:

# cat dhcpd.leases

# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1
lease 172.16.10.2 {
  starts 3 2009/11/25 07:09:30;
  ends 3 2009/11/25 09:09:30;
  cltt 3 2009/11/25 07:09:30;
  binding state active;
  next binding state free;
  hardware ethernet 00:0c:29:ef:31:b6;
}

  (4) /var/log/messages、 /var/log/boot.log

            檢視dhcp相關日誌的兩個檔案 

4.2 DHCP Client端

      (1) /var/lib/dhclient/dhclient-eth0.leases

           記錄著某網路卡與dhcp伺服器租約建立的起始日與到期日

           大致看看其中的內容:

# cat /var/lib/dhclient/dhclient-eth0.leases 

lease {
  interface "eth0";
  fixed-address 10.0.10.191;
  filename "pxelinux.0";
  option subnet-mask 255.255.0.0;
  option dhcp-lease-time 6000;
  option routers 10.0.0.254;
  option dhcp-message-type 5;
  option dhcp-server-identifier 10.0.0.254;
  option domain-name-servers 114.114.114.114,112.124.47.27;
  renew 2 2016/06/21 16:10:06;
  rebind 2 2016/06/21 16:54:56;
  expire 2 2016/06/21 17:07:26;
}

       

4.3 DHCP埠

       (1)Server端:67

       (2)Client端:68

 

5. DHCP Relay(DHCP中繼代理)

    如果DHCP Server和DHCP Client在同一個物理網段,則直接由這臺Server給Client分配IP;

    如果不在同一個物理網段,則需要DHCP Relay。Client藉由DHCP中繼代理伺服器尋找到DHCP Server。

    避免了在各個網段都設定一臺DHCP Server以節約裝置成本。

                        

                        

6. DHCP基本原理在VMware的實驗

 

相關文章