RFC系列协议--rfc1035--DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION

1.介绍

1.1 概述

域名的目标是提供一种命名资源的机制,使名称在不同的主机、网络、协议系列、internet和管理组织中可用。

1.2 通用配置

主机可以通过多种方式参与域名系统,这取决于主机是否运行从域系统检索信息的程序、回答其他主机查询的名称服务器,或者这两种功能的各种组合。最简单,也可能是最典型的配置如下所示:

user queries
user responses
queries
responses
cache additions
references
User Program
Resolver
Foreign Name Server
cache

用户程序通过解析器与域名空间交互;用户查询和用户响应的格式是特定于主机及其操作系统的。用户查询通常是操作系统调用,解析器及其缓存将是主机操作系统的一部分。能力较差的主机可以选择将解析器实现为子程序,以便与每个需要其服务的程序链接在一起。解析器通过向外部名称服务器和本地缓存查询获得的信息来回答用户的查询。

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

温馨提示:
以上文章描述如有不清晰之处,欢迎在评论区评论,如有时间,会第一时间回复,谢谢!

猜你喜欢

转载自blog.csdn.net/qq_20677327/article/details/106994017