DNS详细培训资料.docx
《DNS详细培训资料.docx》由会员分享,可在线阅读,更多相关《DNS详细培训资料.docx(19页珍藏版)》请在冰豆网上搜索。
DNS详细培训资料
第一章
本系列主要讲述有关Windows下DNS服务器的相关知识点,由于DNS和AD结合异常紧密,所以与AD相关的DNS应用和知识将在AD专栏中讲述。
此为本系列的第一节。
我想没有什么人在访问的时候会直接输入IP地址,取而代之的是输入一串简单,容易记忆的字符,有数字的,如;也有纯字母的,如,只要网络连接没问题,就可以直接访问对应的网站。
但在理论上访问网址依然需要用到IP地址的,只是字符转换为IP地址这部分工作由DNS服务器代劳了而已,而这个转换过程对于客户端来讲是完全透明的。
在讲述DNS之前,先让我们来认识一下几个与域名相关的概念。
什么是域名?
域名,即DomainName,准确是说它是由英文字母、阿拉伯数字以及横"-"组成的一串字符,且英文不区分大小写,通常一个域名可以分为主体和后缀2部分,各部分由一个小点.隔开。
以常见的为例,163是这个域名的主体,而后面的.com表示这个域名属于国际域名,常见的还有.net、.cn等等。
这两部分构成了是一个完整的域名。
有朋友可能问了,那我们常见的又是什么呢。
从整体上来说,这是一个URL地址,而非域名。
细化来讲,WWW是一个主机名称,在这台主机上运行着网页服务器,当客户端输入时,系统会在某个系统上查询这个地址所对应的IP地址,如果一切正常则会很快返回这台主机的IP地址,之后浏览器会向这个地址发起HTTP请求进行网页解析。
在此过程中提到的“某个系统”就是我们要讲述的DNS系统。
什么是DNS?
通常,我们定位一台公网计算机主要依靠的是IP地址,倘若这台计算机正在对外提供网页浏览服务,IP为1.1.1.1。
访问时可以直接输入IP地址即可,因为这个地址简单好记,但网络上的计算机千千万,IP地址又是一串无序的数字,单凭人脑去记忆这些数字,显然不现实,所以急需一种途径或者方法将我们从数字苦海中解救出来,经过不断地探索,人们终于找到一个很好的解决办法,那就是通过将一些字符进行有的规律组合和拼凑,使其可以表达出一定的含义,然后将这些名词与服务器的IP地址对应起来,我们就可以把这些组合成为域名。
当然域名的定义规范远远要比这里谈到的严谨和规范。
那这部分工作或是功能由谁来实现呢,这就引出了我们本系列的主角:
DNS。
在今天看来,DNS系统工作的正常与否,直接关系到整个互联网系统的安全和稳定。
DNS即域名解析系统。
前面已经提到,它可以将域名转换成IP地址,反之亦可。
当然这也是DNS最基本的功能之一。
谈到DNS就不能不说起域名,概念可以参考上面一小节,那这两者是怎样结合在一起的呢?
我们先来看一下INTERNET域名的整体结构。
在整个INTERNET网络中,域名占据着极其重要的地位,因为它有着一个很严谨的金字塔似的层级结构模式,通常又被称为命名空间。
我们在阅读DNS相关资料时,会经常碰到“命名空间”这个词。
那如何去理解呢。
来看下面一张图,借此来帮助大家更好的理解命名空间的概念。
可以看到结果是“拒绝访问”,有的地址加上一个.再访问会自动跳转。
所以这里只是想让大家对此有更多了解。
在根域名下就是顶级域名,大致分为三大类,图中每一类都举出了3例子作为代表,其实还也很多。
顶级域名位于根域名之下,而在顶级域名下又有二级域名,我们以.com为例,请大家留意,这里说的是.com,而不是com,单独的com是没有意义的,这里我省略了最后的一个点。
在.com下我列出了三个常见的二级名称,比如.163、.QQ等,以此类推,后面可能会有很多层这样的结构。
但在名称上并非是三级、四级等,而统一称为子域。
下一层为上一层的子域,在这个域名层级关系中,news就是这与域名的子域名,同理v就是的子域,以此类推。
但我们在书写的时候是从最低一级的写起,直至顶级域名,而DNS查询和解析顺序正好和这个相反。
第二章
经过前三节内容的铺垫,想必大家应该对DNS以及相关概念有个基本的认识了,本节就开始讨论DNS服务器的安装和配置,同时也会有客户端的设置,内容都很基础。
今天我们的试验环境是由一台服务器,用于安装DNS服务,以及一台XP系统客户机组成。
具体参数和配置如下图:
下载(61.64KB)
2009-9-1010:
04
首先会在服务器安装好DHCP组件(具体安装过程请查阅DHCP系列),便于为客户端自动分配IP、掩码以及DNS等参数。
以下是这台台服务器的网络配置:
下载(37.39KB)
2009-9-1010:
04
我们可以看到,首选的DNS服务器一栏内输入的是本机的IP,因为此时本机也是DNS服务器。
现在我们来开始安装DNS组件。
找到控制面板/添加或删除程序/,找到如下设置:
下载(64.15KB)
2009-9-1010:
04
点选【域名系统】并确定后系统会自动安装,过程很简单,不需要做任何设置。
安装完成后如下图:
下载(26.83KB)
2009-9-1010:
04
看到这个画面表示DNS组件已经安装成功,我们现在启动DNS组件。
如下图:
下载(29.71KB)
2009-9-1010:
04
这个是DNS组件的图形管理界面,是不是很简洁呢!
哈哈,内容可不简单呢~
到此,DNS服务器端已经安装完毕,大家可以发现过程出奇的简单。
接下来,我们需要配置DHCP,以便为客户端XP2自动分配IP和DNS地址。
打开DHCP管理界面,新建一个作用域,如192.168.1.2-192.168.1.10,因为我们需要为这个作用域配置额外选项,所以在此处需要留意。
如下图:
下载(35.19KB)
2009-9-1010:
04
如图所示,选择第一个选项并点击【下一步】,如下图:
下载(35.6KB)
2009-9-1010:
04
输入当前的DNS服务器地址并点击【添加】,最后再激活此作用域即可,如下图:
下载(22.38KB)
2009-9-1010:
04
以上设置完成后,打开DHCP管理程序,可以看到作用域已经建立并生效。
如下图:
下载(22.48KB)
2009-9-1010:
04
现在启动XP2主机,看客户端是否可以自动获取到IP和DNS服务器地址。
为了验证,我们在XP2上运行CMD命令,来查看一下当前的网络配置:
下载(81.63KB)
2009-9-1010:
04
可以看到,XP2已经自动获取到了IP和DNS地址。
如果内网没有DHCP服务器,则指需要在网卡属性里手工修改DNS地址即可。
如下图:
下载(41.44KB)
2009-9-1010:
04
第三章
本节将以之前的基础内容作为铺垫,一起探讨DNS客户端查询方面的内容。
DNS客户端的注册信息在DNS服务器中是以记录的方式体现出来的,那么客户端就可以用一些方式进行查询各类记录。
相对应的,服务器会对这些查询进行响应,我们称之为解析,至于DNS内部的工作机制,我们不得而知,但可以通过一些命令和方法间接地了解DNS查询过程。
为了更好的描述这个问题,我做了一张简单的TOPO图,其中DNS1为DNS服务器,主机XP3是一个DNS客户端。
拓扑图如下:
下载(65.7KB)
2009-9-2714:
55
在客户端向DNS服务器提交一个查询消息中,通常都会包含3条基本信息,1、需要制定查询的DNS域名;2、指定查询请求的基本类型;3、DNS域名的指定类别。
对于windows系统的DNS服务器而言,第三条即DNS域名的指定类别总是Internet,即我们常说的IN类别,这个关键字无论是在正向还是反向区域的DNS文件中都可以看的到,我们以正向查找区域的DNS文件为例,如下图:
下载(35.66KB)
2009-9-2714:
55
所以,通常我们在提交一个查询时只需要包含DNS域名和查询请求的类型这两部分内容就可以了,通过一个实例来讲解吧。
在区域内存在2条A记录,如下图:
下载(44.95KB)
2009-9-2714:
55
那么我们在XP3上查询DNS1的A记录。
为了更好的理解整个过程,我们依然会使用wireshark来进行辅助分析。
整个过程如下图:
下载(85.65KB)
2009-9-2714:
55
在上图中用到几个命令,如nslookup、set等,这些命令在DNS应用和排错中用的很普遍。
所以后面会单独有一节来讲这部分内容。
我们再来看看wireshark都发生了什么,整个过程经历了2个步骤。
如下图:
数据包1的分析过程:
下载(179.14KB)
2009-9-2714:
55
数据包2的分析过程:
下载(203.66KB)
2009-9-2715:
00
上面是查询A记录的过程分析,同理,在查询NS记录或者PTR指针记录时也是类似的过程,只是查询的类型和结果不同而已,这里不再熬述。
DNS客户端在第一次查询某条记录时,会按照上述的过程进行,当再次查询时则会首先使用本地缓存信息来解析查询请求,如果有对应的记录则完成此次解析,否则就会向自身的DNS服务器发起查询。
而这样的本地解析依据来源于2个地方,如下:
1、即为本地预先配置的主机名到地址的映射关系,也就是我们常提的HOSTS文件。
2、以及系统保存在查询缓存中的记录。
第四章
在互联网中,一个域名的顺利解析离不开两类域名服务器,只有由这两类域名服务器可以提供“权威性”的域名解析。
第一类就是国际域名管理机构,也就InterNIC,主要负责国际域名的注册和解析,第二类就是国内域名注册管理机构,在中国就是CNNIC了,主要负责国内域名注册和解析,当然,尽管分为国际和国内,但两者一主一辅,相互同步信息,毕竟最终的目的是在全球任何一个有网络的地方都可以顺利访问任何一个有效合法的域名,其间的联系就可见一斑了。
有的朋友可能会有这个疑问,域名服务器不是有很多吗?
为什么说只有2类呢?
是的,ISP何其多?
当我们输入某一网址(或域名),系统将这个域名发送至需要将其当前已配置的DNS服务器,以便转换为IP地址进行访问,通常会是当地的公共DNS服务器(内网环境可能直接提交到防火墙或路由器上做进一步转发处理)。
公网DNS服务器收到此请求后,并非立刻处理,比如转发至上一级的DNS服务器(在第一节讲过DNS有着很严格的逻辑层次关系),而是首先会查看自己的DNS缓存,如果有这个域名对应的IP,则直接返回给用户,系统收到这个IP后交给浏览器做进一步处理。
在这个轮回的过程中,客户端所得到的DNS的回复就是“非权威的性”的,也就是说这个结果并不是来自这个域名所直接授权的DNS服务器,而是该记录的副本。
简单的说,“非权威性”的应答是从别的DNS服务器上复制过来的,与之对应的,就是“权威性”应答则是由域名所在的服务器作出的应答,听起来似乎不易理解,我们来看一个例子。
我所在地是深圳,这里的公共DNS服务器是202.96.134.133,我们来检测一下。
如下图:
下载(30.82KB)
2009-10-2308:
15
这里用到了nslookup命令,用来查询当前本机解析域名所依赖的DNS服务器,从上图中文名可以得知当前默认的DNS解析服务器是,对应的IP地址为202.96.134.133,也就是说在这台机子上运行的网络程序,如果需要用到DNS域名解析的,都会将请求到这个服务器上,寻求解析。
当然,如果你是在内网,或是其他类型的局域网,在解析时候可能无法顺利得到上图的结果,多半是代理或防火墙的缘故。
建议ADSL用户可以自测一下,加深印象。
现在,我们来解析一个网站的别名记录,以此来了解一下何为“非权威性”应答,以网易为例。
如下图:
下载(82.6KB)
2009-10-2308:
15
依照上图步骤就完成了一次CNAME记录的查询,通过这次小测试,希望大家注意一下几点:
1、查询的命令不仅这一种,我们还可以用命令nslookup-qt=cname,返回的结果是一样的。
2、查询的对象需要是一个完整的URL地址,而并非域名,如果想查询对象写出,则默认值返回这个域的ns记录。
如下图:
下载(46.44KB)
2009-10-2308:
15
的子域名还有很多,不同的子域名可能对应不用的NS服务器,这样做的目的是可以更快的相应客户请求,这就用到的服务器的均衡负载技术了。
所以网易的NS服务器也肯定不只这一个。
可以用命令来证实,如下图:
下载(84.9KB)
2009-10-2308:
15
从上图可知,网易的NS服务器至少有2台。
以上所有的信息都是“非权威性”的回应,换句话说,这些记录都保存在深圳的这台DNS服务器上,刚才查询的所有结果均来源于此,自然都是副本信息。
那如何才能找到最原始的解析记录呢?
要想揭开这个疑难,我们需要对DNS的查询原理有一定的认识。
下面是是DNS查询的大致步骤:
1>首先,客户端提出域名解析请求(无论以何种形式或方法),并将该请求发或转发给本地的DNS服务器。
2>接着,本地DNS服务器收到请求后就去查询自己的缓存,如果有该条记录,则会将查询的结果返回给客户端。
(也就是我们看到的““非权威性”的应答”)。
请注意,下面就开始递归查询了:
反之,如果DNS服务器本地没有搜索到相应的记录,则会把请求转发到根DNS(13台根DNS服务器的IP信息默认均存储在DNS服务器中,当需要时就会去有选择性的连接)。
3>然后,根DNS服务器收到请求后会判断这个域名是谁来授权管理,并会返回一个负责该域名子域的DNS服务器地址。
比如,查询的IP,根DNS服务器就会在负责.com顶级域名的DNS服务器中选一个(并非随机,而是根据空间、地址、管辖区域等条件进行筛选),返回给本地DNS服务器。
可以说根域对顶级域名有绝对管理权,自然也知道他们的全部信息,因为在DNS系统中,上一级对下一级有管理权限,毫无疑问,根DNS是最高一级了。
4>本地DNS服务器收到这个地址后,就开始联系对方并将此请求发给他。
负责.com域名的某台服务器收到此请求后,如果自己无法解析,就会返回一个管理.com的下一级的DNS服务器地址给本地DNS服务器,也就是负责管理的DNS。
5>当本地DNS服务器收到这个地址后,就会重复上面的动作,继续往下联系。
6>不断重复这样的轮回过程,直到有一台DNS服务器可以顺利解析出这个地址为止。
在这个过程中,客户端一直处理等待状态,他不需要做任何事,也做不了什么。
7>直到本地DNS服务器获得IP时,才会把这个IP返回给客户端,到此在本地的DNS服务器取得IP地址后,递归查询就算完成了。
本地DNS服务器同时会将这条记录写入自己的缓存,以备后用。
到此,整个解析过程完结。
客户端拿到这个地址后,就可以顺利往下进行了。
但假设客户端请求的域名根本不存在,解析自然不成功,DNS服务器会返回此域名不可达,在客户端的体现就是网页无法浏览或网络程序无法连接等等。