DNS 的解析过程以及相关问题
文章目录
- DNS解析过程
- DNS 为什么用 UDP
- 简单说下怎么实现 DNS 劫持
- 谈谈你对域名缓存的了解
DNS解析过程
浏览器首先看看自己浏览器缓存有没有对应的IP记录,同时还要查询一下主机本地文件里面有没有对应的记录,如果有记录就没必要进行后面的步骤了。
浏览器为了进行域名解析,是需要调用解析器的,解析器可以帮助浏览器调用系统的网络功能,解析器就相当于DNS客户端,DNS客户端需要向DNS服务器查询IP地址。网络设置里面就可查询到自己的DNS服务器地址,也就是说我们的电脑里面就有这个地址,如果没有这个地址或者DNS服务器地址设置错误就会出现可以上QQ但是不能浏览网页的情况,因为QQ是直接使用IP地址访问服务器的,这个DNS服务器一般会是最接近我们的本地DNS服务器,这台本地DNS服务器一般由ISP(互联网服务提供商)负责管理,本地DNS服务器在收到请求后会查询自己的缓存,如果有就直接返回IP地址,并且会标注非权威(表示缓存)。
递归查询:如果解析器查询本地DNS服务器不知道被查询的IP地址,那么本地DNS服务器就以DNS客户的形式向根域名服务器发出查询请求报文,而不是解析器自己进行下一步查询,递归查询返回给解析器的结果要么是所要查询的IP地址,要么是报错无法查询到。
迭代查询:当根域名服务器收到本地DNS服务器发出的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地DNS服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的 IP 地址告诉本地DNS服务器,让本地DNS服务器再向顶级域名服务器查询。顶级域名服务器在收到本地DNS服务器的查询请求后,要么给出所要查询的 IP 地址,要么告诉本地DNS服务器下一步应当向哪一个权限域名服务器进行查询。最后,本地DNS服务器得到了所要解析的 IP 地址或报错,然后把这个结果返回给发起查询的解析器。
解析器和本地DNS服务器之间用的是递归的方式传输,本地DNS服务器和三层服务器之间用的是迭代的方式传输。

