DNS 记录简介

域名系统(DNS,Domain Name System)是因特网的地址簿。DNS 通过映射不容易忘记的域名(例如example.com)到诸如192.0.2.80123:4567:89ab:cdef:0123:4567:89ab:cdef这样的 IP 地址,将 Web 流量引导至您的 Linode 并通过电子邮件发送到您的收件箱。本篇指南介绍了基本的 DNS 概念以及不同类型的 DNS 记录(DNS Record)。

DNS 如何是工作的?

在添加任何 DNS 记录之前,您应该先了解一下 DNS 的基础知识。

域名

要最好地理解一个域名,需要从右到左阅读它。最广义的域分类在右侧,越往左则是越具体的分类。在下面的示例中,顶级域名(即 TLD,Top-level domain)就是.com

example.com
mail.hello.example.com

TLD 左侧的每个术语都以句点分隔,并被视为更具体的子域(虽然第一级子域及其顶级域名的结合,如example.com,通常合称为域)。向左移动,hellomail分别是第二级和第三级子域。子域通常用于唯一标识特定机器或服务,具体如何要取决于域的所有者。

域名服务器

选择并指定域名服务器,是域名所有权的重要组成部分。如果不这样做,则正在连接的客户端设备将不知道从哪找到您的 DNS 信息,因此您的域将无法解析。域名服务器在称为区域文件(Zone file)的文本文件中托管域的 DNS 信息。它们也被称为授权启动(SOA,Start of Authority)记录。您可以在以下几个位置之一的域名服务器上托管 DNS 信息:

  • Linode(推荐)
  • 您的域名注册商
  • 您自己的 DNS 服务器
  • 第三方 DNS 主机

使用 Linode 的免费域名服务器是最简单的方法,因为 Linode 提供了一个默认的区域文件,其中包含您的网站和电子邮件的所有正确 IP 地址。Linode 的域名服务器对于基本和高级设置都适用。但是,如果您希望尽可能多地控制 DNS 进程,还可以查看注册商和第三方 DNS 主机所提供的选项,或托管您到自己的 DNS 服务器。

您需要在域名注册商的网站上指定域名服务器。他们将负责将该信息发布到更高级别的域名服务器,并且您至少应该指定两个域名服务器。如此一来,若果其中一个关闭了,另一个还可以继续提供您的 DNS 信息。

DNS 记录以及区域文件

DNS 管理的第二方面则是指定 DNS 记录,它将域名与 IP 地址进行匹配。然后,DNS 记录会自动捆绑到区域文件中,这样就可以让正在连接的设备查找到域的正确 IP 地址。如果您决定使用 Linode 的域名服务器,我们的 DNS 管理器将帮助您创建默认区域文件。这包含类似于以下内容的记录:

; example.com [448369]
$TTL 86400
@   IN  SOA ns1.linode.com. admin.example.com. 2013062147 14400 14400 1209600 86400
@       NS  ns1.linode.com.
@       NS  ns2.linode.com.
@       NS  ns3.linode.com.
@       NS  ns4.linode.com.
@       NS  ns5.linode.com.
@           MX  10  mail.example.com.
@           A   12.34.56.78
mail        A   12.34.56.78
www         A   12.34.56.78

每个域的区域文件都包含域管理员的电子邮件地址,域名服务器和 DNS 记录。当然,您不仅限于这些默认条目。您可以根据需要为多个不同的子域创建多样的 DNS 记录。若要了解如何使用 DNS 管理器添加单个 DNS 记录,请阅读 Linode 的DNS管理器概述这篇文章。

DNS 解析

那么 DNS 实际上是如何运作的?首先,域名需要转换为您的 Linode IP 地址。DNS 将人性化的域名(如example.com)与计算机适用的 IP 地址(如192.0.2.8)进行匹配。这发生在称为区域文件的特殊文件中,该文件列出了域及其对应的 IP 地址(以及一些其它内容)。区域文件就像一本将名称与街道地址进行匹配的电话簿一样。

