DHCP的工作原理

weixin_33766168發表於2015-01-20

  什麼是dhcp?它是如何實現的?

  DHCP稱為動態主機配置協議。DHCP服務允許工作站連線到網路並且自動獲取一個IP地址。配置DHCP服務的伺服器可以為每一個網路客戶提供一個IP地址、子網掩碼、預設閘道器、一個WINS伺服器的IP地址,以及一個DNS伺服器的IP地址。

     下面就對此做簡單介紹:DHCP是一個基於廣播的協議,它的操作可以歸結為四個階段,這些階段是IP租用請求、IP租用提供、IP租用選擇、IP租用確認。 
  1、IP租用請求:在任何時候,客戶計算機如果設定為自動獲取IP地址,那麼在它開機時,就會檢查自己當前是否租用了一個IP地址,如果沒有,它就向DCHP請求一個租用,由於該客戶計算機並不知道DHCP伺服器的地址,所以會用255.255.255.255作為目標           地址即廣播一下,源地址使用0.0.0.0,在網路上廣播一個DHCPDISCOVER訊息,訊息包含客戶計算機的媒體訪問控制(MAC)地址(網路卡上內建的硬體地址)以及它的NetBIOS名字。 
   2、IP租用提供:當DHCP伺服器接收到一個來自客戶的IP租用請求時,它會根據自己的作用域地址池為該客戶保留一個IP地址並且在網路上廣播一個來實現,該訊息包含客戶的MAC地址、伺服器所能提供的IP地址、子網掩碼、租用期限,以及提供該租用的              DHCP伺服器本身的IP地址。 
  3、IP租用選擇:如果子網還存在其它DHCP伺服器,那麼客戶機在接受了某個DHCP伺服器的DHCPOFFER訊息後,它會廣播一條包含提供租用的伺服器的IP地址的DHCPREQUEST訊息,在該子網中通告所有其它DHCP伺服器它已經接受了一個地址的提供,其他       DHCP伺服器在接收到這條訊息後,就會撤銷為該客戶提供的租用。然後把為該客戶分配的租用地址返回到地址池中,該地址將可以重新作為一個有效地址提供給別的計算機使用。 
     4、IP租用確認: DHCP伺服器接收到來自客戶的DHCPREQUEST訊息,它就開始配置過程的最後一個階段,這個確認階段由DHCP伺服器傳送一個DHCPACK包給客戶,該包包括一個租用期限和客戶所請求的所有其它配置資訊,至此,完成TCP/IP配置。 

  DHCP(Dynamic Host Configure Protocol,動態主機配置協議),用於向網路中的計算機分配IP地址及一些TCP/ip配置資訊。DHCP提供了安全,可靠且簡單的TCP/IP網路設定,避免了TCP/ip網路地址的衝突,同時大大降低了工作負擔。

    IP的租約更新:當客戶機重啟和租期到達50%時,就需要更新租約,直接想提供的伺服器傳送DHCP request包,要求更新租約。客戶機無法和伺服器取得聯絡時,繼續使用現有IP,一直等到85%時,向所有的伺服器傳送廣播DHCP request 包請求更新,如果仍然       無法聯絡,則客戶機將開始新的ip租約過程DHCP discover包

     IP的租約釋放命令 :釋放的ipconfig /release       獲取是 :ipconfig /renew 。

     配置DHCP服務的要求:伺服器具有靜態IP ;在域環境下需要使用活動目錄服務授權DHCP服務;建立作用域。(如果在安裝時建立則預設為6天,之後建立為8天,無線為2小時)

     配置選項有伺服器選項、作用域選項、保留選項。伺服器選項:對所有作用域生效;作用與選項:對當前作用域生效;保留選項:對當前作用域中某臺客戶機生效。

  DHCP伺服器端相關配置:

 1 #cp  /usr/share/doc/dhcp*/dhcpd.conf.sample  /etc/
 2 #mv /etc/dhcpd.conf.sample  /etc/dhcpd.conf
 3 
 4 #命令詳解
 5 dns-update-style none;  //動態DNS的更新方式,必須新增,否則伺服器無法啟動
 6 option routers 192.168.1.1;   //預設閘道器
 7 option subnet-mask 255.255.255.255.0;   //子網掩碼
 8 option domain-name "domain.org";        //域名
 9 option domain-name-servers 114.114.114.114;   //DNS伺服器
10 subnet 192.168.0.0 netmask 255.255.255.0{     //定義網段的服務範圍,與伺服器所在同一範圍
11     range 192.168.0.2     192.168.0.99;       //地址池範圍,注意已經使用的固定地址要排除在外
12     default-lease-time    600;                //釋放時間,單位s 
13     max-lease-time        1000;               //最長釋放時間

 

相關文章