TCP/IP詳解 第六章 DHCP協議

1、DHCP簡介

1DHCP Dynamic Host Configuration Protocol)即動態主機設置協議。

2前身是BOOTP協議,是一個局域網的網絡協議,使用UDP協議工作,常用的端口67(DHCPv4 server),68(DHCPv4 client) 547 (DHCPv6 server) , 546 (DHCPv6 client)DHCP通常被用於局域網環境,主要作用是集中的管理、分配IP地址,使client動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,並能夠提升地址的使用率

3DHCP協議屬於應用層協議

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

1.1、DHCP簡介BOOTP

BOOTPBootstrap Protocol,引導程序協議)是一種引導協議,基於IP/UDP協議,也稱自舉協議,是DHCP協議的前身。BOOTP用於無盤工作站的局域網中,可以讓無盤工作站從一箇中心服務器上獲得IP地址。通過BOOTP協議可以爲局域網中的無盤工作站分配動態IP地址,這樣就不需要管理員去爲每個用戶去設置靜態IP地址

BOOTP可以看成是簡單版的DHCP,是對主機的靜態配置,而DHCP可以依據一些策略對主機進行動態配置。BOOTP用於無盤工作站的啓動和配置,而DHCP更適用於客戶端接入變化的網絡,即客戶端接入時間、接入地點不固定。

2DHCP協議封裝

OP:操作類型,0-請求,1-應答

HWtype1 爲以太網

Hwlen:       6

Hops:    中繼次數,每中繼一次加1

Transaction id:事務ID

Second elapsed:從第一次請求開始過去的時間

Flag0-單播,1只能處理廣播(不能或者不願意處理單播)

ciaddr:客戶端IP地址,如果沒有,填全0

yiaddr:由於服務器填寫,分配給客戶端的IP地址

siaddr:    下一服務器地址(用於bootp引導過程)

giaddr: 中繼網關服務器地址(跨子網進行DHCP地址分配的場景)

chaddr:客戶端MAC地址

snamedhcp服務器名稱

bootfilename:引導文件名稱

