溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

DHCP的服務器與客戶端

發布時間:2020-07-29 19:57:12 來源:網絡 閱讀:625 作者:不忘初心灬 欄目:系統運維

一、什么是DHCP?

 

     DHCP,動態主機配置協議,前身是BOOTP協議,是一個局域網的網絡協議,         
    使用UDP協議工作,常用的2個端口:67(DHCP server),68(DHCP client)。DHCP通常被用于局域網環境,  
    主要作用是集中的管理、分配IP地址,使client動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,并能夠提升地址的使用率  。  
    簡單來說,DHCP就是一個不需要賬號密碼登錄的、自動給內網機器分配IP地址等信息的協議。

二、DHCP協議中的報文

DHCP報文共有一下幾種:
DHCP DISCOVER :客戶端開始DHCP過程發送的包,是DHCP協議的開始
DHCP OFFER :服務器接收到DHCP DISCOVER之后做出的響應,  
它包括了給予客戶端的IP(yiaddr)、客戶端的MAC地址、租約過期時間、服務器的識別符以及其他信息  
DHCP REQUEST :客戶端對于服務器發出的DHCP OFFER所做出的響應。在續約租期的 時候同樣會使用。
DHCP ACK :服務器在接收到客戶端發來的DHCP REQUEST之后發出的成功確認的報文     。在建立連接的時候,客戶端在接收到這個報文之后才會確認分配給它的IP和其他信息可以被允許使用。
DHCP NAK :DHCP ACK的相反的報文,表示服務器拒絕了客戶端的請求。
DHCP RELEASE :一般出現在客戶端關機、下線等狀況。這個報文將會使DHCP服務器釋放發出此報文的客戶端的IP地址
DHCP INFORM :客戶端發出的向服務器請求一些信息的報文
DHCP DECLINE :當客戶端發現服務器分配的IP地址無法使用(如IP地址沖突時),將發出此報文,通知服務器禁止使用該IP地址。

DHCP請求IP地址的過程如下:
    1)主機發送DHCPDISCOVER廣播包在網絡上尋找DHCP服務器;
    2)DHCP服務器向主機發送DHCPOFFER單播數據包,包含IP地址、MAC地址、域名信息以及地址租期;
    3)主機發送DHCPREQUEST廣播包,正式向服務器請求分配已提供的IP地址;
    4)DHCP服務器向主機發送DHCPACK單播包,確認主機的請求
    需要說明的是:DHCP客戶端可以接收到多個DHCP服務器的DHCPOFFER數據包,  
    然后可能接受任何一個DHCPOFFER數據包,但客戶端通常只接受收到的第一個DHCPOFFER數據包。  
    另外,DHCP服務器DHCPOFFER中指定[1] 的地址不一定為最終分配的地址,  
    通常情況下,DHCP服務器會保留該地址直到客戶端發出正式請求。
    正式請求DHCP服務器分配地址DHCPREQUEST采用廣播包 ,  
    是為了讓其它所有發送DHCPOFFER數據包的DHCP服務器也能夠接收到該數據包,  
    然后釋放已經OFFER(預分配)給客戶端的IP地址。
    如果發送給DHCP客戶端的地址已經被其他DHCP客戶端使用,客戶端會向服務器發送DHCPDECLINE信息包拒絕接受已經分配的地址信息。
    在協商過程中,如果DHCP客戶端發送的REQUEST消息中的地址信息不正確,  
    如客戶端已經遷移到新的子網或者租約已經過期,  
    DHCP服務器會發送DHCPNAK消息給DHCP客戶 端,  
    讓客戶端重新發起地址請求過程。      
    DHCP 的 工作流程圖:  

DHCP的服務器與客戶端

        3、DHCP 協議包的組成
Xid :隨機生成的一段字符串,兩個數據包擁有相同的xid說明他們屬于同一次會話
Ciaddr :客戶端會在發送請求時將自己的ip地址放在此處
Yiaddr :服務器會將想要分配給客戶端的ip地址放在此處
Siaddr :一般來說是服務器的ip地址.但是注意!根據openwrt源碼給出的注釋,當報文的源地址、siaddr、option->server_id字段不一致(有經過跨子網轉發)時,通常認為option->srever_id字段為真正的服務器ip,siaddr有可能是多次路由跳轉中的某一個路由器ip
Chaddr :客戶端的mac地址
Giaddr :如果需要跨子網進行DHCP地址發放,則在此處填入經過的路由器的ip地址
Sname :服務器主域名
Options :可以自由添加的部分,用于存放客戶端向服務器請求信息和服務器的應答信息  

