❶ DNS原理总结及其解析过程详解
域名系统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进行域名解析的过程
1、 客户机将域名查询请求发送到本地DNS服务器,当本地DNS服务器接到查询后,首先在该服务器管理的区域的记录中查找,如果找到该记录,则利用此记录进行解析;如果没有区域信息可以满足查询要求,则在本地缓存中查找。
2、 如果本地服务器樱态不能在本地找到客户机查询的信息,将客户机请求发送到根域名DNS服务器。
3、 根域名服务器负责解析客户机请求的根域部分,它将包含下一级域名信息的DNS服务器地址返回给客户机的DNS服务器地址。
孝颂姿4、 客户机的DNS服务器利用根域名服务器解析的地址访问下一级DNS服务器,得到再下一级域我的DNS服务器地址。
按上述递归方法逐级接近查询目标,最后在有目标域名的DNS服务器上巧绝找到相应IP地址信息。客户机的本地DNS服务器将递归查询结果返回客户机。客户机利用从本地DNS服务器查询得到的IP访问目标主机,就完成了一个解析过程。
❸ dns解析什么意思
DNS解析什么意思?
DNS解析是指DNS服务器将域名转换成IP地址的过程。在互联网上,每个网址都对应着一个唯一的IP地址,这个IP地址可以唯一地定位到一台服务器上。由于人类更习惯用域名来访问网站,因此需要将域名和IP地址进行对应。
原理:
当客户端输入要访问的域名时,DNS服务器会先查询自己的缓存,如果缓存中存在对应的IP地址,则直接返回该IP地址;如果缓存中没有,则继续向上级DNS服务器发起查询,直至查询到根DNS服务器。
根DNS服务器是互联网上最高级别的DNS服务器,它存储着所有一级域名的IP地址。当根DNS服务器庆亮差收到查询请求时,会返回下一级DNS服务器的IP地址,例如.com,.org等顶级域名服务器的IP地址。
依此类推,逐级向下查询,直至找到对应的IP地址,然后将该地址返回给客户端,这样客户端才能正常访问网站。
优化:
由于DNS解析的过程需要进行多次网络查询,因此在高并发环境下,每次DNS解析的时间可能会累计成较长的时间,影响用户的访问体验。
为了优化DNS解析的速度,可以采取以下措施:
1. DNS缓存:在本地计算机和路由器中设置DNS缓存,可有效减轻DNS解析的负担,提高查询速度。
2. DNS负载均衡:通过设置多个DNS服务器,并使用负载均衡算法将查询请求分配到不同的DNS服务器中,以提高解析速度。
3. CDN加速:利用CDN技术,在全球分布式节点部署DNS服务器,使用户就近访问誉皮服务器,降低DNS解析时间。
安全:
DNS解析在互联网上占据了重要的地位,但也存在安全问题。
例如DNS劫持,是指黑客在域名服务器或DNS缓存中植入恶意的解析结果,使用户输入正确的域名时,被指向恶意的IP地址从而遭受攻击。为了防范DNS劫持,需要运用数字证书及数字签名技术,确保DNS服务器发布的解析结果的完整性和真实性。
此外,还应加强对DNS服务器的安全管理,防范黑客攻击。
结论:
DNS解析是指将域名转换成IP地址的过程,它是互联网上十分重要的技术之一。在优化DNS解析的同时,也需要关注安全问题,增强DNS服务器的安全键握防范措施,确保用户访问的安全性。
❹ 举例说明DNS三种解析方法的工作过程
● 指定的 DNS 域名,表示为完全合格的域名 (FQDN) 。
● 指定的查询类型,它可根据类型指定资源记录,或作为查询操作的专门类型。
● DNS域名的指定类别。
对于DNS 服务器,它始终应指定为 Internet 类别。例如,指定的名称可以是计算机的完全合格的域名,如hosta.hello.company.com,并且指定的查询类型用于通过该名称搜索地址资 源记录。系统将把DNS 查询当作客户机向服务器提出的两部分问题,如“对于名为 hostname.hello.company.com 的计算机,你有没有地址资源记录?”当客户机从服务器接收应答时,它读取并解释应答的地址资源记录,以了解它通过名称提问的计算机的 IP 地址。
DNS 查询以各种不同的方式进行解析。客户机有时也可通过使用从以前查询获得的缓存信息就地应答查询。DNS 服务器可使用其自身的资源记录信息缓存来应答查询,也可代表请求客户机来查询或联系其他 DNS 服务器,以完全解析该名称,并随后将应答返回至客户机。这个过程称为递归。
另外,客户机自己也可尝试联系其他的 DNS 服务器来解析名称。如果客户机这么做,它会使用基于服务器应答的独立和附加的查询,该过程称作迭代。
总之,DNS 的查询过程按两部分进行:首选,名称查询从客户机开始并传送至解析程序(DNS客户服务)进行解析;其次,不能就地解析查询时,可根据需要查询DNS服务器来解析名称。DNS 查询的过程如下图所示。
如查询过程的初始步骤所示,DNS 域名由本机的程序使用。该请求随后传送至 DNS 客户服务,以通过使用就地缓存的信息进行解析。如果可以解析查询的名称,则查询将被应答,并且此过程完成。其中,本地
解析程序的缓存可从以下2个可能的来源获取名称信息:
● 如果主机文件就地配置,则来自该文件的任何主机名称到地址的映射都将在DNS 客户服务启动时预先加载到缓存中。
● 从以前DNS查询应答的响应中获取的资源记录将被添加至缓存并保留一段时间。
如果此查询不匹配缓存中的项目,则解析过程继续进行,客户机查询 DNS 服务器来解析名称。
接下来查询 DNS 服务器,当本地的DNS不能就地解析查询时,可根据需要查询 DNS 服务器来解析名称。如图4-1所示,客户机将查询首选 DNS 服务器。在此过程中使用的实际服务器是从全局列表中选择的。当 DNS 服务器接收到查询时,首先检查它能否根据在服务器的就地配置区域中获取的资源记录信息作出权威性的应答。如果查询的名称与本地区域信息中的相应资源记录匹 配,则服务器作出权威性的应答,并且使用该信息来解析查询的名称。
如果查询的名称没有区域信息,则服务器检查它能否通过本地缓存的先前查询信息来解析名称。如果从中发现匹配的信息,则服务器使用它应答查询。接着,如果首选服务器可使用来自其缓存的肯定匹配响应来应答发出请求的客户机,则此次查询完成。
如果查询名称在首选服务器中未发现来自缓存或区域信息的匹配应答,则查询过程可继续进行,使用递归来完全解析名称,包括来自其他 DNS 服务器的支持,以帮助解析名称。在默认情况下,DNS 客户服务要求服务器在返回应答前使用递归过程来代表客户机完全解析名称。在大多数情况下,DNS 服务器的默认配置支持递归过程,如下图所示。
为了使 DNS 服务器正确执行,首先需要在DNS 域名空间内存放其他DNS服务器的一些有用的联系信息。该信息以根线索的形式提供,它是记录初步资源的一个列表,可用来定位一些 DNS 服务器,这些服务器对 DNS 域名空间树的根具有绝对控制权。根服务器对 DNS 域名空间树中的根域和顶级域具有绝对控制权。DNS 服务器可通过使用根线索搜索根服务器来完成递归过程。
例如,当客户机查询单个DNS服务器时,考虑使用递归过程来定位名称 host.example.microsoft.com。此过程在 DNS 服务器和客户机首次启动,并且没有可帮助解析名称查询的当地缓存信息时进行。
首先,首选服务器分析全名并确定对于顶级域com具有绝对控制权的服务器的位置。随后,对com DNS 服务器使用迭代查询,以获取microsoft.com服务器的参考信息。然后参考性应答从microsoft.com服务器传送到 example.microsoft.com的 DNS 服务器。最后,与服务器 example.microsoft.com 联系上。因为该服务器包括作为其配置区域一部分的查询名称,所以,它向启动递归的源服务器作出权威性的应答。当源服务器接收到表明已获得对请求查询的权威 性应答的响应时,它将此应答转发给发出请求的客户机,这样,递归查询过程就完成了。
在实际应用过程中可能会遇到DNS解析错误的问题,就是说当我们访问一个域名时无法完成将其解析到IP地址的工作,而直接输入网站IP却可以正常访问,这就是因为DNS解析出现故障造成的。这个现象发生的机率比较大,所以本文将从零起步教给各位读者一些基本的排除DNS解析故障的方法。
一、什么是DNS解析故障?
一般来说像我们访问的www.163.com这些地址都叫做域名,而众所周知网络中的任何一个主机都是IP地址来标识的,也就是说只有知道了这个站点的IP地址才能够成功实现访问操作。
不过由于IP地址信息不太好记忆,所以网络中出现了域名这个名字,在访问时我们这需要输入这个好记忆的域名即可,网络中会存在着自动将相应的域名解析成IP地址的服务器,这就是DNS服务器。能够实现DNS解析功能的机器可以是自己的计算机也可以是网络中的一台计算机,不过当DNS解析出现错误,例如把一个域名解析成一个错误的IP地址,或者根本不知道某个域名对应的IP地址是什么时,我们就无法通过域名访问相应的站点了,这就是DNS解析故障。
出现DNS解析故障最大的症状就是访问站点对应的IP地址没有问题,然而访问他的域名就会出现错误。
二、如何解决DNS解析故障:
当我们的计算机出现了DNS解析故障后不要着急,解决的方法也很简单。
(1)用nslookup来判断是否真的是DNS解析故障:
要想百分之百判断是否为DNS解析故障就需要通过系统自带的NSLOOKUP来解决了。
第一步:确认自己的系统是windows 2000和windows xp以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。
第二步:输入nslookup命令后回车,将进入DNS解析查询界面。
第三步:命令行窗口中会显示出当前系统所使用的DNS服务器地址,例如笔者的DNS服务器IP为202.106.0.20。
第四步:接下来输入你无法访问的站点对应的域名。例如笔者输入www.softer.com,假如不能访问的话,那么DNS解析应该是不能够正常进行的。我们会收到DNS request timed out,timeout was 2 seconds的提示信息。这说明我们的计算机确实出现了DNS解析故障。
小提示:如果DNS解析正常的话,会反馈回正确的IP地址,例如笔者用www.sohu.com这个地址进行查询解析,会得到name:sohu.com,addresses:61.135.133.103,61.135.133.104的信息。
2)查询DNS服务器工作是否正常:
这时候我们就要看看自己计算机使用的DNS地址是多少了,并且查询他的运行情况。
第一步:确认自己的系统是windows 2000和windows xp以上操作系统,然后通过“开始->运行->输入CMD”后回车进入命令行模式。
第二步:输入ipconfig /all命令来查询网络参数。
第三步:在ipconfig /all显示信息中我们能够看到一个地方写着DNS SERVERS,这个就是我们的DNS服务器地址。例如笔者的是202.106.0.20和202.106.46.151。从这个地址可以看出是个外网地址,如果使用外网DNS出现解析错误时,我们可以更换一个其他的DNS服务器地址即可解决问题。
第四步:如果在DNS服务器处显示的是自己公司的内部网络地址,那么说明你们公司的DNS解析工作是交给公司内部的DNS服务器来完成的,这时我们需要检查这个DNS服务器,在DNS服务器上进行nslookup操作看是否可以正常解析。解决DNS服务器上的DNS服务故障,一般来说问题也能够解决。
(3)清除DNS缓存信息法:
当计算机对域名访问时并不是每次访问都需要向DNS服务器寻求帮助的,一般来说当解析工作完成一次后,该解析条目会保存在计算机的DNS缓存列表中,如果这时DNS解析出现更改变动的话,由于DNS缓存列表信息没有改变,在计算机对该域名访问时仍然不会连接DNS服务器获取最新解析信息,会根据自己计算机上保存的缓存对应关系来解析,这样就会出现DNS解析故障。这时我们应该通过清除DNS缓存的命令来解决故障。
第一步:通过“开始->运行->输入CMD”进入命令行模式。
第二步:在命令行模式中我们可以看到在ipconfig /?中有一个名为/flushdns的参数,这个就是清除DNS缓存信息的命令。
第三步:执行ipconfig /flushdns命令,当出现“successfully flushed the dns resolver cache”的提示时就说明当前计算机的缓存信息已经被成功清除。
第四步:接下来我们再访问域名时,就会到DNS服务器上获取最新解析地址,再也不会出现因为以前的缓存造成解析错误故障了。
(4)修改HOSTS文件法:
修改HOSTS法就是把HOSTS文件中的DNS解析对应关系进行修改,从而实现正确解析的目的。因为在本地计算机访问某域名时会首先查看本地系统中的HOSTS文件,HOSTS文件中的解析关系优先级大于DNS服务器上的解析关系。
这样当我们希望把某个域名与某IP地址绑定的话,就可以通过在HOSTS文件中添加解析条目来实现。
第一步:通过“开始->搜索”,然后查找名叫hosts的文件。
第二步:当然对于已经知道他的路径的读者可以直接进入c:\windows\system32\drivers\etc目录中找到HOSTS文件。如果你的系统是windows 2000,那么应该到c:\winnt\system32\drivers\etc目录中寻找。
第三步:双击HOSTS文件,然后选择用“记事本”程序将其打开。
第四步:之后我们就会看到HOSTS文件的所有内容了,默认情况下只有一行内容“127.0.0.1 localhost”。(其他前面带有#的行都不是真正的内容,只是帮助信息而已)
第五步:将你希望进行DNS解析的条目添加到HOSTS文件中,具体格式是先写该域名对应的IP地址,然后空格接域名信息。例如笔者添加了“211.153.80.1 www.fte.gov.cn”与“10.82.0.1 www.fte.gov.cn”两个条目。
第六步:设置完毕后我们访问www.fte.gov.cn时就会自动根据是在内网还是外网来解析了。
三、总结:
通过上面介绍的四个步骤,我们就可以解决大部分DNS解析问题了,这几个方法中前三个是循序渐进的一步步解决DNS解析故障,而最后一个修改HOSTS文件则是在实在没有办法的时候,一种权宜之计。当然不管是通过哪种方法,我们都可以解决因为DNS解析错误带来的网络故障。
❺ dns服务器中如何将域名映射到IP地址
步骤如下:
1、DNS的解析过程,主要有以下几个步骤:1.如果现在要访问某网站站点,客户机会提出解析请求,并且将请求发送给本地的域名服务器。
5、重复上一步,直到查询到正确晌或前的缓存记录为止。
6、本地域名服务器将查到的结果保存到缓存中,为下一次的使用做好准备,与此同时会将结果返回给客户机。