DNS作用及工作原理

news2025/1/16 20:14:02

文章目录

  • 1. DNS作用
  • 2 DNS 三个组成部分:
    • 2.1 客户端
    • 2.2Local DNS
    • 2.3 权威域 DNS 服务器
  • 3 工作过程

1. DNS作用

DNS 分为 Client 和 Server,Client 扮演发问的角色,也就是问 Server 一个 Domain Name,而 Server 必须要回答此 Domain Name 的真正 IP 地址,DNS 是怎么来作名称解析的?

2 DNS 三个组成部分:

2.1 客户端

客户端:也就是真正的用户使用终端,对于终端用户而言,复杂的 IP 地址是很难记忆的,因此采用 DNS 解析,可以只需要记住简单好用的域名即可。另外,当应用的 IP 地址调整的时候,客户端也无需知道新的 IP 地址,只需要访问统一的域名。

2.2Local DNS

Local DNS: Local DNS 通常是预先在客户端配置好的 DNS 服务器地址,或者是在用户用
ADSL 等网络服务,通过 DHCP 协议分配的 DNS 服务器地址。Local DNS 是直接面向客户端提
供 DNS 解析服务的。

2.3 权威域 DNS 服务器

权威域 DNS 服务器:权威域 DNS 服务器上配置的域名和 IP 地址的对应关系,提供给 LocalDNS 或者客户端直接查询。当应用的 IP 地址调整的时候,只需要在权威域 DNS 服务器上更改域名和 IP 地址的对应,则所有的客户端或者 Local DNS 查询时就会得到新的对应记录。DNS 服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称。

3 工作过程

在每一个 Local DNS 服务器中都有一个快取缓存区(Cache),这个快取缓存区的主要目的是将该 Local DNS 服务器所查询出来的名称及相对的 IP 地址记录在快取缓存区中,这样当下一次还有另外一个客户端到 Local DNS 服务器上去查询相同的名称时,服务器就不用在到权威域名服务器上去寻找,而直接可以从缓存区中找到该笔名称记录,传回给客户端,加速客户端对名称查询的速度。例如:当 DNS 客户端向指定的 Local DNS 服务器查询互联网上的某一台主机名称,Local DNS服务器会在缓存中找寻用户所指定的名称如果找到该笔名称记录后,则会直接将所对应到的域名和 IP 地址对应记录传回给客户端 ,如果 Local DNS 服务器在本地缓存中找不到对应记录的时候,则会向权威域名服务器查询所要的名称。

图:DNS 工作原理

我们举例说明,假设我们要查询互联网上的一个名称为 www.adntech.com,以下为名称
解析过程的每一步骤。

  1. 在 DNS 的客户端浏览器的地址栏中输入 http://www.adntech.com,则在客户端浏览器本地的 DNS
    客户端首先向本机已经配置或者分配好的 DNS 服务器发起 www.adntech.com的域名解析请求,这里客户端配置的 DNS 服务器我们通常称为 Local DNS 服务器。
  2. 而 Local DNS 服务器先查询是否在本地的缓存中有有效的 www.adntech.com 的
    DNS记录,如果发现有在有效期之内的对应 DNS 记录,则直接返回给 Local DNS 解析的结果。
  3. 查询后如果发现本地缓存中没有这条记录,则直接从本机预先配置好的根 DNS 服务器 IP 地址列表中向某一台根 DNS
    服务器发起请求,查询 www.adntech.com。
  4. 在根 DNS 服务器中,记录了每个顶级域分别是由哪些 DNS 服务器负责,所以它会向发起请求的 Local DNS 服务器返回.com
    域的权威 DNS 服务器记录。
  5. Local DNS 再向.com 的权威 DNS 服务器发起 www.adntech.com 的域名解析请求,在.com 权威 DNS
    服务器向 Local DNS 返回 adntech.com 的权威域名服务器记录对应的 IP 地 址。
  6. Local DNS 再向 adntech.com 的权威域名服务器发起 www.adntech.com 的域名解析请求。这时
    adntech.com 的权威域名服务器向 Local DNS 返回 www.adntech.com 域名所对应的IP 地址。
  7. 客户端的本地 DNS 客户端将解析结果返回给浏览器,则浏览器向 www.adntech.com对应的 IP 地址的 80 端口发起 HTTP GET 指令,Web 服务器则返回相应的请求内容

