DNS 一站到家之记录类型

DNS 记录类型说明,若有遗漏的或者有误请指出,我将及时添加及改正。

记录类型

A (1),什么是 A 记录?RFC 1035

A (Address),用来指定主机名(或域名)对应的IP地址记录。当你浏览一个网站的时候都是解析 A 或 AAAA 记录。

可能有些朋友在域名服务商添加记录时不知道 @ 的作用:

@       IN      A       192.168.1.100
a       IN      A       192.168.1.101

这里的 @ 符号表示与你添加的域名域来源相同。如我添加的 a.bind.deepzz.com 就不与来源 bind.deepzz.com 相同,直白的说你正在为 bind.deepzz.com 添加 A 记录。

你可以为同一个地址添加多个 A 记录。解析的时候,会得到多个 IP,会随机选择一个使用。

目前域名不区分大小写。记录的名称应该是由 ASCII 码字母、数字和 - 组成。

NS (2),什么是 NS 记录?RFC 1035

NS(Name Server),域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。每个域名的解析都需要指定权威 NS 服务器。如上面提到的:

@       IN      NS      ns1.deepzz.com.

CNAME (5),什么是 CNAME 记录?RFC 1035

CNAME(Canonical Name record),规范名字,也被称为别名记录,允许您将多个名字映射到同一台计算机。

应用场景:

  • 使用 CDN 服务时。
  • 假如一个服务器运行着 100 个网站,这 100 个网站 CNAME 到 a.example.com。当该服务器 IP 改变时,你只需改变 a.example.com的 IP 就可以了。

查询过程,举个例子:

a.deepzz.com       IN      A       192.168.1.101
b.deepzz.com       IN      CNAME   a.deepzz.com(规范名称)

当你查询 b.deepzz.com 时,会先返回 CNAME a.deepzz.com,之后再用 a.deepzz.com 去查询,最后得到 123.123.123.123

该记录是特殊的,有如下限制:

  • CNAME 必须指向另一个域名,而不是 IP。
  • 当 DNS 解析器寻找常规资源记录时遇到 CNAME 记录,会使用规范名称重新启动查询。
  • 尽量避免指向其他 CNAME 记录的 CNAME 记录。注意不要创建循环 CNAME。 a.deepzz.com IN CNAME b.deepzz.com. b.deepzz.com IN CNAME a.deepzz.com.
  • MX 和 NS 记录不能指向有 CNAME 记录的域名,如: mail.deepzz.com IN MX 10 a.deepzz.com. a.deepzz.com IN CNAME b.deepzz.com. b.deepzz.com IN A 192.168.1.101

RFC 1034 文档郑重声明,同一名称不能够同时存在 CNAME 和其它资源记录,也就是说 CNAME 与其它记录互斥。例外情况是使用DNSSEC时,在这种情况下可能会有与DNSSEC相关的记录,例如RRSIG,NSEC等。

SOA (6),什么是 SOA 记录?RFC 1035

SOA(start of authority,起始授权机构),用来指出哪个名称服务器是此区域数据的最佳信息来源。使用过 BIND 应该有所了解,如我搭建了一个 ns1.deepzz.com 名称服务器。

如果你想要你的名称服务器对外服务,你可能需要将它注册到父区域。如我的 ns1.deepzz.com 就注册到了阿里云(不对外服务)。 aliyun-dns

我指定它为 bind.deepzz.com 权威服务器。为 a.bind.deepzz.com 添加 A 记录。

$TTL    604800
bind.deepzz.com.    IN   SOA   ns1.deepzz.com. root.deepzz.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.deepzz.com.
a       IN      A       192.168.1.100

更详细配置使用信息,请到DNS 一站到家之bind9搭建查看。

PTR (12),什么是 PTR 记录?RFC 1035

PTR(Pointer Record),指针记录,通常用于反向地址解析。我们来看一看例子:

$TTL    604800
1.168.192.in-addr.arpa.   IN   SOA   ns1.deepzz.com. root.deepzz.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.deepzz.com.
101     IN      A       a.bind.deepzz.com.

当我们通过 dig -x 192.168.1.101 就会得到 a.bind.deepzz.com 这个结果。

MX (15),什么是 MX 记录?RFC 1035

MX(MX record),邮件交换记录,用于指定负责处理发往收件人域名的邮件服务器。MX 记录允许设置一个优先级,当多个邮件服务器可用时,会根据该值决定投递邮件的服务器(值小的优先)。还可以防止出现路由环路。

如:

mail.deepzz.com    IN   MX      10  a.deepzz.com.

上面的 10,即为优先级。

TXT (16),什么是 TXT 记录?RFC 1035

TXT(TXT record),文本记录,一般指为某个主机名或域名设置的说明。一般做某种验证时会用到。

如:

b.deepzz.com       IN   TXT       6f0a23f0620fe6fbac5391c1f70921e6

RP (17),什么是 RP 记录?RFC 1183

RP(Responsible Person),负责人,有关域名负责人的信息,电邮地址的 @ 通常写为 .

例:

<owner> <ttl> <class> RP <mbox-dname> <txt-dname>

sayshell.umd.edu.     IN   RP    louie.trantor.umd.edu.  LAM1.people.umd.edu.
LAM1.people.umd.edu.  IN   TXT   "Sommer Newman, (415) 555-9612"

其中负责人的邮箱为 louie.trantor.umd.edu.=>louie@trantor.umd.edu. 。之后关联了一个 LAM1.people.umd.edu. 地址,该地址有一个 TXT 记录,用来提供地址更多信息什么的。

AFSDB (18),什么是 AFSDB 记录?RFC 1183

AFSDB(),AFS文件系统,(Andrew File System)数据库核心的位置,于域名以外的 AFS 客户端常用来联系 AFS 核心。这个记录的子类型是被过时的的 DCE/DFS(DCE Distributed File System)所使用。

例:

<owner> <ttl> <class> AFSDB <subtype> <hostname>

toaster.com.   IN    AFSDB   1 henson.toaster.com.

subtype 是一个 16 位的整数。当值为 1 时,主机具有 AFS 版本 3.0 的 AFS 的单元位置服务器。值为 2 时,主机具有保存单元根的认证名称服务器命名 DCE/NCA 单元的目录节点。

SIG (24),什么是 SIG 记录?RFC 2535

SIG(signature),证书,SIG(0)(RFC 2931)及 TKEY(RFC 2930)使用的证书。RFC 3755 designated RRSIG as the replacement for SIG for use within DNSSEC。

KEY (25),什么是 KEY 记录?RFC 2535 RFC 2930

KEY(Key record),关键记录,只用于 SIG(0)(RFC 2931)及 TKEY(RFC 2930)。RFC 3455 否定其作为应用程序键及限制DNSSEC的使用,RFC 3755 指定了 DNSKEY 作为DNSSEC的代替。

AAAA (28),什么是 AAAA 记录?RFC 3596

AAAA(AAAA record),用来将域名解析到 IPv6 地址的 DNS 记录。其他与 A 相同。

LOC (29),什么是 LOC 记录?RFC 1876

LOC(Location Information),位置记录,将一个域名指定地理位置。

例:

<owner> <TTL> <class> LOC ( d1 [m1 [s1]] {"N"|"S"} d2 [m2 [s2]]
                               {"E"|"W"} alt["m"] [siz["m"] [hp["m"]
                               [vp["m"]]]] )

;;;
;;; note that these data would not all appear in one zone file
;;;

;; network LOC RR derived from ZIP data.  note use of precision defaults
cambridge-net.kei.com.        LOC   42 21 54 N 71 06 18 W -24m 30m

;; higher-precision host LOC RR.  note use of vertical precision default
loiosh.kei.com.               LOC   42 21 43.952 N 71 5 6.344 W
                                    -24m 1m 200m

pipex.net.                    LOC   52 14 05 N 00 08 50 E 10m

curtin.edu.au.                LOC   32 7 19 S 116 2 25 E 10m

rwy04L.logan-airport.boston.  LOC   42 21 28.764 N 71 00 51.617 W
                                    -44m 2000m

SRV (33),什么是 SRV 记录?RFC 2782

SRV(Service record),述数据的规范域名系统限定的位置,即,主机名和端口号,对于指定的服务的服务器。它在 RFC 2782 中定义,其类型代码为 33。某些因特网协议(如会话发起协议(SIP))和可扩展消息传递和呈现协议(XMPP)通常需要网络元素的SRV支持。

格式如下:

_service._proto.name. TTL class SRV priority weight port target.
  • service,所需服务器的符号。
  • proto,所需服务的传输协议,通常是 TCP 或 UDP。
  • name,此记录有效的域名,以 . 结束。
  • TTL,标准 DNS TTL 字段。
  • class,标准 DNS class 字段,如:IN。
  • priority,目标主机的优先级,值低的优先。
  • weight,具有相同优先级的记录的相对权重,值高的优先。
  • port,该服务的 TCP 或 UDP 端口。
  • target,提供服务的机器的规范主机名,以 . 结束。

例:

_sip._tcp.example.com. 86400 IN SRV 0 5 5060 sipserver.example.com.

指向 sipserver.example.com 的服务器,在 TCP 端口 5060 上侦听 SIP 协议服务。这里优先级给出 0,权重为 5。与 MX 记录一样,SRV 记录中的目标必须指向具有地址记录(A 或 AAAA)的主机名。不能指向有 CNAME 的主机名。

NAPTR (35),什么是 NAPTR 记录?RFC 3403

NAPRE(NAPTR record),命名管理指针,允许基于正则表达式的域名重写使其能够作为 URI、进一步域名查找等。

example.com.
;;      order pref flags service           regexp replacement
IN NAPTR 100  50  "a"    "z3950+N2L+N2C"     ""   cidserver.example.com.
IN NAPTR 100  50  "a"    "rcds+N2C"          ""   cidserver.example.com.
IN NAPTR 100  50  "s"    "http+N2L+N2C+N2R"  ""   www.example.com.

CERT (37),什么是 RP 记录?RFC 1183

CERT(Certificate),证书记录,存储 PKIX、SPKI、PGP等。

         Value  Mnemonic  Certificate Type
         -----  --------  ----------------
             0            Reserved
             1  PKIX      X.509 as per PKIX
             2  SPKI      SPKI certificate
             3  PGP       OpenPGP packet
             4  IPKIX     The URL of an X.509 data object
             5  ISPKI     The URL of an SPKI certificate
             6  IPGP      The fingerprint and URL of an OpenPGP packet
             7  ACPKIX    Attribute Certificate
             8  IACPKIX   The URL of an Attribute Certificate
         9-252            Available for IANA assignment
           253  URI       URI private
           254  OID       OID private
           255            Reserved
     256-65279            Available for IANA assignment
   65280-65534            Experimental
         65535            Reserved

DNAME (39),什么是 RP 记录?RFC 2672

DNAME(DNAME record),代表名称,DNAME 会为名称和其子名称产生别名,与 CNAME 不同,在其标签别名不会重复。但与 CNAME 记录相同的是,DNS将会继续尝试查找新的名字。

<owner> <ttl> <class> DNAME <target>

frobozz.example.  DNAME    frobozz-division.acme.example.
                  MX       10       mailhub.acme.example.

OPT (41),什么是 RP 记录?RFC 2671

OPT(Options),选项,这是一个 “伪 DNS 记录类型” 以支持 EDNS

APL (42),什么是 APL 记录?RFC 3123

APL(Address Prefixes List),地址前缀列表,指定地址列表的范围,例如:CIDR 格式为各个类型的地址(试验性)。

例:

<owner>   IN   <TTL>   APL   {[!]afi:address/prefix}*

; RFC 1101-like announcement of address ranges for foo.example
foo.example.             IN APL 1:192.168.32.0/21 !1:192.168.38.0/28
; CIDR blocks covered by classless delegation
42.168.192.IN-ADDR.ARPA. IN APL ( 1:192.168.42.0/26 1:192.168.42.64/26
                                  1:192.168.42.128/25 )
; Zone transfer restriction
  _axfr.sbo.example.       IN APL 1:127.0.0.1/32 1:172.16.64.0/22

; List of address ranges for multicast
multicast.example.       IN APL 1:224.0.0.0/4  2:FF00:0:0:0:0:0:0:0/8

DS (43),什么是 DS 记录?RFC 4034

DS(Delegation signer),委托签发者,此记录用于鉴定DNSSEC已授权区域的签名密钥。

SSHFP (44),什么是 SSHFP 记录?RFC 4255

SSHFP(Secure Shell (SSH) Key Fingerprints),SSH 公共密钥指纹,DNS 系统用来发布 SSH 公共密钥指纹的资源记录,以用作辅助验证服务器的真实性。

IPSECKEY (45),什么是 IPSECKEY 记录?RFC 4025

IPSECKEY(IPsec Keying),IPSEC 密钥,与 IPSEC 同时使用的密钥记录。

RRSIG (46),什么是 RRSIG 记录?RFC 4034

RRSIG(Resource record signature),DNSSEC 证书,DNSSEC 安全记录集证书,与 SIG 记录使用相同的格式。

NSEC (47),什么是 NSEC 记录?RFC 4034

NSEC(Next Security),下一代安全记录,DNSSEC 的一部分 — 用来验证一个未存在的服务器,使用与 NXT(已过时)记录的格式。。

DNSKEY (48),什么是 DNSKEY 记录?RFC 4034

DNSKEY(DNSKEY record),DNS 关键记录,于DNSSEC内使用的关键记录,与 KEY 使用相同格式。

DHCID (49),什么是 DHCID 记录?[RFC 4701](https://tools.ietf.org/html/rfc4701)

DHCID(Dynamic Host Configuration Protoco),DHCP(动态主机设置协议)识别码,用于将 FQDN 选项结合至 DHCP。

chi6.example.com.     AAAA    2001:DB8::1234:5678
chi6.example.com.     DHCID   ( AAIBY2/AuCccgoJbsaxcQc9TUapptP69l
                                OjxfNuVAA2kjEA= )
                                
chi.example.com.      A       192.0.2.2
chi.example.com.      DHCID   ( AAEBOSD+XR3Os/0LozeXVqcNc7FwCfQdW
                                L3b/NaiUDlW2No= )

NSEC3 (50),什么是 NSEC3 记录?RFC 5155

NSEC(Next Security),NSEC 记录第三版,用作允许未经允许的区域行走以证明名称不存在性的 DNSSEC 扩展。

NSEC3PARAM (51),什么是 NSEC3PARAM 记录?RFC 5155

NSEC3PAEA,NSEC3 参数,与 NSEC3 同时使用的参数记录。

HIP (55),什么是 HIP 记录?RFC 5025

HIP(Host Identity Protocol),主机鉴定协议,将端点标识符及IP 地址定位的分开的方法。

SPF (99),什么是 SPF 记录?RFC 4408

SPF(Sender Policy Framework),发件人策略框架,作为 SPF 协议的一部分,优先作为先前在 TXT 存储 SPF 数据的临时做法,使用与先前在 TXT 存储的格式。

例:

example.com    IN   TXT   "v=spf1 +a:smtp1.example.com +a:smtp2.example.com -all"

1、spf1 表示这个记录是一个 SPF 记录。

2、+(默认,可省略),通过。相匹配的邮件程序是一个有效的发件人。

  • -,不通过。相匹配的邮件程序不是一个有效的发件人。
  • ~,软故障。相匹配的邮件程序可能不是一个有效的发件人,因此该消息应当被仔细检查。
  • ?,中立。无效果。

3、a,指定邮件服务器名称。允许此邮件服务器从其地址发送来自于所有者域名的电子邮件。

  • mx,指定一个域名,允许邮件交换器发送来自所有者域名的电子邮件。
  • ip4,指定一个邮件服务器的 IP(v4)地址,允许此邮件服务器从其地址发送来自于所有者域名的电子邮件,允许 CIDR 标记法(192.168.0.0/24)。
  • ip6,指定一个邮件服务器的 IPv6 地址,允许此邮件服务器从其地址发送来自于所有者域名的电子邮件。
  • ptr,要求发送邮件的服务器的地址上必须存在一个 PTR 记录。该 PTR 记录必须将地址映射到某个域名,且该域名必须以 TXT 记录中的所有者字段的域名结尾,或以冒号后所指定的参数结尾。如:+ptr:example.com 要求发送邮件的服务器的地址逆向解析到以 example.com 结尾的域名。

4、-all 告诉邮件程序拒绝所有其它所有发件人的 example.com 邮件。

SPF 也支持 redirect 修饰符,允许多个域名共享一组常用的 SPF 指令。

例:

a.example.com   IN   TXT   "v=spf1 redirect=example.com"
b.example.com   IN   TXT   "v=spf1 redirect=example.com"

这样 a.example.comb.exmaple.com 就会使用 example.com 相同的 TXT 记录,无需再复制一次。

include 机制和 redirect 是一个类似的结构,它被设计为管理者可以参考其他人所配置的 SPF 指令。

b.example.com   IN   TXT   "v=spf1 include:example.com"

注意,redirect 使用的是等号,include 使用的是冒号。

TKEY (249),什么是 TKEY 记录?RFC 2930

TKEY(Secret Key Establishment),秘密密钥记录,为TSIG提供密钥材料的其中一类方法,that is 在公共密钥下加密的 accompanying KEY RR。

TSIG (250),什么是 TSIG 记录?RFC 2845

TSIG(Secret Key Transaction Authentication),交易证书,用以认证动态更新(Dynamic DNS)是来自合法的客户端,或与 DNSSEC 一样是验证回应是否来自合法的递归名称服务器。

IXFR (251),什么是 IXFR 记录?RFC 1995

TXFR(Incremental Zone Transfer),增量区域转移,请求只有与先前流水式编号不同的特定区域的区域转移。此请求有机会被拒绝,如果权威服务器由于配置或缺乏必要的数据而无法履行请求,一个完整的(AXFR)会被发送以作回应。

AXFR (252),什么是 AXFR 记录?RFC 1053

AXFR,全域转移,由主域名服务器转移整个区域文件至二级域名服务器。

* (255),什么是 * 记录?RFC 1035

*,所有缓存的记录,传回所有服务器已知类型的记录。如果服务器未有任何关于名称的记录,该请求将被转发。而传回的记录未必完全完成,例如:当一个名称有 A 及 MX 类型的记录时,但服务器已缓存了 A 记录,就只有 A 记录会被传回。

CAA (257),什么是 CAA 记录?RFC 6844

CAA(Certification Authority Restriction),认证机构授权,使用互联网的域名系统来允许域的持有人指定哪些证书颁发机构(CA)被允许颁发该域的证书。这不意味着在传输层安全(TLS)连接的客户端(而不是基于DNS的认证的命名实体 - DANE - 旨在用于此目的)支持额外的交叉检查,而是作为检查执行 CA 作为发行程序的一部分。CAA 记录旨在允许 CA 在某些情况下避免发放错误的证书,而 DANE 记录旨在允许依赖应用程序(TLS 客户端)在某些情况下避免依赖于错误发出的证书。

例:

$ORIGIN example.com
.       CAA 0 issue "ca.example.net"
.       CAA 0 iodef "mailto:security@example.com"
.       CAA 0 iodef "http://iodef.example.com/"

DLV (32769),什么是 DLV 记录?RFC 4431

DLV(DNSSEC Lookaside Validation),DNSSEC(域名系统安全扩展)来源验证记录,域名系统安全旁路认证,DLV 记录指定 DNS 授权链外部的 DNSSEC 信任锚。它与 DS 记录使用相同的格式。此记录类型在 RFC 4431 中定义。

TA (32768),什么是 TA 记录?

TA,DNSSEC 信任当局,DNSSEC 一部分无签订 DNS 根目录的部署提案,,使用与 DS 记录相同的格式。

过时的记录

发展呈现废弃一些最初定义的记录类型。从 IANA 的记录可见,一些记录类型由于一些原因而被限制其使用、一些被标示为明显过时的、有些是为了隐藏的服务、有些是为了旧版本的服务、有的有特别记录指出它们是“不正确的”。

  • 由 RFC 973 定义为过时:MD(3)、MF (4)、MAILA (254)
  • 为了发布邮件列表订户的 DNS 记录:MB(7)、MG(8)、MR(9)、MINFO(14)、MAILB (253)。 在 RFC 883 标明的意图是为了让 MB 代替 SMTP VRFY 指令、MG 代替 SMTP EXPN 指令、及让 MR 代替“551 User Not Local”SMTP 错误。其后,RFC 2505 提议将 VRFY 及 EXPN 指令两者停用,使利用 MB 及 MG 永远不可能获得通过。
  • 在 RFC 1123 不提议使用“not to be relied upon”(RFC 1127 有更多的信息):WKS(11)[10]
  • 错误: NB(32)、NBSTAT(33)(自 RFC 1002);号码现已分配给 NIMLOC 及 SRV。
  • 由 RFC 1035 定义为过时:NULL(10)(RFC 883 定义“完成查询”(操作码二及可能是三)有在使用此记录,后来 RFC 1035 重新分配操作码二为“状态”及保留操作码三)。
  • 定义为早期的 IPv6 但其后由 RFC 3363 降级为试验性:A6(38)
  • 由 DNSSEC 更新(RFC 3755) 定义为过时:NXT(30)。同一时间,为 KEY 及 SIG 域名的适用性限制为不包括 DNSSEC。
  • 第一版 DNSSEC(RFC 2230、RFC 2065)的一部分,现已过时:KX(36)
  • 目前没有任何显著的应用程序使用:HINFO(13)、RP(17)、X25(19)、ISDN(20)、RT(21)、NSAP(22)、NSAP-PTR(23)、PX(26)、EID(31)、NIMLOC(32)、ATMA(34)、APL(42)
  • 由 Kitchen Sink 互联网草案,但从未达至 RFC 水平:SINK(40)
  • 一个 LOC 记录更有限的早期版本:GPOS(27)
  • IANA 保留,及后未有 RFC 记录它们 [1] 而支持已由 BIND 于九零年初移除:UINFO(100), UID(101)、GID(102)、UNSPEC(103) RP(17) 可能被使用于有关指定的主机的不同联系点、子网域其他 SOA 记录不包含的域名级别的人类可读信息。

查询类

IN (1),什么是 IN?

IN(Internet)

CS (3),什么是 CS?

CS(COAS)网络

HS (4),什么是 HS?

HS(MIT开发的 Hesiod 服务器)

本文链接:参与评论 »

--EOF--

提醒:本文最后更新于 222 天前,文中所描述的信息可能已发生改变,请谨慎使用。

专题「DNS 一站到家」的其它文章 »

Comments