我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

关联:

域名系统 DNS 概述

互联网的域名系统 DNS 被设计为采用客户端-服务器方式的在线分布式数据库系统。DNS 允许大多数名称在本地进行解析(解析意味着转换,而地址解析可能包括多个查询请求和应答过程),只有少量解析需要在互联网上进行通信,因此 DNS 系统非常高效。由于 DNS 是一个分布式系统,即使单台计算机出现故障,也不会妨碍整个 DNS 系统的正常运行。

域名到IP地址的解析,是由分布在上的众多域名服务器程序(简称域名服务器)来完成的。域名服务器程序运行在专门的节点上,人们通常把运行域名服务器程序的机器称为域名服务器。

域名到IP地址的解析过程关键点如下:当应用进程需要将主机名解析为IP地址时,应用进程调用解析程序(),成为DNS客户端,把需要解析的域名放在DNS请求报文中,以UDP用户数据报的形式发送给本地域名服务器(使用UDP是为了减少开销)。本地域名服务器查找到域名后,在应答报文中返回对应的IP地址。应用进程获得目的主机的IP地址后,就可以进行通信了。

如果本地域名服务器无法应答该请求,则该域名服务器暂时成为DS中的另一个客户端,并向其核心域名服务器发送查询请求。这个过程一直持续到找到可以应答该请求的域名服务器为止。

域名结构

互联网采用层次化的树状命名方法,就像全球邮政系统和电话系统一样。在这种命名方法下,任何连接到互联网的主机或路由器都有一个唯一的层次名称,即域名。这里的“域”()是名称空间中可管理的划分。域还可以分为子域,子域又可以进一步分为子域的子域,从而形成顶级域、二级域、三级域等。

从语法上看,每个域名都是由一序列的标签(())组成,每个标签之间用点号(请注意是小数点“.”,不是中文句号“.”)隔开。例如中央电视台收发邮件使用的计算机(即邮件服务器)的域名是由三个标签组成的,其中标签com为顶级域名,标签cctv为二级域名,标签mail为三级域名。

    mail.cctv.com     三级域名.二级域名.顶级域名

DNS规定域名中的标签由英文字母和数字组成,每个标签不超过63个字符(但为了便于记忆,最好不要超过12个字符),不区分大小写字母(例如域名中CCTV或cctv是等同的)。标签中除连字符(-)外不能使用任何其他标点符号。最低级的域名写在最左边,最高级的顶级域名写在最右边。由多个标签组成的完整域名总共不超过255个字符。DNS没有规定一个域名必须包含多少个下级域名,也没有规定每级域名代表什么。每级域名由下一级的域名管理机构管理,最高顶级域名由ICANN管理。这种方式可以使每个域名在整个互联网上都是唯一的,也很容易设计出域名的查找机制。

dns域名解析_域名解析DNS物联网_域名解析DNS设置

域名服务器

域名系统的具体实现是使用分布在各地的域名服务器。DNS采用划分区域的方法来解决这个问题。一台服务器的管辖范围(或权限)称为区域,各单位根据具体情况划分自己管辖的区域。但区域内的所有节点必须都能连通。每个区域设立相应的权限域名服务器(名称),保存该区域内所有主机的域名到IP地址的映射。总之,DNS服务器的管辖范围不是以“域”为单位,而是以“区域”为单位,区域才是DNS服务器的实际管辖范围,区域可以等于或小于域,但一定不能大于域。

图 6-2 是不同区域划分方式的一个例子。假设公司 abc 有下属部门 x 和 y,而部门 x 又细分为三个子部门 u、v、w,y 又有自己的下属部门 t。图 6-2(a)表明公司 abc 只有一个区域。在这种情况下,☒ 和域指的是同一个东西。但是,图 6-2(b)表明公司 abc 划分了两个区域(大公司可能要划分为多个区域): 和 。两个区域都属于域,各自有对应的权威域名服务器。不难看出,区域是“域”的子集。

图 6-3 以图 6-2(b)中公司 abc 划分的两个区域为例,展示了 DNS 域名服务器树形结构图。此 DNS 域名服务器树形结构图可以更准确地反映 DNS 的分布式结构。图 6-3 中的每个域名服务器都可以将一些域名解析为 IP 地址。当某个 DNS 服务器无法将域名转换为 IP 地址时,它会尝试在 上寻找另一个域名服务器进行解析。

