精华内容
下载资源
问答
  • DNS的工作原理及解析

    万次阅读 2016-12-22 11:54:08
    本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作。我的目标是,读完此文后,你就能完全理解DNS。 一、什么是DNS? DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机...
    DNS协议是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。
    


    一、什么是DNS?

    DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。你可以把它想象成一本巨大的电话本。
    举例来说,如果你要访问域名math.stackexchange.com,首先要通过DNS查出它的IP地址是151.101.129.69。
    如果你不清楚为什么一定要查出IP地址,才能进行网络通信,建议先阅读我写的《互联网协议入门》。

    DNS就是这样的一位“翻译官”,它的基本工作原理可用下图来表示:


    二、DNS域名空间结构

    域名系统作为一个层次结构和分布式数据库,包含各种类型的数据,包括主机名和域名。DNS数据库中的名称形成一个分层树状结构称为域命名空间。


    根域:DNS域名使用中规定由尾部句点'.'来指定名称位于根或者更高层次的域层次结构。

    顶级域:用来指示某个国家、地区或者组织。采用三个字符,如com -> 商业公司,edu -> 教育机构,net -> 网络公司,gov -> 非军事政府机构等等。

    二级域:个人或者组织在Internet使用的注册名称。采用两个字符,如:cn -> 代表中国,jp -> 日本,uk -> 英国,hk -> 香港等等。

    主机:主机名处于域名空间结构中的最底层,主机名和域名结合构成FQDN,主机名是FQDN最左端的部分。

    三、DNS的获取流程

    DNS是应用层协议,事实上他是为其他应用层协议工作的,包括不限于HTTP和SMTP以及FTP,用于将用户提供的主机名解析为IP地址。
    具体过程如下:
    ①用户主机上运行着DNS的客户端,就是我们的PC机或者手机客户端运行着DNS客户端了。
    ②浏览器将接收到的url中抽取出域名字段,就是访问的主机名,比如http://www.baidu.com/,并将这个主机名传送给DNS应用的客户端。
    ③DNS客户机端向DNS服务器端发送一份查询报文,报文中包含着要访问的主机名字段(中间包括一些列缓存查询以及分布式DNS集群的工作)。
    ④该DNS客户机最终会收到一份回答报文,其中包含有该主机名对应的IP地址。
    ⑤一旦该浏览器收到来自DNS的IP地址,就可以向该IP地址定位的HTTP服务器发起TCP连接。

    四、DNS服务的体系架构

    DNS服务的作用:把域名解析为IP地址,将IP地址解析为域名。

    假设运行在用户主机上的某些应用程序(如Webl浏览器或者邮件阅读器)需要将主机名转换为IP地址。这些应用程序将调用DNS的客户机端,并指明需要被转换的主机名。(在很多基于UNIX的机器上,应用程序为了执行这种转换需要调用函数gethostbyname())。用户主机的DNS客户端接收到后,向网络中发送一个DNS查询报文。所有DNS请求和回答报文使用的UDP数据报经过端口53发送(至于为什么使用UDP,请参看为什么域名根服务器只能有13台呢? - 郭无心的回答)经过若干ms到若干s的延时后,用户主机上的DNS客户端接收到一个提供所希望映射的DNS回答报文。这个查询结果则被传递到调用DNS的应用程序。因此,从用户主机上调用应用程序的角度看,DNS是一个提供简单、直接的转换服务的黑盒子。但事实上,实现这个服务的黑盒子非常复杂,它由分布于全球的大量DNS服务器以及定义了DNS服务器与查询主机通信方式的应用层协议组成。

    五、DNS为什么不采用单点的集中式的设计方式,而是使用分布式集群的工作方式?
    DNS的一种简单的设计模式就是在因特网上只使用一个DNS服务器,该服务器包含所有的映射,在这种集中式的设计中,客户机直接将所有查询请求发往单一的DNS服务器,同时该DNS服务器直接对所有查询客户机做出响应。尽管这种设计方式非常诱人,但它不适用当前的互联网。因为当今的因特网有着数量巨大并且在持续增长的主机,这种集中式设计会有单点故障,通信容量(上亿台主机发送的查询DNS报文请求,包括但不限于所有的HTTP请求,电子邮件报文服务器,TCP长连接服务),远距离的时间延迟(澳大利亚到纽约的举例),维护开销大(因为所有的主机名-IP映射都要在一个服务站点更新)等问题。

    DNS服务器一般分三种,根DNS服务器,顶级DNS服务器,权威DNS服务器。

    六、DNS服务的工作过程

    当 DNS 客户机需要查询程序中使用的名称时,它会查询本地DNS 服务器来解析该名称。客户机发送的每条查询消息都包括3条信息,以指定服务器应回答的问题。
    ● 指定的 DNS 域名,表示为完全合格的域名 (FQDN) 。
    ● 指定的查询类型,它可根据类型指定资源记录,或作为查询操作的专门类型。
    ● DNS域名的指定类别。
    对于DNS 服务器,它始终应指定为 Internet 类别。例如,指定的名称可以是计算机的完全合格的域名,如im.qq.com,并且指定的查询类型用于通过该名称搜索地址资源记录。
    DNS 查询以各种不同的方式进行解析。客户机有时也可通过使用从以前查询获得的缓存信息就地应答查询。DNS 服务器可使用其自身的资源记录信息缓存来应答查询,也可代表请求客户机来查询或联系其他 DNS 服务器,以完全解析该名称,并随后将应答返回至客户机。这个过程称为递归。
    另外,客户机自己也可尝试联系其他的 DNS 服务器来解析名称。如果客户机这么做,它会使用基于服务器应答的独立和附加的查询,该过程称作迭代,即DNS服务器之间的交互查询就是迭代查询。

    DNS的查询过程如下所示:


    1、在浏览器中输入www . qq .com 域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
    2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
    3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
    4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
    5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(http://qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找http://qq.com域服务器,重复上面的动作,进行查询,直至找到www . qq .com主机。
    6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
    从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。


    展开全文
  • DNS( Domain Name System)是“域名系统”英文缩写,它作为将域名和IP地址相互映射一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53[1]。当前,对于每一级域名长度限制是63个字符,域名...

    0x00 定义

        DNS( Domain Name System)是“域名系统”的英文缩写,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53[1]。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

        开始时,域名的字符仅限于ASCII字符的一个子集。2008年,ICANN通过一项决议,允许使用其它语言作为互联网顶级域名的字符。使用基于Punycode码的IDNS系统,可以将Unicode字符串映射为有效的DNS字符集。因此,诸如“XXX.中国”、“XXX.美国”的域名可以在地址栏直接输入并访问,而不需要安装插件。但是,由于英语的广泛使用,使用其他语言字符作为域名会产生多种问题,例如难以输入,难以在国际推广等。
        简单来说就是一个将域名翻译成ip地址的系统。

    总结以下几点:

    1)映射域名与IP

    2)使用TCP/UDP:53端口

    3)每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符

    4)早期的DNS是只支持英文域名解析。在IDNs(国际化域名Internationalized Domain Names)推出以后,为了保证兼容以前的DNS,所以,对IDNs进行punycode转码,转码后的punycode就由26个字母+10个数字,还有“-”组成。

    例如:企鹅.com,用Punycode转换后为:xn--hoq754q. com

              中国.cn,用Punycode转换后为:xn--fiqs8s. cn

     

    0x01 域名结构

        DNS 系统采用的是分布式的解析方案,整个 DNS 架构是一种层次树状结构,这个树状结构称为 DNS 域名空间,如图:

        树状结构最顶层称为根域,用 “.” 表示,相应服务器称为根服务器,整个域名空间解析权都归跟服务器所有,但根服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了一些顶级域,然后将不同顶级域解析权分别委派给相应的顶级域服务器,如将 com 域 的解析全委派给 com 域服务器,以后但凡跟服务器收到以 com 结尾的域名解析请求,都会转发给com 域服务器,同样道理,为了减轻顶级域的压力,又下设了若干二级域,二级域又下设三级域或主机

    根域
    位于域名空间最顶层,一般用一个 “.” 表示

    顶级域
    一般代表一种类型的组织机构或国家地区,如 net、com、org、edu、gov、mil、cn、jp、hk

    二级域
    用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如 .cn 顶级域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn …

    子域
    二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名

    主机
    主机位于域名空间最下层,就是一台具体的计算机,如 www、mail、都是具体的计算机名字,可用www.sina.com.cn.、mail.sina.com.cn. 来表示,这种表示方式称为 FQDN (完全合格域名),也是这台主机在域名中的全名

    0x02 DNS记录

    转载了一篇比较全的DNS记录说明,可以看一下

    下面说一下比较常见一些记录信息

    A/AAAA、CNAME、MX、NS、TXT、SPF
    下面挨个介绍一下。

    A记录/AAAA记录

    IPv4:
    • 示例:ns1.exmaple.com. IN A 198.51.100.2
    • 解释:【domain】 IN A 【IP地址】
    IPv6:
    • 示例:ns1.exmaple.com. IN AAAA 8fe0::8f61:ac8:30cd:a16e
    • 解释:【domain】 IN AAAA 【IP地址】
      ※IN的意思是「Internet」,不是IN/OUT的「IN」。
    干什么用呢?

    我们在浏览器输入域名后,需要向DNS服务器请求,找到这个域名对应的服务器IP。上面示例就是这么一条记录。
    虽然域名和IP都可以变更,但是相比来说域名变更更加简单和随意。所以当网站更换自己域名的时候,就需要修改这条记录。

    CNAME

    • 示例:sub.example.com. IN CNAME hoge.example.com.
    • 解释:【別名】 IN CNAME 【原名】
    干什么用呢?

    给某一个domain起多个名字。
    类似于,jd.com,jd360.com,jingdong.com虽然是不同名字的域名,但是可以指向同一个原名jd.com。可以让企业的对外展示更加灵活。
    举例:
    jd360.com IN CNAME jd.com
    jingdong.com IN CNAME jd.com
    jd.com IN A 123.123.123.123 (这条是A记录例子)

    MX记录

    • MX记录(Mail Exchange):邮件路由记录
      在DNS上设定,用于将邮箱地址@符号后的域名指向邮件服务器。
    • 示例:example.com. IN MX 10 mail.example.com.
    • 解释:【domain】 IN MX 【优先度】 【邮件服务器】
    干什么用呢?

    当发信侧服务器给受信侧发邮件时,首先会要求DNS服务器解析受信侧邮箱地址中@后面部分的域名对应的MX记录(DNS的写法可以理解成example.com 的A记录下面,有一行上面示例的MX记录,当然邮箱服务器也有对应的A记录)。
    这样,邮件就直接发到对应的MX记录的A记录里的IP了。
    例子:给test@exmaple.com发邮件的话,
    DNS会返回给发信侧198.51.100.3这个IP

    exmaple.com. IN A 198.51.100.2
    example.com. IN MX 10 mail.example.com.
    mail.example.com. IN A 198.51.100.3

    ※如果是普通用户通过【exmaple.com】浏览主页,那么DNS继续返回 198.51.100.2 。这个其实也需要DNS判断请求服务器是邮件服务器还是普通的访问。

    NS记录

    • 指定域名解析服务器。
    • 示例:example.com. IN NS ns1.example.com.
    • 解释:【domain】 IN NS 【DNS服务器】
    干什么用呢?

    指定该域名由哪个DNS服务器来进行解析。

    TXT记录

    • 示例:ns1.exmaple.com. IN TXT "联系电话:XXXX"
    • 解释:【domain】 IN TXT 【任意字符串】
    干什么用呢?

    一般指某个主机名或域名的说明,或者联系方式,或者标注提醒等等。

    SPF记录

    SPF记录是TXT记录的一个运用。后面的备注需要按照指定的格式才能有效。

    • 示例:exmaple.com. IN TXT "v=spf1 ip4:198.51.100.1 ~all"
    • 解释:【domain】 IN TXT 【送信侧邮件服务器确认规则】
    干什么用呢?

    从发信侧服务器设定到DNS上的这条记录中,读取信息,判断发信侧是否合法。
    如果不符合规则,那么按照约定的规则处理掉。
    跟MX记录正好相反。
    MX:我是收件服务器,你找我时,请参考我设定到DNS服务器上的MX记录。
    SPF:我是发信服务器,你接受邮件时,请参考我设定到DNS服务器上SPF规则。如果不是我发的信,你可以删掉或者接收。

    SPF记录规则
    1. 格式:
      版本 空格 定义 空格 定义 (空格 定义的循环)
      跟着例子看的话,比较好理解。
      example.com. IN SPF "v=spf1 ip4:192.0.2.1 -all"

      • v=spf1 是版本。只出现一次。
      • ip4:192.0.2.1 第一个定义
      • -all 第二个定义
    2. 定义的格式。

      • 种类
        | all | ip4 | ip6 | a | mx | ptr | exists | include|
      • 前缀
        "+" Pass(通过)
        "-" Fail(拒绝)
        "~" Soft Fail(软拒绝)
        "?" Neutral(中立)
    3. 定义测试
      测试时,将从前往后依次测试每个定义。
      如果一个定义命中了要查询的 IP 地址,则由相应定义的前缀决定怎么处理。默认的前缀为+。
      如果测试完所有的 定义也没有命中,则结果为 Neutral。
      结果及处理方法一览

    结果说明服务器处理办法
    Pass 发件IP是合法的 接受来信
    Fail 发件 IP 是非法的 退信
    Soft Fail 发件 IP 非法,但是不采取强硬措施 接受来信,但是做标记
    Neutral SPF 记录中没有关于发件 IP 是否合法的信息 接受来信
    None 服务器没有设定 SPF 记录 接受来信
    PermError 发生了严重错误(例如 SPF 记录语法错误) 没有规定
    TempError 发生了临时错误(例如 DNS 查询失败) 接受或拒绝


    0x03DNS服务器类型
        因特网上的域名服务器用来存储域名的分布式数据库,并为DNS客户提供域名解析。它们也是按照域名层次来安排的,每一个域名服务器都只对域名体系中的一部分进行管辖。根据它们的用途,域名服务器有以下几种不同类型。
    (1)主域名服务器:负责维护这个区域的所有域名信息,是特定的所有信息的权威信息源。也是说,主域名服务器内所存储的是该区域的正本数据,系统管理员可以对它进行修改。从DNS域名空间可以看出,根域是最大的,但因为他的工作方式是委派,委派给顶级域进行解析,所以其实主域名服务器就是顶级域服务器
    (2)辅助域名服务器:当主域名服务器出现故障、关闭或负载过重时,辅助域名服务器作为备份服务提供域名解析服务。辅助域名服务器中的区域文件内的数据是从另外一台域名服务器复制过来的,并不是直接输入的,也是说这个区域文件只是一份副本,这里的数据是无法修改的。
    (3)缓存域名服务器:可运行域名服务器软件但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的回答,一旦获取一个答案,将它放在高速缓存中,以后查询相同的信息时用它予以回答。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。
    (4)转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求时,在其缓存中查找,如找不到把请求依次转发到指定的域名服务器,直到查询到结果为止,否则返回无法映射的结果。
     
    0x04 域名解析过程

     域名解析总体可分为一下过程:
    (1) 输入域名后, 先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据.
    (2) 如果没有, 就向上级域名服务器进行查找, 依次类推
    (3) 最多回溯到根域名服务器, 肯定能找到这个域名的IP地址
    (4) 域名服务器自身也会进行一些缓存, 把曾经访问过的域名和对应的IP地址缓存起来, 可以加速查找过程

    具体过程可描述如下:
    1. 主机先向本地域名服务器进行递归查询
    2. 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
    3. 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址
    4. 本地域名服务器向顶级域名服务器进行查询
    5. 顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址
    6. 本地域名服务器向权限服务器进行查询
    7. 权限服务器告诉本地域名服务器所查询的主机的IP地址
    8. 本地域名服务器最后把查询结果告诉主机

    上文我们提出了两个概念:递归查询和迭代查询
    (1)递归查询:本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机
    (2)迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。

    通俗地说,递归就是把一件事情交给别人,如果事情没有办完,哪怕已经办了很多,都不要把结果告诉我,我要的是你的最终结果,而不是中间结果;如果你没办完,请你找别人办完。
    迭代则是我交给你一件事,你能办多少就告诉我你办了多少,然后剩下的事情就由我来办。

    下面采用了Amazon的例子

    1. 用户打开 Web 浏览器,在地址栏中输入 www.example.com,然后按 Enter 键。
    2. www.example.com 的请求被路由到 DNS 解析程序(即本地DNS服务器),这一般由用户的 Internet 服务提供商 (ISP) 进行管理,例如有线 Internet 服务提供商、DSL 宽带提供商或公司网络。
    3. ISP 的 DNS 解析程序将 www.example.com 的请求转发到 DNS 根名称服务器。
    4. ISP 的 DNS 解析程序再次转发 www.example.com 的请求,这次转发到 .com 域的一个 TLD 名称服务器。.com 域的名称服务器使用与 example.com 域相关的四个 Amazon Route 53 名称服务器的名称来响应该请求。
    5. ISP 的 DNS 解析程序选择一个 Amazon Route 53 名称服务器,并将 www.example.com 的请求转发到该名称服务器。
    6. Amazon Route 53 名称服务器在 example.com 托管区域中查找 www.example.com 记录,获得相关值,例如,Web 服务器的 IP 地址 (192.0.2.44),并将 IP 地址返回至 DNS 解析程序。
    7. ISP 的 DNS 解析程序最终获得用户需要的 IP 地址。解析程序将此值返回至 Web 浏览器。DNS 解析程序还会将 example.com 的 IP 地址缓存 (存储) 您指定的时长,以便它能够在下次有人浏览 example.com 时更快地作出响应。有关更多信息,请参阅存活期 (TTL)。
    8. Web 浏览器将 www.example.com 的请求发送到从 DNS 解析程序中获得的 IP 地址。这是您的内容所处位置,例如,在 Amazon EC2 实例中或配置为网站终端节点的 Amazon S3 存储桶中运行的 Web 服务器。
    9. 192.0.2.44 上的 Web 服务器或其他资源将 www.example.com 的 Web 页面返回到 Web 浏览器,且 Web 浏览器会显示该页面。

     

    转载于:https://www.cnblogs.com/alummox/p/11173449.html

    展开全文
  • 技术交流,添加企鹅:167748928...dns解析的过程是这样 第一步:输入域名后,电脑首先看自己有没有对应域名缓存,有缓存就直接用缓存里ip访问。 在windows命令行下可以看到现有的dns缓存 C:\Users\hubaixi.

    点击了解更多技术资料和免费学习视频,加入讨论群:662736393

    技术交流,添加企鹅:167748928

     

    什么是DNS?

    DNS(Domain Name System)域名系统,简单点来说,就是当我们在浏览器输入一个网址,需要有一台DNS服务器帮我们解析成IP地址,我们才能打开这个网站。

    dns解析的过程是这样的

    第一步:输入域名后,电脑首先看自己有没有对应域名的缓存,有缓存就直接用缓存里的ip访问。

    在windows的命令行下可以看到现有的dns缓存

    C:\Users\hubaixin>ipconfig /displaydns

    其中1条缓存

    第二步,如果缓存中没有,则去查询hosts文件,hosts文件在这里

    c:\windows\system32\drivers\etc\hosts

    如图,现在这台电脑的hosts文件里有两个记录,那么这两个域名可以直接从hosts文件里读取

     

    第三步,如果hosts文件里也没找到想解析的域名,则将域名发往自己配置的dns服务器,也叫本地dns服务器

    在windows命令行ipconfig/all可以看到自己的本地dns服务器,如图

     

    第四步,如果本地dns服务器有相应域名的记录,则返回记录。

    电脑的dns服务器一般是各大运营商如电信联通提供的,或者像180.76.76.76,223.5.5.5,4个114等知名dns服务商提供的,本身缓存了大量的常见域名的ip,所以常见的网站,都是有记录的。不需要找根服务器。

     

    第五步,如果电脑自己的服务器没有记录,会去找根服务器。根服务器全球只要13台,回去找其中之一。

    找了根服务器后,根服务器会根据请求的域名,返回对应的“顶级域名服务器”,如:

    如果请求的域名是http://xxx.com,则返回负责com域的服务器

    如果是http://xxx.cn,则发给负责cn域的服务器

    如果是http://xxx.ca,则发给负责ca域的服务器

    常见的顶级域有

    抓包分析

    客户端是192.168.1.34,本地dns服务器是192.168.1.221,当客户端向服务器请求http://www.hunau.edu.cn

    本地服务器向根服务器199.7.91.13转发,这是其中一台根服务器

    在iana上可看到所有的根服务器地址和管理者

    第六步,顶级域服务器收到请求,会返回二级域服务器的地址。

    比如一个网址是http://www.xxx.edu.cn,则顶级域名服务器再转发给负责.http://edu.cn域的二级服务器

    抓包分析

     

    这是由根服务器返回的结果,负责cn域的服务器有这么多,接下来将选择其中一台

    然后负责cn的服务器,返回负责http://edu.cn

    。。。

     

    第七步,以此类推,最终会发到负责锁查询域名的,最精确的那台dns,可以得到查询结果。

    抓包分析,这是http://www.hunau.edu.cn的解析结果

     

    最后一步,本地dns服务器,把最终的解析结果,返回给客户端,对客户端来讲,只是一去一回的事,客户端并不知道本地dns服务器经过了千山万水。

     

    迭代解析:本地服务器,一步步,经过多个步骤得到域名结果的过程

    递归解析:客户端和本地服务器之间,一去一回得到域名结果的过程

    展开全文
  • DNS原理及解析过程详解

    千次阅读 2019-10-23 18:37:41
    DNS原理及解析过程详解什么是DNS域名结构解析DNS解析流程DNS资源记录小知识:DNS服务器分类权威解析服务器递归服务器小知识: 相信大家在平时工作中都离不开DNS解析,DNS解析是互联网访问第一步,无论是使用...

    相信大家在平时工作中都离不开DNS解析,DNS解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流程。下面我们将详细的给大家讲解DNS的相关知识。

    什么是DNS

    DNS就是域名系统,是因特网中的一项核心服务,是用于实现域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

    域名结构解析

    在这里插入图片描述
    如上图所示,域名结构是树状结构,树的最顶端代表根服务器,根的下一层就是由我们所熟知的.com、.net、.cn等通用域和.cn、.uk等国家域组成,称为顶级域。网上注册的域名基本都是二级域名,比如baidu.com、taobao.com等等二级域名,它们基本上是归企业和运维人员管理。接下来是三级或者四级域名,这里不多赘述。总体概括来说域名是由整体到局部的机制结构。

    DNS解析流程

    在这里插入图片描述
    如上图所示,我们将详细阐述DNS解析流程。
    1、首先客户端位置是一台电脑或手机,在打开浏览器以后,比如输入www.zdns.cn的域名,它首先是由浏览器发起一个DNS解析请求,如果本地缓存服务器中找不到结果,则首先会向根服务器查询,根服务器里面记录的都是各个顶级域所在的服务器的位置,当向根请求www.zdns.cn的时候,根服务器就会返回.cn服务器的位置信息。
    2、递归服务器拿到.cn的权威服务器地址以后,就会寻问cn的权威服务器,知不知道www.zdns.cn的位置。这个时候cn权威服务器查找并返回zdns.cn服务器的地址。
    3、继续向zdns.cn的权威服务器去查询这个地址,由zdns.cn的服务器给出了地址:202.173.11.10
    4、最终才能进行http的链接,顺利访问网站。
    5、这里补充说明,一旦递归服务器拿到解析记录以后,就会在本地进行缓存,如果下次客户端再请求本地的递归域名服务器相同域名的时候,就不会再这样一层一层查了,因为本地服务器里面已经有缓存了,这个时候就直接把www.zdns.cn的A记录返回给客户端就可以了。

    DNS资源记录

    在这里插入图片描述
    记录一条域名信息映射关系,称之为资源记录(RR)。
    当我们查询域名www.zdns.cn的时候,查询结果得到的资源记录结构体中有如下数据:
    1、TTL,就是生存周期,是递归服务器会在缓存中保存该资源记录的时长。
    2、网络/协议类型,它的代表的标识是IN,IN就是internet,目前DNS系统主要支持的协议是IN。
    3、type,就是资源记录类型,一般的网站都是都是A记录(IPv4的主机地址)。
    4、rdata是资源记录数据,就是域名关联的信息数据。

    小知识:

    下面我们列出几条常用的资源记录类型:
    A :Address地址, IPv4
    AAAA:Address地址 IPv6
    NS :Name Server域名服务器
    SOA:Start of Authority起始授权机构
    MX:Mail Exchanger邮件交换
    CNAME:Canonical Name规范名
    PTR:Pointer指针
    TXT:Text
    SRV:Service

    DNS服务器的分类

    在这里插入图片描述
    常见的DNS服务器就是两种:权威解析服务器和递归解析服务器。递归解析服务器也可以叫做localDNS。

    权威解析服务器

    DNS权威服务器保存着域名空间中部分区域的数据。如果DNS服务器负责管辖一个或多个区域时,称此DNS服务器为这些区域的权威服务器。
    根权威DNS或者二级权威服务器中的资源记录标记被指定为区域权威服务器的DNS服务器。通过资源记录中列出服务器,其他服务器就认为它是该区域的权威服务器。这意味着在 NS 资源记录中指定的任何服务器都被其他服务器当作权威的来源,并且能肯定应答区域内所含名称的查询。

    递归服务器

    递归服务器在正常情况下,初始的时候里面没有任何域名解析数据,里面所有的域名解析数据都来自于它到权威解析服务器的查询结果,一旦查询完毕,递归服务器就会根据TTL时间在本地形成一条缓存记录,并为用户提供DNS解析的查询服务,这是递归服务器的功能。

    小知识:

    问:当我们修改DNS解析服务记录的时候,我们应该在权威里面修改还是在递归里面修改?
    答:所有的DNS解析记录里面类型的修改都是在权威解析服务器里面做修改。

    展开全文
  • DNS的工作原理及过程

    2011-03-27 22:08:51
    DNS的工作原理及过程分下面几个步骤:  第一步:客户机提出域名解析请求,并将该请求送出给本地的域名办事器。  第二步:当本地的域名办事器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名办事...
  • DNS服务是一种分布式数据库,它提供规范机器名到数字IP地址映射数字IP到规范机器名。 DNS相关定义: 用于主机和IP地址一个有层次结构名字空间; 主机名和地址信息保存在一个分布式数据库中; 一个...
  • DNS解析的工作原理及递归与迭代的区别

    万次阅读 多人点赞 2014-07-18 11:21:02
    什么是DNS?  DNS(Domain Name System)是“域名系统”英文缩写,是一种组织成域层次结构计算机和网络服务命名系统,它用于TCP/IP网络,它从事将...DNS就是样一位“翻译官”,它基本工作原理可用下图来表示。
  • 缓存域名服务器1.1工作原理2.主域名服务器3.从域名服务器三、使用BIND构建域名服务器1.BIND软件安装2.BIND服务器端程序与服务控制3.BIND服务配置文件4.BIND配置文件解析四、构建域名服务器实验部分1.DNS服务器配置...
  • DNS基本工作原理,以及正反向解析和主从同步DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射一个分布式数据库,能够使用户更方便访问互联网,而不用去记住能够被机器直接读取IP数串。...
  • DNS基本工作原理,正反向解析和主从同步:今天给大家介绍一下DNS的基本工作原理以及正反向解析和主从同步的应用;DNS是域名系统(DomainNameSystem),它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中...
  • DNS基本工作原理及正反向解析和主从同步测试域名系统DNS是一个分布式数据库,它在本地负责控制整个分布式数据库部分段,每一段中数据通过客户服务器模式在整个网络上均可存取,通过采用复制技术和缓存技术使得整个...
  • 文章目录1.DNS协议2....域名的解析工作DNS服务器完成。 2.域名层次结构 比如:www.baidu.com com: 一级域名. 表示这是一个企业域名。同级还有 “net”(网络提供商), “org”(⾮盈利组织) .
  • dns基本工作原理 1、客户端:互联网上提出域名查询请求终端。2、根域名服务器:在“域名树”顶端,一次完整域名查询请求入口。3、子域:域名树上下层级关系,下级是上一级子域。如:...
  • dns基本工作原理正反向解析和主从同步一、定义 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射一个分布式数据库,能够使用户更方便访问互联网,而不用去记住能够被机器直接读取...
  • DNS(Domain Name System,域名系统),因特网上作为域名和...通过主机名,最终得到该主机名对应IP地址过程叫做域名解析.DNS服务器类型: 主DNS服务器:维护所负责解析的域内解析库服务器;解析库由管理维护;...
  • DNS的工作原理及过程分下面几个步骤: 第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就...
  • 下面我们将详细的给大家讲解DNS的相关知识。 什么是DNS DNS就是域名系统,是因特网中的一项核心服务,是用于实现域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器...
  • 只是,这一切并非理所应当,五光十色互联网世界之下,是我们在夜以继日地工作。 我是一个普通网络请求。我很渺小,但始终都在履行责任——寻找被指定资源,再将它们交付到我主人手中。就像这座城市中...
  • 我们无法记住多个IP地址网站,所以我们访问网站时,更多是在浏览器地址栏中输入域名,就能看到所需要页面,这是因为有一个叫“DNS服务器”计算机自动把我们域名“翻译”成了相应IP地址,然后调出IP地址...
  • 前言本文分析dns工作过程及原理,给一个简单的dns实现代码流程,并针对linuxandroid下实现dns的不同,分别分析,供学习dns参考。一、DNS功能DNS(Domain Name System,域名系统),dns用于进行域名解析,说白了,...
  • 想必大家都知道当今上网浏览web页面或访问其他服务一般都是用域名来访问,这是由于IP地址不容易记住而且使用不方便,这时候科学家们就发明了域名,从而衍生出了各种大大小小域名解析服务器(DNS,Domain Name ...
  • 什么是DNS? DNS全称是domain name service即:域名解析服务.... 域名DNS解析过程及原理 DNS的工作原理及过程分下面几个步骤: 第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
  • 本文分析dns工作过程及原理,给一个简单的dns实现代码流程,并针对linuxandroid 12 下实现dns的不同,分别分析,供学习dns参考。 一、DNS功能 DNS(Domain Name System,域名系统),dns用于进行域名解析,...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 176
精华内容 70
关键字:

dns的工作原理及解析