上一篇文章(什么是DNS)中,我们解释了 DNS 所涉及到的一些术语,接下来我们来看看 DNS 这个系统是如何工作的?

从高层次上看,这个系统非常简单,但是当你关注细节时,它又非常复杂。总的来说,它是一个非常可靠的基础设施,对于构建我们当今的互联网,是至关重要的。

根服务器

如前所述,DNS 的核心是一个分层系统。在这个系统的顶部是所谓的 “根服务器”。这些服务器由各种组织控制,并由 ICANN(互联网名称和数字地址分配公司)授权。

目前正在使用的根服务器有 13 个。但是,由于每分钟都要解析的名称数量多得令人难以置信,所以实际上每个根服务器都有镜像服务器。有关这个一个有趣的事情是,每个根服务器与它的镜像服务器共享同一个 IP 地址。当你对某个根服务器发出请求时,请求会被路由到该根服务器离你最近的镜像服务器。

这些根服务器做什么的?根服务器处理有关顶级域名信息的请求。因此,如果某个请求低级别名称服务器无法解析,则会向该域的根服务器进行查询。

根服务器不知道实际托管域名的位置。然而,他们会将请求引导到处理特定请求的顶级域名的名称服务器。

因此,如果向根服务器发出对 “www.wikipedia.org” 的请求,则根服务器不能在它的记录文件中找到与 “www.wikipedia.org” 匹配的记录。

但是它会找到 “org” TLD 的记录,并把负责 “org” 地址的名称服务器的地址发回给请求者。

TLD 服务器

请求者然后向负责该请求的顶级域名的 IP 地址(由根服务器给予)发送新请求。

对于我们的例子,它会发送想负责 “org” 域名的名称服务器发送一个请求,看看它是否知道 “www.wikipedia.org” 在哪里。

同样,该名称服务器也不会在记录文件中找到 “www.wikipdia.org” 记录。

但是,它会找到负责 “wikipedia.org” 的名称服务器的 IP 地址。这样就越来越接近我们想要的答案了。

域名级别名称服务器

此时,请求者知道了具体负责该资源的实际 IP 地址的名称服务器的 IP 地址。它向该名称服务器发送一个新的请求,再次询问它是否可以解析 “www.wikipedia.org”。

名称服务器检查其区域文件,并发现它有与 “wikipedia.org” 相关联的区域文件。在此文件的内部,有一个 “www” 主机的记录。此记录说明此主机所在的 IP 地址,并向请求者返回最终答案。

请求者是什么?

在上面的场景中,我们引用了 “请求者

在上面的场景中,我们引用了 “请求者”。在这种情况下请求者指的是什么?

在几乎所有情况下,请求者都是我们所谓的 “解析名称服务器”。解析名称服务器是配置着为询问其他服务器的问题的。它基本上是用户的中介,它缓存着先前的查询结果来提高速度,并且知道根服务器的地址,以便能够 “解析” 它还不知道的域名。

基本上,用户通常会在其计算机系统上配置多个解析名称服务器。解析名称服务器通常由 ISP 或其他组织提供。例如,Google 提供了你可以使用的 DNS 解析服务器。这些可以在计算机中自动或手动配置。

当你在浏览器的地址栏中键入网址时,你的计算机将首先查看是否可以在本地找到资源所在的位置。它检查计算机上的 “hosts” 文件和其他几个位置。然后它将请求发送到解析名称服务器,并等待接收资源的 IP 地址。

解析名称服务器首先检查其缓存。如果没有,它将通过上述步骤找到答案。

解析名称服务器基本上压缩了最终用户的请求过程。客户端只需要知道请求资源所在的解析名称服务器,并且确信他们会查询并返回最终答案。

总结

你现在知道了 DNS 的工作原理。但是要实际操作,你依然需要了解有哪些常见的 DNS记录以及它们的作用

DNS如何工作的更多相关文章

  1. 【DNS】简单聊聊DNS如何工作

    随便聊聊 我们知道,网络上传输的数据包是一层一层的包起来的,典型的是mac地址层,ip层,tcp/udp层,应用层数据 这么几个层,那用户在浏览器中打开www.baidu.com数据包如何传到baid ...

  2. 简单谈谈DNS的工作原理及实践

    DNS协议简介 dns(Domain Name System)是一个全球化的分布式数据库系统,用于存储域名和互联网IP地址的映射关系.dns协议是计算机协议栈应用层中,应用最广泛的协议之一.用户每一次 ...

  3. DNS协议工作过程;DNS的安全隐患

    DNS协议工作过程   下面以域名为m.xyz.com的主机欲通过另一个主机的域名y.abc.com的IP地址为例,简述DNS协议过程. 主机m.xyz.com先向其本地服务器dns.xyz.com进 ...

  4. DNS的工作原理及解析

    DNS协议是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 一.什么是DNS? DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次 ...

  5. DNS域名工作原理及解析

    0x00 定义 DNS( Domain Name System)是“域名系统”的英文缩写,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS使用TCP和UDP端口53 ...

  6. centos的DNS服务工作流程及搭建

    1  什么是DNS? DNS(Domain Name Server,域名服务器)即域名解析服务,是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器.DNS ...

  7. 关于dns服务工作的原理,和配置的细节理解。

    dns服务器相关 1,dns原理,也就是迭代,和递归查询.将域名解析为ip的过程. 一次完整的查询请求经过的流程: Client -->hosts文件 -->DNS Service Loc ...

  8. 什么是DNS攻击?它是如何工作的?

    什么是DNS攻击?它是如何工作的? DNS攻击是一种利用域名系统中的弱点或漏洞的网络攻击.今天,互联网已成为我们生活中不可或缺的一部分.从社交到金融.购物再到旅游,我们生活的方方面面都是互联网.由于互 ...

  9. 解决域名DNS解析的故障

    在实际应用过程中可能会遇到DNS解析错误的问题,就是说当我们访问一个域名时无法完成将其解析到IP地址的工作,而直接输入网站IP却可以正常访问,这就是因为DNS解析出现故障造成的.这个现象发生的机率比较 ...

随机推荐

  1. Go语言入门篇-JSON&http调用

    一.Decoder /(一)Decoder func DecoderExample(){ const jsonStream = ` { "Name" : "Ed" ...

  2. CSS - Animate动画

    下载地址:https://daneden.github.io/animate.css/ 关键CSS样式:animate.css 引入CSS样式 <link rel="styleshee ...

  3. Cookie中的httponly的属性和作用

    1.什么是HttpOnly? 如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安 ...

  4. eclipse控制台界面乱码问题

    一.首先,eclipse的控制台必须用GBK编码,必须满足以下两个条件: 1.Windows---->Preferences---->Workspace---->Text file ...

  5. 腾讯云CentOS 7搭建简单Tomcat+nginx集群

    1.安装Tomcat 进入 /usr/local/ 目录 cd /usr/local 下载 wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v ...

  6. SaltStack安装部署

    SaltStack安装部署 安装: 一. master: 1. 配置yum源安装 # rpm --import https://repo.saltstack.com/yum/redhat/6/x86_ ...

  7. SQL SERVER DATEPART函数

    定义: DATEPART函数返回指定日期的指定部分. 语法: DATEPART(datepart,date) 参数: ①datepart 参数可以是下列的值: datepart 缩写 年(Year) ...

  8. Springmvc使用注解实现执行定时任务(定时器)

    1.在Spring配置文件中添加 <task:annotation-driven/> 2.在需要调用执行定时任务的类中使用注解 @Service @Lazy(false) //避免spri ...

  9. 链表操作Java实现

    单链表 存储结构 public class ListNode { int i; ListNode next; ListNode(int i) { this.i = i; } public String ...

  10. Centos系统修改docker默认网络参数

    刚Yum装完发现是没有网上所说的/etc/default/docker文件的,自己vim后其实也是不生效的. 因为Docker的systemd启动脚本(/usr/lib/systemd/system/ ...