以下则是 DNS 的查找过程:

  1. 您在浏览器的地址栏中键入了像example.com这样的域名。
  2. 您的计算机通过网络服务提供商(ISP,Internet service provider)连接到因特网。您的 ISP 的 DNS 解析器查询一个根域名服务器(Root nameserver)以获取正确的 TLD 域名服务器。通俗点说,它询问根域名服务器,“我在哪里可以找到.com域的域名服务器?”
  3. 根域名服务器使用.com域名服务器的 IP 地址进行响应。
  4. ISP 的 DNS 解析器使用从根域名服务器获取的 IP 地址来询问.com的域名服务器,“我在哪里可以找到example.com的域名服务器?”
  5. .com域名服务器的 IP 地址响应example.com域名服务器。
  6. ISP 的 DNS 解析器从域的域名服务器中读取区域文件。
  7. 区域文件展示了域与哪个 IP 地址一起使用。
  8. 现在 ISP 拥有example.com的 IP 地址,总之它将此返回给您的浏览器,然后浏览器访问该站点的 Web 服务器。

如果 ISP 没有关于当前所请求域的信息,则会发生上述情况。实际上,ISP 在第一次查找后会缓存大量 DNS 信息。这样可以加快查找速度,减少 DNS 服务器的压力。

通常来说,缓存是很好的,但如果您最近对 DNS 信息进行了更改,则可能会出现问题(例如,当您从其他托管服务提供商迁移到 Linode 时)。在这种情况下,您需要注意区域文件的存活时间(TTL,Time to live),以便尽快更改 DNS。

DNS记录的类型

A 和 AAAA

一个 A 记录 将您的域或子域指向您的 Linode IP 地址,可让网络流量到达你的 Linode。这是 DNS 的核心功能。下面列出的是一些典型的 A 记录:

example.com     A       12.34.56.78

hello.example.com       A       12.34.56.78

您可以将不同的子域指向不同的 IP 地址。如果要将example.com的每个子域都指向 Linode 的 IP,可以使用星号(*)作为子域:

*.example.com   A       12.34.56.78

一个 AAAA 记录和 A 记录相似,不过是用于 IPv6 的 IP 地址。一个典型的 AAAA 记录如下所示:

example.com     AAAA        0123:4567:89ab:cdef:0123:4567:89ab:cdef

AXFR

AXFR 记录是一种用于 DNS 复制的记录(虽然当下有更先进的 DNS 复制方法)。AXFR 记录不是用于普通区域文件的。相反,它们应用于从 DNS 服务器,作用是从主 DNS 服务器上复制区域文件。

有关如何使用 AXFR 将 Linode 的域名服务器配置为从 DNS 服务器的示例,请参阅我们的指南:在cPanel中配置DNS

CAA

DNS 证书颁发机构授权(CAA,Certification Authority Authorization)使用 DNS 来允许域的持有者指定 “哪些证书颁发机构能够为该域发放证书”。参阅我们的 CAA 记录指南,可以在 Linode Manager 中进行配置演练。

CNAME

CNAME 记录或称为规范名称记录(Canonical Name record),它将一个域或子域匹配到其它不同的域。通过 CNAME 记录,DNS 查找则采用目标域的 DNS 解析作为别名的解析。下面举例:

alias.com       CNAME   example.com.
example.com     A       12.34.56.78

使用此设置,当请求alias.com时,初始 DNS 查找将找到目标为example.com的 CNAME 条目。于是一个新的 DNS 查找就会启动,它将查找example.com,随后得到相应 IP 地址12.34.56.78。最后,访问者访问的alias.com将被引导至12.34.56.78

CNAME 记录的存在使得域可以具有别名。对于具有 CNAME 记录的域,某些邮件服务器会奇怪地处理其邮件,因此您不应对用于获取电子邮件的域使用 CNAME 记录。同样,MX 记录也不能引用 CNAME 定义的主机名。CNAME 记录的目标域也应具有正常的 A 记录解析。不建议将 CNAME 记录进行链接或循环。

