DNS体系架构最详解图文.docx
《DNS体系架构最详解图文.docx》由会员分享,可在线阅读,更多相关《DNS体系架构最详解图文.docx(96页珍藏版)》请在冰豆网上搜索。
DNS体系架构最详解图文
浅谈DNS体系结构:
DNS系列之一
DNS是目前互联网上最不可或缺的服务器之一,每天我们在互联网上冲浪都需要DNS的帮助。
DNS服务器能够为我们解析域名,定位电子邮件服务器,找到域中的域控制器……面对这么一个重要的服务器角色,我们有必要对它进行一番深入研究,本文尝试探讨一下DNS的体系结构,从而让大家能更好地了解DNS的原理。
DNS的主要工作是域名解析,也就是把计算机名翻译成IP地址,这样我们就可以直接用易于联想记忆的计算机名来进行网络通讯而不用去记忆那些枯燥晦涩的IP地址了。
现在我们给出一个问题,在DNS出现之前,互联网上是如何进行计算机名称解析的?
这个问题显然是有实际意义的,描述DNS的RFC882和883出现在1984年,但1969年11月互联网就诞生了,难道在DNS出现之前互联网的先驱们都是互相用IP地址进行通讯的?
当然不是,但早期互联网的规模确实非常小,最早互联网上只有4台主机,分别在犹他大学,斯坦福大学,加州洛杉矶分校和加州圣芭芭拉分校,即使在整个70年代互联网上也只有几百台主机而已。
这样一来,解决名称解析的问题就可以使用一个非常简单的办法,每台主机利用一个Hosts文件就可以把互联网上所有的主机都解析出来。
这个Hosts文件现在我们还在使用,路径就在\Windows\System32\Drivers\etc目录下,如下图所示就是一个Hosts文件的例子,我们在图中可以很清楚地看到Hosts文件把[url][/url]解析为202.108.22.5。
在一个小规模的互联网上,使用Hosts文件是一个非常简单的解决方案,一般情况下,斯坦福大学的主机管理员每周更新一次Hosts文件,其他的主机管理员每周都定时下载更新的Hosts文件。
但显然这种解决方案在互联网规模迅速膨胀时就不太适用了,就算现在的互联网上有一亿台主机,想想看,如果每个人的计算机中都要有一个容纳一亿台主机的Hosts文件!
呵呵,是不是快要崩溃了!
互联网的管理者们及时为Hosts文件找到了继任者-DNS,DNS的设计要求使用分布式结构,既可以允许主机分散管理数据,同时数据又可以被整个网络所使用。
管理的分散有利于缓解单一主机的瓶颈,缓解流量压力,同时也让数据更新变得简单。
DNS还被设计使用有层次结构的名称空间为主机命名,以确保主机域名的唯一性。
DNS的设计要求您已经看到了,下面我来具体解释一下。
DNS的前身Hosts文件是一个完全的分散解析方案,每台主机都自己负责名称解析,这种方法已经被我们否定了。
那我们能否使用一个完全集中的解析方案呢?
也就是全世界只有一个Hosts文件,互联网用户都利用这个文件进行名称解析!
这个方案咋一听还是有可取之处的,至少大家都解脱出来了,不用每台计算机都更新那个Hosts文件了,全世界只要把这个唯一的Hosts文件维护好就完事大吉了。
实际上仔细考虑一下,有很多的问题,例如这台存放Hosts文件的主机会成为性能瓶颈,面临巨大的流量压力,而且每个域名解析的结果都要通过这个文件进行更新,更新的速度可想而知不会太及时。
因此,DNS也没有采用这种完全集中的解析方案。
目前DNS采用的是分布式的解析方案。
具体是这样的,互联网管理委员会规定,域名空间的解析权都归根服务器所有,也就是说,根服务器对互联网上所有的域名都享有完全的解析权!
且慢,有读者要提问了,那这个根服务器不就相当于全世界唯一的Hosts文件了吗?
呵呵,不要着急,根服务器用了一个简单的操作,就改变了这种结构。
根服务器使用的是什么操作?
委派!
下图就是根服务器委派的示意图,如下图所示,根服务器把com结尾的域名解析权委派给其他的DNS服务器,以后所有以com结尾的域名根服务器就都不负责解析了,而由被委派的服务器负责解析。
而且根服务器还把以net,org,edu,gov等结尾的域名都一一进行了委派,这些被委派的域名被称为顶级域名,每个顶级域名都有预设的用途,例如com域名用于商业公司,edu域名用于教育机构,gov域名用于政府机关等等,这种顶级域名也被称为顶级机构域名。
根服务器还针对不同国家进行了域名委派,例如把所有以CN结尾的域名委派给中国互联网管理中心,以JP结尾的域名委派给日本互联网管理中心,CN,JP这些顶级域名被称为顶级地理域名。
每个被委派的DNS服务器同样使用委派的方式向下发展,例如和讯公司想申请使用域名,这时和讯就要向负责.com域名的DNS服务器提出申请,只要还没有被其他公司或个人使用,而且申请者按时足额缴纳了费用,负责.com域名的服务器就会把域名委派到和讯公司自己的DNS服务器60.28.251.1。
只要DNS服务器使用委派,域名空间就会逐步形成现有的分布式解析架构。
这种架构把域名解析权下放到各公司自己的DNS服务器上,既有利于及时更新记录,同时对平衡流量压力也很有好处。
那么,在这种分布式的解析结构中,DNS服务器如何进行域名解析呢?
换句话说,其他的DNS服务器怎么知道由60.28.251.1负责解析的域名呢?
如果一个互联网用户想解析域名[url][/url],过程是怎么样的呢?
如下图所示,用户把解析请求发送到自己使用的DNS服务器上,DNS服务器发现自己无法解析[url][/url]这个域名,于是就把这个域名发送到根服务器请求解析,根服务器发现这个域名是以com结尾的,于是告诉查询者这个域名应该询问负责com的DNS服务器。
这时查询者会转而向负责com的域名服务器发出查询请求,负责com域名的DNS服务器回答说[url][/url]是以结尾的域名,以结尾的域名已经被委派到DNS服务器60.28.251.1了,因此这个域名的解析应该询问60.28.251.1。
于是查询者最后向60.28.251.1发出查询请求,这次应该可以如愿以偿了,60.28.251.1会告诉查询者所需要的答案,查询者拿到这个答案后,会把这个查询结果放入自己的缓存中,如果在缓存的有效期内有其他DNS客户再次请求这个域名,DNS服务器就会利用自己缓存中的结果响应用户,而不用再去根服务器那里跑一趟了。
以上介绍的域名解析过程我们可以通过一个实验来加以说明,Berlin是一个DNS服务器,IP地址为192.168.1.200,其他IP参数如下图所示。
我们现在用Berlin来解析一个域名,我们用抓包工具ethereal追踪一下域名解析的轨迹。
在DNS服务器上查询[url][/url],如下图所示,DNS服务器已经解析了这个域名,但到底解析的过程是什么样的呢?
向下看!
打开抓包工具Ethereal,如下图所示,我们看到第8条记录显示DNS服务器Berlin向198.41.0.4发出了一个查询请求,请求解析[url][/url],198.41.0.4何许人也,13个根服务器之一!
接下来看第9条记录,198.41.0.4给Berlin一个回应,告诉了Berlin这个域名解析问题应该询问负责com区域的DNS服务器,而且198.41.0.4还给出了负责com区域服务器的域名和IP地址。
接下来的第10条记录显示了Berlin向192.55.83.30发出了域名解析请求,从上图可知,192.55.83.30就是负责com区域的域名服务器之一,这次查询会有什么样的回应呢?
从下图的第11条记录可以看出,负责com区域的域名服务器告诉Berlin,以结尾的域名已经委派出去,现在有四个服务器负责,Berlin可以向这四个服务器中的任何一个提出查询请求。
从第12条记录可以看出,Berlin这次向59.173.14.26提出了查询请求,59.173.14.26就是上图中提到的负责区域的四个服务器之一。
这次查询会有什么样的结果呢?
如下图的第13条记录所示,这次查询终于有了结果,负责的59.173.14.26终于告诉Berlin,[url][/url]对应的IP是60.28.250.55。
通过这个实验,希望大家能够更好地理解DNS的分布式结构,下篇博文中我们要讨论一下如何DNS服务器的常用记录类型。
详解DNS的常用记录(上):
DNS系列之二
在上篇博文中,我们介绍了DNS服务器的体系结构,从中我们了解到如果我们希望注册一个域名,那么必须经过顶级域名服务器或其下级的域名服务器为我们申请的域名进行委派,把解析权委派到我们的DNS服务器上,这样我们才可以获得对所申请域名的解析权。
本文中我们将再进一步,假设我们已经为公司成功申请了一个域名,现在的解析权被委派到公司的DNS服务器202.99.16.1,那我们在202.99.16.1服务器上该进行什么样的配置呢?
一 安装DNS服务器
首先我们要在服务器上安装DNS组件,服务器的TCP/IP配置如下图所示。
安装DNS组件非常简单,依次点击 控制面板-添加或删除程序-添加/删除Windows组件-网络服务,如下图所示,选择“域名系统”即可。
二 创建区域
DNS服务器创建完毕之后,我们接下来就要创建DNS区域了,区域是DNS服务器所负责的名称空间,DNS服务器有正向区域和反向区域,正向区域负责把域名解析为IP,而反向区域负责把IP解析为域名。
DNS区域有三种类型,正向区域,反向区域和存根区域。
要理解区域类型,先要明白DNS服务器有主服务器和辅助服务器的区别。
一般情况下,企业申请域名时会考虑配备两个DNS服务器,一个是主服务器,另一个是辅助服务器。
一般的解析请求由主服务器负责,辅助服务器的数据是从主服务器复制而来的,辅助服务器的数据是只读的,当主服务器出现故障或由于负载太重无法响应客户机的解析请求时,辅助服务器会挺身而出担负起域名解析的任务。
现在我们回过头来解释一下什么是主要区域,主服务器使用的区域就是主要区域,同样,辅助服务器使用的区域是辅助区域。
存根区域可以看做是一个特殊的,简化的辅助区域,具体区别我们在后续博文中会加以介绍。
一般我们使用较多的是正向区域,而且从逻辑上考虑,必然是先创建主要区域,因为辅助区域和存根区域都需要从主要区域复制数据,因此我们现在的任务是要为区域创建一个正向的主要区域。
如下图所示,我们在DNS服务器上选择创建一个正向区域。
出现新建区域向导,点击下一步继续。
选择创建一个主要区域。
区域名称和申请的域名是一样的,。
区域数据文件是.dns,区域内的所有记录都存储在这个文件里,注意,这个文件我们以后会用到的。
向导询问是否允许区域动态更新,一般来说,如果DNS区域在企业内网使用,我们会允许动态更新;如果用于Internet,那么一般不需要动态更新。
如下图所示,区域创建完毕。
区域创建完毕之后,如下图所示,区域中只有一个NS记录和一个SOA记录,我们接下来要做的工作就是在区域中创建适当的DNS记录。
三 创建记录
DNS记录是DNS区域数据的具体表现形式,我们接下来为大家介绍几种最常见的DNS记录,大家掌握了这些记录就可以基本掌握DNS的基本应用了。
1、 A记录
A记录也称为主机记录,是使用最广泛的DNS记录,A记录的基本作用就是说明一个域名对应的IP是多少,例如,我们想通过A记录说明一台主机的域名是,IP是202.99.16.185,那么我们就可以进行下列操作。
如下图所示,我们在区域中选择“新建主机”。
如下图所示,我们在A记录中说明了域名对应的IP是202.99.16.185。
其中提到了一个完全合格域名的概念,这里我们介绍一下。
完全合格域名指的是点结尾的域名,例如.就是一个完全合格域名。
在一般的网络应用中,我们可以省略完全合格域名最右侧的点,但DNS对这个点不能随便省略。
因为这个点代表了DNS的根,有了这个点,完全合格域名就可以表达为一个绝对路径,例如.就可以表示为DNS根下的com子域下域中一个名为bbs的主机。
如果DNS发现一个域名不是以点结尾的完全合格域名,就会把这个域名加上当前的区域名称作为后缀,让其满足完全合格域名的形式需求。
例如DNS会把域名bbs处理为.。
因此,如果要求输入完全合格域名,我们应该注意让域名以点结尾。
A记录的基本用法是描述域名和IP的对应关系,其实A记录还有一个高级用法,A记录有负载平衡的作用。
DNS经常被用作一个低成本的负载平衡解决方案,主要就是依靠A记录来实现的。
举个例子加以说明,例如我们有四个Web服务器共同负责[url][/url]这个网站,四个Web服务器的IP地址分别为202.99.16.81,202.99.16.82,202.99.16.83和202.99.16.84,那么我们就应该创建如下的主机记录。
以上我们用四条A记录分别描述了[url][/url]对应的四个IP,那么,到底如何利用这些IP来实现负载平衡呢?
原理是这样的,客户机访问Web服务器一般都使用域名,因此需要利用DNS服务器把域名解析为IP。
第一个客户机查询[url][/url]时,DNS服务器会告诉客户机这个域名对应的IP是202.99.16.81,第二个客户机来查询时DNS服务器就会把答案改为202.99.16.82,依此类推,DNS使用了“轮询”的技术把不同的访问用户导向了四个不同的Web服务器,这样就达到了一个简易负载平衡的效果。
我们可以通过一个简单的实验来验证一下DNS轮询的效果,如下图所示,我们在客户机上用ping[url][/url]的方式来查询域名对应的IP,但奇怪的是,客户机两次查询域名得到的是同一个结果,这时为什么呢?
难道DNS轮询不起作用了吗?
其实并非DNS轮询出了问题,而是由于客户机有DNS缓存机制,当客户机第一次查询DNS服务器获得了域名对应的IP地址,客户机会把查询结果放入缓存,这样下次查询时就直接从缓存获取结果而不用去问DNS服务器了。
明白了这个道理,我们只要用IPCONFIG/FLUSHDNS清除客户机的DNS缓存就可以继续实验了,实验结果如下图所示,我们可以看到DNS轮询已经发挥了作用。
2、 NS记录
NS记录和SOA记录是任何一个DNS区域都不可或缺的两条记录,NS记录也叫名称服务器记录,用于说明这个区域有哪些DNS服务器负责解析,SOA记录说明负责解析的DNS服务器中哪一个是主服务器。
因此,任何一个DNS区域都不可能缺少这两条记录。
假设区域有两个DNS服务器负责解析,是主服务器,是辅助服务器,的ip是202.99.16.1,的ip是202.99.16.2。
那么我们应该创建两条NS记录,当然,NS记录依赖A记录的解析,我们首先应该为和创建两条A记录,创建的A记录如下图所示。
有了两条主机记录的支持,我们就可以编辑ns记录了,如下图所示,当前区域的ns记录是创建区域时系统自动创建的。
这条ns记录并不能正常工作,因为nsserver并不是一个可以解析的完全合格域名,因此我们删除这条记录,重新再创建两条NS记录。
如下图所示,我们创建一条ns记录,ns服务器的完全合格域名是..,解析出的IP是202.99.16.1,这条记录说明有一个服务器负责的域名解析。
用同样方法创建的ns记录,创建完成的结果如下图所示。
3、 SOA记录
NS记录说明了有两个DNS服务器负责的域名解析,但哪个是主服务器呢?
NS记录并没有说明,这个任务由SOA记录来完成。
SOA记录也称为起始授权机构记录,SOA记录中负责说明哪个DNS服务器是主服务器,以及主服务器和辅助服务器之间的一些关联参数。
如下图所示就是的SOA记录,我们逐一进行分析。
首先我们要分析序列号,序列号反映了DNS服务器数据变化的次数,DNS服务器的数据每更新一次,序列号就加大一位。
但我们仔细想想,对管理员来说,了解这个参数意义不大,因为DNS服务器到底是更新了10000次还是9999次对管理员来说并没有实质性的影响。
实际上,这个参数是给辅助服务器使用的。
我们前面提到,辅助服务器的数据都是从主服务器复制而来的,那么辅助服务器怎么判断主服务器的数据有没有进行更新呢?
辅助服务器只要简单地检查一下主服务器的序列号就明白了,如果主服务器的序列号比辅助服务器的序列号大,那么辅助服务器就应该去主服务器进行增量更新了。
主服务器这个参数的重要性不言而喻,目前的SOA记录中主服务器参数是nsserver.,这并不是一个可以解析的完全合格域名,我们应该把主服务器改为.,如下图所示,这才是正确的主服务器参数。
可能大家会有疑问,为什么NS记录和SOA记录默认都是nsserver.,主要是因为nsserver.是这台DNS服务器的NETBIOS名称。
从上图可知,我们把SOA记录中的负责人参数改为了.,看起来象个主机的完全合格域名,其实意思是admin@,是一个邮箱地址。
那么为什么负责人这个参数不直接写成admin@呢?
毕竟这样就好理解多了,这时因为@符号在DNS中有特殊含义,@在DNS中代表当前区域,也就是代表,因此我们被迫把邮件地址写成了完全合格域名的格式。
刷新间隔指的是辅助服务器每隔15分钟联系一下主服务器,查看主服务器有无数据更新。
重试间隔10分钟值的是如果辅助服务器和主服务器失去了联系,那么辅助服务器每隔10分钟联系一下主服务器,在此期间由辅助服务器负责当前区域的域名解析。
过期时间是1天指的是如果辅助服务器过了一天还没有联系上主服务器,辅助服务器就会认为主服务器永远不会再回来了,自己的数据也没有保存的意义了,因此会宣布数据过期,并拒绝为用户继续提供解析服务。
TTL一个小时指的是记录在DNS缓存中的生存时间是一个小时。
在本篇博文中我们介绍了DNS的三种记录,A记录,NS记录和SOA记录,从内容来看,显然对任何一个DNS区域来说都是必备的,下篇博文中我们将介绍MX,Cname,SRV和PTR记录。
详解DNS的常用记录(下):
DNS系列之三
在上篇博文中我们介绍了DNS服务器中几种不可或缺的记录,包括A记录,NS记录和SOA记录。
本篇博文中我们将继续为大家介绍DNS的另外几种常用记录,希望能对大家了解DNS有所帮助。
四 MX记录
MX记录也被称为邮件交换器记录,MX记录用于说明哪台服务器是当前区域的邮件服务器,例如在区域中,是邮件服务器,而且IP地址是202.99.16.125。
那么我们就可以在DNS服务器中进行下列处理:
1、 为邮件服务器创建A记录
如下图所示,我们首先为邮件服务器创建一条A记录,这时因为MX记录中描述邮件服务器时不能使用IP地址,只能使用完全合格域名。
2、 创建MX记录
如下图所示,在DNS服务器中选择创建MX记录。
MX记录如下图所示,这条MX记录说明是的邮件服务器,而且优先级是10。
注意,如果区域有多个MX记录,而且优先级不同,那么其他邮局给发邮件时会首先把邮件发给优先级最高的邮件服务器,代表优先级的数字越低则优先级越高,优先级最高为0。
MX记录对邮件服务器来说是不可或缺的,两个互联网邮局系统在相互通讯时必须依赖DNS的MX记录才能定位出对方的邮件服务器位置。
例如邮局给邮局发一封电子邮件,那163邮局的SMTP服务器就需要向DNS服务器发出一个查询请求,请DNS服务器查询的MX记录,这样163邮局的SMTP服务器就可以定位的SMTP服务器,然后就可以把邮件发送到263邮局。
我们通过一个例子来具体说明一下MX记录的用途,我们在192.168.0.109上搭建了一个邮件服务器,我们利用这个邮件服务器给itettest1@发送一封电子邮件,当邮件服务器给邮局发送邮件时,我们用抓包工具ethereal记录抓包过程。
如下图所示,我们可以看出邮件服务器192.168.0.109在发送邮件时首先向DNS服务器发出一个查询请求,请求查询的MX记录,DNS服务器告诉查询者邮局的邮件服务器是,这样192.168.0.109才知道应该把邮件发送到。
五 Cname记录
Cname记录也被称为别名记录,其实就是让一个服务器有多个域名,大致相当于给一个人起个外号。
为什么需要Cname记录呢?
一方面是照顾用户的使用习惯,例如我们习惯把邮件服务器命名为mail,把ftp服务器命名为ftp,那如果只有一台服务器,同时提供邮件服务和FTP服务,那我们究竟该怎么命名呢?
我们可以把服务器命名为,然后再创建一个Cname记录叫就可以两者兼顾了。
另外使用Cname记录也有安全方面的考虑因素,例如我们不希望别人知道某个网站的真实域名,那我们可以让用户访问网站的别名,例如我们访问的XX网站的真实域名就是[url][/url],我们使用的[url][/url]只是[url][/url]的别名而已。
好,下面我们举个创建Cname记录的例子,假设我们要为创建一个别名,那我们就可以进行下列操作。
如下图所示,我们选择在DNS服务器中创建Cname记录。
记录内容如下图所示,我们为创建了一个别名记录,别名是。
对进行解析,结果如下图所示,DNS服务器告诉我们就是。
六 SRV记录
SRV记录是服务器资源记录的缩写,SRV记录是DNS记录中的新鲜面孔,在RFC2052中才对SRV记录进行了定义,因此很多老版本的DNS服务器并不支持SRV记录。
那么SRV记录有什么用呢?
SRV记录的作用是说明一个服务器能够提供什么样的服务!
SRV记录在微软的ActiveDirectory中有着重要地位,大家知道在NT4时代域和DNS并没有太多关系。
但从Win2000开始,域就离不开DNS的帮助了,为什么呢?
因为域内的计算机要依赖DNS的SRV记录来定位域控制器!
微软的即时通讯服务器LiveCommunicationsServer也可以依靠SRV记录定位即时通讯服务器,有鉴于SR