从图 6-3 可以看出, 上的 DNS 域名服务器也是按层次结构排列的,每个域名服务器只管辖域名体系的一部分。根据域名服务器所扮演的角色,域名服务器可以分为以下四种不同的类型:

(1)根域名服务器:根域名服务器是最高级别的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有顶级域名服务器的域名和IP地址。根域名服务器是最重要的域名服务器,因为不管哪个本地域名服务器,如果想解析互联网上的任何域名(即转换成P地址),只要它自己不能解析,就必须先求助于根域名服务器。假设所有根域名服务器都瘫痪了,整个互联网上的DNS系统就都不能正常工作了。

互联网的根域名服务器目前只有13个域名(从A到M,13个字母),但这并不意味着根域名服务器由13台机器组成。事实上,在互联网上,有13组设备(13)构成了这13组根域名服务器[W-ROOT]。每组设备在很多位置都安装了根域名服务器(也叫镜像根服务器),但它们都使用同一个域名。

根域名服务器采用技术①,当DNS客户端向某个根域名服务器的IP地址发送查询报文时,互联网上的路由器就能找到距离该DNS客户端最近的根域名服务器,这不仅加快了DNS查询过程,也使互联网资源利用更加合理。

① 注意:任播IP数据报的目的地是一组位于不同位置但具有相同IP地址的主机。IP数据报被投递给距离源最近的主机。

目前,根域名服务器的分布还很不均衡,例如在北美地区,每375万网民才拥有一台根域名服务器,而在亚洲地区,每2000多万网民才拥有一台根域名服务器,这导致亚洲网民的上网速度明显低于北美地区。

需要注意的是,很多情况下,根域名服务器并不会直接把需要查询的域名转换成P地址(根域名服务器也不存储这些信息),而是告诉本地域名服务器下一步应该向哪个顶级域名服务器进行查询。

(2)顶级域名服务器(TLD服务器):这些域名服务器负责管理所有在该顶级域名服务器上注册的二级域名。当收到DS查询请求时,给出相应的答案(可能是最终结果,也可能是下一步要查找的域名服务器的P地址)。

(3)权威域名服务器:负责某个区域的域名服务器。当权威域名服务器无法给出最终查询答案时,它会告诉发出查询请求的 DNS 客户端下一步该去寻找哪个权威域名服务器。例如,在图 6-2(b) 中,区域和子区域各有一个权威域名服务器。

(4)本地域名服务器:本地域名服务器不属于图6-3所示的域名服务器层次结构,但对域名系统来说却非常重要。当主机发送DNS查询请求时,查询请求报文就被发送到本地域名服务器。由此可见本地域名服务器的重要性。每一个服务提供商ISP,或者一所大学,甚至大学里的一个系,都可以有一个本地域名服务器,有时也被称为默认域名服务器。

计算机在使用操作系统时,打开“控制面板”,然后选择“网络和”→“网络和共享中心”→“查看网络状态和任务”→“无线网络连接”(假设使用家庭网络)→“属性”→“协议版本4”→“属性”等项,就可以看到首选DNS服务器和备用DNS服务器的IP地址。这里的DNS服务器指的是本地域名服务器。本地域名服务器距离用户较近,一般不超过几个路由器的距离。当需要查询的主机也属于同一个本地ISP时,本地域名服务器可以立即将查询的主机名转换成自己的IP地址,而不需要询问其他域名服务器。为了提高域名服务器的可靠性,DNS域名服务器将数据复制到几台域名服务器上保存,其中一台为主域名服务器(名),其他为辅助域名服务器(名)。当主域名服务器出现故障时,辅助域名服务器可以保证DNS查询工作不中断。 主域名服务器定期将数据复制到辅助域名服务器,并且数据只能在主域名服务器中更改。这样保证了数据的一致性。

域名解析流程

首先,主机一般采用递归查询的方式向本地域名服务器进行查询。所谓递归查询,就是指如果主机查询的本地域名服务器不知道所查询域名的 IP 地址,那么本地域名服务器就会继续以 DNS 客户端的身份向其他根域名服务器发送查询请求消息(也就是继续替主机进行查询),而不会让主机自己进行下一步的查询。因此,递归查询返回的查询结果要么是需要查询的 IP 地址,要么就是错误,表示无法查询到所需的 IP 地址。

