DNS原理总结及其解析过程详解

DNS原理总结及其解析过程详解,第1张

域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域(domain)”,因此就出现了“域名”这个名词。“域名系统”明确地指明这种系统是应用在因特网中。

我们都知道,IP地址是由32位的二进制数字组成的。用户与因特网上某台主机通信时,显然不愿意使用很难记忆的长达32位的二进制主机地址。即使是点分十进制IP地址也并不太容易记忆。相反,大家愿意使用比较容易记忆的主机名字。但是,机器在处理IP数据报时,并不是使用域名而是使用IP地址。这是因为IP地址长度固定,而域名的长度不固定,机器处理起来比较困难。

因为因特网规模很大,所以整个因特网只使用一个域名服务器是不可行的。因此,早在1983年因特网开始采用层次树状结构的命名方法,并使用分布式的域名系统DNS。并采用客户服务器方式。DNS使大多数名字都在本地解析(resolve),仅有少量解析需要在因特网上通信,因此DNS系统的效率很高。由于DNS是分布式系统,即使单个计算机除了故障,也不会妨碍整个DNS系统的正常运行。

域名到IP地址的解析是由分布在因特网上的许多域名服务器程序共同完成的。域名服务器程序在专设的结点上运行,而人们也常把运行域名服务器程序的机器称为域名服务器。

域名到IP地址的解析过程的要点如下:当某一个应用需要把主机名解析为IP地址时,该应用进程就调用解析程序,并称为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用程序获得目的主机的IP地址后即可进行通信。

若本地域名服务器不能回答该请求,则此域名服务器就暂时称为DNS的另一个客户,并向其他域名服务器发出查询请求。这种过程直至找到能够回答该请求的域名服务器为止。此过程在后面作进一步讨论。

由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。这里,“域”(domain)是名字空间中一个可被管理的划分。

从语法上讲,每一个域名都是有标号(label)序列组成,而各标号之间用点(小数点)隔开。

这是中央电视台用于手法电子邮件的计算机的域名,它由三个标号组成,其中标号com是顶级域名,标号cctv是二级域名,标号mail是三级域名。

DNS规定,域名中的标号都有英文和数字组成,每一个标号不超过63个字符(为了记忆方便,一般不会超过12个字符),也不区分大小写字母。标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的字符写在最右边。由多个标号组成的完整域名总共不超过255个字符。DNS既不规定一个域名需要包含多少个下级域名,也不规定每一级域名代表什么意思。各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由ICANN进行管理。用这种方法可使每一个域名在整个互联网范围内是唯一的,并且也容易设计出一种查找域名的机制。

域名只是逻辑概念,并不代表计算机所在的物理地点。据2006年12月统计,现在顶级域名TLD(Top Level Domain)已有265个,分为三大类:

如果采用上述的树状结构,每一个节点都采用一个域名服务器,这样会使得域名服务器的数量太多,使域名服务器系统的运行效率降低。所以在DNS中,采用划分区的方法来解决。

一个服务器所负责管辖(或有权限)的范围叫做区(zone)。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机到域名IP地址的映射。总之,DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位。区是DNS服务器实际管辖的范围。区 <= 域。

下图是区的不同划分方法的举例。假定abc公司有下属部门x和y,部门x下面有分三个分布们u,v,w,而y下面还有下属部门t。图a表示abc公司只设一个区abc.com。这是,区abc.com和域abc.com指的是同一件事。但图b表示abc公司划分为两个区:abc.com和y.abc.com。这两个区都隶属于域abc.com,都各设置了相应的权限域名服务器。不难看出,区是域的子集。

下图是以上图b中abc公司划分的两个区为例,给出了DNS域名服务器树状结构图。这种DNS域名服务器树状结构图可以更准确地反映出DNS的分布式结构。图中的每一个域名服务器都能够部分域名到IP地址的解析。当某个DNS服务器不能进行域名到IP地址的转换时,它就会设法找因特网上别的域名服务器进行解析。

从下图可以看出,因特网上的DNS服务器也是按照层次安排的。每一个域名服务器只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为下面四种不同的类型。

根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。需要注意的是,在很多情况下,根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。

顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。

权限域名服务器:负责一个“区”的域名服务器。

本地域名服务器:本地服务器不属于下图的域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。

注意:

下面举一个例子演示整个查询过程:

在平时上网中,很多朋友也会遇到DNS服务出现异常的情况,出现故障的原因是DNS服务器出错,无法进行域名解析。那该如何解决呢?下面是我收集整理的DNS服务出现故障自救方法,欢迎阅读。

DNS服务出现故障自救方法

