DNS记录是DNS区域数据的具体表现形式,我们接下来为大家介绍几种最常见的DNS记录,大家掌握了这些记录就可以基本掌握DNS的基本应用了。
1、A记录
A记录也称为主机记录,是使用最广泛的DNS记录,A记录的基本作用就是说明一个域名对应的IP是多少,例如,我们想通过A记录说明一台主机的域名是bbs.hexun.com,IP是202.99.16.185,那么我们就可以进行下列操作。如下图所示,我们在hexun.com区域中选择“新建主机”。
如下图所示,我们在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.。因此,如果要求输入完全合格域名,我们应该注意让域名以点结尾。
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,那么我们就应该创建如下的主机记录。
以上我们用四条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轮询不起作用了吗?
其实并非DNS轮询出了问题,而是由于客户机有DNS缓存机制,当客户机第一次查询DNS服务器获得了域名对应的IP地址,客户机会把查询结果放入缓存,这样下次查询时就直接从缓存获取结果而不用去问DNS服务器了。明白了这个道理,我们只要用IPCONFIG/FLUSHDNS清除客户机的DNS缓存就可以继续实验了,实验结果如下图所示,我们可以看到DNS轮询已经发挥了作用。
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记录如下图所示。
有了两条主机记录的支持,我们就可以编辑ns记录了,如下图所示,当前区域的ns记录是创建hexun.com区域时系统自动创建的。这条ns记录并不能正常工作,因为nsserver并不是一个可以解析的完全合格域名,因此我们删除这条记录,重新再创建两条NS记录。
如下图所示,我们创建一条ns记录,ns服务器的完全合格域名是ns1.hexun.com..,解析出的IP是202.99.16.1,这条记录说明有一个服务器ns1.hexun.com负责hexun.com的域名解析。
用同样方法创建ns2.hexun.com的ns记录,创建完成的结果如下图所示。
3、SOA记录
NS记录说明了有两个DNS服务器负责hexun.com的域名解析,但哪个是主服务器呢?NS记录并没有说明,这个任务由SOA记录来完成。SOA记录也称为起始授权机构记录,SOA记录中负责说明哪个DNS服务器是主服务器,以及主服务器和辅助服务器之间的一些关联参数。如下图所示就是hexun.com的SOA记录,我们逐一进行分析。
首先我们要分析序列号,序列号反映了DNS服务器数据变化的次数,DNS服务器的数据每更新一次,序列号就加大一位。但我们仔细想想,对管理员来说,了解这个参数意义不大,因为DNS服务器到底是更新了10000次还是9999次对管理员来说并没有实质性的影响。实际上,这个参数是给辅助服务器使用的。我们前面提到,辅助服务器的数据都是从主服务器复制而来的,那么辅助服务器怎么判断主服务器的数据有没有进行更新呢?辅助服务器只要简单地检查一下主服务器的序列号就明白了,如果主服务器的序列号比辅助服务器的序列号大,那么辅助服务器就应该去主服务器进行增量更新了。主服务器这个参数的重要性不言而喻,目前的SOA记录中主服务器参数是nsserver.,这并不是一个可以解析的完全合格域名,我们应该把主服务器改为ns1.hexun.com.,如下图所示,这才是正确的主服务器参数。可能大家会有疑问,为什么NS记录和SOA记录默认都是nsserver.,主要是因为nsserver.是这台DNS服务器的NETBIOS名称。
从上图可知,我们把SOA记录中的负责人参数改为了admin.hexun.com.,看起来象个主机的完全合格域名,其实意思是admin@hexun.com,是一个邮箱地址。那么为什么负责人这个参数不直接写成admin@hexun.com呢?毕竟这样就好理解多了,这时因为@符号在DNS中有特殊含义,@在DNS中代表当前区域,也就是代表hexun.com,因此我们被迫把邮件地址写成了完全合格域名的格式。刷新间隔指的是辅助服务器每隔15分钟联系一下主服务器,查看主服务器有无数据更新。重试间隔10分钟值的是如果辅助服务器和主服务器失去了联系,那么辅助服务器每隔10分钟联系一下主服务器,在此期间由辅助服务器负责当前区域的域名解析。过期时间是1天指的是如果辅助服务器过了一天还没有联系上主服务器,辅助服务器就会认为主服务器永远不会再回来了,自己的数据也没有保存的意义了,因此会宣布数据过期,并拒绝为用户继续提供解析服务。TTL一个小时指的是记录在DNS缓存中的生存时间是一个小时。
四 MX记录MX记录也被称为邮件交换器记录,MX记录用于说明哪台服务器是当前区域的邮件服务器,例如在hexun.com区域中,mail.hexun.com是邮件服务器,而且IP地址是202.99.16.125。那么我们就可以在DNS服务器中进行下列处理:1、为邮件服务器创建A记录如下图所示,我们首先为邮件服务器创建一条A记录,这时因为MX记录中描述邮件服务器时不能使用IP地址,只能使用完全合格域名。
2、创建MX记录如下图所示,在DNS服务器中选择创建MX记录。
MX记录如下图所示,这条MX记录说明mail.hexun.com是hexun.com的邮件服务器,而且优先级是10。注意,如果hexun.com区域有多个MX记录,而且优先级不同,那么其他邮局给hexun.com发邮件时会首先把邮件发给优先级最高的邮件服务器,代表优先级的数字越低则优先级越高,优先级最高为0。
MX记录对邮件服务器来说是不可或缺的,两个互联网邮局系统在相互通讯时必须依赖DNS的MX记录才能定位出对方的邮件服务器位置。例如163.net邮局给263.net邮局发一封电子邮件,那163邮局的SMTP服务器就需要向DNS服务器发出一个查询请求,请DNS服务器查询263.net的MX记录,这样163邮局的SMTP服务器就可以定位263.net的SMTP服务器,然后就可以把邮件发送到263邮局。我们通过一个例子来具体说明一下MX记录的用途,我们在192.168.0.109上搭建了一个邮件服务器,我们利用这个邮件服务器给itettest1@sohu.com发送一封电子邮件,当邮件服务器给sohu.com邮局发送邮件时,我们用抓包工具ethereal记录抓包过程。如下图所示,我们可以看出邮件服务器192.168.0.109在发送邮件时首先向DNS服务器发出一个查询请求,请求查询sohu.com的MX记录,DNS服务器告诉查询者sohu.com邮局的邮件服务器是sohumx.h.a.sohu.com,这样192.168.0.109才知道应该把邮件发送到sohumx.h.a.sohu.com。五 Cname记录
Cname记录也被称为别名记录,其实就是让一个服务器有多个域名,大致相当于给一个人起个外号。为什么需要Cname记录呢?一方面是照顾用户的使用习惯,例如我们习惯把邮件服务器命名为mail,把ftp服务器命名为ftp,那如果只有一台服务器,同时提供邮件服务和FTP服务,那我们究竟该怎么命名呢?我们可以把服务器命名为mail.hexun.com,然后再创建一个Cname记录叫ftp.hexun.com就可以两者兼顾了。另外使用Cname记录也有安全方面的考虑因素,例如我们不希望别人知道某个网站的真实域名,那我们可以让用户访问网站的别名,例如我们访问的百度网站的真实域名就是[url]www.a.shifen.com[/url],我们使用的[url]www.baidu.com[/url]只是[url]www.a.shifen.com[/url]的别名而已。好,下面我们举个创建Cname记录的例子,假设我们要为mail.hexun.com创建一个别名ftp.hexun.com,那我们就可以进行下列操作。如下图所示,我们选择在DNS服务器中创建Cname记录。
记录内容如下图所示,我们为mail.hexun.com创建了一个别名记录,别名是ftp.hexun.com。
对ftp.hexun.com进行解析,结果如下图所示,DNS服务器告诉我们ftp.hexun.com就是mail.hexun.com。
六 SRV记录SRV记录是服务器资源记录的缩写,SRV记录是DNS记录中的新鲜面孔,在RFC2052中才对SRV记录进行了定义,因此很多老版本的DNS服务器并不支持SRV记录。那么SRV记录有什么用呢?SRV记录的作用是说明一个服务器能够提供什么样的服务!SRV记录在微软的Active Directory中有着重要地位,大家知道在NT4时代域和DNS并没有太多关系。但从Win2000开始,域就离不开DNS的帮助了,为什么呢?因为域内的计算机要依赖DNS的SRV记录来定位域控制器!微软的即时通讯服务器Live Communications Server也可以依靠SRV记录定位即时通讯服务器,有鉴于SRV记录可以定位特定服务器的位置,我们可以预计,在微软将来的服务器产品中SRV记录将发挥越来越多的作用。下面我们举个例子说明SRV记录的作用,假设在hexun.com域中web.hexun.com是一个Web服务器,web.hexun.com在80端口提供网站服务,那么我们如何用SRV记录说明这些信息呢?如下图所示,我们在DNS服务器中选择新建“其他新纪录”。
记录类型我们选择SRV。
下图是我们创建的SRV记录,这条记录的意思是服务器web.hexun.com在hexun.com域中提供HTTP服务,此服务基于TCP协议,守护在80端口。
七 PTR记录PTR记录也被称为指针记录,PTR记录是A记录的逆向记录,作用是把IP地址解析为域名。由于我们在前面提到过,DNS的反向区域负责从IP到域名的解析,因此如果要创建PTR记录,必须在反向区域中创建。下面我们举例说明如何创建反向区域以及PTR记录。如下图所示,我们在DNS服务器的反向区域中选择“新建区域”。
出现新建区域向导,选择下一步继续。
区域类型选择“主要区域”。
向导要求输入当前的网络号,网络号是IP地址和子网掩码进行与运算后的结果,反向区域的名称不能随便设置,必须是颠倒的网络号再加上in-addr.arpa后缀。例如当前的网络号是202.99.16,那反向区域的名称就应该是16.99.202.in-addr.arpa。
设置反向区域的数据文件,使用默认值即可。
这个区域也不需要动态更新。
如下图所示,反向区域创建完成。
创建了反向区域之后,我们就可以在反向区域中创建PTR记录了,如下图所示,我们选择在反向区域中创建PTR记录。
如下图所示,我们创建的PTR记录把202.99.16.1解析为域名ns1.hexun.com。
创建了PTR记录后,我们就可以把IP解析为域名了,下图是我们用nslookup工具测试的结果,我们看到IP地址已经被正确地解析为域名了。其实当我们运行nslookup后,nslookup所做的第一件事就是把DNS服务器的IP地址202.99.16.1进行反向解析。
别名至此,我们把DNS服务器中的几种常用记录都简单进行了介绍,如果大家掌握了,那么应付一般的应用就基本上没有问题了。