DNS 解析顺序是怎样的?

2023-11-01

1、DNS 解析过程

当客户端对域名发起访问时,会将解析请求发送给递归解析服务器,递归服务器会代替客户端进行全球递归查询。

首先递归服务器会请求根域名服务器,根域名服务器根据域名后缀,告知对应的顶级域名服务器;递归服务器再向顶级服务器发起请求,顶级域名服务器告知对应的权威服务器;递归服务器向权威服务器发起请求,权威服务器告知解析结果;递归服务器将结果告知客户端,客户端完成访问。

2、DNS 缓存

以上是 DNS 解析的标准流程,但是由于各种 DNS 缓存的存在,导致 DNS 解析环节更为复杂。

所谓 DNS 缓存是指 DNS 返回正确的 IP 地址之后,系统会将这个结果临时储存起来,并为缓存设定一个失效时间(TTL 值),在TTL失效前,当再次访问这个网站,系统就会直接从 DNS 缓存中将结果返回,而不必再次委托递归服务器进行全球解析查询,加快了 DNS 解析的流程。

当然TTL值失效后,系统还会自动再次询问DNS服务器以获取最新的解析结果。

3、DNS 缓存分类

(1)浏览器 DNS 缓存:浏览器会根据一定频率缓存 DNS 记录;

(2)本地 DNS 缓存:如果浏览器缓存中找不到解析记录,就会去询问操作系统中的缓存;

(3)本地 HOSTS 文件:HOSTS 是记录域名与 IP 地址一一映射关系的本地文件。

Windows 系统中位于C:\Windows\System32\drivers\etc;

Linux 系统中位于 /etc/hosts

(4)路由器 DNS 缓存:我们常用的路由器也带有自动缓存功能,路由器 DNS 被篡改会造成域名劫持,将访问网址定位到另外一个服务器;

(5)递归服务器缓存:递归服务器在将解析结果告知客户端的同时,将记录缓存下来,当下次请求同一个域名时,直接会将记录返回,而无需再进行全球查询。

4、DNS 解析顺序

DNS 解析顺序是“先查缓存,再递归解析”,查询顺序为:浏览器缓存 --> 系统缓存 --> 路由器缓存--> 递归服务器缓存 --> 递归查询

我们以 www.example.com 这个域名为例进行查询,具体流程如下:

 

(1)搜索浏览器自带的 DNS 缓存

