您的位置:首页 > 其它

DNS详解(原理及常用命令)

2014-05-28 11:13 513 查看
DNS 是Domain Name System (域名系统) 的缩写,是一种按域层次结构组织计算机和网络的命名系统。DNS应用于TCP/IP构建的网络,主要用于Internet。在Internet上,用户记忆由数字组成的IP地址比较困难,所以引入了域名的概念。域名与IP地址之间是一对一(或者多对一)的关系,这样用户就可以避开较难记忆的IP地址,而使用域名来唯一标识网上的计算机。

从理论上讲,可以只使用一个域名服务器,装入Internet上所有的主机名,回答所有对IP地址的查询。但实际上这种做法并不可取,因为Internet规模的巨大,域名服务器会因超负荷而无法正常工作,而且一旦域名服务器出现故障,整个Internet会瘫痪。所以Internet采用一种树状、层次化的主机命名系统,即域名系统DNS。

Internet的DNS是一个联机分布式数据库系统,采用客户/服务器方式。域名系统的基本任务是将字符表示的域名,如www.dlmu.edu.cn,转换成IP协议能理解的IP地址格式,如 202.118.88.88,这种转换就称为域名解析。域名解析通常由专门的域名解析服务器来完成。

1.DNS域名空间

DNS域名空间呈树状结构(如下图) ,它指定了一个用于组织名称的结构化的阶层式域空间。如图:它如同一棵倒立的树,层次结构非常清晰。根域下的7个顶级域都归InterNIC管理。顶级域可以再细分为二级域,如“Microsoft”为公司名称,而二级域又可以分成多级的子域,如example、www,在最下面一层被称为hostname(主机名称),如host-a。



域名的意义就是以一组英文字符串来代替难以记忆的数字。入网的每台主机都具有唯一的一个域名。域名的地址格式为:

计算机主机名.机构名.网络名.顶级域名

例如,大连海事大学本科招生网域名地址是:bkzs.dlmu.edu.cn,等同于202.118.94.18。其中bkzs表示这台主机的名称,dlmu表示大连海事大学,edu表示教育网,cn表示中国,域名的各部分之间用“.”隔开。

域名系统负责对域名到IP地址的转换,为了提高转换效率,Internet上的域名采用了一种由上到下的层次关系,根域(Root Domain)是“.”,它是域名结构中的最高级别,只负责保存顶级域的“DNS服务器-IP地址”的对应关系数据,也就是只负责“.com”,“.net”等顶级域名服务器的域名解析。

Internet的域名空间中的各层次是这样规定的,每一层的DNS服务器只负责管理下一层“DNS服务器-IP地址”的对应关系数据,从而达到均衡负荷、方便快速查询的目的。而且Internet上任何一台DNS服务器都知道根域的DNS服务器地址,因此任何一台DNS服务器当它不知道或解析不了域名时,就会请求根域的帮助,这是DNS服务器协同工作的起点。

2.域名的解析过程

当使用浏览器阅读网页时,在地址栏输入一个网站的域名后,例如www.dlmu.edu.cn,会如何开始解析此域名所对应的IP地址呢?其解析、查询过程如图所示:



DNS解析/查询的过程示意图
(1)首先解析程序会去检查本机的高速缓存记录,如果从高速缓存内即可得知该域名所对应的IP地址,就将此IP地址传给应用程序(本例中为浏览器),如果在高速缓存中找不到,就会到系统查找hosts文件,如果还未找到那么就进行下一步。记住:DNS缓存是内存里的东西,每次关机就没的
(2)接着则向本机指定的DNS服务器请求查询,DNS服务器在收到请求后,会检查是否有相符的数据,反之则进行下一步骤。
(3)若还是无法找到对应的IP地址,那就必须借助其他的DNS服务器了。这时候就会开始进行服务器对服务器之间的查询操作。它首先向根域服务器发出请求查询管理.cn域的DNS服务器地址,根域服务器收到后将管理.cn域的DNS服务器IP地址发送给本地DNS服务器。
(4)本地DNS服务器得到结果后,再向管理.cn域的DNS服务器发出进一步的查询请求,要求得到管理.edu.cn域的DNS服务器地址,管理.cn域的DNS服务器把结果返回本地DNS服务器。
(5)本地DNS服务器得到结果后,再向管理.edu.cn域的DNS服务器发出进一步的查询请求,要求得到管理.dlmu.edu.cn域的DNS服务器地址,管理.edu.cn域的DNS服务器把结果返回本地DNS服务器。
(6)本地DNS服务器得到结果后,再向管理.dlmu.edu.cn域的DNS服务器发出查询www主机IP地址的请求,管理.dlmu.edu.cn域的DNS服务器把解析结果返回本地DNS服务器。
通过上述6个步骤,可以很清楚地了解DNS的查询/解析过程。

