学习和使用DNS记录简介

最终产品图片
您将要创造的

介绍

域名系统(DNS)本质上为Internet提供了电话目录。 您可能需要在Web浏览器中键入apple.com来购买iPhone配件,但是您的请求将如何到达IP地址为17.172.224.47的Apple的Web服务器? 这就是域名记录系统为我们所做的。

如果您是小企业主或WordPress博客作者,则可能已被告知配置A和CNAME记录。 或者,当您尝试移动电子邮件时,系统要求您更改MX记录。 或者,很酷的Web服务要求您先设置TXT记录,然后再与您一起使用。 这是做什么用的,为什么这么令人困惑?

在本教程中,我将向您介绍Internet的DNS系统,并指导您配置记录以满足日常技术顾问和企业主的共同要求。

如果您对本教程有任何疑问或意见,请随时在下面的评论中发布。 您还可以在Twitter上关注我并在其中发消息。

了解DNS记录类型

名称服务器

当您购买域名时,您的注册商可能为您配置了默认DNS记录,并为其提供了名称服务器(NS)。 您需要有一个名称服务器(通常成对和三重镜像以实现冗余,例如ns1.yourregistrarserver.com,ns2.yourregistrarserver.com)来告诉Internet的DNS目录Web服务器和服务的数字IP地址。

这是我的网站JeffReifman.com的NS记录示例:

示例名称服务器为Jeff Reifmans网站记录NS

我们将在下面描述的所有设置将由您在NS主机上配置,并由其服务器发布,以供Internet更新其目录。

DNS记录类型有很多种,您可能听说过的最常见的是A记录。

记录

如果Web用户键入jeffreifman.com,则请求将传递到目录中,该目录将查找与我的根域相对应的DNS记录。 从根本上讲,我的意思是没有前缀,没有www,即没有子域,只是http://jeffreifman.com 。 例如,您域的根级别A记录可能指向107.164.32.96。 这将告诉Internet将您的浏览请求发送到哪个IP地址。

我多年来一直使用Kloth网站检查DNS记录,但是您可以使用很多方法,例如Google DigKeyCDN ,它们是我今年早些时候为Tuts +编写的内容交付网络服务 。 许多站点都提供这些工具。

以下是查询Kloth上A记录的示例:

一条记录的Kloth DNS查找
子域记录

您还可以为各种子域配置A记录。 例如,如果您希望www.yourwebsite.com转到相同的地址,则可以为子域www(即根域)设置相同的A记录,而www域将具有相同的IP地址。

带有子域的DNS A记录示例

最近,在我关于公司对西雅图的危害《纽约时报》发表的病毒曝光 报道之后, http://fleethejungle.com上与他人共同创立了Flee the Jungle,引导购物者离开亚马逊。

逃离丛林图片,作者:卡利·斯诺登(Kali Snowden)

很快,我们将启动特定于城市的子域,例如portland.fleethejungle.com。 如果我们希望将它们托管在不同的服务器上,则需要为每个城市子域设置不同的A记录,以指向服务器的唯一IP地址。

带有子域的DNS A记录示例
通配符条目

DNS记录还允许使用通配符条目(使用星号*),使将所有子域流量轻松路由到一个IP地址变得容易。 例如,如果我希望对Flee the Jungle的任何城市请求都由一台服务器托管,则可以执行以下操作:

DNS通配符记录示例

通配符使捕获从许多子域到一台服务器的流量变得更加容易。

服务器上的入站路由

当流量从DNS映射系统到达您的服务器时,必须在其中配置服务器的处理方式。 例如,这是我的根站点流量和www流量的Apache站点配置:

<VirtualHost *:80>
    ServerName jeffreifman.com
    ServerAlias www.jeffreifman.com
    DocumentRoot /var/www/jeffreifman
    DirectoryIndex index.php
    <Directory /var/www/wpapps/>
      AllowOverride All
      Order Deny,Allow
      Allow from all
   </Directory>
</VirtualHost>

我还使用动态定价的网站出售域名 。 因此,这是我告诉Apache接受所有这些不同域和DNS记录的流量的方法:

<VirtualHost *:80>
    ServerName newscloud.com
    ServerAlias *acro.io
    ServerAlias *acroyoga.io
    ServerAlias *acupuncture.io
    ServerAlias *allmisses.com
    ServerAlias *amehzon.com
    ServerAlias *carestrategies.com
    ServerAlias *caringsitters.com
    ServerAlias *clipboards.io
    ServerAlias *commonbits.com
    ServerAlias *commonroad.com
    ServerAlias *commontunes.com
    ServerAlias *completelady.com
    ...

接下来,我将向您介绍CNAME记录。 这些在许多方面都有帮助,并且在简化IP地址的管理以及将来从一台服务器到另一台服务器的迁移方面尤其有用。

CNAME记录

CNAME本质上是将流量映射到的域和子域文本别名。 例如,如果您曾经通过WordPress或Tumblr之类的服务来建立博客,那么他们可能会要求您将域名映射到CNAME,而不是将A记录映射到IP地址。

我使用Tumblr的次数不多,但不久前我与他们建立了一个网站,尝试使用http://misc.jeffreifman.com 。 这是他们配置域名的说明。 它们允许A记录或CNAME。 我使用了CNAME:

Tumblr的DNS设置

这是misc.jeffreifman.com的DNS记录:

misc.jeffreifman.com   CNAME   domains.tumblr.com.

注意: 您应该在CNAME地址上设置一个关闭时间。

当用户在浏览器中请求misc.jeffreifman.com时,DNS会将其指向domains.tumblr.com,然后它将递归查找其IP地址,即66.6.44.4。

CNAME的一个优点是,如果Tumblr曾经更改过其入站服务器的IP地址,那么我可能就不需要更改自己的CNAME记录。 它可以保持不变,并且Tumblr可以通过更改domains.tumblr.com的A记录来管理IP更改。

我将这种方法用于要出售的域名,其中大多数指向我的Web服务器的CNAME。 如果需要更改主机并更改Web服务器的IP地址,则可以为我使用的CNAME更改一个子域A记录,而不是为每个域名更改一百个A记录。

注意: DNS标准从技术上不允许您将根域记录指向CNAME地址,例如jeffreifman.com CNAME domains.tumblr.com。 这就是Tumblr为您的根域建议A记录的原因。 但是,某些DNS名称服务器确实支持此功能,因此请与您的服务器联系。 要了解更多信息,请阅读Josh Strange的这篇文章

您将使用CNAME的另一种情况是CDN服务,如我为Tuts +编写的KeyCDN教程中所述。 我设置了四个名为c1,c2,c3,c4的云子域,它们都指向jr-faf.kxcdn.com上KeyCDN的内容镜像。

KeyCDN的DNS CNAME示例
更改DNS记录时会发生什么?

根域和子域的DNS记录通常彼此独立。 根域的A记录更改不会影响子域的CNAME的现有地址。 但是,我最近与Web安全服务Incapsula签约,发现它需要针对同一根域的两条A记录-这会使事情变得更加复杂。 换句话说,从技术上讲,您可以在同一域中拥有多个A记录,这可能会导致冲突。

DNS多个A记录

同样重要的是要意识到DNS更改不会立即生效。 首次设置DNS记录(或更改它们)时,Internet用户将不会立即连接到您的最新设置。 这是使从一台服务器或托管公司迁移到另一台服务器或托管公司的困难之一。 实际上,在最坏的情况下,可能要花费超过36个小时。

我的注册商向我介绍了WhatsMyDNS.net ,以直观方式报告我的DNS更改在各个领域的传播。 下面是我的Flee the Jungle服务器移动时拍摄的屏幕截图,该更改最终需要花费几个小时。

下图显示了世界各地的DNS服务器终于赶上了我的最新更改:

什么是我的DNS的DNS Web传播

MX记录

