http://www.diantansuo.com/what-is-different-dns-record-types web
在以前的文章中,咱们了解了什么是 DNS以及DNS 系统是如何工做的,如今让咱们来看看 DNS 记录有哪些种类,以及它们有什么做用。缓存
要理解不一样的 DNS 记录,首先必须了解区域文件是什么?服务器
区域文件是名称服务器存储其所知道的域名的信息的方式。名称服务器知道的每一个域名都存储在区域文件中。对于名称服务器来讲,大多数请求都不能在它本身服务器中找到区域文件。网络
若是它被配置成能够递归查询,如解析名称服务器,那它会递归找到结果并返回。不然,它会告诉请求者方下一步到哪里查询。dom
名称服务器具备的区域文件越多,它可以权威回答的请求越多。ide
区域文件描述 DNS “区域”,其基本上是整个 DNS 命名系统的子集。它一般只配置一个域名。它能够包含多个记录,定义了该域名下的资源位置。性能
区域文件的 $ORIGIN
表示该区域最高等级的权威。google
因此若是一个区域文件被配置为 “example.com” 域,$ORIGIN
会被设置为 example.com
。spa
它配置在区域文件的顶部,或者能够在引用区域文件的 DNS 服务器的配置文件中定义。不管哪一种方式,此参数描述区域将是什么等级的权威。日志
相似地,$TTL
配置它提供的信息的 “生存时间”。它基本上是一个计时器。高速缓存名称服务器可使用先前查询的结果来回答问题,直到 TTL 值用完。
开始受权,或者说是 SOA,这种记录是全部区域性文件中的强制性记录。它必须是一个文件中的第一个记录($ORIGIN
和 $TTL
会在它以前指定)。它仍是最难理解的一种记录。
开始权限记录的看起来像这样:
domain.com. IN SOA ns1.domain.com. admin.domain.com. ( 12083 ; serial number 3h ; refresh interval 30m ; retry interval 3w ; expiry period 1h ; negative TTL)
咱们来解释一下各部分分别表示什么:
domain.com.:这是区域的根。这代表该区域文件用于 domain.com 域名。一般,你会看到这个用 @ 代替,它只是一个占位符,表示咱们以前学到的 $ORIGIN
变量的内容。
IN SOA:”IN” 部分表示互联网(它会出如今许多记录中)。 SOA 是表示这是开始权限记录。
ns1.domain.com.:这定义了该域的主名称服务器。名称服务器能够是主服务器或从服务器,若是配置了动态 DNS,就像这里,则一个服务器须要是 “主服务器”。若是你未配置动态 DNS,那么这只是你其中一个主名称服务器。
admin.domain.com.:这是这个区域文件管理员的邮箱地址。邮箱地址的 @ 这里用一个 . 代替。若是你的名字中也有 . 它会用 \ 代替。(好比 your.name@domain.com 变成 your\name.domain.com)
12083:这是区域文件的序列号。每次编辑区域文件时,必须增长此序列号以使区域文件可以正确传播。从服务器将检查主服务器的区域序列号是否大于它们在系统上的序列号。若是是,它请求新的区域文件,若是不是,它继续服务原始文件。
3h:这是区域的刷新间隔。这是从服务器向主服务器轮询检查区域文件是否变动之间等待的时间量。
30m:这是此区域的重试间隔。若是从机在刷新周期结束时没法链接到主机,则它将等待此时间并重试轮询主机。
3w:这是到期时间。若是从服务器在此时间内没法与主服务器联系,则它再也不做为此区域的权威来源的返回响应。
1h:这是名称服务器在此文件中找不到所请求的名称时缓存找不到结果的时间量。
这两个记录都将主机映射到 IP 地址。 “A” 记录用于将主机映射到 IPv4 IP 地址,而 “AAAA” 记录用于将主机映射到 IPv6 地址。
这些记录的通常格式是:
host IN A IPv4_address host IN AAAA IPv6_address
由于咱们的 SOA 记录指出了咱们的主服务器是 “ns1.domain.com”,而 “ns1.domain.com” 也是 “domain.com” 区域文件定义的,因此咱们须要把它指向一个 IP 地址。
这条记录可能看起来像这样:
ns1 IN A 111.222.111.222
请注意,咱们没必要提供全名。咱们能够只给主机名,不须要 FQDN,而后 DNS 服务器会经过 $ORIGIN
补足其他部分。可是,咱们也可使用完整的 FQDN :
ns1.domain.com. IN A 111.222.111.222
大多数状况下,在这里你能够将你的 web 服务器定义为 “www”:
www IN A 222.222.222.222
咱们还能够说明基本域解析到哪里。以下表示:
domain.com. IN A 222.222.222.222
咱们还可使用 “@” 来表示基本域名:
@ IN A 222.222.222.222
咱们还能够解析此域下未明肯定义的任何内容到此服务器。可使用 “*” 通配符:
* IN A 222.222.222.222
以上这些对于 AAAA 记录一样适用。
CNAME 记录为您的服务器(由A或AAAA记录定义的名称)定义规范名称的别名。
例如,咱们能够有一个 A 记录定义 “server1” 主机,而后使用 “www” 做为此主机的别名:
server1 IN A 111.111.111.111 www IN CNAME server1
请注意,这些别名会带来一些性能损失,由于它们须要对服务器进行额外的查询。大多数时候,经过使用附加的 A 或 AAAA 记录能够实现相同的结果。
推荐使用 CNAME 的一种状况是为当前区域以外的资源提供别名。
MX 记录用来定义用于域的邮件交换。这有助于电子邮件正确到达您的邮件服务器。
与许多其余记录类型不一样的是,邮件记录一般不会将主机映射到某些内容,由于它们适用于整个区域。所以,他们一般看起来像这样:
IN MX 10 mail.domain.com.
请注意,开头没有主机名。
还要注意,它还有一个额外的数字。若是定义了多个邮件服务器,这是帮助计算机决定发送邮件的服务器的首选项号。较低的数字具备较高的优先级。
MX 记录一般应指向由 A 或 AAAA 记录定义的主机,而不是由 CNAME 定义的主机。
因此,假设咱们有两个邮件服务器。能够这样表示:
IN MX 10 mail1.domain.com. IN MX 50 mail2.domain.com. mail1 IN A 111.111.111.111 mail2 IN A 222.222.222.222
在这个例子中,”mail1” 主机是首选电子邮件交换服务器。
咱们也能够这样写:
IN MX 10 mail1 IN MX 50 mail2 mail1 IN A 111.111.111.111 mail2 IN A 222.222.222.222
此记录类型定义用于此区域的名称服务器。
你可能想知道,”若是区域文件放在名称服务器上,为何它须要引用自身?”。DNS 如此成功的其中一个缘由是它的多级缓存。在区域文件中定义名称服务器的一个缘由是区域文件多是另一个名称服务器的缓存副本。至于其余缘由,咱们不在这里讨论。
与 MX 记录同样,它也有一些区域范围的参数,所以它们也不使用主机。通常来讲,它们看起来像这样:
IN NS ns1.domain.com. IN NS ns2.domain.com.
你应该在每一个区域文件中至少定义两个名称服务器,以便在一个服务器出现问题时还能正确运行。若是只有一个名称服务器,大多数 DNS 服务器软件都会认为区域文件无效。
一样,把主机的 A 或者 AAAA 映射也包含记录中:
IN NS ns1.domain.com. IN NS ns2.domain.com. ns1 IN A 111.222.111.111 ns2 IN A 123.211.111.233
你还可使用不少其余记录类型,但这些多是你会遇到的最多见的类型。
PTR 记录用于定义与 IP 地址相关联的名称。 PTR 记录是 A 或 AAAA 记录的逆。 PTR 记录是惟一的,由于它们以 .arpa 根开始并被委派给 IP 地址的全部者。区域互联网注册管理机构(RIRs)管理 IP 地址到组织和服务提供商的指派。区域互联网注册管理机构包括 APNIC,ARIN,RIPE NCC,LACNIC 和 AFRINIC。
这里是一个 111.222.333.444 的 PTR 记录的示例:
444.333.222.111.in-addr.arpa. 33692 IN PTR host.example.com.
IPv6 地址的这个 PTR 记录示例使用了 Google IPv6 DNS 服务器(2001:4860:4860::8888)的逆转形式的半字节格式。
8.8.8.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.6.8.4.0.6.8.4.1.0.0.2.ip6.arpa. 86400IN PTR google-public-dns-a.google.com.
dig
命令的 -x
参数可用于查找 IP 地址的反向 DNS 名称。
下面是一个 dig
命令的例子。+short
确保只输出反向 DNS 名称。
dig -x 8.8.4.4 +short
上述 dig
命令的输出将是该 IP 地址的 PTR 记录中的域名:
google-public-dns-b.google.com.
互联网上的服务器在日志中使用 PTR 记录,来作出明智的垃圾邮件处理决策,并显示其余设备上的易于阅读的详细信息。
最经常使用的电子邮件服务器将查找从其接收电子邮件的 IP 地址的 PTR 记录。若是源 IP 地址没有与其相关联的 PTR 记录,则发送的电子邮件可被视为垃圾邮件并被拒绝。PTR 中的 FQDN 与要发送的电子邮件的域名是否匹配并不重要,重要的是存在有效的 PTR 记录,具备对应的和匹配的前向 A 记录。
一般,互联网上的网络路由器会被赋予与其物理位置相对应的 PTR 记录。例如,你可能会在纽约市或芝加哥看到使用 “NYC” 或 “CHI”。这对于运行 traceroute 或者 MTR 来检查网络流量通过的路径颇有用。
大多数提供专用服务器或 VPS 服务的提供商容许客户为其 IP 地址设置 PTR 记录。
注意: PTR 记录中的 FQDN 具备对应的和匹配的正向 A 记录是很是重要的。示例:
111.222.333.444
有一条指向server.example.com
的 PTR 记录,那server.example.com
须要具备一条指向111.222.333.444
的 A 记录。
了解了不一样类型的 DNS 记录以及它们的做用以后,你就能够根据须要选择不一样的 DNS 记录。
不一样的域名服务商提供了不同的 DNS 记录的的配置方法,可是你理解了 DNS 记录的做用以后,配置对你来讲就不是难事了。