详解
DNS
的常用记录(上)
在上篇博文中,我们介绍了 DNS 服务器的体系结构,从中我们了解到如果我们希望注册一个域名,那么必须经过顶级域名服务器或其下级的域名服务器为我们申请的域名进行委派,把解析权委派到我们的 DNS 服务器上,这样我们才可以获得对所申请域名的解析权。本文中我们将再进一步,假设我们已经为公司成功申请了一个域名 hexun.com ,现在 hexun.com 的解析权被委派到公司的 DNS 服务器 202.99.16.1 ,那我们在 202.99.16.1 服务器上该进行什么样的配置呢?
一
安装
DNS
服务器
首先我们要在服务器上安装 DNS 组件,服务器的 TCP/IP 配置如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/ae2fedf25fc3f7d010f76b53e2dad3d4.png)
安装 DNS 组件非常简单,依次点击 控制面板-添加或删除程序-添加 / 删除 Windows 组件-网络服务,如下图所示,选择“域名系统”即可。
![](https://i-blog.csdnimg.cn/blog_migrate/113a8f07424fc62d8b5bbab68bfeac2d.png)
二
创建区域
DNS 服务器创建完毕之后,我们接下来就要创建 DNS 区域了,区域是 DNS 服务器所负责的名称空间, DNS 服务器有正向区域和反向区域,正向区域负责把域名解析为 IP ,而反向区域负责把 IP 解析为域名。
DNS 区域有三种类型,正向区域,反向区域和存根区域。要理解区域类型,先要明白 DNS 服务器有主服务器和辅助服务器的区别。一般情况下,企业申请域名时会考虑配备两个 DNS 服 务器,一个是主服务器,另一个是辅助服务器。一般的解析请求由主服务器负责,辅助服务器的数据是从主服务器复制而来的,辅助服务器的数据是只读的,当主服 务器出现故障或由于负载太重无法响应客户机的解析请求时,辅助服务器会挺身而出担负起域名解析的任务。现在我们回过头来解释一下什么是主要区域,主服务器 使用的区域就是主要区域,同样,辅助服务器使用的区域是辅助区域。存根区域可以看做是一个特殊的,简化的辅助区域,具体区别我们在后续博文中会加以介绍。
一般我们使用较多的是正向区域,而且从逻辑上考虑,必然是先创建主要区域,因为辅助区域和存根区域都需要从主要区域复制数据,因此我们现在的任务是要为区域 hexun.com 创建一个正向的主要区域。如下图所示,我们在 DNS 服务器上选择创建一个正向区域。
![](https://i-blog.csdnimg.cn/blog_migrate/76aafc7bbc9e03f0d0d479cbeb7dd609.png)
出现新建区域向导,点击下一步继续。
![](https://i-blog.csdnimg.cn/blog_migrate/fa4e0cf28f07a8d4acfeb6ca71a8de4f.png)
选择创建一个主要区域。
![](https://i-blog.csdnimg.cn/blog_migrate/3b2cc93c42c8953b8958a92d31575d55.png)
区域名称和申请的域名是一样的, hexun.com 。
![](https://i-blog.csdnimg.cn/blog_migrate/227c513e3169a4793cb016e04b3e8e3f.png)
区域数据文件是 hexun.com.dns ,区域内的所有记录都存储在这个文件里,注意,这个文件我们以后会用到的。
![](https://i-blog.csdnimg.cn/blog_migrate/f9ddf9f15f4c372ad83493b7aed90a2d.png)
向导询问是否允许区域动态更新,一般来说,如果 DNS 区域在企业内网使用,我们会允许动态更新;如果用于 Internet ,那么一般不需要动态更新。
![](https://i-blog.csdnimg.cn/blog_migrate/360f9dc753bfed2e82fbb2e5ddf9aca0.png)
如下图所示,区域创建完毕。
![](https://i-blog.csdnimg.cn/blog_migrate/b0194ad3fcf98ce717efa4588a0c1e39.png)
区域创建完毕之后,如下图所示,区域中只有一个 NS 记录和一个 SOA 记录,我们接下来要做的工作就是在区域中创建适当的 DNS 记录。
![](https://i-blog.csdnimg.cn/blog_migrate/95baf47fe64bb9d93fecf2d4f9034539.png)
三
创建记录
DNS 记录是 DNS 区域数据的具体表现形式,我们接下来为大家介绍几种最常见的 DNS 记录,大家掌握了这些记录就可以基本掌握 DNS 的基本应用了。
1、
A
记录
A 记录也称为主机记录,是使用最广泛的 DNS 记录, A 记录的基本作用就是说明一个域名对应的 IP 是多少,例如,我们想通过 A 记录说明一台主机的域名是 bbs.hexun.com , IP 是 202.99.16.185 ,那么我们就可以进行下列操作。如下图所示,我们在 hexun.com 区域中选择“新建主机”。
![](https://i-blog.csdnimg.cn/blog_migrate/0f677049b3e5a1e10332170c788ed202.png)
如下图所示,我们在 A 记录中说明了域名 bbs.hexun.com 对应的 IP 是 202.99.16.185 。其中提到了一个完全合格域名的概念,这里我们介绍一下。完全合格域名指的是点结尾的域名,例如 bbs.hexun.com. 就是一个完全合格域名。在一般的网络应用中,我们可以省略完全合格域名最右侧的点,但 DNS 对这个点不能随便省略。因为这个点代表了 DNS 的根,有了这个点,完全合格域名就可以表达为一个绝对路径,例如 bbs.hexun.com. 就可以表示为 DNS 根下的 com 子域下 hexun.com 域中一个名为 bbs 的主机。如果 DNS 发现一个域名不是以点结尾的完全合格域名,就会把这个域名加上当前的区域名称作为后缀,让其满足完全合格域名的形式需求。例如 DNS 会把域名 bbs 处理为 bbs.hexun.com. 。因此,如果要求输入完全合格域名,我们应该注意让域名以点结尾。
![](https://i-blog.csdnimg.cn/blog_migrate/1f44e2c6389b9a62eeabf6bd02581765.png)
A 记录的基本用法是描述域名和 IP 的对应关系,其实 A 记录还有一个高级用法, A 记录有负载平衡的作用。 DNS 经常被用作一个低成本的负载平衡解决方案,主要就是依靠 A 记录来实现的。举个例子加以说明,例如我们有四个 Web 服务器共同负责 [url]www.hexun.com[/url] 这个网站,四个 Web 服务器的 IP 地址分别为 202.99.16.81 , 202.99.16.82 , 202.99.16.83 和 202.99.16.84 ,那么我们就应该创建如下的主机记录。
![](https://i-blog.csdnimg.cn/blog_migrate/cc317dbb48375d186f42d9853f992e1a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c5b123a4353eeca2e6c96cffac4d9398.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3f6b7d48d5cf75fa60dbd1c468b15172.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c5f23576cff32654a8744930a5b334bc.png)
以上我们用四条 A 记录分别描述了 [url]www.hexun.com[/url] 对应的四个 IP ,那么,到底如何利用这些 IP 来实现负载平衡呢?原理是这样的,客户机访问 Web 服务器一般都使用域名,因此需要利用 DNS 服务器把域名解析为 IP 。第一个客户机查询 [url]www.hexun.com[/url] 时, DNS 服务器会告诉客户机这个域名对应的 IP 是 202.99.16.81 ,第二个客户机来查询时 DNS 服务器就会把答案改为 202.99.16.82 ,依此类推, DNS 使用了“轮询”的技术把不同的访问用户导向了四个不同的 Web 服务器,这样就达到了一个简易负载平衡的效果。
我们可以通过一个简单的实验来验证一下 DNS 轮询的效果,如下图所示,我们在客户机上用 ping [url]www.hexun.com[/url] 的方式来查询域名对应的 IP ,但奇怪的是,客户机两次查询域名得到的是同一个结果,这时为什么呢?难道 DNS 轮询不起作用了吗?
![](https://i-blog.csdnimg.cn/blog_migrate/33016c92e87a4c552d8c907c73227a57.png)
其实并非 DNS 轮询出了问题,而是由于客户机有 DNS 缓存机制,当客户机第一次查询 DNS 服务器获得了域名对应的 IP 地址,客户机会把查询结果放入缓存,这样下次查询时就直接从缓存获取结果而不用去问 DNS 服务器了。明白了这个道理,我们只要用 IPCONFIG/FLUSHDNS 清除客户机的 DNS 缓存就可以继续实验了,实验结果如下图所示,我们可以看到 DNS 轮询已经发挥了作用。
![](https://i-blog.csdnimg.cn/blog_migrate/3071a359c0d8e44542e90d843bed5d09.png)
2、
NS
记录
NS 记录和 SOA 记录是任何一个 DNS 区域都不可或缺的两条记录, NS 记录也叫名称服务器记录,用于说明这个区域有哪些 DNS 服务器负责解析, SOA 记录说明负责解析的 DNS 服务器中哪一个是主服务器。因此,任何一个 DNS 区域都不可能缺少这两条记录。
假设 hexun.com 区域有两个 DNS 服务器负责解析, ns1.hexun.com 是主服务器, ns2.hexun.com 是辅助服务器, ns1.hexun.com 的 ip 是 202.99.16.1 , ns2.hexun.com 的 ip 是 202.99.16.2 。那么我们应该创建两条 NS 记录,当然, NS 记录依赖 A 记录的解析,我们首先应该为 ns1.hexun.com 和 ns2.hexun.com 创建两条 A 记录,创建的 A 记录如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/9ea22dc1118c045c1e7828efff66e3a7.png)
有了两条主机记录的支持,我们就可以编辑 ns 记录了,如下图所示,当前区域的 ns 记录是创建 hexun.com 区域时系统自动创建的。这条 ns 记录并不能正常工作,因为 nsserver 并不是一个可以解析的完全合格域名,因此我们删除这条记录,重新再创建两条 NS 记录。
![](https://i-blog.csdnimg.cn/blog_migrate/1da3b1822e5c5a3e9245efe83ba38e49.png)
如下图所示,我们创建一条 ns 记录, ns 服务器的完全合格域名是 ns1.hexun.com.. ,解析出的 IP 是 202.99.16.1 ,这条记录说明有一个服务器 ns1.hexun.com 负责 hexun.com 的域名解析。
![](https://i-blog.csdnimg.cn/blog_migrate/41a50a43d59ad1d2fab0d03c0e4b1d21.png)
用同样方法创建 ns2.hexun.com 的 ns 记录,创建完成的结果如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/69e6aa82d199337fb129e6586ad572ab.png)
3、
SOA
记录
NS 记录说明了有两个 DNS 服务器负责 hexun.com 的域名解析,但哪个是主服务器呢? NS 记录并没有说明,这个任务由 SOA 记录来完成。 SOA 记录也称为起始授权机构记录, SOA 记录中负责说明哪个 DNS 服务器是主服务器,以及主服务器和辅助服务器之间的一些关联参数。如下图所示就是 hexun.com 的 SOA 记录,我们逐一进行分析。
![](https://i-blog.csdnimg.cn/blog_migrate/359f294bd547dfee55a99adbb266ac1e.png)
首先我们要分析序列号,序列号反映了 DNS 服务器数据变化的次数, DNS 服务器的数据每更新一次,序列号就加大一位。但我们仔细想想,对管理员来说,了解这个参数意义不大,因为 DNS 服务器到底是更新了 10000 次还是 9999 次 对管理员来说并没有实质性的影响。实际上,这个参数是给辅助服务器使用的。我们前面提到,辅助服务器的数据都是从主服务器复制而来的,那么辅助服务器怎么 判断主服务器的数据有没有进行更新呢?辅助服务器只要简单地检查一下主服务器的序列号就明白了,如果主服务器的序列号比辅助服务器的序列号大,那么辅助服 务器就应该去主服务器进行增量更新了。
主服务器这个参数的重要性不言而喻,目前的 SOA 记录中主服务器参数是 nsserver. ,这并不是一个可以解析的完全合格域名,我们应该把主服务器改为 ns1.hexun.com. ,如下图所示,这才是正确的主服务器参数。可能大家会有疑问,为什么 NS 记录和 SOA 记录默认都是 nsserver. ,主要是因为 nsserver. 是这台 DNS 服务器的 NETBIOS 名称。
![](https://i-blog.csdnimg.cn/blog_migrate/644bd8d1b023444b7d4ce3d22c5be145.png)
从上图可知,我们把 SOA 记录中的负责人参数改为了 admin.hexun.com. ,看起来象个主机的完全合格域名,其实意思是 admin@hexun.com ,是一个邮箱地址。那么为什么负责人这个参数不直接写成 admin@hexun.com 呢?毕竟这样就好理解多了,这时因为 @ 符号在 DNS 中有特殊含义, @ 在 DNS 中代表当前区域,也就是代表 hexun.com ,因此我们被迫把邮件地址写成了完全合格域名的格式。
刷新间隔指的是辅助服务器每隔 15 分钟联系一下主服务器,查看主服务器有无数据更新。重试间隔 10 分钟值的是如果辅助服务器和主服务器失去了联系,那么辅助服务器每隔 10 分钟联系一下主服务器,在此期间由辅助服务器负责当前区域的域名解析。过期时间是 1 天指的是如果辅助服务器过了一天还没有联系上主服务器,辅助服务器就会认为主服务器永远不会再回来了,自己的数据也没有保存的意义了,因此会宣布数据过期,并拒绝为用户继续提供解析服务。 TTL 一个小时指的是记录在 DNS 缓存中的生存时间是一个小时。
在本篇博文中我们介绍了 DNS 的三种记录, A 记录, NS 记录和 SOA 记录,从内容来看,显然对任何一个 DNS 区域来说都是必备的,下篇博文中我们将介绍 MX , Cname , SRV 和 PTR 记录。