当收到访问请求后,浏览器首先会查询浏览器自身的 DNS 缓存,这个缓存时间比较短(chrome://net-internals/#dns 这里可以查询缓存的dns记录),且只能容纳 1000条缓存,如果缓存中有对应条目,返回结果,解析到此结束。

(2)查询操作系统缓存和 hosts 本地文件

如果浏览器缓存中没有找到对应条目(ipconfig /displaydns可以查看),操作系统也会有一个域名解析的过程,浏览器会先搜索操作系统的 DNS 缓存中是否有这个域名解析记录,如果有返回结果,解析结束。

此外,电脑本地文件 HOSTS 中可以设定域名到 IP 地址的指向关系。如果 HOSTS 文件中保存有该域名的记录,浏览器会首先使用这个 IP 地址,并将其结果缓存下来,缓存时间同样受域名失效时间和缓存空间大小决定。

(3)查询路由器缓存

如果浏览器和操作系统中没有域名解析记录,就会查询路由器中的 DNS 缓存,如果路由器 DNS 缓存中有解析条目,直接返回结果,解析结束。

(4)递归解析服务器缓存

如果本机和路由器 DNS 缓存中没有该域名的解析记录,浏览器就会向递归服务器发起请求,如果递归服务器缓存有该域名解析条目,返回结果,解析结束。

(5)查询根域名服务器

如果递归服务器缓存中没有结果,就会委托递归服务器发起全球查询,首先递归服务器会向根域名服务器发起解析请求。根域名服务器告知 .com 顶级域名服务器地址。

(6)查询顶级域名服务器

递归服务器向 .com 顶级域名服务器发起 DNS 请求,.com 顶级服务器告知 example.com 所属权威域名服务器地址。

(7)查询权威域名服务器

递归服务器向 example.com 的权威域名服务器地址发起请求,权威服务器告知 www.example.com 所对应的IP地址。

(8)返回解析结果

得到 www.example.com 的 IP 地址后,递归服务器将结果告知客户端,客户端对该 IP 地址发起访问。整个 DNS 解析流程到此结束。

转载:DNS解析顺序是怎样的? - FreeBuf网络安全行业门户

(SAW:Game Over!)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DNS 解析顺序是怎样的? 的相关文章

  • 如何使用内网穿透实现iStoreOS软路由公网远程访问局域网电脑桌面

    文章目录 简介 一 配置远程桌面公网地址 二 家中使用永久固定地址 访问公司电脑 具体操作方法是 简介 软路由 是PC的硬件加上路由系统来实现路由器
  • “性能压测揭密:关键指标分析!“

    在进行全链路压测和性能测试时 需要关注多个关键性能指标 KPIs 来评估系统的性能表现 以下是一些常见的性能测试指标 1 吞吐量 Throughput 系统在单位时间内能够处理的请求数量或事务数量 通常以每秒请求数 RPS TPS 来衡量
  • pandas用法整理

    处理表格数据的时候经常用到pandas 每次用的时候都要去查函数 每次记不住 每次都查 哈哈哈 自己整理一下 码住 一 Pandas的数据类型 进行数据分析时 如何正确使用数据类型 这非常重要 在pandas中的数据类型和python原生数
  • 服务器超线程的好处

    服务器超线程的好处 1 提高性能 超线程通过提高整体系统吞吐量显着提高服务器性能 通过允许多个线程在单个物理内核上同时执行 超线程减少了空闲时间并最大限度地利用了可用资源 这会加快任务执行速度并缩短应用程序的响应时间 尤其是在多线程工作负载
  • Linux中如何查看开启了哪些端口?

    在Linux中 端口是设备与外界通讯交流的出口 常用于指TCP IP协议中的端口 其按照端口号可以分为三类 分别是 公认端口 注册端口 动态端口 那么Linux中如何查看开启了哪些端口 以下是常用命令介绍 1 使用netstat命令 net
  • 如何解决Mybatis-plus与Mybatis不兼容的问题:An attempt was made to call a method that does not exist. The attempt

    博主猫头虎的技术世界 欢迎来到 猫头虎的博客 探索技术的无限可能 专栏链接 精选专栏 面试题大全 面试准备的宝典 IDEA开发秘籍 提升你的IDEA技能 100天精通Golang Go语言学习之旅 领域矩阵 猫头虎技术领域矩阵 深入探索各技
  • 【CTF必看】从零开始的CTF学习路线(超详细),让你从小白进阶成大神!

    最近很多朋友在后台私信我 问应该怎么入门CTF 个人认为入门CTF之前大家应该先了解到底 什么是CTF 而你 学CTF的目的又到底是什么 其次便是最好具备相应的编程能力 若是完全不具备这些能力极有可能直接被劝退 毕竟比赛的时候动不动写个脚本
  • 基于成本和服务质量考虑的不确定性下,电动汽车充电网络基础设施需求预测和迭代优化的分层框架研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • Web 安全漏洞之 OS 命令注入

    什么是 OS 命令注入 上周我们分享了一篇 Web 安全漏洞之 SQL 注入 其原理简单来说就是因为 SQL 是一种结构化字符串语言 攻击者利用可以随意构造语句的漏洞构造了开发者意料之外的语句 而今天要讲的 OS 命令注入其实原理和 SQL
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • Android开发中常见安全问题和解决方案

    前言 开发APP时经常有问到 APP的安全怎么保障 应用程序被PJ了怎么办 手机被人捡去了怎么办 特别在号称 安全第一 风控牛逼 的银行系统内 移动产品安全性仍被持有怀疑态度 那我们来总结下APP安全的方向和具体知识 1 应用程序安全 2
  • 远程控制软件安全吗?一文看懂ToDesk、RayLink、TeamViewer、Splashtop相关安全机制_raylink todesk

    目录 一 前言 二 远程控制中的安全威胁 三 国内外远控软件安全机制 ToDesk RayLink Teamviewer Splashtop 四 安全远控预防 一 前言 近期 远程控制话题再一次引起关注 据相关新闻报道 不少不法分子利用远程
  • 【网安神器篇】——WPScan漏洞扫描工具

    目录 一 Wordpress简介 二 WPScan介绍 三 安装 四 获取token 1 注册账号 2 拿到token 五 使用教程 1 常用选项 2 组合命令 1 模糊扫描 2 指定扫描用户 3 插件漏洞扫描 4 主题漏洞扫描 5 Tim
  • socket网络编程几大模型?看看CHAT是如何回复的?

    CHAT回复 网络编程中常见的有以下几种模型 1 阻塞I O模型 Blocking I O 传统的同步I O模型 一次只处理一个请求 2 非阻塞I O模型 Non blocking I O 应用程序轮询调用socket相关函数检查请求 不需
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • tcpdump抓包

    tcpdump抓包 基本概念 1 类型的关键字 host 指明一台主机 如 host 10 1 110 110 net 指明一个网络地址 如 net 10 1 0 0 port 指明端口号 如 port 8090 2 确定方向的关键字 sr
  • DSCA190V 57310001-PK

    DSCA190V 57310001 PK DSCA190V 57310001 PK 具有两个可编程继电器功能 并安装在坚固的 XP 外壳中 DSCA190V 57310001 PK 即可使用 只需最少的最终用户校准 DSCA190V 573
  • ESP10B 锁定连接器

    ESP10B 锁定连接器 ESP10B 电机新增内容包括双极型号标准 NEMA 尺寸 17 23 和 34 的步进电机现在包括输出扭矩范围从 61 盎司英寸到 1291 盎司英寸的双极型号 该电机配有带锁定连接器的尾缆 可轻松连接 每转可步
  • 服务器中E5和I9的区别是什么,如何选择合适的配置

    随着科技的进步 服务器处理器的性能在不断攀升 其中 Intel的E5和I9系列处理器在业界具有广泛的影响力 而当我们在选择服务器的时候会有各种各样的配置让我们眼花缭乱不知道该怎么去选择 下面我跟大家分享一下E5跟I9有什么区别 方便我们在选
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告

随机推荐

  • 解决UE4缓存使C盘膨胀的问题

    大家好 可能很多新手使用UE4的时候会发现C盘越来越小了 那是因为UE4引擎的缓存文件默认保存在C盘的缘故 下面来告诉大家怎么解决这个问题 概述 一 出现的问题 UE4的缓存文件会导致C盘膨胀 二 解决的方式 请严格按照下列步骤来执行 1
  • springdata JPA@Query注解及@Modifying注解

    Query注解查询适用于所查询的数据无法通过关键字查询得到结果的查询 这种查询可以摆脱像关键字查询那样的约束 将查询直接在相应的接口方法中声明 结构更为清晰 这是Spring Data的特有实现 索引参数与命名参数 1 索引参数如下所示 索
  • c#操作符operate的用法

    operate operate 的用法 看代码 public struct CorePoint
  • 用户自定义类型(User-defined Type)参数的传递

    用户自定义类型 User defined Type 参数的传递 用户自定义类型在VB中是一种重要的数据类型 它为编程者提供了很大的灵活性 使开发人员可以根据需要构造自己的数据结构 它相当于C C 中的结构类型 structure 在VB中
  • 转【】浅谈sql中的in与not in,exists与not exists的区别_

    浅谈sql中的in与not in exists与not exists的区别 1 in和exists in是把外表和内表作hash连接 而exists是对外表作loop循环 每次loop循环再对内表进行查询 一直以来认为exists比in效率
  • 基于Cesium的实景三维模型动态更新-以3Dtiles为例(一)

    一 简介 Cesium众所周知 是一个前端的三维框架 本项目利用Cesium平台来实现实景三维模型的动态更新 不认识Cesium的同学戳这里 cesium中文网 学习cesiumjs 的好地方 伐罗密 实景三维模型 概括来讲就是倾斜摄影三维
  • CocosCreator-3D 3D物体触摸移动(跟随移动)

    版本 cocoscreator3 4 0 基本原理 通过触摸屏幕上的点生成一个射线 通过物理射线检测 获得是否点击到物体 通过射线的检测结果 raycastResults 获得碰撞点 hitPoint 设置物体的x z为碰撞点的x y即可
  • JSP分页处理

    作为代码萌新的我今天尝试做了一个JSP的分页处理 如果有什么不好的地方请在评论区留下建议 废话不多说 先看我做的效果图 我在查询数据的时候使用了异步AJAX 在数据绑定的时候使用的是vue 因为我感觉vue用来绑定数据更方便一点 分页插件使
  • java 实现SMS短信发送

    准备工作 注册账号 http sms webchinese cn reg shtml 查看短信密钥 代码实现 package com activiti test import org apache commons httpclient He
  • Eureka的黑白名单过滤机制(Eureka的注册黑白名单)

    参考链接 Eureka的注册黑白名单 不过这篇博文只提供了实现思路和大致 我这边帮忙把完整代码贴出来 通过springboot的autoconfigure实现 大致思路是用自己定义的Eureka注册包装类替换原来的Eureka注册类 当Eu
  • SpaceX预计到2022年Starlink用户将达到2000万,但最终达到了100万

    SpaceX的Starlink部门还没有接近实现客户和收入的预测 该公司在建立卫星网络之前与投资者分享了这一点华尔街日报报道今天出版 据报道 2015年的一份题为 SpaceX用来从投资者那里筹集资金 的报告预计 到2022年 Starli
  • C++ String去除头尾空格 实现trim()方法

    虽然C 11的标准库中并没有提供trim 方法 但我们可以使用string的find first not of 和find last not of方法实现trim include
  • centos linux介绍,关于CentOS使用的简介

    CentOS对大家来说已经很熟悉 什么是CentOS呢 CentOS Community ENTerprise Operating System 是Linux发行版之一 它是来自于Red Hat Enterprise Linux依照开放源代
  • BUUCTF WEB 强网杯 2019 随便注

    1 题目 2 解题 2 1 尝试点提交 url变为 http b61f33a4 644b 402a 9da5 4bdf8043f954 node4 buuoj cn inject 1 可知传入的参数名为 inject 参数为1 2 2 尝试
  • vector中reserve与resize区别

    vector中reserve与resize区别 一 基本概念 1 capacity 指容器在分配新的存储空间之前能存储的元素总数 2 size 指当前容器所存储的元素个数 二 reserve与resize 1 区别 1 reserve 只修
  • 如何计算当前进程的CPU占用率

    由于测试一个解码器的项目 很长时间都在反复进行domain knowledge的学习 再加上自己是一个测试新手 对于测试代码撰写啥的还很是生嫩 前一阵被要求在性能测试中 最好在测试时能够计算出解码进程的CPU占用率 做为我们参考的一种性能参
  • w10 没有internet信息服务器,win10找不到“internet信息服务(IIS)管理器”怎么办...

    用户在搭建开发环境的时候 找了很久没发现 internet信息服务 IIS 管理器 那么 internet信息服务 IIS 管理器 去哪里了 如果你在win10找不到 internet信息服务 IIS 管理器 不要着急 在这里跟大家分享下具
  • shell脚本基础知识-shell中的特殊符号

    1 代表零个或多个字符或数字 test后面可以没有任何字符 也可以有多个字符 总之有或没有都能匹配出来 2 只代表一个任意的字符 不管是数字还是字母 只要是一个都能匹配出来 3 这个符号在linux中表示注释说明的意思 即 后面的内容lin
  • pip安装更换镜像

    原文链接 使用pip来安装python包有时候安装起来会非常慢 因此需要换成国内的源来加速下载 1 使用命令 以Torch为例 pip install i https pypi tuna tsinghua edu cn simple tor
  • DNS 解析顺序是怎样的?

    1 DNS 解析过程 当客户端对域名发起访问时 会将解析请求发送给递归解析服务器 递归服务器会代替客户端进行全球递归查询 首先递归服务器会请求根域名服务器 根域名服务器根据域名后缀 告知对应的顶级域名服务器 递归服务器再向顶级服务器发起请求