【IT168 技术】DNS是整个网络体系中较为重要的一个基本网络服务。其的主要任务是域名解析,也就是把计算机名翻译成IP地址,这样我们就可以直接用易于联想记忆的计算机名来进行网络通讯而不用去记忆那些枯燥的IP地址了。在网络发展的早期使用是hosts文件解析的方式。早期互联网的规模非常小,最早互联网上只有4台主机,分别在犹他大学,斯坦福大学,加州洛杉矶分校和加州圣芭芭拉分校,即使在整个70年代互联网上也只有几百台主机而已。这样一来,解决名称解析的问题就可以使用一个非常简单的办法,每台主机利用一个Hosts文件就可以把互联网上所有的主机都解析出来。这个Hosts文件现在我们还在使用,不论是windows系统还是Linux系统都在存在此文件,以Windows Server 2003系统为例,存在\Windows\System32\Drivers\etc目录下,如图所示:
▲ 图:HOSTS文件
在一个小规模的互联网上,使用Hosts文件是一个非常简单的解决方案,一般情况下,斯坦福大学的主机管理员每周更新一次Hosts文件,其他的主机管理员每周都定时下载更新的Hosts文件即可。但这种解决方案在互联网规模迅速膨胀时就不太适用了,如现在的互联网上至不有一亿台主机,如果每个人的计算机中都要有一个容纳一亿台主机的Hosts文件!并且要实时更新,这实在是不容易实现。
于是人们设计出一种分布式的解析方式:DNS。DNS既可以允许主机分散管理数据,同时数据又可以被整个网络所使用。管理的分散有利于缓解单一主机的瓶颈,缓解流量压力,同时也让数据更新变得简单。DNS还被设计使用有层次结构的名称空间为主机命名,以确保主机域名的唯一性。
DNS工作原理:
互联网管理委员会规定,域名空间的解析权都归根服务器所有,也就是说,根服务器对互联网上所有的域名都享有完全的解析权!但这不同于集中式解析,根服务器使用的是委派操作。如下图所示,根服务器把com结尾的域名解析权委派给其他的DNS服务器,以后所有以com结尾的域名根服务器就都不负责解析了,而由被委派的服务器负责解析。而且根服务器还把以net,org,edu,gov等结尾的域名都一一进行了委派,这些被委派的域名被称为优异域名,每个优异域名都有预设的用途,例如com域名用于商业公司,edu域名用于教育机构,gov域名用于政府机关等等,这种优异域名也被称为优异机构域名。根服务器还针对不同国家进行了域名委派,例如把所有以CN结尾的域名委派给中国互联网管理中心,以JP结尾的域名委派给日本互联网管理中心,CN,JP这些优异域名被称为优异地理域名。
▲ 图:DNS体系结构
每个被委派的DNS服务器同样使用委派的方式向下发展,例如金米公司想申请使用jimi.com域名,金米就要向负责.com域名的DNS服务器提出申请,只要jimi.com还没有被其他公司或个人使用,而且申请者满足申请条件,负责.com域名的服务器就会把jimi.com域名委派到金米公司自己的DNS服务器上,例如金米公司也有自己的DNS服务器:50.21.251.1。只要DNS服务器使用委派,域名空间就会逐步形成现有的分布式解析架构。这种架构把域名解析权下放到各公司自己的DNS服务器上,既有利于及时更新记录,同时对平衡流量压力也很有好处。
那么,在这种分布式的解析结构中,DNS服务器如何进行域名解析呢?换句话说,其他的DNS服务器怎么知道由50.21.251.1负责解析jimi.com的域名呢?如果一个互联网用户想解析域名www.jimi.com,过程是怎么样的呢?如下图所示,用户把解析请求发送到自己使用的DNS服务器上,DNS服务器发现自己无法解析www.jimi.com,于是就把这个域名发送到根服务器请求解析,根服务器发现这个域名是以com结尾的,于是告诉查询者这个域名应该询问负责com的DNS服务器。这时查询者会转而向负责com的域名服务器发出查询请求,负责com域名的DNS服务器回答说www.jimi.com是以jimi.com结尾的域名,以jimi.com结尾的域名已经被委派到DNS服务器50.21.251.1了,因此这个域名的解析应该询问50.21.251.1。于是查询者最后向50.21.251.1发出查询请求,50.21.251.1会告诉查询者所需要的答案,查询者拿到这个答案后,会把这个查询结果放入自己的缓存中,如果在缓存的有效期内有其他DNS客户再次请求这个域名,DNS服务器就会利用自己缓存中的结果响应用户,而不用再去根服务器发出查询请求了。如下图所示:
▲ 图:DNS解析过程
安装DNS服务
当企业申请到相应的域名后,我们就需要将此域名的解析权委派到相应的DNS服务器。在此案例中我们准备将jimi.com的解析权委派到公司的DNS服务器192.168.2.2上,那我们需要在192.168.2.2服务器上进行什么样的配置呢?
一、 安装DNS服务器
首先我们要在服务器上安装DNS组件,服务器的TCP/IP配置如下图所示。
▲图:网络配置
安装DNS组件非常简单,依次点击 控制面板-添加或删除程序-添加/删除Windows组件-网络服务,如下图所示,选择“域名系统”即可。
▲ 图:安装DNS服务
二、 创建区域
DNS服务器创建完毕之后,接下来就要创建DNS区域了,区域是DNS服务器所负责的名称空间,DNS服务器有正向区域和反向区域,正向区域负责把域名解析为IP,而反向区域负责把IP解析为域名。
DNS区域有三种类型,正向区域,反向区域和存根区域。要理解区域类型,先要明白DNS服务器有主服务器和辅助服务器的区别。一般情况下,企业申请域名时会考虑配备两个DNS服务器,一个是主服务器,另一个是辅助服务器。一般的解析请求由主服务器负责,辅助服务器的数据是从主服务器复制而来的,辅助服务器的数据是只读的,当主服务器出现故障或由于负载太重无法响应客户机的解析请求时,辅助服务器会挺身而出担负起域名解析的任务。现在我们回过头来解释一下什么是主要区域,主服务器使用的区域就是主要区域,同样,辅助服务器使用的区域是辅助区域。存根区域可以看做是一个特殊的,简化的辅助区域。
一般我们使用较多的是正向区域,而且从逻辑上考虑,必然是先创建主要区域,因为辅助区域和存根区域都需要从主要区域复制数据,因此我们现在的任务是要为区域jimi.com创建一个正向的主要区域。如下图所示,我们在DNS服务器上选择创建一个正向区域。
▲ 图:新建区域
出现新建区域向导,点击下一步继续。
选择创建一个主要区域。
▲ 图:创建主要区域
区域名称和申请的域名是一样的,jimi.com。
▲ 图:DNS的区域名称
区域数据文件是jimi.com.dns,区域内的所有记录都存储在这个文件里。
▲ 图:DNS区域文件
向导询问是否允许区域动态更新,一般来说,如果DNS区域在企业内网使用,我们会允许动态更新;如果用于Internet,那么一般不需要动态更新。
如下图所示,区域创建完毕。
▲ 图:完成
区域创建完毕之后,如下图所示,区域中只有一个NS记录和一个SOA记录,我们接下来要做的工作就是在区域中创建适当的DNS记录。
▲ 图:SOA和NS记录
三、创建记录
DNS记录是DNS区域数据的具体表现形式,我们接下来为大家介绍几种最常见的DNS记录,每一种记录用来完成相应的功能,只要掌握了这些记录的使用方法,大家就可以完成一些常规的工作了。
1、 A记录
A记录也称为主机记录,是使用最广泛的DNS记录,A记录的基本作用就是说明一个域名对应的IP是多少,例如,我们想通过A记录说明一台主机的域名是www.jimi.com,IP是192.168.2.2,那么我们就可以进行下列操作。如下图所示,我们在jimi.com区域中选择“新建主机”。
▲ 图:创建A记录
此图的意思就是说,如果有客户端需要请求解析www.jimi.com那么就解析为192.168.2.2这个IP地址。
在上图中:完全合格域名指的是点结尾的域名,例如bbs.jimi.com.就是一个完全合格域名。在一般的网络应用中,我们可以省略完全合格域名最右侧的点,但DNS对这个点不能随便省略。因为这个点代表了DNS的根,有了这个点,完全合格域名就可以表达为一个绝对路径,例如bbs.jimi.com.就可以表示为DNS根下的com子域下jimi.com域中一个名为bbs的主机。如果DNS发现一个域名不是以点结尾的完全合格域名,就会把这个域名加上当前的区域名称作为后缀,让其满足完全合格域名的形式需求。例如DNS会把域名bbs处理为bbs.jimi.com.。因此,如果要求输入完全合格域名,我们应该注意让域名以点结尾。
A记录的基本用法是描述域名和IP的对应关系,其实A记录还有一些高级用法,如:通过A记录实现负载平衡、空域名解析、泛域名解析等。在此不再介绍。后期会有专门的文章进行详细讲解。
2、NS记录
NS记录和SOA记录是任何一个DNS区域都不可或缺的两条记录,NS记录也叫名称服务器记录,用于说明这个区域有哪些DNS服务器负责解析,SOA记录说明负责解析的DNS服务器中哪一个是主服务器。因此,任何一个DNS区域都不可能缺少这两条记录。现在我们就一个DNS服务器,所以NS和SOA记录都应该指向的是这台服务器。也就是说当前区域是由server1这台服务器负责解析的,主服务器也是Server1这台服务器。但我们双击NS记录时发现如下图所示:
▲ 图:不正确的NS记录
当前区域的ns记录是创建jimi.com区域时系统自动创建的。这条ns记录并不能正常工作,因为server1并不是一个可以解析的完全合格域名,因此我们需要修改这条记录,为server1创建一个A记录:
▲ 图:编辑NS记录
确定之后,就可以看到有一条server1所对应的A记录了。如下图所示:
▲图:查看记录状态
3、SOA记录
NS记录说明了有两个DNS服务器负责jimi.com的域名解析,但哪个是主服务器呢?NS记录并没有说明,这个任务由SOA记录来完成。SOA记录也称为起始授权机构记录,SOA记录中负责说明哪个DNS服务器是主服务器,以及主服务器和辅助服务器之间的一些关联参数。如下图所示就是jimi.com的SOA记录,我们逐一进行分析。
▲ 图:SOA记录
首先我们要分析序列号,序列号反映了DNS服务器数据变化的次数,DNS服务器的数据每更新一次,序列号就加大一位。但我们仔细想想,对管理员来说,了解这个参数意义不大,因为DNS服务器到底是更新了100次还是10000次对管理员来说并没有实质性的影响。实际上,这个参数是给辅助服务器使用的。辅助服务器的数据都是从主服务器复制而来的,那么辅助服务器怎么判断主服务器的数据有没有进行更新呢?辅助服务器只要简单地检查一下主服务器的序列号就明白了,如果主服务器的序列号比辅助服务器的序列号大,那么辅助服务器就应该去主服务器进行增量更新了。
主服务器这个参数的重要性不言而喻,目前的SOA记录中主服务器参数是server1.,这并不是一个可以解析的完全合格域名,我们应该把主服务器改为server1.jimi.com.,如下图所示,这才是正确的主服务器参数。为什么NS记录和SOA记录默认都是server1.,主要是因为server1.是这台DNS服务器的计算机名也就是路们平时所说的NETBIOS名称。
▲ 图:SOA记录的元素
从上图可知,我们把SOA记录中的负责人参数改为了hostmaster.jimi.com.,看起来象个主机的完全合格域名,其实意思是hostmaster@jimi.com,是一个邮箱地址。那么为什么负责人这个参数不直接写成hostmaster@jimi.com呢?毕竟这样就好理解多了,这时因为@符号在DNS中有特殊含义,@在DNS中代表当前区域,也就是代表jimi.com,因此我们被迫把邮件地址写成了完全合格域名的格式。
刷新间隔指的是辅助服务器每隔15分钟联系一下主服务器,查看主服务器有无数据更新。重试间隔10分钟值的是如果辅助服务器和主服务器失去了联系,那么辅助服务器每隔10分钟联系一下主服务器,在此期间由辅助服务器负责当前区域的域名解析。过期时间是1天指的是如果辅助服务器过了一天还没有联系上主服务器,辅助服务器就会认为主服务器永远不会再回来了,自己的数据也没有保存的意义了,因此会宣布数据过期,并拒绝为用户继续提供解析服务。TTL一个小时指的是记录在DNS缓存中的生存时间是一个小时。
4、MX记录
MX记录也被称为邮件交换器记录,MX记录用于说明哪台服务器是当前区域的邮件服务器,例如在jimi.com区域中,mail.jimi.com是邮件服务器,而且IP地址是192.168.2.2。那么我们就可以在DNS服务器中进行下列处理:
为邮件服务器创建A记录:
如下图所示,首先为邮件服务器创建一条A记录,这时因为MX记录中描述邮件服务器时不能使用IP地址,只能使用完全合格域名。
▲ 图:为MX记录创建A记录
创建MX记录:
如下图所示,在DNS服务器中选择创建MX记录。
▲ 图:创建MX记录
MX记录如下图所示,这条MX记录说明mail.jimi.com是jimi.com的邮件服务器,而且优先级是10。注意,如果jimi.com区域有多个MX记录,而且优先级不同,那么其他邮局给jimi.com发邮件时会首先把邮件发给优先级最高的邮件服务器,代表优先级的数字越低则优先级越高,优先级最高为0。
▲ 图:MX记录元素
MX记录对邮件服务器来说是不可或缺的,两个互联网邮局系统在相互通讯时必须依赖DNS的MX记录才能定位出对方的邮件服务器位置。例如163.net邮局给263.net邮局发一封电子邮件,那163邮局的SMTP服务器就需要向DNS服务器发出一个查询请求,请DNS服务器查询263.net的MX记录,这样163邮局的SMTP服务器就可以定位263.net的SMTP服务器,然后就可以把邮件发送到263邮局。
5、Cname记录
Cname记录也被称为别名记录,其实就是让一个服务器有多个域名,大致相当于给一个人有多个名字一样。例如现在www.jimi.com服务器还可以命名为web.jimi.com,然后再创建一个Cname记录叫web.jimi.com就可以两者兼顾了。使用Cname记录也有安全方面的考虑因素,例如我们不希望别人知道某个网站的真实域名,那我们可以让用户访问网站的别名,例如我们访问的百度网站的真实域名就是www.a.shifen.com,我们使用的www.baidu.com只是]www.a.shifen.com的别名而已。
下面我们举个创建Cname记录的例子,假设我们要为www.jimi.com创建一个别名web.jimi.com,那我们就可以进行下列操作。如下图所示,我们选择在DNS服务器中创建Cname记录。
▲ 图:创建CNAME记录
测试如下:
▲ 图:测试
大家可以看到,我们解析的是web.jimi.com但显示的结果为www.jimi.com就说明web.jimi.com只是www.jimi.com的别名。
6、PTR记录
PTR记录也被称为指针记录,PTR记录是A记录的逆向记录,作用是把IP地址解析为域名。由于我们在前面提到过,DNS的反向区域负责从IP到域名的解析,因此如果要创建PTR记录,必须在反向区域中创建。例如我们需要通过IP地址192.168.2.2解析到serve1.jimi.com域名上。
如下图所示,我们在DNS服务器的反向区域中选择“新建区域”。
▲ 图:反向区域
区域类型选择“主要区域”。
▲图:创建主要区域
向导要求输入当前的网络号,网络号是IP地址和子网掩码进行与运算后的结果,反向区域的名称不能随便设置,必须是颠倒的网络号再加上in-addr.arpa后缀。例如当前的网络号是192.168.2,那反向区域的名称就应该是2.168.192.in-addr.arpa。
▲ 图:网络ID
设置反向区域的数据文件,使用默认值即可。
▲ 图:区域数据文件
这个区域也不需要动态更新。如下图所示,反向区域创建完成。
▲ 图:完成界面
创建了反向区域之后,我们就可以在反向区域中创建PTR记录了,如下图所示,我们选择在反向区域中创建PTR记录。
▲图:创建PTR记录
如下图所示,我们创建的PTR记录把192.168.2.2解析为域名server1.jimi.com。
▲ 图:PTR记录元素
我们用nslookup工具进行测试果,我们看到IP地址已经被正确地解析为域名了。其实当我们运行nslookup后,nslookup所做的第一件事就是把DNS服务器的IP地址202.99.16.1进行反向解析。
▲ 图:测试
7、SRV记录
SRV记录是服务器资源记录的缩写,SRV记录相对于其他记录来说是DNS记录中的新成员,在RFC2052中才对SRV记录进行了定义,因此很多老版本的DNS服务器并不支持SRV记录。SRV记录的作用是用来说明一个服务器能够提供什么样的服务!特别是在Active Directory中有着重要地位,在此不用详细论述,在完成中小企业网络构建十步法系列后,笔者会再组织《Windows Server 2008R2 轻松网管》系列文章,在此系列中的活动目录部分会详细介绍此记录的用法。
到这儿为止,我们就已经把DNS中一些最基本的使用方法和最常用的记录类型给大家做了介绍,在一般的中小企业中应用已经没有什么问题了。至于DNS的高级部分后期有时间再和大家探讨。