功能介紹DHCP(Dynamic Host Configuration Protocol,動態主機設定通訊協定)是一個區域網路的網路通訊協定,使用UDP協議工作, 主要有兩個用途:給內部網路或網路服務供應商自動分配IP地址,給使用者或者內部網路系統管理員作為對所有電腦作中央管理的手段。UDP67和UDP68為正常的DHCP服務連接埠,分別作為DHCP Server和DHCP Client的服務連接埠。類似於DHCP這種初始化過程可以讓使用者在不瞭解有關地址、路由、掩碼,即可自動化佈建其網路,串連到英特網上。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6D/0E/wKioL1VbS6WCgUX_AACormk7deU004.jpg" />
原理理解(通過dhcp的幾個狀態來分析)
1 第一階段 搜尋DHCP伺服器 廣播
如果用戶端想要得到DHCP伺服器的資訊,而我們知道一般用戶端不一定知道網路中DHCP伺服器的地址,通過廣播,源地址0.0.0.0目的地址255.255.255.255,可以和DHCP伺服器建立第一次聯絡。
由上面介紹,我們知道DHCP使用udp來發送報文,報文很有可能會出現延遲或者破壞等,這時候為了實現一定程度的可靠性,DHCP使用逾時和重傳技術。一旦使用者發送請求,則啟動計時器,計時器到時,使用者必須重傳。
所以DHCP報文的格式可以參考一下
欄位
OP:option,表示請求還是響應
HTYPE:hardware type,網路硬體類型
HLEN:硬體地址長度 如乙太網路類型為1 ,長度為6
HOPS:跳數,經過的路由器數量
TRANSACTION(交易,辦理) ID:處理請求和響應過程的號碼
SECONDS:表示用戶端發送逝去的秒數
CLIENT IP ADDRESS:表示使用者的ip地址,使用者如果知道需要的DHCP伺服器的資訊可以填寫,那麼會按照使用者的情況繼續,否則不寫
YOUR IP ADDRESS:你的ip地址,當使用者ip地址為0時,伺服器會在該欄位返回一個客戶的ip地址
SERVER IP ADDRESS:伺服器IP地址
SERVER HOST NAME:伺服器主機名稱
FLAGS:允許控制請求和響應,目前只有最高位有用,當B時,表示broadcast,其他位為0
2 第二階段 伺服器響應,提供用戶端租約資訊以供選擇 單播 通過mac可定位
關於租用(lease)
首先DHCP伺服器管理一個ip位址集區,當有使用者申請時,伺服器首先,從記錄檔中尋找是否使用者曾經用過某ip,有則分配,否則自動分配一個每人使用的;如果設定檔針對該MAC地址設定了固定的ip,則提供該ip;否則,從池內選擇一個未使用的ip給用戶端並記錄。
至於租期,由於不同場合,比如大學,公司,普通使用者,他們的租期一般不同,為了更有效地使用ip地址,DHCP允許使用者申請租期,預設情況下,允許無限(infinity)租期,分配一個永久地址。
關於中繼代理(relay agent)
中繼代理是為了應對這樣一種情況,網路中的多連接埠電腦,處於多個網路之中,而我們的DHCP伺服器通常只有一個,為了實現只能一個ip對應一個主機的突破,由中繼代理(通常是路由器)暫時代理DHCP,接收用戶端廣播申請,代理會把申請轉寄給伺服器,,然後返回伺服器對用戶端的響應。DHCP通過客戶標識符(client identifier),可識別特定介面的值,以區分同一個客戶發送的不同請求。
3第三階段 用戶端決定使用的DHCP租約並向伺服器發送確認 廣播
由於有多DHCP伺服器的可能,一般使用者會選擇第一個DHCP響應使用,同時告訴其他主機告知他們可收回租約。
4 第四階段 伺服器端記錄客戶的租約資訊,並最後發送響應告知用戶端可以使用
此時租約就開始計時