magic cookiedhcp爲了兼容BOOTP增加的魔數( 63.82.53.63

option:拓展選項

2.1、DHCP協議封裝:拓展選項

常用tag

0 :填充   1:子網掩碼   3:路由器地址  6:域名服務器

15:域名  50:請求的IP地址   51:地址租用期  

53DHCP消息類型  54:服務器標識符   55:參數請求列表

56DHCP錯誤消息  58:租約更新時間   59:租約重新綁定時間

61:客戶機標識符  119:域搜索列表   255 結束

2.2、DHCP協議封裝:DHCP消息類型(53)

DHCP常用消息類型:

DHCPDISCOVER(1), DHCPOFFER (2), DHCPREQUEST (3), DHCPDECLINE (4), DHCPACK (5),DHCPNAK (6), DHCPRELEASE (7), DHCPINFORM (8), DHCPFORCERENEW(9) , DHCPLEASEQUERY (10), DHCPLEASEUNASSIGNED (11), DHCPLEASEUNKNOWN (12), DHCPLEASEACTIVE (13).

3、DHCP工作原理

3.1、DHCP協議通信過程

DHCPDISCOVER(1):

廣播消息,src 0.0.0.068  dst 255.255.255.25567

DHCPOFFER (2)

攜帶,租期T,更新時間T1(通常爲1/2*T),重新綁定時間T2(通常爲7/8*T

DHCPREQUEST (3):

包含一個服務器標識符,選定的IP地址

DHCPACK (5)

服務器確認可以綁定該IP地址

DHCPNAK (6)

服務器無法分配該IP地址

DHCPDECLINE (4):

客戶端使用ACD檢測衝突,發現該IP地址被佔用,發送此消息放棄該IP地址

DHCPRELEASE (7)

客戶端在租期內主動放棄一個IP地址

DHCPINFORM (8)

客戶端已經有IP地址的情況下,需要其他配置信息,發送此信息

3.2、DHCP狀態機

4、DHCPv6 DHCPv4的區別

1DHCPv6使用組播地址:ff02::1:2

      DHCPv4使用廣播

2 DHCPv6中沒有保留BOOTP協議

3DHCPv6中重要概念:

     客服端標識符,服務端標識符

      身份關聯(IA),DUID

4.1、DHCPv6 :消息格式

4.2、DHCPv6 消息類型對比

4.3、DHCPv6 IA(身份關聯)

IAID32位隨機數

T1:更新時間

T2:重新綁定時間

IA_NA:  NA選項

IA_TA:  TA選項

4.4、DHCPv6 DUID(DHCP唯一標識符)

三種生成方式:

DUID-LLT:基於鏈路層地址和時間DUID

DUID-EN:基於企業編號和供應商分配的DUID

DUID-LL:僅基於鏈路層地址的DUID

4.5、DHCPv6:有狀態和無狀態

有狀態的地址配置:

類似DHCPv4,通過使用如 DHCP 的配置協議,用來配置非鏈接本地地址,以及其他額外信息(DNS等)

 

無狀態的地址配置:

使用無狀態地址自動配置,在無狀態下客戶機認爲能夠自己配置IPv6地址,當需要DHCPv6獲取額外信息(DNS服務等),另外一種選擇是使用ICMPv6路由器通告消息來獲得一臺DNS服務器的地址

4.5、DHCPv6:生命週期

4.6、DHCPv6ICMPv6路由器通告消息

兩個重要字段

M位:可管理地址配置標誌   O位:其他配置標誌

M0 O0:表示不使用DHCPv6,採用無狀態地址自動分配

M1 O1DHCPv6 有狀態DHCPv6 將分配有狀態地址,同時分配其他配置

M0 O1DHCPv6 狀態:DHCPv6 不爲 IPv6 主機分配有狀態地址,但分配無狀態配置設置

M1 O0DHCPv6 用於地址配置,但不用於其他配置,這是一種最不可能的組合

4.7、DHCPv6:通信過程

4.8、DHCPv6:消息介紹

ROUTER SOLICIT:路由器發現消息

ROUTER ADVERTISE:路由器通知消息

SOLICIT(1):DHCPv6發現消息

ADVERTISE(2): DHCPv6通知消息

REQUEST(3): DHCPv6請求消息

REPLY(7):DHCPv6應答消息

DECLINE(9): DHCPv6放棄

INFORMATION-REQUEST(11):已有IP的情況下,使用此消息申請其他配置

4、DHCPv6:前綴委託

一臺路由器向另一臺路由器委託一個地址空間範圍,這個地址可以描述爲一個IPv6地址前綴,使得該路由器可以像一個DHCPv6服務器那樣工作

5、DHCP中繼

5.1、DHCP中繼:重要概念

1、中繼服務在第3層,只負責DHCP中的廣播或者組播數據

2、中繼代理選項

 DHCPv4 RAIO:元選項,很多子選項用於ISP標識請求來自於哪個用戶,哪個鏈路或網絡,安全認證子選項(SHA-1算法)

3、中繼代理遠程ID子選項

        用於標識遠程客戶機(呼叫方ID,用戶名,調制解調器ID,點對點鏈路的遠程IP地址),DHCPv6版本中還包含了DUID

4、服務器標識符覆蓋

5、租約查詢,批量租約查詢

62層中繼代理 IPv4 LDRA

6、DHCPDNS交互

組合DNS /DHCP服務器:

能夠在給客戶機分配IP地址的同時,根據DHCPREQUEST中的客戶機標識符或者域名,進行域名和IP地址綁定,並更新到DNS數據庫中,這樣後續的DNS請求,都能相應最新的IP和域名綁定信息

7DCHP安全:DHCP認證

1、認證消息:下發一個共享配置令牌,客戶端和服務端配置令牌信息匹配則可以接受該消息,有令牌信息能夠被截獲,所以這種保護方式很弱

2、延期認證:假設客戶端和服務端有一個共享祕鑰,當客戶端發送DHCPDISCOVERDHCPINFORM時,包含一個認證選項,則DHCPINFORMDHCPACK中包含一個認證碼(MAC加密後的數據),

客戶端檢測認證碼是否正確。核心算法採用MD5簽名校驗

3DHCP認證機制沒有被廣泛應用

7.1、DHCP安全:攻擊手段

1、未授權客戶機或者未授權服務器對DHCP通信過程的干擾

2、耗盡配置資源的Dos攻擊

 

感謝xuj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章