實驗步驟一
根據實驗環境,本實驗的步驟如下:
1、測驗環境中獲取DNS資料包,
2、分析DNS資料包,
任務描述:獲取兩種型別的DNS資料包
(1)通過瀏覽器訪問域名(www.baidu.com)來獲取DNS資料
雖然合天實驗室環境下,無法抓取此部分資料包(其實也可以自己搭建服務器,配置DNS服務器,但設計者比較懶,就將就下吧),但設計者希望學習的人能根據例子在自己的筆記本上抓取,然后分析,
我們以登錄www.baidu.com來獲取DNS資料,啟動Wireshark,在Filter中輸入dns,打開瀏覽器,訪問www.baidu.com,截圖如下:
此抓包檔案,設計者會溝通合天,放在實驗機中,方便學生學習和對比下面的方法的不同,注意分析時請求和回應的幀號,比如幀號1284和幀號1338是一個完整的資料包,
(2)通過ping未知域名(www.hetianlabdns.com)來獲取DNS資料
與上面常用的方法相比,下面的方法比較另類,并且回應的資料中,缺少域名對應的IP(因為我們ping的域名,就沒有對應的ip,哈哈哈哈哈),
啟動Wireshark,過濾條件選擇dns,打開命令列視窗,ping上面的域名,截圖如下:
因為這個域名,是設計師虛構出來的,沒有對應的IP,所以ping命令回傳了提示,但這不影響我們獲取到了DNS的資料包,按照之前講解的DNS決議流程,這個請求域名在com域名后沒有被找到,就回傳給本地域名服務器,在由本地域名服務器告知DNS客戶機,
其產生的相應資料包如下:
下面實驗,我們來分析分析資料包,也希望學習者能自己分析下baidu的資料包,其與ping產生的,有一點點不同,
實驗步驟二
任務描述:分析DNS資料包
DNS只有兩種報文,分別是查詢報文和回應報文,他們的報文格式相同,如下:
(1)DNS報文格式,
下面我們解釋一下欄位含義,方便下面的分析,
DNS ID號(DNS ID Number):用來對于DNS查詢和DNS回應,
查詢/回應(Query/Response,QR):用來指明這個報文是DNS查詢還是回應,占1個位元位,如果是1,表示回應,如果是0,表示查詢,
操作代碼(OpCode):用來定義訊息中請求的型別,占4個位元位,
權威應答(Authoritative Answer,AA):如果回應報文中設定了這個值,則說明這個回應是由域內權威域名服務器發出的,占1個位元位,
截斷(Truncation,TC):用來指明這個回應由于時間太長,無法接入報文而被截斷,該標志位占1個位元位,當該標志位值為1時,表示回應已經超過512位元組并以被截斷,
期望遞回(Recursion Desired,RD):當請求中設定了這個值,則說明DNS客戶端在目標域名服務器不含有所請求資訊的情況下,要求進行遞回查詢,該標志位占1個位元位,
可用遞回(Recursion Available,RA):當回應中設定這個值,說明域名服務器支持遞回查詢,占1個位元位,
保留(Z):在RFC1035的規定中全被設為0,但有時會被用來作為RCode域的擴展,占3位元位,
回應代碼(Response Code):在DNS回應中用來指明錯誤,占4個位元位,該欄位的值通常為0和3,可取的值已經含義如下:
1)0表示沒有錯誤,
2)1表示格式錯誤,
3)2表示在域名服務器上存在問題,
4)3表示域引數問題,
5)4表示查詢型別不支持,
6)5表示在管理上被禁止,
7) 6~15表示保留,
問題計數(Question Count):在問題區段中的條目數,
問答計數(Answer Count):在回答區段中的條目數,
域名服務器計數(Name Server Count):在權威區段的域名資源記錄數,
額外記錄計數(Additional Records Count):在額外資訊區段中的其他資源記錄數,
問題區段(Question section):大小可變,包含有被發送到DNS服務器的一潭訓多條資訊查詢的部分,
回答區域(Answer section):大小可變,含有用來回答查詢的一潭訓多條資源記錄,
權威區段(Authority section):大小可變,含有指向權威域名服務器的資源記錄,用以繼續決議程序,
額外資訊區域(Additional Information section):包含資源記錄且大小可變的區段,這些資源記錄用來存盤完全沒有必要回答的查詢相關的額外資訊,
(2)DNS查詢資料包
下面,我們以dns-ping檔案來分析DNS協議,抓包如下圖:
上圖中的Info資訊中,可以看出是DNS的查詢包,其他協議這里不多介紹,不理解的,可以去相關的實驗中學習,我們來主要看DNS協議,
Domain Name System (query) #DNS 查詢
Response In: 2078
Transaction ID: 0x3061 #DNS ID號
Flags: 0x0100 Standard query #標志
0... .... .... .... = Response: Message is a query #回應訊息,值為0,表示是DNS查詢
.000 0... .... .... = Opcode: Standard query (0) #操作代碼
.... ..0. .... .... = Truncated: Message is not truncated #截斷
.... ...1 .... .... = Recursion desired: Do query recursively #期望遞回
.... .... .0.. .... = Z: reserved (0) #保留
.... .... ...0 .... = Non-authenticated data: Unacceptable
Questions: 1 #問題計數為1
Answer RRs: 0 #回答計數為0
Authority RRs: 0 #域名服務器計數為0
Additional RRs: 0 #額外計數為0
Queries #問題區段
wwww.hetianlab.com: type A, class IN
Name: wwww.hetianlab.com #請求的域名
Name Length: 18
Label Count: 3
Type: A (Host Address) (1) #域名型別為A(主機地址)
Class: IN (0x0001) #地址型別為IN(互聯網地址)
以上資訊就是DNS協議包的詳細資訊,在標志位欄位,可以看到該包是一個DNS請求包,請求的域名為www.hetianlabdns.com,型別為A,將以上資訊對應到DNS報文格式中,如下:
(3)DNS回應資料包
下面,我們來分析下相應的資料包,如下圖:
在上圖中Info列可以看出,這是個DNS相應的資料包.下面我們來詳細的看下:
Domain Name System (response) #DNS相應
Request In: 2029
Time: 0.471163000 seconds #DNS 相應時間
Transaction ID: 0x3061 #DNS ID
Flags: 0x8183 Standard query response, No such name #標志
1... .... .... .... = Response: Message is a response #相應訊息,1,表示是DNS回應
.000 0... .... .... = Opcode: Standard query (0) #操作碼
.... .0.. .... .... = Authoritative: Server is not an authority for domain #權威應答
.... ..0. .... .... = Truncated: Message is not truncated #截斷
.... ...1 .... .... = Recursion desired: Do query recursively #期望遞回
.... .... 1... .... = Recursion available: Server can do recursive queries #可用遞回
.... .... .0.. .... = Z: reserved (0) #保留
.... .... ..0. .... = Answer authenticated: Answer/authority portion was not authenticated by the server
.... .... ...0 .... = Non-authenticated data: Unacceptable
.... .... .... 0011 = Reply code: No such name (3) #回應代碼
Questions: 1 #問題計數為1
Answer RRs: 0 #回答計數為0(此處表示沒有找到域名對應的IP)
Authority RRs: 1 #域名計數器計數為1
Additional RRs: 0 #額外記錄計數為0
Queries #問題區域
wwww.hetianlab.com: type A, class IN
Name: wwww.hetianlab.com #請求的域名
Name Length: 18
Label Count: 3
Type: A (Host Address) (1) #域名型別
Class: IN (0x0001) #地址型別為IN(互聯網地址)
Authoritative nameservers #權威域名服務器,其下面的是一些解釋資訊,不過多介紹
之前說過,我們使用ping一個未知的域名來獲取DNS資料,而域名本身沒有在互聯網上注冊,按照DNS決議的原理就會知道,最后是無法得到域名對應的IP,所以上面的Answer RRS為0 ,
而同學有些興趣可以看下實驗環境中,訪問百度的DNS抓包,就會發現其Answer RRs不為0,并且在問題區域(Queries)的下面,會列出回答區域,請同學們自己查看分析,
我們將上面分析的資料,填入DNS報文中,具體如下:
好了,DNS協議,就先分析到這里,還是希望同學們自己通過合天的基礎知識學習后,能訪問互聯網來抓取DNS進行詳細分析,增加自己的知識儲備,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/295765.html
標籤:其他
上一篇:《零基礎安裝 Oracle 資料庫》單機系列 ② 一鍵快速安裝 Oracle 12CR2 資料庫
下一篇:Docker——容器資料卷