注意,在某些情况下,CNAME 记录可以是将流量重定向到另一个域(同时还能保持相同的 URL)的有效方法。但请记住,CNAME 记录的功能与 URL 重定向是不同的。CNAME 记录将特定域的 Web 流量定向到目标域的 IP 地址。一旦访问者到达该 IP 地址,Web 服务器的配置将决定域的处理方式。如果未在服务器上配置该域,则服务器将仅显示其默认网页(如果有)。这可能是(也可能不是)CNAME 记录中目标域的网页,具体则取决于服务器的配置方式。

DKIM

DKIM 记录或称域名密匙确认邮件记录(Domainkeys Identified Mail record),它显示用于验证已经签署了 DKIM 协议的消息的公钥。这种做法提高了检查邮件可靠性的能力。一个典型的 DKIM 记录如下所示:

selector1._domainkey.example.com        TXT     k=rsa;p=J8eTBu224i086iK

DKIM 记录以文本记录作为实现。该记录必须是为子域创建的记录,它具有唯一对应于键的一个选择器,然后便是句点(.),紧跟着是_domainkey.example.com。其类型为 TXT,值则包含键的类型,后面跟着实际键值。

MX

MX记录或称邮件交换记录(Mail exchanger record)则为域或者子域进行邮件分发目的地的设置。一些典型的 MX 记录如下所示:

example.com         MX      10  mail.example.com.
mail.example.com    A           12.34.56.78

以上记录将example.com的邮件直接发送到mail.example.com这一服务器。目标域(上述的mail.example.com)需要有自己的 A 记录,该记录可以解析到您的 Linode。理想情况下,MX 记录应指向同为其服务器主机名的域。

您的 MX 记录不一定要指向您的 Linode。如果您使用的是 Google Apps 等第三方邮件服务,则应使用他们提供的 MX 记录。

优先级是 MX 记录的另一个组成部分。这是记录类型和目标服务器之间写入的数字(在上例中为 10)。优先级允许您为特定域的邮件指定一个回退服务器(或多个服务器)。较低的数字代表较高的优先级。下面是具有两个回退邮件服务器的域的示例:

example.com         MX      10  mail_1.example.com
example.com         MX      20  mail_2.example.com
example.com         MX      30  mail_3.example.com

在此示例中,如果mail_1.example.com已关闭,则将传递邮件到mail_2.example.com。如果mail_2.example.com也是关闭,邮件将被发送到mail_3.example.com

NS

NS 记录或称域名服务器记录(Name sever record),是为域或子域设置对应的域名服务器。您域名的主要域名服务器记录既可以在注册商处设置,也可以在您的区域文件中设置。一份典型的域名服务器记录(至少需要两个记录)如下所示:

example.com     NS      ns1.linode.com.
example.com     NS      ns2.linode.com.
example.com     NS      ns3.linode.com.
example.com     NS      ns4.linode.com.
example.com     NS      ns5.linode.com.

您在注册商处指定的域名服务器随后会为您的域名提供区域文件。

您还可以为任何子域设置不同的域名服务器。子域 NS 记录在主域的区域文件中配置。例如,如果您使用的是 Linode 的域名服务器,则可以在 Linode 的区域文件中为子域mail.example.com配置单独的 NS 记录,如下所示:

mail.example.com    NS      ns1.nameserver.com
mail.example.com    NS      ns2.nameserver.com

在您的注册商处配置了主要域名服务器,接下来则在主域的区域文件中配置子域名服务器。NS 记录的顺序无关紧要。DNS 请求随机发送到不同的服务器,如果一个主机无法响应,将查询另外一个主机。

PTR

PTR 记录或称指针记录(Pointer record)将 IP 地址匹配至一个域或者子域,它允许反向的 DNS 查询工作。它执行的服务于 A 记录截然相反,因为它允许您查找与特定 IP 地址相关联的域。

