RPC系列協議--rfc1035--DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION
1.介紹
1.1 概述
域名的目標是提供一種命名資源的機制,使名稱在不同的主機、網絡、協議系列、internet和管理組織中可用。
1.2 通用配置
主機可以通過多種方式參與域名系統,這取決於主機是否運行從域系統檢索信息的程序、回答其他主機查詢的名稱服務器,或者這兩種功能的各種組合。最簡單,也可能是最典型的配置如下所示:
用戶程序通過解析器與域名空間交互;用戶查詢和用戶響應的格式是特定於主機及其操作系統的。用戶查詢通常是操作系統調用,解析器及其緩存將是主機操作系統的一部分。能力較差的主機可以選擇將解析器實現爲子程序,以便與每個需要其服務的程序鏈接在一起。解析器通過向外部名稱服務器和本地緩存查詢獲得的信息來回答用戶的查詢。
2.域名空間和RR定義
2.1 名稱空間定義
消息中的域名是用一系列標籤來表示的,名稱服務器和解析器必須以不區分大小寫的方式比較標籤。
2.2 RR定義
2.2.1 格式
所有RRs具有相同的頂級格式,如下所示:
名稱 | 定義 |
---|---|
NAME | 所有者名稱,即此資源記錄所屬的節點的名稱 |
TYPE | RR類型 |
CLASS | RR類 |
TTL | 指定在再次查詢信息源之前緩存資源記錄的時間間隔。零值被解釋爲RR只能用於正在進行的事務,不應該緩存 |
RDLENGTH | 指定RDATA字段長度 |
RDATA | 該信息的格式根據資源記錄的類型和類而變化 |
2.2.2 TYPE值
類型字段用於資源記錄。注意,這些類型是QTYPEs的一個子集。
TYPE | 值 | 含義 |
---|---|---|
A | 1 | a host address |
NS | 2 | an authoritative name server |
MD | 3 | a mail destination (Obsolete - use MX) |
MF | 4 | a mail forwarder (Obsolete - use MX) |
CNAME | 5 | the canonical name for an alias |
SOA | 6 | marks the start of a zone of authority |
MB | 7 | a mailbox domain name (EXPERIMENTAL) |
MG | 8 | a mail group member (EXPERIMENTAL) |
MR | 9 | a mail rename domain name (EXPERIMENTAL) |
NULL | 10 | a null RR (EXPERIMENTAL) |
WKS | 11 | a well known service description |
PTR | 12 | a domain name pointer |
HINFO | 13 | host information |
MINFO | 14 | mailbox or mail list information |
MX | 15 | mail exchange |
TXT | 16 | text strings |
2.2.3 QTYPE值
QTYPE字段出現在查詢的問題部分。QTYPE是TYPE的超集,因此所有類型都是有效的QTYPE。另外,定義了以下QTYPE:
QTYPE | 值 | 含義 |
---|---|---|
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 |
2.2.4 CLASS值
類字段出現在資源記錄中。定義了以下類助記符和值:
CLASS | 值 | 含義 |
---|---|---|
IN | 1 | the Internet |
CS | 2 | the CSNET class (Obsolete - used only for examples in some obsolete RFCs) |
CH | 3 | the CHAOS class |
HS | 4 | Hesiod [Dyer 87] |
2.2.5 QCLASS值
QCLASS字段出現在查詢的問題部分。QCLASS值是類值的超集;每個類都是一個有效的QCLASS。除了類值之外,還定義了以下QCLASS:
QCLASS | 值 | 含義 |
---|---|---|
* | 255 | any class |
3.消息
3.1 格式
域名協議內的所有通信都以一種稱爲消息的單一格式進行。消息的頂層格式分爲5個部分(有些部分在某些情況下是空的),如下所示:
名稱 | 定義 |
---|---|
Header | 包含Transaction ID和Flags |
Questions | 關於名稱服務器的問題 |
Answer RRs | RRs回答問題 |
Authority RRs | RRs認證 |
Additional RRs | RRs額外信息 |
3.1.1 Header格式
名稱 | 定義 |
---|---|
ID | 由程序分配的用於生成任何類型查詢的16位標識符。此標識符複製相應的應答,請求者可以使用它來匹配未完成查詢的應答。 |
QR | 指定此消息是query (0)還是response (1) |
OPCODE | 用於指定此消息中的查詢類型。該值由查詢發起者設置並複製到響應中。0代表是一個標準查詢 |
AA | Authoritative Answer,此位在響應中有效,並指定響應名稱服務器是問題部分中域名的認證。 |
TC | TrunCation,指定此消息由於長度大於傳輸通道上允許的長度而被截斷。 |
RD | Recursion Desired,這個位可以在查詢中設置並複製到響應中。如果設置了RD,它將指示名稱服務器遞歸地跟蹤查詢。 |
RA | Recursion Available,在響應中設置或清除的,它表示名稱服務器中是否提供遞歸查詢支持。 |
Z | 留作將來使用。所有查詢和響應必須爲零。 |
RCODE | Response code |
QDCOUNT | 用於指定問題部分中的條目數 |
ANCOUNT | 用於指定答案部分中的資源記錄數 |
NSCOUNT | 用於指定權限記錄部分中的名稱服務器資源記錄的數量 |
ARCOUNT | 用於指定附加記錄部分中的資源記錄數 |
3.1.1.1 RCODE格式
值 | 定義 |
---|---|
0 | No error condition |
1 | Format error |
2 | Server failure |
3 | Name Error |
4 | Not Implemented |
5 | Refused |
6-15 | Reserved for future use |
溫馨提示:
以上文章描述如有不清晰之處,歡迎在評論區評論,如有時間,會第一時間回覆,謝謝!