一、DNS報文格式





上圖就是DNS報文的格式,從上圖可以看出,DNS報文格式分為五大部分。分別為: 報文頭Header, 問題區段(Question),回答區段(Answer),權威區段(Authority), 額外信息區段(Additional)。但是不是五個段必須存在,只有Header必須存在,別的段在不同情況下不存在。
首先看看Header段中每個字段的含義:
DNS ID號(DNS ID Number): 用來對應DNS查詢和DNS響應
查詢/響應(Query/Response, QR): 用來指明這個報文是DNS查詢還是響應,占1個比特位。為1代表響應,0代表查詢
操作代碼(OpCode):用來定義消息中請求的類型
權威應答(Authoritative Answer, AA):這個比特位在響應的時候才有意義。則說明這個響應是由域內權威域名服務器發出的
截斷(Truncation, TC):用來指出報文比允許的長度還要長,導致被截斷
期望遞歸(Recursion Desired, RD):如果設置了RD,就建議域名服務器進行遞歸解析,遞歸查詢的支持是可選的。
支持遞歸(Recursion Available, RA): 當響應中設定了這個值,說明域名服務器支持遞歸查詢
保留(Z): 未使用,用0表示
響應代碼(Response Code): 在DNS響應中指明錯誤,占4個比特位。
問題計數(Question Count): 問題區段中的問題記錄數
回答計數(Answer Count):回答區段中的回答記錄數
域名服務計數(Name Server Count):權威區段中的記錄數
額外記錄數(Additional Records Count):在額外信息區段中的記錄數
問題區段(Question Section):包含有被發送到DNS服務器的一條或者多條信息
回答區段(Answer Section):含有用來回答查詢的一條或者多條資源記錄
權威區段(Authority Section):包含權威域名服務器的資源記錄
額外信息區段(Additional Information Section): 包含資源記錄且大小可變的區段。
二、捕獲DNS數據包
打開Wireshark,捕捉數據,然后打開瀏覽器,輸入網址:www.baidu.com

可以明顯的看到18幀是DNS請求幀,19幀是DNS回應幀
三、分析DNS請求幀,對應的是18幀

從上圖的分析可看出,請求計數為1,請求的主機域名為:www.baidu.com
四、分析DNS響應幀,對應的是19幀

從上圖可以看到,問題計數1個,也就是對應的請求幀中的問題。而回應計數3個。 分析Answer字段,如下

分析權威區段:此區段包含權威域名服務器資源記錄

分析額外信息區段:

