第四次作業(yè)
第4次作業(yè):以實驗方式呈現(xiàn)并詳細講述DHCP 、DNS 的工作過程與原理 要求:獨立完成實驗,切實掌握dhcp/dns工作原理;認真觀察dhcp/dns工作過程中數(shù)據(jù)包的轉發(fā)過程批改完成計劃:第4周
第4次作業(yè):
以實驗方式呈現(xiàn)并詳細講述DHCP 、DNS 的工作過程與原理 要求:獨立完成實驗,切實掌握dhcp/dns工作原理;認真觀察dhcp/dns工作過程中數(shù)據(jù)包的轉發(fā)過程
批改完成計劃:第4周布置,第5周上交并批改

DHCP ,全稱是 Dynamic Host Configuration Protocol﹐中文名為動態(tài)主機配置協(xié)議,它的前身是 BOOTP,它工作在OSI 的應用層,是一種幫助計算機從指定的DHCP 服務器獲取它們的配置信息的自舉協(xié)議。
DHCP 使用客戶端/服務器模式,請求配置信息的計算機叫做DHCP 客戶端,而提供信息的叫做DHCP 的服務器。DHCP 為客戶端分配地址的方法有三種:手工配置、自動配置、動態(tài)配置。
DHCP 最重要的功能就是動態(tài)分配。除了IP 地址,DHCP 分組還為客戶端提供其他的配置信息,比如子網(wǎng)掩碼。這使得客戶端無需用戶動手就能自動配置連接網(wǎng)絡。
【DHCP 的工作流程】
,發(fā)現(xiàn)階段,即DHCP 客戶機尋找DHCP 服務器的階段。DHCP 客戶機以廣播方式(因為DHCP 服務器的IP 地址對于客戶機來說是未知的)發(fā)送
DHCP discover發(fā)現(xiàn)信息來尋找DHCP 服務器,即向地址255.255.255.255發(fā)送特定的廣播信息。網(wǎng)絡上每一臺安裝了TCP/IP協(xié)議的主機都會接收到這種廣播信息,但只有DHCP 服務器才會做出響應。

提供階段,即DHCP 服務器提供IP 地址的階段。在網(wǎng)絡中接收到
DHCP discover發(fā)現(xiàn)信息的DHCP 服務器都會做出響應,它從尚未出租的IP 地址中挑選一個分配給DHCP 客戶機,向DHCP 客戶機發(fā)送一個包含出租的IP 地址和其他設置的DHCP offer提供信息。
選擇階段,即DHCP 客戶機選擇某臺DHCP 服務器提供的IP 地址的階段。如果有多臺DHCP 服務器向DHCP 客戶機發(fā)來的DHCP offer提供信息,則DHCP 客戶機只接受第一個收到的DHCP offer提供信息,然后它就以廣播方式回答一個DHCP request請求信息,該信息中包含向它所選定的DHCP 服務器請求IP 地址的內(nèi)容。之所以要以廣播方式回答,是為了通知所有的DHCP 服務器,他將選擇某臺DHCP 服務器所提供的IP 地址。
確認階段,即DHCP 服務器確認所提供的IP 地址的階段。當DHCP 服務器收到DHCP 客戶機回答的DHCP request請求信息之后,它便向DHCP 客戶機發(fā)送一個包含它所提供的IP 地址和其他設置的DHCP ACK確認信息,告訴DHCP 客戶機可以使用它所提供的IP 地址。然后DHCP 客戶機便將其TCP/IP協(xié)議與網(wǎng)卡綁定,另外,除DHCP 客戶機選中的服務器外,其他的DHCP 服務器都將收回曾提供的IP 地址。
重新登錄,以后DHCP 客戶機每次重新登錄網(wǎng)絡時,就不需要再發(fā)送DHCP discover發(fā)現(xiàn)信息了,而是直接發(fā)送包含前一次所分配的IP 地址的
,DHCP request請求信息。當DHCP 服務器收到這一信息后,它會嘗試讓DHCP 客戶機繼續(xù)使用原來的IP 地址,并回答一個DHCP ACK確認信息。如果此IP 地址已無法再分配給原來的DHCP 客戶機使用時(比如此IP 地址已分配給其它DHCP 客戶機使用),則DHCP 服務器給DHCP 客戶機回答一個DHCP NACK否認信息。當原來的DHCP 客戶機收到此DHCP NACK否認信息后,它就必須重新發(fā)送DHCP discover發(fā)現(xiàn)信息來請求新的IP 地址。
更新租約,DHCP 服務器向DHCP 客戶機出租的IP 地址一般都有一個租借期限,期滿后DHCP 服務器便會收回出租的IP 地址。如果DHCP 客戶機要延長其IP 租約,則必須更新其IP 租約。DHCP 客戶機啟動時和IP 租約期限過一半時,DHCP 客戶機都會自動向DHCP 服務器發(fā)送更新其IP 租約的信息。
【DHCP 的報文格式】
我們來介紹一下DHCP 的報文格式,如圖1,

(圖1 DHCP 的 報文格式)
OP :若是client 送給server 的封包,設為1,反向為2;
Htype :硬件類別,ethernet 為1;
Hlen :硬件長度,ethernet 為6;
Hops :若數(shù)據(jù)包需經(jīng)過router 傳送,每站加1,若在同一網(wǎng)內(nèi),為0;
Transaction ID:事務ID ,是個隨機數(shù),用于客戶和服務器之間匹配請求和相應消息;
Seconds :由用戶指定的時間,指開始地址獲取和更新進行后的時間;
Flags :從0-15bits ,最左一bit 為1時表示server 將以廣播方式傳送封包給 client ,其余尚未使用;
Ciaddr :用戶IP 地址;
Yiaddr :服務器分配給客戶的IP 地址;
Siaddr :用于bootstrap 過程中的IP 地址;(服務器的IP 地址)
Giaddr :轉發(fā)代理(網(wǎng)關)IP 地址;
Chaddr :client 的硬件地址;
Sname :可選server 的名稱,以0x00結尾;
File :啟動文件名;

Options :,廠商標識,可選的參數(shù)字段
【抓包分析】
此次用的軟件是:wireshark (在宿舍內(nèi))
1. 發(fā)現(xiàn)階段:
2. 提供階段:

3. 選擇階段
4. 確認階段:


【總結】

DNS 工作原理