每一个域名解析记录都有对应的 TTL 值,根据这个 TTL 值所定义的时间,客户端和 LocalDNS 都将会在本地缓存解析得到的结果直到 TTL 值到达,然后再发起新的 DNS 查询请求。对于客户端而言,在 TTL 的有效时间内,如果浏览器或者本机的其他应用程序需要访问这个域名的时候,都无需再进行查询动作,而直接从本地缓存内取得解析结果然后连接对应的 IP地址。对于 Local DNS 而言,在 TTL 有效时间内,任何一个客户端请求,都将直接返回本地缓存的记录,在超过缓存时间后,则重复进行前面的动作,解析域名所对应的 IP 地址。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/387387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL实战解析底层---深入浅出索引

目录 前言 索引的常见模型 InnoDB 的索引模型 索引维护 后言 覆盖索引 最左前缀原则 索引下推 前言 一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样一本500 页的书,如果你想快速找到其中的某一个知识点&…

CentOS安装RStudio-Server的方法

R语言是生信分析、数据挖掘最常用最好用的软件之一,得到了广大生信工程师、数据分析师的厚爱。Rstudio 是 R 的集成开发环境,使得R语言的用户体验更强。一般个人电脑(PC, Personal Computer)使用单机版的 Rstudio 即可&#xff0c…

I.MX6ULL_Linux_系统篇(22) kernel移植

原厂 Linux 内核编译 NXP 提供的 Linux 源码肯定是可以在自己的 I.MX6ULL EVK 开发板上运行下去的,所以我们肯定是以 I.MX6ULL EVK 开发板为参考,然后将 Linux 内核移植到 I.MX6U-ALPHA 开发板上的。 配置编译 Linux 内核 和uboot一样,在编…

C#/Unity------抽象类与接口(一篇文章彻底搞懂...)

抽象类/接口以及区别 SUMMARY: 具体类→抽象类→接口:越来越抽象,内部实现的东西越来越少 一、抽象类 抽象类是未完全实现逻辑的类 抽象类为复用而生,专门用作基类 封装确定的,开放不确定的,推迟到合适的子类来实现…

初识STM32单片机

目录 初识STM32单片机 什么是单片机? STM系列单片机命名规则 STM32F103C8T6单片机简介 标准库与HAL库区别 通用输入输出端口GPIO 什么是GPIO? 定义 命名规则 内部框架图 推挽输出与开漏输出 如何点亮一颗LED灯 编程实现点灯 按键点亮LED灯…

【JavaWeb】CSS基础知识:引入方式 + 选择器

目录 CSS引入 行内样式表 内部样式表 外部样式表 CSS选择器 基础选择器 标签选择器 类选择器 ID选择器 通配符选择器 复合选择器 后代选择器 子选择器 CSS引入 CSS的引入有三种&#xff0c;三种的优缺点各不相同。 行内样式表 <!-- 行内样式表 --><!--…

Splunk Add-on 碰到证书SSL问题

最近Splunk add-on 在连接对方app 的 时候,经常报SSL的错: ERROR AdminManagerExternal - Unexpected error "<class requests.exceptions.SSLError>" from python handler: "HTTPSConnectionPool(host=app.com, port=443): Max retries exceeded with…

flex布局方式让最后一个(或第二个...n)元素居右显示

<div class"round"> <div class"income">收入</div> <div class"center"> <img style"width: 12px" src"../../img/big/up.png"> </div> <div class"rg"> <span cl…

项目实战典型案例1——redis只管存不管删除 让失效时间删除的问题

redis只管存不管删除 让失效时间删除的问题一&#xff1a;背景介绍二&#xff1a;思路&方案三&#xff1a;代码模拟1.错误示范通过班级id查询课程名称执行结果通过班级id修改课程名称&#xff08;并没有删除对应缓存&#xff09;执行结果2.正确示范在错误示范的更新接口上添…

详解进程 及 探查进程