单位网络出现访问故障,经排查,是DNS访问出现了问题。在这种情况下,将“首选DNS服务器”中当地ISP提供的DNS服务器地址改为公众DNS,临时解决了网络故障。

打开电脑IE浏览器,发现IE无法浏览网页了。测试局域网内的常用网页,却没有问题,能访问内网的服务器。在电脑的“开始”→“运行”对话框中输入“cmd”命令,出现“命令提示符”对话框,ping 127.0.0.1和局域网内一台服务器的IP地址,都是通的,说明网卡、内网都是好的。继续ping外网出现“请求找不到主机”提示信息。

故障排查

一般来说,这种现象应该是杀毒软件的“实时监控”所致。同事怀疑是单位统一购买、安装的杀毒软件阻止了外部主机的连接。试着关掉电脑里的网页监控,关掉后一切恢复正常。可是刚刚更新的Win7系统中并没有安装杀毒软件,只安装了一个腾讯的“电脑管家”,所以不存在这样的情况,并且在“电脑管家”中也没有找到对服务器IP进行阻止的选项。在“任务管理器”中查看“进程”选项卡,CPU占用率也显示一切正常。

正当百思不得其解时,另外一位同事也出现了网络故障,也是可以上内网,但外网上不去。因此,笔者推测这不是一两台电脑的问题,应该是普遍性的问题。至此,可以断定是本地电信的DNS解析服务出现故障。

故障解决

既然是DNS不能访问,不妨采用更改DNS设置的方法解决。打开“控制面板”,然后进行如下操作:

1、双击“网络和 Internet”图标,在弹出的“网络和共享中心”对话框中点击“查看网络状态和任务”。

2、双击“本地连接”图标,在弹出的“本地连接状态”对话框中单击左下角“属性”按钮。

3、在弹出的“本地连接属性”对话框中选择“Internet协议版本4(TCP/IPv4)”,并单击右边的“属性”按钮

4、在“使用下面的IP地址”栏中,将“首选DNS服务器”中当地ISP提供的DNS服务器地址改为“114.114.114.114”,点击“确定”完成操作。

这样,将“本地连接”中的DNS服务器地址稍加修改,上网就恢复正常了。

那么,“114.114.114.114”是什么DNS地址呢?在这里解释一下,114DNS是除GoogleDNS及OpenDNS之外的全球第三个公众DNS,服务比较稳定,目前已经有几百万用户在使用114DNS。其他的像8.8.8.8或者8.8.4.4,我也试过,一样好用,这是一个应急处理的好办法。

紧接着,单位各部门的同事纷纷打来求助电话,皆是因为DNS系统出现服务故障而无法上网。由于我们及时地找到了问题的根源,所以在处理用户问题时就可以轻松应对了。据统计,在我们解决无法上网的问题中,只有Win7的用户会碰到这种情况,而使用Win XP系统的用户就没有遇到过这样的'问题。看来,尽管Win7界面做得非常漂亮,但用起来并不是那么顺手。

经验总结

在平时上网中,很多朋友也会遇到DNS服务出现异常的情况,出现故障的原因是DNS服务器出错,无法进行域名解析。那该如何解决呢?一般常规的解决步骤如下:

1. 检查计算机的物理连接

无论是台式机还是笔记本电脑,都应检查连接网线的水晶头是否接触良好。有时候是路由器或网卡的问题,无法与ISP的DNS服务连接,遇到这种情况,可以把路由器关一会儿再打开,或者重新设置路由器。

2. 使用ping命令测试网络中域名解析是否正常

Ping目标服务器的IP地址,然后按回车键。如果ping命令成功执行,就可以确定计算机之间可以正常连接和域名解析。但如果看到“请求超时” ,说明本地计算机可能有问题。

3. 启用“设备和打印机”

在“控制面板”→“网络和Internet”→“网络和共享中心”→“网络”中,可以看到是否安装了打印机与文件共享。验证:如果在“网络”中看不到自己的机器,表明没有安装打印机与文件共享,本地机没有联网。

4. 网络防火墙的问题

有时防火墙设置不当,如安全等级过高,错误的防火墙策略等,可尝试检查设置策略、降低防火墙安全等级或直接关掉,试试是否恢复正常。

5. 更改PC上的DNS地址

因特网是利用DNS标准来实现将域名解析为相应的IP地址,因此DNS对改变网络环境非常重要,如果DNS错误的话就无法上网。可以在“首选DNS服务器”中手动指定DNS服务,还可以在“备用DNS服务器”中填入其他公共DNS地址。

相关文章:


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/279319.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-21
下一篇2023-04-21

发表评论

登录后才能评论

评论列表(0条)

    保存