DHCP 英文全稱:(Dynamic Host Configuration Protocol,動态主機配置協議)是一個 局域網 的 網絡協議,在傳輸層使用UDP協議工作, 主要有兩個用途:給内部網絡或網絡服務 供應商自動分配IP地址 ,給用戶或者内部網絡管理員 作為對所有 計算機 作中央管理的手段,在RFC 2131中有詳細的描述。DHCP有3個端口,其中UDP67和UDP68為正常的DHCP服務端口,分别作為DHCP server和DHCP Client的服務端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是為DHCP failover服務,這是需要特别開啟的服務,DHCP failover是用來做“雙機熱備”的。
DHCP的報文格式2.DHCP報文格式
DHCP服務的8種報文的格式是相同的,不同類型的報文隻是報文中的某些字段取值不同。DHCP報文格式基于BOOTP的報文格式。下面是各字段的說明。
OP:報文的操作類型。分為請求報文和響應報文。1:請求報文,2:應答報文。即client送給server的封包,設為1,反之為2。
請求報文:DHCP Discover、DHCP Request、DHCP Release、DHCP Inform和DHCP Decline。
應答報文:DHCP Offer、DHCP ACK和DHCP NAK。
Htype:DHCP客戶端的MAC地址類型。MAC地址類型其實是指明網絡類型,Htype值為1時表示為最常見的以太網MAC地址類型。
Hlen:DHCP客戶端的MAC地址長度。以太網MAC地址長度為6個字節,即以太網時Hlen值為6。
Hops:DHCP報文經過的DHCP中繼的數目,默認為0。DHCP請求報文每經過一個DHCP中繼,該字段就會增加1。沒有經過DHCP中繼時值為0。(若數據包需經過router傳送,每站加1,若在同一網内,為0。)
Xid:客戶端通過DHCP Discover報文發起一次IP地址請求時選擇的随機數,相當于請求标識。用來标識一次IP地址請求過程。在一次請求中所有報文的Xid都是一樣的。
Secs:DHCP客戶端從獲取到IP地址或者續約過程開始到現在所消耗的時間,以秒為單位。在沒有獲得IP地址前該字段始終為0。(DHCP客戶端開始DHCP請求後所經過的時間。目前尚未使用,固定為0。)
Flags:标志位,隻使用第0比特位,是廣播應答标識位,用來标識DHCP服務器應答報文是采用單播還是廣播發送,0表示采用單播發送方式,1表示采用廣播發送方式。其餘位尚未使用。(即從0-15bits,最左1bit為1時表示server将以廣播方式傳送封包給client。)
【注意】在客戶端正式分配了IP地址之前的第一次IP地址請求過程中,所有DHCP報文都是以廣播方式發送的,包括客戶端發送的DHCP Discover和DHCP Request報文,以及DHCP服務器發送的DHCP Offer、DHCP ACK和DHCP NAK報文。當然,如果是由DHCP中繼器轉的報文,則都是以單播方式發送的。另外,IP地址續約、IP地址釋放的相關報文都是采用單播方式進行發送的。
Ciaddr:DHCP客戶端的IP地址。僅在DHCP服務器發送的ACK報文中顯示,在其他報文中均顯示0,因為在得到DHCP服務器确認前,DHCP客戶端是還沒有分配到IP地址的。隻有客戶端是Bound、Renew、Rebinding狀态,并且能響應ARP請求時,才能被填充。
Yiaddr:DHCP服務器分配給客戶端的IP地址。僅在DHCP服務器發送的Offer和ACK報文中顯示,其他報文中顯示為0。
Siaddr:下一個為DHCP客戶端分配IP地址等信息的DHCP服務器IP地址。僅在DHCP Offer、DHCP ACK報文中顯示,其他報文中顯示為0。(用于bootstrap過程中的IP地址)
Giaddr:DHCP客戶端發出請求報文後經過的第一個DHCP中繼的IP地址。如果沒有經過DHCP中繼,則顯示為0。(轉發代理(網關)IP地址)
Chaddr:DHCP客戶端的MAC地址。在每個報文中都會顯示對應DHCP客戶端的MAC地址。
Sname:為DHCP客戶端分配IP地址的DHCP服務器名稱(DNS域名格式)。在Offer和ACK報文中顯示發送報文的DHCP服務器名稱,其他報文顯示為0。
File:DHCP服務器為DHCP客戶端指定的啟動配置文件名稱及路徑信息。僅在DHCP Offer報文中顯示,其他報文中顯示為空。
Options:可選項字段,長度可變,格式為"代碼 長度 數據"。
列出部分可選的選項:
DHCP的原理及應用1.發現階段
在DHCP服務配置完成後,DHCP Client啟動時,由于沒有IP地址,會自動發送以discover的廣播報文,源地址為0.0.0.0目的地址為255.255.255.255。網絡上的所有支持TCP/IP的主機都會收到該DHCP Discovery報文,但是隻有DHCP Server會響應該報文。
2.DHCP Server offer響應階段
DHCP Server收到discover報文後,通過解析報文,查詢dhcpd.conf配置文件,如果在地址池中能找到合适的IP地址,DHCP Server會給DHCP Client發送offer報文,告訴DHCP Client,該DHCP Server擁有資源,可以提供DHCP服務。
3.DHCP Client請求使用階段
當DHCP Client收到offer報文時,知道在本網段中有可用的DHCP Server可以提供DHCP服務,因此,它會發送一個request請求報文,向該DHCP Server請求IP地址、掩碼、網關、DNS等信息,以便登陸網絡。
4.DHCP Server确認使用階段(獲得IP地址)
當DHCP Server收到DHCP Client發送的DHCP Request後,确認要為該DHCP Client提供的IP地址後,便向該DHCP Client響應一個包含該IP地址以及其他Option的報文,來告訴DHCP Client可以使用該IP地址了。然後DHCP Client即可以将該IP地址與網卡綁定。另外其他DHCP Server都将收回自己之前為DHCP Client提供的IP地址。
5. DHCP Client重新登錄網絡階段
當DHCP Client重新登錄後,發送一個以前的DHCP Server分配的IP地址信息的DHCP Request報文,當DHCP Server收到該請求後,會嘗試讓DHCP客戶端繼續使用該IP地址。并回答一個ACK報文。
如果該IP地址無法再次分配給該DHCP Client後,DHCP回複一個NAK報文,當DHCP Client收到該NAK報文後,會重新發送DHCP Discovery報文來重新獲取IP地址。
6. DHCP Client續約階段
DHCP獲取到的IP地址都有一個租約,租約過期後,DHCP Server将回收該IP地址,所以如果DHCP Client如果想繼續使用該IP地址,則必須更新器租約。更新的方式就是,當當前租約期限過了一半後,DHCP Client都會發送DHCP Renew報文來續約租期。
配置DHCP服務器(華為路由器),
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!