TCP/IP详解 第六章 DHCP协议
1、DHCP簡介
1、DHCP (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服務器地址等信息,并能夠提升地址的使用率
3、DHCP協議屬于應用層協議
DHCP SERVER負責接收客戶端的DHCP請求,管理LAN端所有的IP網絡設定資料,相比于BOOTP,DHCP通過“租約”來實現動態分配IP的功能,實現IP的時分復用,從而解決IP資源短缺的問題。其地址分配方式有三種,分別是人工配置(由管理員對每臺具體的計算機指定一個地址),自動配置(服務器為第一次連接網絡的計算機分配一個永久地址),動態配置(在一定的期限內將地址租給計算機,租期結束后客戶必須續租或者停用該地址),而對于路由器,經常使用的地址分配方式是動態配置。
1.1、DHCP簡介:BOOTP
BOOTP(Bootstrap Protocol,引導程序協議)是一種引導協議,基于IP/UDP協議,也稱自舉協議,是DHCP協議的前身。BOOTP用于無盤工作站的局域網中,可以讓無盤工作站從一個中心服務器上獲得IP地址。通過BOOTP協議可以為局域網中的無盤工作站分配動態IP地址,這樣就不需要管理員去為每個用戶去設置靜態IP地址。
BOOTP可以看成是簡單版的DHCP,是對主機的靜態配置,而DHCP可以依據一些策略對主機進行動態配置。BOOTP用于無盤工作站的啟動和配置,而DHCP更適用于客戶端接入變化的網絡,即客戶端接入時間、接入地點不固定。
2、DHCP協議封裝
OP:操作類型,0-請求,1-應答
HWtype:1 為以太網
Hwlen:?????? 6
Hops:??? 中繼次數,每中繼一次加1
Transaction id:事務ID
Second elapsed:從第一次請求開始過去的時間
Flag:0-單播,1只能處理廣播(不能或者不愿意處理單播)
ciaddr:客戶端IP地址,如果沒有,填全0
yiaddr:由于服務器填寫,分配給客戶端的IP地址
siaddr:??? 下一服務器地址(用于bootp引導過程)
giaddr: 中繼網關服務器地址(跨子網進行DHCP地址分配的場景)
chaddr:客戶端MAC地址
sname:dhcp服務器名稱
bootfilename:引導文件名稱
magic cookie: dhcp為了兼容BOOTP增加的魔數(?63.82.53.63)
option:拓展選項
2.1、DHCP協議封裝:拓展選項
常用tag:
0 :填充?? 1:子網掩碼?? 3:路由器地址? 6:域名服務器
15:域名? 50:請求的IP地址?? 51:地址租用期??
53:DHCP消息類型? 54:服務器標識符?? 55:參數請求列表
56:DHCP錯誤消息? 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.0:68? dst 255.255.255.255:67
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的區別
1、DHCPv6使用組播地址:ff02::1:2
????? 而DHCPv4使用廣播
2、 DHCPv6中沒有保留BOOTP協議
3、DHCPv6中重要概念:
???? 客服端標識符,服務端標識符
????? 身份關聯(IA),DUID
4.1、DHCPv6 :消息格式
4.2、DHCPv6: 消息類型對比
4.3、DHCPv6: IA(身份關聯)
IAID:32位隨機數
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、DHCPv6:ICMPv6路由器通告消息
兩個重要字段
M位:可管理地址配置標志?? O位:其他配置標志
M0 O0:表示不使用DHCPv6,采用無狀態地址自動分配
M1 O1:DHCPv6 有狀態, DHCPv6 將分配有狀態地址,同時分配其他配置
M0 O1:DHCPv6 無狀態:DHCPv6 不為 IPv6 主機分配有狀態地址,但分配無狀態配置設置
M1 O0:DHCPv6 用于地址配置,但不用于其他配置,這是一種最不可能的組合
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、租約查詢,批量租約查詢
6、2層中繼代理 IPv4 LDRA
6、DHCP與DNS交互
組合DNS /DHCP服務器:
能夠在給客戶機分配IP地址的同時,根據DHCPREQUEST中的客戶機標識符或者域名,進行域名和IP地址綁定,并更新到DNS數據庫中,這樣后續的DNS請求,都能相應最新的IP和域名綁定信息
7、DCHP安全:DHCP認證
1、認證消息:下發一個共享配置令牌,客戶端和服務端配置令牌信息匹配則可以接受該消息,有令牌信息能夠被截獲,所以這種保護方式很弱
2、延期認證:假設客戶端和服務端有一個共享秘鑰,當客戶端發送DHCPDISCOVER和DHCPINFORM時,包含一個認證選項,則DHCPINFORM和DHCPACK中包含一個認證碼(MAC加密后的數據),
客戶端檢測認證碼是否正確。核心算法采用MD5簽名校驗
3、DHCP認證機制沒有被廣泛應用
7.1、DHCP安全:攻擊手段
1、未授權客戶機或者未授權服務器對DHCP通信過程的干擾
2、耗盡配置資源的Dos攻擊
?
感謝xuj
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的TCP/IP详解 第六章 DHCP协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac 清理垃圾工具 Clean My
- 下一篇: IS61LV25616芯片技术手册