2、資源記錄定義(RR definitions)
2.1 格式
後面分析封包的時候詳細解釋。
2.2 類型值(TYPE values)
類型主要用在資源記錄中,注意下面的值是QTYPE的一個子集。
類型 值和含義
A 1 a host address
NS 2 an authoritative name server
====
TXT 16 text strings
2.3 查詢類型(QTYPE values)
查詢類型出現在問題字段中,查詢類型是類型的一個超集,所有的類型都是可用的查詢類型,其他查詢類型如下:
AXFR 252 A request for a transfer of an entire zone
MAILB 253 A request for mailbox-related records (MB, MG or MR)
MAILA 254 A request for mail agent RRs (Obsolete - see MX)
* 255 A request for all records
====
二、封包
1、封包格式(Format)
dns請求和應答都是用相同的封包格式,分成5個段(有的封包段在不同的情況下可能為空),如下:
+---------------------+
| Header | 封包頭
| Question | 查詢的問題
| Answer | 應答
| Authority | 授權應答
| Additional | 附加資訊
Header段是必須存在的,它定義了封包是請求還是應答,也定義了其他段是否需要存在,以及是标準查詢還是其他。
Question段描述了查詢的問題,包括查詢類型(QTYPE),查詢類(QCLASS),以及查詢的域名(QNAME)。剩下的3個段包含相同的格式:一系列可能為空的資源記錄(RRs)。Answer段包含回答問題的RRs;授權段包含授權域名伺服器的RRs;附加段包含和請求相關的,但是不是必須回答的RRs。
1.1 Header的格式
封包頭包含如下字段:
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ID |
|QR| Opcode |AA|TC|RD|RA| Z | RCODE |
| QDCOUNT |
| ANCOUNT |
| NSCOUNT |
| ARCOUNT |
各字段分别解釋如下:
ID 請求用戶端設定的16位标示,伺服器給出應答的時候會帶相同的标示字段回來,這樣請求用戶端就可以區分不同的請求應答了。
QR 1個比特位用來區分是請求(0)還是應答(1)。
OPCODE 4個比特位用來設定查詢的種類,應答的時候會帶相同值,可用的值如下:
0 标準查詢 (QUERY)
1 反向查詢 (IQUERY)
2 伺服器狀态查詢 (STATUS)
3-15 保留值,暫時未使用
AA 授權應答(Authoritative Answer) - 這個比特位在應答的時候才有意義,指出給出應答的伺服器是查詢域名的授權解析伺服器。
注意因為别名的存在,應答可能存在多個主域名,這個AA位對應請求名,或者應答中的第一個主域名。
=====
1.2 Question的格式
在大多數查詢中,Question段包含着問題(question),比如,指定問什麼。這個段包含QDCOUNT(usually 1)個問題,每個問題為下面的格式:
| |
/ QNAME /
/ /
| QTYPE |
| QCLASS |
字段含義如下
QNAME 域名被編碼為一些labels序列,每個labels包含一個位元組表示後續字元串長度,以及這個字元串,以0長度和空字元串來表示域名結束。注意這個字段可能為奇數位元組,不需要進行邊界填充對齊。
QTYPE 2個位元組表示查詢類型,.取值可以為任何可用的類型值,以及通配碼來表示所有的資源記錄。
QCLASS 2個位元組表示查詢的協定類,比如,IN代表Internet。
摘自:http://blog.csdn.net/tigerjibo/article/details/6827736
本文轉自張昺華-sky部落格園部落格,原文連結:http://www.cnblogs.com/bonelee/p/7093709.html,如需轉載請自行聯系原作者