DNS 为什么用 UDP
其实 DNS 的整个过程是既使用 TCP 又使用 UDP。
当进行区域传送(主域名服务器向辅助域名服务器传送变化的那部分数据)时会使用 TCP,因为数据同步传送的数据量比一个请求和应答的数据量要多,而== TCP 允许的报文长度更长==,因此为了保证数据的正确性,会使用基于可靠连接的 TCP。
当解析器向 DNS 服务器查询域名 ( 域名解析) 的时候,一般返回的内容不会超过 UDP 报文的最大长度,即 512 字节。用 UDP 传输时,不需要经过 TCP 三次握手的过程,从而大大提高了响应速度,但这要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。
简单说下怎么实现 DNS 劫持
DNS 劫持即域名劫持,是通过将原域名对应的 IP 地址进行替换从而使得用户访问到错误的网站或者使得用户无法正常访问网站的一种攻击方式。域名劫持往往只能在特定的网络范围内进行,范围外的 DNS 服务器能够返回正常的 IP 地址。攻击者可以冒充原域名所属机构,通过电子邮件的方式修改组织机构的域名注册信息,或者将域名转让给其它组织,并将新的域名信息保存在所指定的 DNS 服务器中,从而使得用户无法通过对原域名进行解析来访问目的网址。
具体实施步骤如下:
① 获取要劫持的域名信息:攻击者首先会访问域名查询站点查询要劫持的域名信息。
② 控制域名相应的 E-MAIL 账号:在获取到域名信息后,攻击者通过暴力破解或者专门的方法破解公司注册域名时使用的 E-mail 账号所对应的密码。更高级的攻击者甚至能够直接对 E-mail 进行信息窃取。
③ 修改注册信息:当攻击者破解了 E-MAIL 后,会利用相关的更改功能修改该域名的注册信息,包括域名拥有者信息,DNS 服务器信息等。
④ 使用 E-MAIL 收发确认函:在修改完注册信息后,攻击者在 E-mail 真正拥有者之前收到修改域名注册信息的相关确认信息,并回复确认修改文件,待网络公司恢复已成功修改信件后,攻击者便成功完成 DNS 劫持。
用户端的一些预防手段:
直接通过 IP 地址访问网站,避开 DNS 劫持。
由于域名劫持往往只能在特定的网络范围内进行,因此一些高级用户可以通过网络设置让 DNS 指向正常的域名服务器以实现对目的网址的正常访问,例如将计算机首选 DNS 服务器的地址固定为 8.8.8.8。
谈谈你对域名缓存的了解
为了提高 DNS 查询效率,并减轻服务器的负荷和减少因特网上的 DNS 查询报文数量,在DNS服务器中广泛使用了高速缓存,用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
由于名字到地址的绑定并不经常改变,为保持高速缓存中的内容正确,DNS服务器应为每项内容设置计时器并处理超过合理时间的项(例如:每个项目两天)。当DNS服务器已从缓存中删去某项信息后又被请求查询该项信息,就必须重新到授权管理该项的域名服务器绑定信息。当权限服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值(TTL)。增加此时间值可减少网络开销,而减少此时间值可提高域名解析的正确性。
不仅在本地DNS服务器中需要高速缓存,在主机中也需要。许多主机在启动时从本地服务器下载名字和地址的全部数据库维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到名字时才使用域名服务器。维护本地DNS服务器数据库的主机应当定期地检查域名服务器以获取新的映射信息,而且主机必须从缓存中删除无效的项。由于域名改动并不频繁,大多数网点不需花精力就能维护数据库的一致性。
相关文章:
DNS 的解析过程以及相关问题
文章目录DNS解析过程DNS 为什么用 UDP简单说下怎么实现 DNS 劫持谈谈你对域名缓存的了解DNS解析过程 浏览器首先看看自己浏览器缓存有没有对应的IP记录,同时还要查询一下主机本地文件里面有没有对应的记录,如果有记录就没必要进行后面的步骤了。 浏览器…...
个人情况-单词练习
目录 前言原文兴趣爱好特长专业习惯理想志向情境常用单词性别家庭成员正面性格前言 加油 原文 1.come from… 来自…… I come from Shanghai. 我来自上海/我是上海人。 2.born[bɔrn]adj.出生的 be born into + 家庭 出身……的家庭 George was born into a poor fami…...
python天狗吃月 青少年编程电子学会python编程等级考试一级真题解析2022年9月
目录 python天狗吃月 一、题目要求 编程实现 二、解题思路 1、图形分析...
JAVA做语言国际化
项目场景: 问题描述 提示:这里描述项目中遇到的问题: 例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据 APP 中接收数据代码: Overridepublic void run() {bytes mmInStream.read(buff…...
面试题 16.19. 水域大小
题目链接 面试题 16.19. 水域大小 mid 题目描述 你有一个用于表示一片土地的整数矩阵 land,该矩阵中每个点的值代表对应地点的海拔高度。若值为 0 则表示水域。由垂直、水平或对角连接的水域为池塘。 池塘的大小是指相连接的水域的个数。 编写一个方法来计算矩阵…...
在vscode中切换分支,显示已经删除的远程分支
运行命令:修剪远程分支 git remote prune origin 然后远程的已经删除的分支就不见了。...
森林督查违法图斑内业报告高效制作实践技术
Python已成为最热门的编程语言之一,与arcpy、geopandas等行业软件包相结合,能极大程度地减轻森林督查违法图斑内业报告制作的工作量,显著提升工作效率。为了提升广大从业人员在森林违法图斑内业报告制作等方面的技能,内容主要包括…...
华为OD机试-日志限流-2022Q4 A卷-Py/Java/JS
某软件系统会在运行过程中持续产生日志,系统每天运行N单位时间,运行期间每单位时间产生的日志条数保行在数组 records中。records[i]表示第i单位时间内产生日志条数。 由于系统磁盘空间限制,每天可记录保存的日志总数上限为total条。 如果一天…...
ChatGPT能胜任高级程序员吗?
与开发人员信任的其他软件开发工具不同,AI工具在训练、构建、托管和使用方式等方面都存在一些独特的风险。 自2022年底ChatGPT发布以来,互联网上便充斥着对其几乎相同比例的支持和怀疑的论调。不管你是否喜欢它,AI正在逐步进入你的开发组织。…...
effective c++ item 25-29
item25:自定义swap函数 namespace std{template<typename T>void swap(T& a, T& b){T temp(a); // T要满足拷贝构造和拷贝赋值a b;b temp; } }1、Pimpl 2、自定义swap item26:尽可能延后变量的定义 case 1: temp j; for(int i 0; i < n; …...
MasterCAM实体旋转命令相关几个问题:曲线相交于边缘等
MasterCAM版本:2022 目的:通过旋转画杯子边缘主体 内外环直径分别是:56、60mm 命令:实体 - 旋转 问题: 一、处理实体期间错误parasolid(r) kernel 界面错误PK 错误代码:942-曲线相交于边缘 对应参数&a…...
p标签需要设置宽高吗?不用
Dusk: # 引用补丁,开头必须以 -javaagent: 开头,后面跟着补丁的绝对路径(可根据你实际的位置进行修改),注意路径一定要填写正确,且不能包含中文,否则会导致 IDEA 无法启动-javaagent:D:/ja-netfilter/ja-ne…...
Andorid 事件分发机制案例实操与解析
文章目录为什么要理解Android事件分发机制?滑动冲突类问题我们以什么开始?代码如下:activity xml 代码:Activity代码:item_user.xml代码修改后代码如下:Activity xmlactivity代码item_gift.xml问题出现了An…...
Git 版本控制/项目迭代
一、Git的作用/为什么要进行版本控制? 什么是项目迭代? 搞开发的时候我们不是一次性就做好平台的所有功能,而是先上线一个功能差不多的版本让用户用着,然后不断迭代、修改,上线新的版本,所以一个项目就会…...
智慧农业大数据项目建设方案
智慧农业大数据项目建设方案 目录 项目概述.................................... 6...
【数据结构专栏】动态扩容顺序栈详解
💌 博客内容:顺序栈的原理详解 😀 作 者:陈大大陈 🚀 个人简介:一个正在努力学技术的准前段,专注基础和实战分享 ,欢迎私信! 💖 欢迎大家:这…...
Linux命令·ifconfig
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改。Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使…...
大器晚成我服刘邦,48岁才开始创业
读史使人明智,周末放下手机,静下心来读点人文历史。大器晚成我最佩服刘邦,48岁才开始创业 。在此之前,他是一个出身平凡的农民,早年曾多次失败和受挫。刘邦最后能够战胜项羽,常常让人觉得匪夷所思ÿ…...
AndroidStudio快捷键
动态演示:https://blog.csdn.net/weixin_67276852/article/details/124159843?spm1000.2115.3001.6382&utm_mediumdistribute.pc_feed_v2.none-task-blog-hot-11.pc_personrec&depth_1-utm_sourcedistribute.pc_feed_v2.none-task-blog-hot-11.pc_personre…...
机械硬盘的工作原理
每个磁盘的表面都有高速扫过的记录磁头。 每个磁盘上都覆盖着一层薄薄的微小的磁化金属粒。 数据以一种肉眼无法分辨的形式存在。很多组微小颗粒形成的磁化图案记录形成了数据。每一组,又称之为比特(bit)。 所有微粒都按照自身的磁性排列…...
如何快速获取网易云和QQ音乐的精准LRC歌词?这款免费工具帮你一键搞定!
如何快速获取网易云和QQ音乐的精准LRC歌词?这款免费工具帮你一键搞定! 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为音乐播放器缺少歌词而…...
别再折腾Yum源了!用Docker Desktop 10分钟搞定Vulhub靶场(附一键脚本)
10分钟极速搭建Vulhub靶场:Docker Desktop全攻略 在网络安全学习和渗透测试实践中,Vulhub作为开箱即用的漏洞环境集合,已经成为安全研究者的必备工具。然而,传统的Linux环境配置过程往往让初学者望而却步——复杂的Yum源配置、漫…...
如何快速掌握unnpk:网易游戏资源解包的完整入门指南
如何快速掌握unnpk:网易游戏资源解包的完整入门指南 【免费下载链接】unnpk 解包网易游戏NeoX引擎NPK文件,如阴阳师、魔法禁书目录。 项目地址: https://gitcode.com/gh_mirrors/un/unnpk 你是否曾经好奇过网易游戏《阴阳师》中那些精美的角色立绘…...
终极指南:如何在Mac上免费实现NTFS读写功能
终极指南:如何在Mac上免费实现NTFS读写功能 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, mounting, and management for NTFS dri…...
Arm硬件跟踪技术在嵌入式调试中的应用与优化
1. Arm Development Studio 跟踪技术深度解析在嵌入式系统开发领域,调试实时性要求高的系统一直是个棘手问题。传统断点调试会中断程序执行流,而日志输出又可能影响系统时序。Arm Development Studio提供的硬件跟踪技术完美解决了这一痛点——它能以纳秒…...
【NotebookLM高阶假设工程】:为什么87%的研究者卡在第2步?3类典型失效模式+实时调试SOP
更多请点击: https://intelliparadigm.com 第一章:NotebookLM假设构建辅助 NotebookLM 是 Google 推出的基于用户上传文档进行可信问答与推理的 AI 工具,其核心能力之一是支持“假设构建”(Hypothesis Generation)——…...
Windows驱动存储管理终极指南:DriverStore Explorer高效清理系统驱动垃圾
Windows驱动存储管理终极指南:DriverStore Explorer高效清理系统驱动垃圾 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Windows驱动存储管理是系统管理员和高级用户面临的…...
Cortex-M中断优先级配置与优化实践
1. 中断处理机制基础解析在嵌入式系统开发中,中断处理是最核心的机制之一。Cortex-M系列处理器采用嵌套向量中断控制器(NVIC)来管理中断优先级,其设计哲学是允许高优先级中断打断低优先级中断的执行,形成中断嵌套。这种机制确保了关键任务能够…...
目标检测Neck进化史:从FPN到BiFPN,为什么PAN是承上启下的关键?
目标检测Neck进化史:从FPN到BiFPN,为什么PAN是承上启下的关键? 在计算机视觉领域,目标检测一直是核心任务之一。随着深度学习的发展,目标检测器的架构逐渐形成了Backbone-Neck-Head的标准范式。其中,Neck作…...
ARM指令集架构与安全指令解析:APAS、ASR与AUT
1. ARM指令集架构概述在处理器设计领域,指令集架构(Instruction Set Architecture, ISA)定义了处理器与软件之间的契约。作为RISC(精简指令集计算机)架构的代表,ARM指令集以其高效能和低功耗特性࿰…...
