DNS如何工作

上一篇文章(什么是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如何工作的更多相关文章
- 【DNS】简单聊聊DNS如何工作
随便聊聊 我们知道,网络上传输的数据包是一层一层的包起来的,典型的是mac地址层,ip层,tcp/udp层,应用层数据 这么几个层,那用户在浏览器中打开www.baidu.com数据包如何传到baid ...
- 简单谈谈DNS的工作原理及实践
DNS协议简介 dns(Domain Name System)是一个全球化的分布式数据库系统,用于存储域名和互联网IP地址的映射关系.dns协议是计算机协议栈应用层中,应用最广泛的协议之一.用户每一次 ...
- DNS协议工作过程;DNS的安全隐患
DNS协议工作过程 下面以域名为m.xyz.com的主机欲通过另一个主机的域名y.abc.com的IP地址为例,简述DNS协议过程. 主机m.xyz.com先向其本地服务器dns.xyz.com进 ...
- DNS的工作原理及解析
DNS协议是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 一.什么是DNS? DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次 ...
- DNS域名工作原理及解析
0x00 定义 DNS( Domain Name System)是“域名系统”的英文缩写,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS使用TCP和UDP端口53 ...
- centos的DNS服务工作流程及搭建
1 什么是DNS? DNS(Domain Name Server,域名服务器)即域名解析服务,是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器.DNS ...
- 关于dns服务工作的原理,和配置的细节理解。
dns服务器相关 1,dns原理,也就是迭代,和递归查询.将域名解析为ip的过程. 一次完整的查询请求经过的流程: Client -->hosts文件 -->DNS Service Loc ...
- 什么是DNS攻击?它是如何工作的?
什么是DNS攻击?它是如何工作的? DNS攻击是一种利用域名系统中的弱点或漏洞的网络攻击.今天,互联网已成为我们生活中不可或缺的一部分.从社交到金融.购物再到旅游,我们生活的方方面面都是互联网.由于互 ...
- 解决域名DNS解析的故障
在实际应用过程中可能会遇到DNS解析错误的问题,就是说当我们访问一个域名时无法完成将其解析到IP地址的工作,而直接输入网站IP却可以正常访问,这就是因为DNS解析出现故障造成的.这个现象发生的机率比较 ...
随机推荐
- 结构体structure
结构体是值类型 import Foundation struct TV{ var keyName="a" var keyNumber=9 func getKey()->Int ...
- 博客C语言I作业11
一.本周教学内容&目标 第5章 函数 要求学生掌握各种类型函数的定义.调用和申明,熟悉变量的作用域.生存周期和存储类型. 二.本周作业头 这个作业属于哪个课程 c语言程序设计II 这个作业要求 ...
- 什么是时序时空数据库TSDB
时序时空数据库(Time Series & Spatial Temporal Database,简称 TSDB)是一种高性能.低成本.稳定可靠的在线时序时空数据库服务,提供高效读写.高压缩比存 ...
- linux用户和组 之 用户管理
一. linux 用户和组的基本介绍 1.linux下 有三种用户: 1. root: 权限最大的. 2. 系统用户: UID小于1000的.系统服务管理用户,一般是不允许登录系统的.(比如mysql ...
- JZOJ.1002【USACO题库】1.1.3 Friday the Thirteenth黑色星期五
每日一博第一天! 保持你的决心 题目描述 13号又是星期五是一个不寻常的日子吗? 13号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在n年里13 日落在星期一,星期二......星期日的 ...
- Ruby Rails学习中:注册表单,注册失败,注册成功
接上篇 一. 注册表单 用户资料页面已经可以访问了, 但内容还不完整.下面我们要为网站创建一个注册表单. 1.使用 form_for 注册页面的核心是一个表单, 用于提交注册相关的信息(名字.电子邮件 ...
- springboot打包的jar项目,不需要安装jdk环境启动
因为服务器上是JDK7,而springboot至少用JDK8才行,但是又因为是很老的项目,不是很清楚能不能换JDK8,有风险,因此选择以前项目用JDK7,而新的springboot用JDK8.步骤一: ...
- k8s之statefulSet-有状态应用副本集控制器
1.概述 无状态应用更关注群体,任何一个成员都可以被取代,有状态应用关注的是个体.用deployment控制器管理的nginx.myapp等都属于无状态应用,像mysql.redis.zookeepe ...
- Centos7.3安装Oracle11.2.0.3
1.创建用户用户组 [root@smallcloud ~]# groupadd oinstall [root@smallcloud ~]# groupadd dba [root@smallcloud ...
- 将磁盘从FAT格式转换为NTFS格式的方法
不需要进行格式化,只需在命令提示符中输入如下内容:CONVERT X:/FS:NTFS把X换成你需要的盘符,转一个盘需十几或几十秒不等..注意:此方法不可逆转,FAT32转到NTFS后不可转回,当然也 ...