如果您现在想知道什么是MX记录,那么该告诉您了。 MX记录告诉DNS系统将收到的所有电子邮件发送到哪里。 因此,如果我购买了StarWars.io并想通过jeff@starwars.io接收电子邮件,则需要做两件事。

首先,我需要注册一个电子邮件服务(例如Google Apps或FastMail)来托管我的电子邮件。 其次,我需要遵循他们的指示,将MX记录配置到它们的多个冗余电子邮件服务器。

例如,这是Google Apps的外观:

Priority    Mail Server
1   ASPMX.L.GOOGLE.COM.
5   ALT1.ASPMX.L.GOOGLE.COM.
5   ALT2.ASPMX.L.GOOGLE.COM.
10   ALT3.ASPMX.L.GOOGLE.COM.
10   ALT4.ASPMX.L.GOOGLE.COM.

FastMail看起来像这样:

in1-smtp.messagingengine.com (first, priority=10)
in2-smtp.messagingengine.com (second, priority=20)

如果要运行自己的电子邮件服务器 ,则需要将MX记录配置为指向您自己的服务器的IP地址。

许多人已经开始使用MX Toolbox查找其MX记录,但是您也可以使用任何DNS查找服务。

使用MX Toolbox进行DNS检查
更改电子邮件提供商并移动电子邮件

MX记录仅指示DNS系统将今天的电子邮件路由到哪里-您现有的电子邮件存储在当前电子邮件提供商的云数据库中。 如果您希望移动所有现有邮件,则需要依靠他们的工具或邮件客户端软件。 而且,当然,您还必须将MX记录更新为新提供商的设置。

在DNS传播期间,您可能会在旧提供商处收到一些电子邮件,而在新提供商处会收到一些电子邮件。

更改MX记录不会损坏您以前的电子邮件存储库-但不会有新的消息到达那里。

TXT记录

TXT记录允许域所有者通过在其DNS中发布密码来进行身份验证。 当您使用Google网站管理员工具注册时,它将要求您通过这样做来验证您对域的所有权。

例如,Google会要求您发布特定于您域的代码,如下所示:

jeffreifman.com TXT google-site-verification=Ih8iC4iSOcBSkk

我现在实际上已经为jeffreifman.com发布了三个TXT记录:

jeffreifman.com TXT	"keybase-site-verification=qG2zMYf_hw2sXUCgtYWk"
jeffreifman.com TXT	"v=spf1 include:spf.efwd.regsrvrs.com ~all"
jeffreifman.com TXT	"google-site-verification=blTgEw5QFSx5M"

我为Tuts +撰写的Keybase涵盖了PGP密钥,隐私和加密 ,它为我使用TXT记录来验证我的网站,作为用我的公共密钥记录来验证我的身份的一种方法。

您还可以使用TXT记录来告诉垃圾邮件检测服务器,您的邮件服务器仅发送合法电子邮件,就像我对上述SPF记录所做的那样。 Mailgun等服务同时使用SPF和DKIM记录来使用其电子邮件大炮。

AAAA记录

随着Internet的IP地址用尽,我们正在逐步转向更大的寻址方案IPV6。 您可以阅读“ 成为第一个运行IPV6(Tuts +)的人”以获取有关此信息的更多信息。

如果决定支持IPv6寻址,则需要使用更大的寻址方案配置AAAA记录:

DNS AAAA记录示例

如今,大多数IPv4到IPv6的转换都是在后台透明地处理的。 尽管在气候变化消灭了最后一只北极熊后的某个时刻( 感谢参议员Inhofe ),A记录可能成为遗物,而AAAA将成为配置的主要DNS记录。

收盘时

希望本教程对DNS记录有所帮助。 与往常一样,请随时在下面发布您的问题和评论。 您也可以在Twitter上访问我 ,让我知道您的想法或我错过的事情。 或者,您也可以直接给我发电子邮件浏览我的其他Tuts +文章或查看我的其他文章

相关链接

翻译自: https://code.tutsplus.com/tutorials/an-introduction-to-learning-and-using-dns-records--cms-24704

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值