DHCP 客戶端

    一、DHCP 原理
1、什么是DHCP 客戶端
    DHCP客戶端一般來說是局域網中獨立的PC主機。
    DHCP客戶端發出的DHCP DISCOVER包是DHCP協議的開始。
    延續租期、發現、釋放IP地址等大多數DHCP中的行為都是由DHCP客戶端主動發起。
2、DHCP 自動狀態機
    DHCP獲得ip地址的4步驟:discover->offer->request->ack(nak)
    DHCP刷新租期的步驟:request->ack(nak)
    DHCP釋放ip的步驟:release  

        如下圖:

DHCP的服務器與客戶端

DHCP SERVER

一、DHCPD 原理
1、簡述

DHCP SERVER指的是服務器端,在路由器上體現的就是給LAN端動態分配IP的功能。  
DHCP SERVER負責接收客戶端的DHCP請求,管理LAN端所有的IP網絡設定資料,    
相比于BOOTP,DHCP通過“租約”來實現動態分配IP的功能,實現IP的時分復用,  
從而解決IP資源短缺的問題。其地址分配方式有三種,  
分別是人工配置(由管理員對每臺具體的計算機指定一個地址),  
自動配置(服務器為第一次連接網絡的計算機分配一個永久地址),  
動態配置(在一定的期限內將地址租給計算機,租期結束后客戶必須續租或者停用該地址),  
而對于路由器,經常使用的地址分配方式是動態配置。

    2、兩個租約表
    靜態租約表:對應一個靜態租約存儲文件,server運行時從文件中讀取靜態租約表。
    動態租約表:對應一個周期存儲文件,server周期性將租約表存進該文件,在程序開始時將會讀取上次存放的租約表。(租約表記錄了當前所有分配的租約,包括靜態鏈接的)。

3、基本邏輯
 原則上DHCP SERVER是一直處在被動接受請求的狀態,  
當有客戶端請求時,服務器會讀取獲得客戶端當前所在的狀態以及客戶端的信息,  
并在靜態租約表和動態租約表中進行檢索找到相應的表項,  
再根據客戶端的狀態執行不同的回復。  
當收到客戶端的首次請求時,DHCP服務器先查找靜態租約表;  
若存在請求的表項,返回這個客戶的靜態IP地址;  
否則,從IP地址池中選擇可用的IP分配給客戶,并添加信息到動態數據庫中。  
此外,服務器將會周期性的刷新租約表寫入文件存檔,  
在這個過程中會順便對動態租約表進行租期檢查。

執行回復動作:
DHCPOFFER: 
靜態租用:首先匹配MAC地址,看是否能在靜態租約表中找到對應的項,  
若能找到就把IP分配給他。靜態表中的IP不能被其他客戶使用。   
動態租用: 
1.server試圖分配給client上次分配過的IP,在這之前檢查這個IP是否正在使用。
2.discover中含有request ip 時,檢查該IP是否在地址池范圍,是否正在使用,是否到期,是否是靜態IP,網絡上是否已經存在。
3.discover不含request ip,從地址池上尋找一個最小的可用IP分配。
DHCPACK: 根據是否含有request ip和server ip識別客戶端現在init_reboot,selecting,renewing/rebinding中的哪個狀態,  
并根據以下規則執行DHCPACK回復: 
1.若client處于selecting狀態,驗證request ip和server ip是否同服務器中的匹配。
2.若client處于init_reboot狀態,驗證request ip是否符合租約記錄。
3.若client處于renewing/rebinding狀態,驗證client ip address是否符合租約記錄。
DHNAK: 
1.請求的IP是靜態IP,但是MAC地址無法與其對應。
2.上面DHCPACK中驗證失敗?! ?服務器還可能會收到其他包: 
DHCPDECLINE:server會把租約表中相關client硬件地址置空,并保存這個地址一段時間。
DHCPRELEASE:清空租期回收IP。
DHCPINFORM:回復DHCPACK,數據包含有關于server的信息。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女