PTR 记录通常由您的主机服务提供商设置。它们不属于您域中的区域文件。也就是说您将始终要在 Linode 管理器中为您的 Linode 设置反向 DNS,即使您的域名服务器位于其他地方也是如此。同样,如果您在其他地方使用服务器,但使用的是 Linode 的域名服务器,则仍需要由主机服务提供商来设置 PTR 记录。

作为添加 PTR 记录的先决条件,您需要创建一个有效且实时的 A 或 AAAA 记录,将所需的域指向该 IP。如果需要 IPv4 PTR 记录,请将域或子域指向 Linode 的 IPv4 地址。如果需要 IPv6 PTR 记录,则将域指向 Linode 的 IPv6 地址。除此之外,IPv4 和 IPv6 PTR 记录的工作方式是相同的。

有关如何在 Linode 上设置反向 DNS ,请参阅我们的反向 DNS指南。

注意:可以为反向 DNS 设置具有相同域的不同 IP(包括 IPv4 和 IPv6 地址)。为此,您必须为该域配置多个指向各种 IP 的 A 或 AAAA 记录。

SOA

SOA 记录或称起始权限记录(Start of Authority record)给区域文件使用最初创建的主机名作为标签。接下来,它列出了负责该域的人员的联系电子邮件地址。它还带有各式各样的数字,这个我们稍后会详细介绍。首先看看下面这个典型的 SOA 记录:

@   IN  SOA ns1.linode.com. admin.example.com. 2013062147 14400 14400 1209600 86400

注意:管理电子邮件地址使用句点(.)而不是 @ 符号编写。

下面列出数字的含义:

  • 序列号:此域的区域文件的修订号。它在文件更新时会发生变化。
  • 刷新时间:辅助 DNS 服务器在检查更改之前保留区域文件的时间(以秒为单位)。
  • 重试时间:辅助 DNS 服务器在重试传输失败的区域文件之前需要等待的时间。
  • 过期时间:辅助 DNS 服务器无法自行更新时,当前区域文件副本失效之前所等待的时间。
  • 最短 TTL:其他服务器应从该区域文件中保留缓存数据的最短时间。

SOA 记录中提到的单个域名服务器被视为动态 DNS 的第一服务器,并且是将区域文件传播到所有其他域名服务器之前,区域文件就要被更改完成的所在。

SPF

SPF 记录或称发送方政策框架记录(Sender Policy Framework record),列出了域或子域所指定的邮件服务器。它有助于确定邮件服务器的合法性,并减少欺骗的可能性(当有人伪造电子邮件的标题,使其看起来像是来自您的域时)。垃圾邮件发送者有时会尝试这样做以绕过过滤器。

您域中的 SPF 记录告诉其他接收邮件服务器哪些外发服务器是有效的电子邮件来源,以便他们可以从您的域拒绝来自未授权服务器的欺骗邮件。一个非常基本的 SPF 记录如下所示:

example.com   TXT     "v=spf1 a ~all"

在 SPF 记录中,您应列出发送邮件的所有邮件服务器,然后排除所有其他邮件服务器。您的 SPF 记录将具有域或子域,类型(如果您的域名服务器支持,可选 TXT 或 SPF)和文本(以“v = spf1”开头,并包含 SPF 记录设置)。

如果您的 Linode 是您使用的唯一邮件服务器,您应该能使用上述的示例记录。使用该 SPF 记录,接收服务器将检查发送服务器的 IP 地址和example.com的 IP 地址。如果 IP 匹配,则检查通过。如果不是,则检查将“软失败”(即标记该消息,但不会因 SPF 检查失败而自动拒绝)。

注意:确保您的 SPF 记录不会太严格。如果您不小心排除了合法邮件服务器,其邮件可能会被标记为垃圾邮件。我们建议您访问 openspf.org 以了解 SPF 记录的工作原理,以及如何构建适用于您的设置的记录。他们给出的例子也很有帮助。

SRV

SRV 记录或称服务记录(Service record)将运行在您的域或子域上的指定服务匹配到一个目标与。这允许您将特定服务(如即时消息)的流量定向到另一台服务器。典型的 SRV 记录如下所示:

_service._protocol.example.com  SRV     10      0       5060    service.example.com

下面分别解释 SRV 记录中的元素:

  • 服务:服务名称必须以下划线(_)开头,随后紧跟句点(.)。该服务可能类似于_xmpp。
  • 协议:协议的名称必须以下划线(_)开头,随后紧跟句点(.)。该协议可能类似于_tcp。
  • :将接收此服务的原始流量的域名称。
  • 优先级:第一个数字(上例中为 10)允许您设置目标服务器的优先级。您可以使用不同的优先级设置不同的目标,这令您可以拥有该服务的备用服务器(或多个服务器)。较低的数字具有较高的优先级。
  • 权重:如果两个记录具有相同的优先级,则需要对比权重。
  • 端口:运行服务的 TCP 或 UDP 端口。
  • 目标:目标域或目标子域。此域必须具有解析为 IP 地址的 A 或 AAAA 记录。

SRV 记录的一个用途示例 —— 设置联合 VoIP

文本

TXT记录或称文本记录(Text record),向因特网上的其他资源提供有关该域的信息。它是一种灵活的 DNS 记录类型,可根据具体内容提供多种用途。TXT 记录的一个常见用途是在域名服务器上创建 SPF 记录,而该记录本身不支持 SPF。另一个用途则是为邮件签名创建 DKIM 记录

本文的版权归 StoneDemo 所有,如需转载请联系作者。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 投资加密货币前需要细想的六个问题

    如果你在很早以前就买入了比特币,这将成为现实。而有一位挪威人在撰写他的关于数据加密的论文时,就做到了这一点 —— 2009 年时,他买了 5,000 个比特币。...

    StoneDemo
  • 如何运用Wercker开发与部署应用程序

    Wercker 是一款软件自动化工具,旨在为开发者和企业改善持续集成(CI, Continuous-Integration)和持续交付(CD, Continuo...

    StoneDemo
  • 在崩溃的加密货币市场中出奇制胜

    周二,总市值达到 60 天以来的最低点。从 2018 年 1 月 7 日的峰值 8320 亿美元下跌至区区 2750 亿美元。

    StoneDemo
  • 如何在CentOS 7上将BIND配置为专用网络DNS服务器

    管理服务器配置和基础架构的一个重要部分包括通过设置适当的域名系统(DNS),维护一种通过名称查找网络接口和IP地址的简便方法。使用完全限定的域名(FQDN)而不...

    乌鸦
  • 如何在Ubuntu 16.04上将BIND配置为专用网络DNS服务器

    管理服务器配置和基础架构的一个重要部分包括通过设置适当的域名系统(DNS),维护一种通过名称查找网络接口和IP地址的简便方法。使用完全限定的域名(FQDN)而不...

    心语花束
  • 如何在Debian 9上将BIND配置为专用网络DNS服务器

    管理服务器配置和基础架构的一个重要部分包括通过设置适当的域名系统(DNS),维护一种通过名称查找网络接口和IP地址的简便方法。使用完全限定的域名(FQDN)而不...

    穿鞋跑得快
  • 使用NGINX作为前端代理和软件负载均衡器

    NGINX Web服务器可以充当功能非常强大的软件负载平衡器,此外还有更传统的角色,通过HTTP使用FastCGI处理程序为脚本提供静态内容和动态内容。因为NG...

    Techeek
  • DNS高级应用之ACL和View

    一、环境准备: 1、准备三台主机,要求如下 (1) DNS服务器双网卡:eth0:192.168.10.203 eth1: 172.16.2.1...

    小小科
  • 移动支付的发展给商户营销带来的变化

    在传统的观念上,支付只是一种身份认证和资金转移的手段,支付是一笔交易的结束。随着近两年线下移动支付的快速普及、线上交易平台的多元化发展、以及线上线下O2O的融合...

    金融民工小曾
  • DNS(bind)服务器的安装与配置

      DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,域名服务器是进行域名(domain n...

    菲宇

扫码关注云+社区

领取腾讯云代金券