其次,从本地域名服务器向根域名服务器的查询通常都是迭代查询。迭代查询的特点是:当根域名服务器收到本地域名服务器的迭代查询请求消息时,要么给出要查询的IP地址,要么告诉本地域名服务器:“下一步应该查询哪个域名服务器”。然后让本地域名服务器进行后续查询(而不是代替本地域名服务器进行后续查询)。根域名服务器告诉本地域名服务器自己知道的顶级域名服务器的IP地址,并要求本地域名服务器再次向顶级域名服务器进行查询。顶级域名服务器收到本地域名服务器的查询请求后,要么给出要查询的IP地址,要么告诉本地域名服务器下一步应该查询哪个权威域名服务器。本地域名服务器就是这样进行迭代查询的。 最后得知需要解析的域名的IP地址,然后将结果返回给发起查询的主机。当然本地域名服务器也可以使用递归查询,这取决于初始查询请求报文设置要求使用哪种查询方式。

假设有域名的主机想要知道另一台主机(域名)的IP地址,比如该主机想给该主机发邮件,那么就必须知道该主机的IP地址。

下面是图6-5(a)中的几个查询步骤:

①主机首先向其本地域名服务器进行递归查询。

②本地域名服务器采用迭代查询,首先向根域名服务器进行查询。

③根域名服务器告诉本地域名服务器下次应该查询的顶级域名服务器的IP地址。

④本地域名服务器向顶级域名服务器查询。

⑤顶级域名服务器告诉本地域名服务器下次应该查询的权威域名服务器的IP地址。

⑥本地域名服务器向权威域名服务器查询。

⑦权威域名服务器告诉本地域名服务器被查询主机的P地址。

⑧本地域名服务器最终将查询结果告诉主机。

我们注意到这八个步骤一共使用了八个UDP用户数据报报文,经过三次迭代查询后,本地域名服务器从权威域名服务器获取主机的IP地址,并最终将结果返回给发起查询的主机。

图6-5(b)给出了本地域名服务器采用递归查询的情况。这种情况下,本地域名服务器只需要向根域名服务器查询一次,后续的查询都是在其他几个域名服务器之间进行的(步骤③至⑥)。只有在步骤⑦中,本地域名服务器才从根域名服务器那里获得所需的P地址。最后在步骤⑧中,本地域名服务器将查询结果告诉主机。整个查询也使用了8个UDP数据包。

为了提高DNS查询的效率,减轻根域名服务器的负担,减少互联网上的DNS查询报文数量,在域名服务器中广泛使用缓存(有时也叫缓存域名服务器),用于存储最近查询的域名以及从哪里获取域名映射信息。

例如图6-5(a)的查询过程中,如果用户不久前查询过该域名的IP地址,那么本地域名服务器就不需要重新向根域名服务器查询IP地址,而是直接告诉用户缓存中保存的上次查询结果(也就是的IP地址)。

假设本地域名服务器的缓存中没有该IP地址,而是存储了顶级域名服务器的IP地址,那么本地域名服务器也可以直接向com顶级域名服务器发送查询请求报文,而不用去根域名服务器进行查询。这样不仅可以大大减轻根域名服务器的负荷,还可以大大减少上DNS查询请求和应答报文的数量。

由于名称到地址的绑定不会经常更改,为了保持缓存内容的正确性,域名服务器应该为每个项目设置一个计时器,并处理超过合理时间的项目(例如,每个项目仅存储两天)。当域名服务器被请求查询已从缓存中删除的项目时,它必须从权威管理该项目的域名服务器重新获取绑定信息。当权威域名服务器回答查询请求时,它会在响应中指示绑定有效的时间值。增加这个时间值可以减少网络开销,而减少这个时间值可以提高域名转换的准确性。

不仅本地名称服务器需要缓存,主机也需要缓存。许多主机在启动时从本地名称服务器下载整个名称和地址数据库,维护最近使用的域名的缓存,并且仅在缓存中找不到名称时才使用名称服务器。维护本地名称服务器数据库的主机自然会定期检查名称服务器以获取新的映射信息,并且主机必须从缓存中删除无效条目。由于域名不会频繁更改,因此大多数站点无需付出太多努力即可维护一致的数据库。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/4877.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线