RFC系列协议--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 |
温馨提示:
以上文章描述如有不清晰之处,欢迎在评论区评论,如有时间,会第一时间回复,谢谢!