小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

DNS報文格式

 冬木*細雪 2015-08-03
DNS報文格式(借個圖貼過來):
    說明一下:并不是所有DNS報文都有以上各個部分的。圖中標示的“12字節(jié)”為DNS首部,這部分肯定都會有,首部下面的是正文部分,其中查詢問題部分也都會有。除此之外,回答、授權和額外信息部分是只出現(xiàn)在DNS應答報文中的,而這三部分又都采用資源記錄(Recource Record)的相同格式,這個稍后會提到。下面逐個字段地分析DNS報文。

    標識(2字節(jié)):這個字段網(wǎng)上的解釋有點不清楚:“由客戶程序設置并有服務器返回結果?!笨戳讼聦嶒炇业某绦蚝臀臋n,原來這個字段可以看作是DNS報文的ID,對于相關聯(lián)的請求報文和應答報文,這個字段是相同的,由此可以區(qū)分DNS應答報文是哪個請求報文的響應。

    標志(2字節(jié)):這部分非常重要,需要逐比特分析。再借個圖:


    QR(1比特):查詢/響應的標志位,1為響應,0為查詢。

    opcode(4比特):定義查詢或響應的類型(若為0則表示是標準的,若為1則是反向的,若為2則是服務器狀態(tài)請求)。
    AA(1比特):授權回答的標志位。該位在響應報文中有效,1表示名字服務器是權限服務器(關于權限服務器以后再討論)
    TC(1比特):截斷標志位。1表示響應已超過512字節(jié)并已被截斷(依稀好像記得哪里提過這個截斷和UDP有關,先記著)
    RD(1比特):該位為1表示客戶端希望得到遞歸回答(遞歸以后再討論)
    RA(1比特):只能在響應報文中置為1,表示可以得到遞歸響應。
    zero(3比特):不說也知道都是0了,保留字段。
   rcode(4比特):返回碼,表示響應的差錯狀態(tài),通常為0和3,各取值含義如下:
0          無差錯
1          格式差錯
2          問題在域名服務器上
3          域參照問題
4          查詢類型不支持
5          在管理上被禁止
6          -- 15 保留

    標志段說完了,下面是問題數(shù)、資源記錄數(shù)、授權資源記錄數(shù)和額外資源記錄數(shù),這四個字段都是兩字節(jié),分別對應下面的查詢問題、回答、授權和額外信息部分的數(shù)量。一般問題數(shù)都為1,DNS查詢報文中,資源記錄數(shù)、授權資源記錄數(shù)和額外資源記錄數(shù)都為0.

    該說正文部分了。查詢問題部分格式如下:


    查詢名部分長度不定,一般為要查詢的域名(也會有IP的時候,即反向查詢)。此部分由一個或者多個標示符序列組成,每個標示符以首字節(jié)數(shù)的計數(shù)值來說明該標示符長度,每個名字以0結束。計數(shù)字節(jié)數(shù)必須是0~63之間。該字段無需填充字節(jié)。還是借個例子來說明更直觀些,查詢名為gemini.tuc.noao.edu的話,查詢名字段如下:


    查詢類型(2字節(jié)):通常查詢類型為A(由名字獲得IP地址)或者PTR(獲得IP地址對應的域名),類型列表如下:
類型 助記符 說明
1 A IPv4地址。
2 NS 名字服務器。
5 CNAME 規(guī)范名稱。定義主機的正式名字的別名。
6 SOA 開始授權。標記一個區(qū)的開始。
11 WKS 熟知服務。定義主機提供的網(wǎng)絡服務。
12 PTR 指針。把IP地址轉化為域名。
13 HINFO 主機信息。給出主機使用的硬件和操作系統(tǒng)的表述。
15 MX 郵件交換。把郵件改變路由送到郵件服務器。
28 AAAA IPv6地址。
252 AXFR 傳送整個區(qū)的請求。
255 ANY 對所有記錄的請求。
   查詢類(2字節(jié)):通常為1,指Internet數(shù)據(jù)。

前面說過,回答字段,授權字段和附加信息字段均采用資源記錄RR(Resource Record)的相同格式。該格式如下:


    域名字段(不定長或2字節(jié)):記錄中資源數(shù)據(jù)對應的名字,它的格式和查詢名字段格式相同。當報文中域名重復出現(xiàn)時,就需要使用2字節(jié)的偏移指針來替換。例如,在資源記錄中,域名通常是查詢問題部分的域名的重復,就需要用指針指向查詢問題部分的域名。關于指針怎么用,TCP/IP詳解里面有,即2字節(jié)的指針,最簽名的兩個高位是11,用于識別指針。其他14位從報文開始處計數(shù)(從0開始),指出該報文中的相應字節(jié)數(shù)。注意,DNS報文的第一個字節(jié)是字節(jié)0,第二個報文是字節(jié)1。一般響應報文中,資源部分的域名都是指針C00C(1100000000001100),剛好指向請求部分的域名。

    類型(2字節(jié))、類(2字節(jié)):含義與查詢問題部分的類型和類相同。

    生存時間(4字節(jié)):該字段表示資源記錄的生命周期(以秒為單位),一般用于當?shù)刂方馕龀绦蛉〕鲑Y源記錄后決定保存及使用緩存數(shù)據(jù)的時間。

    資源數(shù)據(jù)長度(2字節(jié)):表示資源數(shù)據(jù)的長度(以字節(jié)為單位,如果資源數(shù)據(jù)為IP則為0004)

    資源數(shù)據(jù):該字段是可變長字段,表示按查詢段要求返回的相關資源記錄的數(shù)據(jù)。

    基本上對DNS報文格式的分析就是這些了。貼個報文實例,用wireshark抓的:


    對應的報文:


    就不再分析了,對比wireshark的分析應該能找到各個字段。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多