进程的概念PCB是什么task_struct的作用如何执行进程进程的探查什么是bashps命令的使用&#xff08;查看进程&#xff09;创建进程探究父子进程进程的概念 简而言之&#xff0c;进程就是正在在执行的程序 之前说过&#xff0c;程序执行的第一步Windows是双击程序Linux是 ./ &a…

vue路由篇

路由的理解 介绍 路由(英文&#xff1a;route)就是对应关系&#xff0c; 路由分为前端路由和后端路由&#xff0c;比如前端路由就是 Hash 地址与组件之间的对应关系。 具体来说&#xff1a;一个路由就是一组key-value的对应关系 key 为 url 路径value 可能是函数function 或…

反弹shell数据不回显带外查询pikaqiu靶场搭建

P1 文件上传下载&#xff08;解决无图形化和解决数据传输&#xff09; 解决无图形化&#xff1a; 当我们想下载一个文件时&#xff0c;通常是通过浏览器的一个链接直接访问网站点击下载的&#xff0c;但是在实际的安全测试中&#xff0c;我们获取的权限只是一个执行命令的窗口…

Flink 提交模式

Flink的部署方式有很多,支持Local,Standalone,Yarn,Docker,Kubernetes模式等。而根据Flink job的提交模式,又可以分为三种模式: 模式1:Application Mode Flink提交的程序,被当做集群内部Application,不再需要Client端做繁重的准备工作。(例如执行main函数,生成JobG…

sizeof以及strlen的用法以及注意事项

大家都知道&#xff0c;在c中算字符串长度和所占空间大小事不可避免的&#xff0c;甚至再有的时候&#xff0c;我们在写代码的过程中&#xff0c;就会用到这些数据。比如&#xff0c;下面这道题 struct Test { int Num; char *pcName; short sDate; char cha[2]; short sBa[4];…

Git常用命令复习笔记

1. Git与SVN区别&#xff0c;各自优缺点 Git&#xff1a; 分布式&#xff0c;每个参与开发的人的电脑上都有一个完整的仓库&#xff0c;不担心硬盘出问题&#xff1b;在不联网的情况下&#xff0c;照样可以提交到本地仓库&#xff0c;可以查看以往的所有log&#xff0c;等到有…

数据结构刷题(十七):530二叉搜索树最小绝对差、501二叉搜索树中的众数、236二叉树的最近公共祖先、235二叉搜索树的最近公共祖先

一、二叉搜索树的最小绝对差题目链接思路&#xff1a; 中序遍历保留为list for循环找最小绝对差二叉搜索树中序遍历后是有序的数组&#xff01;&#xff01;注意&#xff1a;i 1开始遍历解法&#xff1a;public int getMinimumDifference(TreeNode root) {List<Integer>…

【C++升级之路】第八篇:string类

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【C学习与应用】 ✒️✒️本篇内容&#xff1a;简单介绍string类的概念、string类的常用接口、string类的模拟实现&#xff08;各个常见接口的实现代码&…

初识数据结构——“数据结构与算法”

各位CSDN的uu们你们好呀&#xff0c;今天小雅兰进入一个全新的内容的学习&#xff0c;就是算法和数据结构啦&#xff0c;话不多说&#xff0c;让我们进入数据结构的世界吧 什么是数据结构&#xff1f; 什么是算法&#xff1f; 数据结构和算法的重要性 如何学好数据结构和算…

【开发者思维】优秀开发者应该具备的25个思维习惯

目录 1. 认真思考开发软件的目的 2. 明确软件设计的目标 3. 正确理解工作 4. 保持简洁 5. 控制复杂度 6. 软件维护 7. 保持一致 8. 优先级评测 9. 解决问题 10. 追求优秀即可 11. 预测

【MySQL中有哪些存储引擎?请你说说MySQL中innodb和myisam的区别?InnoDB引擎的三大特性?】

一.MySQL中有哪些存储引擎&#xff1f; InnoDB存储引擎 InnoDB是MySQL的默认事务型引擎&#xff0c;也是最重要、使用最广泛的存储引擎。它被设计用来处理大量的短期(short-lived)事务&#xff0c;应该优先考虑InnoDB引擎。MylSAM存储引擎 在MySQL 5.1及之前的版本&#xff0c…