3.DNS解析故障

  什么是DNS解析故障?
  一般来说,我们访问的地址都叫做域名,而网络中的任何一个主机都是用IP地址来标识的,也就是说只有知道了这个站点的IP地址才能够成功实现访问操作。
  当DNS解析出现错误时,可能会把一个域名解析成一个错误的IP地址,或者根本不知道某个域名对应的IP地址。这种情况下,我们就无法通过域名访问相应的站点了,这就是DNS解析故障。
出现DNS解析故障主要的症状是:访问站点对应的IP地址没有问题,然而访问他的域名时就会出现错误。
故障解决方法
  (1)用nslookup来判断是否真的是DNS解析故障:
 通过系统自带的nslookup程序来解决。
  第一步:通过“开始->运行->输入CMD”后回车进入命令行模式。
  第二步:输入nslookup命令后回车,将进入DNS查询验证交互式界面。
第三步:命令行窗口中会显示出当前系统所使用的DNS服务器地址,例如笔者的DNS服务器IP为202.118.80.2。
第四步:来输入你要查询的具体域名,比如:ns1.dlmu.edu.cn,按回车键确认。若服务器配置正确,即能看到此域名所对应的IP地址了;假如不能访问的话,那么DNS解析应该是不能够正常进行的。我们会收到DNS request timed out,timeout was 2 seconds等提示信息,这说明我们的计算机确实出现了DNS解析故障。如果DNS解析正常的话,会反馈回正确的IP地址(实验环境)。输入exit后按回车键确认,即可推出nslookup的交互式界面。
C:\>nslookup
Default Server: ns1.dlmu.edu.cn
Address: 202.118.80.2
> www.sinna.com
Server: ns1.dlmu.edu.cn
Address: 202.118.80.2
Non-authoritative answer:
Name: www.sinna.com
Address: 64.95.64.198
  (2)查询DNS服务器工作是否正常:
  通过系统自带的IPCONFIG程序查看计算机的网络配置参数。
  第一步:通过“开始->运行->输入CMD”后回车进入命令行模式。
第二步:输入ipconfig /all命令来查询网络参数。检查网络参数配置的是否正确。
C:\>ipconfig/all
Windows IP Configuration
HostName . . . . . . . . . . . . : dlmu-8c04136ce7
Primary Dns Suffix . . . . . . .:
NodeType . . . . . . . . . . . . : Unknown
IPRouting Enabled. . . . . . . . : No
WINSProxy Enabled. . . . . . . . : No
Ethernet adapter 本地连接:
Connection-specific DNS Suffix .:
Description . . . . . . . . . . . : Realtek RTL8168/8111 PCI-E GigabitEthernet NIC
Physical Address. . . . . . . . . : 00-21-97-EB-76-C1
DhcpEnabled. . . . . . . . . . . : No
IPAddress. . . . . . . . . . . . : 172.23.202.23
SubnetMask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 172.23.202.1
DNSServers . . . . . . . . . . . : 202.118.80.2
第三步:在ipconfig /all显示信息最后一行显示DNS SERVERS信息,这就是DNS服务器地址。例中是202.118.80.2。
第四步:如果所用DNS服务器地址是外网地址,出现错误时,可以考虑更换其它DNS服务器地址。如果所用DNS服务器地址是内部网络地址,在DNS服务器上进行nslookup操作看是否可以正常解析。
  (3)清除DNS缓存信息
  当主机在应用程序中使用域名时,首先到DNS缓存列表中查询,查询失败,则请求DNS服务器查询。当某条信息发生变化时,若主机仍在DNS缓存列表中进行查询,就得不到最新解析信息,这样就会出现DNS解析故障。这时我们应该通过清除DNS缓存的命令来解决故障。
  第一步:通过 开始->运行->输入“CMD”进入命令行模式。
  第二步:在命令行模式中输入:ipconfig /flushdns,就可以清除DNS缓存中的信息。
第三步:执行ipconfig /flushdns命令后,屏幕出现下面的提示时就说明当前计算机的DNS缓存信息已经被成功清除。
C:\>ipconfig/flushdns
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: