当前位置: 首页 > news >正文

计网八股--DNS的域名解析过程?

深入浅出:DNS 域名解析全过程 —— 从输入网址到打开网页

每次在浏览器输入网址按下回车,背后都有一场精密的"全球寻址"接力赛。DNS 就是那张让人类记住名字、机器识得数字的全球电话簿。


目录

  • 一、什么是 DNS?
  • 二、域名空间结构
  • 三、DNS 解析完整过程
  • 四、DNS 缓存机制
  • 五、常见 DNS 记录类型
  • 六、常见问题与排查
  • 七、总结

一、什么是 DNS?

1.1 为什么需要 DNS?

计算机之间通信靠的是IP 地址(如223.5.5.5),但人类根本记不住一串串数字。于是DNS(Domain Name System,域名系统)登场了。

记忆对象例子谁能记住
域名www.baidu.com人类 ✅
IP 地址110.242.68.66计算机 ✅

💡核心观点:DNS 就像手机的通讯录—— 你记名字(域名),它负责翻译成号码(IP),拨号的事情交给系统。

1.2 DNS 的三个核心功能

功能说明类比
域名解析域名 → IP📖 查电话簿
域名反向解析IP → 域名📖 倒查电话簿
负载均衡一个域名映射多个 IP📞 客服分线

二、域名空间结构

2.1 树形分层的域名体系

域名不是一坨字符串,而是分层的树形结构,从右往左逐级递进。

根域 (.) └── 顶级域 .com / .cn / .org └── 二级域 baidu.com / google.com └── 三级域 www.baidu.com / blog.csdn.net

www.example.com为例,从右往左:

层级部分含义
根域.域名树的根,全球共 13 组根服务器
顶级域(TLD).com商业机构、国家代码等
二级域example组织自己注册的名称
主机名www具体的服务器主机

💡记住:域名解析顺序是从右往左逐级查询,先找根,再找顶级,再找二级,最后定位到主机。


三、DNS 解析完整过程

3.1 递归查询 vs 迭代查询

DNS 查询分两种角色配合完成:

查询类型谁是"办事人"特点
递归查询客户端 → 本地 DNS 服务器只管"要结果",查不到层层转交
迭代查询本地 DNS → 各级服务器被问者只回复"该问谁",逐级指路

3.2 一次完整的解析流程(访问 www.example.com)

浏览器(你) 本地DNS 根服务器 .com服务器 example服务器 │ ① 浏览器缓存查:没有 │ │ │ │ │───────────────────▶ │ │ │ │ │ ② 系统/路由器缓存查:没有 │ │ │ │ │───────────────────▶ │ │ │ │ │ ③ 递归查询 │ │ │ │ │───────────────────────────▶ │ ④ 迭代:根服务器在哪? │ │ │ │ │──────────────────────▶ │ │ │ │ │ ⑤ 去问 .com 顶级域 │ │ │ │ │◀────────────────────── │ │ │ │ │──────────────────────▶ │ │ │ │ │ ⑥ 去问 example 权威 │ │ │ │ │◀────────────────────── │ │ │ │ │──────────────────────▶ │ │ │ │ │ ⑦ 返回 IP 并缓存 │ │ │ │◀─────────────────────────── │ │ │ │ │ ⑧ 浏览器拿到 IP,建立连接发起请求 │ │ │
步骤查询方被查询方结果
①②浏览器/系统各级缓存未命中,继续
浏览器本地 DNS(递归)委托本地 DNS 全权处理
本地 DNS根服务器告诉你 .com 服务器地址
本地 DNS.com 服务器告诉你 example 权威服务器
本地 DNSexample 权威服务器返回www的 IP
⑦⑧本地 DNS浏览器缓存 + 返回 IP,发起连接

💡核心观点:浏览器只做一次递归请求,真正的"跑腿"全是本地 DNS 干的;本地 DNS 与根/顶级/权威服务器之间是逐级指路的迭代查询


四、DNS 缓存机制

4.1 五级缓存:层层拦截

每一次查询结果都会被各级"留底",下次直接命中,不用再跑一次全球:

层级缓存位置命中速度说明
浏览器缓存最快你访问过的域名
操作系统缓存系统级 hosts 文件等
路由器缓存家用路由器的 DNS 记录
本地 DNS 缓存ISP / 公共 DNS(如 114.114.114.114)
根 / 顶级服务器缓存最底层兜底

4.2 TTL:缓存的保质期

每条 DNS 记录都带一个TTL(Time To Live),控制缓存存活时间:

www.example.com A 93.184.216.34 TTL=300 └── 300 秒后过期,需重新查询
TTL效果适用
(如 3600s)查询快,但改动生效慢稳定的域名
(如 60s)生效快,但查询频繁频繁变动的服务

⚠️ 常见坑:改了 DNS 记录却"不生效",多半是旧缓存没过期—— 要么等 TTL,要么清浏览器/系统缓存。


五、常见 DNS 记录类型

类型全称作用示例值
AAddress域名 → IPv41.2.3.4
AAAAAddress v6域名 → IPv6::1
CNAMECanonical Name别名 → 另一个域名www → example.com
MXMail Exchange邮件服务器10 mail.example.com
NSName Server指定权威 DNS 服务器ns1.example.com
TXTText任意文本(验证、SPF 等)v=spf1 ...

💡常见套路CNAME是"转交",A是"直达"。CDN 加速常靠CNAME把流量引向最近的节点。


六、常见问题与排查

6.1 高频故障与解决

现象可能原因解决
域名解析失败本地 DNS 挂了换公共 DNS:114.114.114.114/8.8.8.8
改记录不生效缓存未过期等 TTL / 清缓存 /ipconfig /flushdns
能上微信不能开网页DNS 污染或劫持改用 HTTPS DNS / 加密 DNS
时好时坏多个 IP 有故障节点检查负载均衡配置

6.2 排查工具

# Windows 下查看 / 刷新 DNS 缓存ipconfig /displaydns# 查看缓存ipconfig /flushdns# 清空缓存# nslookup:交互式查询(Windows / Linux 通用)nslookupwww.example.comnslookupwww.example.com8.8.8.8# 指定 DNS 服务器查询# dig:更详细的查询(Linux / macOS)digwww.example.comdig@8.8.8.8 www.example.com +trace# 查看完整迭代路径
工具平台亮点
nslookup全平台简单快查
digLinux/macOS支持+trace追踪逐级解析

七、总结

7.1 核心要点

  1. DNS是域名与 IP 之间的"翻译官",全球树形分布式数据库
  2. 域名层级:根域 → 顶级域 → 二级域 → 主机名,解析从右往左
  3. 两种查询:客户端递归、服务器迭代,配合完成全流程
  4. 五级缓存 + TTL:决定查询快慢与改动生效快慢
  5. 常见记录A直达、CNAME转交、MX邮件、NS权威

7.2 最后的话

💡核心观点:一次网页访问背后,是 13 组根服务器 + 无数层级服务器共同完成的"接力寻址"。理解了解析流程与缓存,排障与调优就都有了方向。

记住

  • 排障三板斧:nslookupipconfig /flushdns、换公共 DNS
  • 面试常考:递归 vs 迭代、查询顺序、TTL 作用,必背
  • 进阶方向:DoH/DoT 加密 DNS、DNSSEC 安全扩展、HTTPDNS 移动端优化

参考资料

  1. 《计算机网络(第7版)》谢希仁 —— DNS 章节
  2. RFC 1034 / 1035 —— DNS 协议规范
  3. IANA 根区数据库 —— 根服务器与 TLD 权威数据

标签:计算机网络, DNS, 域名解析, 递归查询, 迭代查询, 排查工具

http://www.cnnetsun.cn/news/3807284.html

相关文章:

  • Unity移动端内存优化实战:从托管堆到本机堆的全面解决方案
  • 智能临时文件清理系统设计与企业级实践
  • 三相并联有源电力滤波器设计与dq0变换谐波抑制技术
  • Stable Diffusion图生图效率革命:批量处理提速300%的脚本+WebUI插件组合包(仅限前200名开发者领取)
  • 5分钟解锁网易云音乐NCM加密文件:免费工具实现跨平台音乐自由
  • 5分钟解锁英雄联盟全皮肤:R3nzSkin国服特供版完全指南
  • 智慧联网赋能移动医疗:基于VG710的一站式医疗车辆数字化解决方案
  • Flutter项目创建卡顿?深度解析网络、Gradle与Android SDK配置
  • AI辅助PPT制作:从内容生成到自动化排版的全流程实践
  • SqlSugar框架核心优势与高阶应用实战
  • 火车头采集器实战:从零到一掌握数据采集与自动化处理
  • 《鸣潮》3.5版图形渲染问题修复:MDO异常与远景贴图错误解决方案
  • 上海APP小程序一体化开发公司推荐
  • OpenHarmony多终端开发实战:从工程创建到代码托管
  • 解决Codex启动错误:端口访问权限问题(OS Error 10013)
  • SpringBoot+Vue+MySQL物业管理系统全栈开发指南
  • jQuery DOM操作深度解析:从核心原理到现代前端实践
  • CTF压缩包攻防实战:从文件分析到密码破解的完整技术栈
  • Spring Boot论坛系统开发:核心技术与实践指南
  • 如何快速找回7z/Zip/Rar加密压缩包密码:免费开源工具完整指南
  • Ubuntu 24.04 LTS x64有图形化界面吗?
  • Python实现SP3杂化轨道3D建模与STL生成
  • AI Agent入行实战:从Python到LangChain,快速构建智能体项目获取实习
  • 唯样-AI时代,MLCC迎来第二个黄金十年
  • Unity模型导入变黑?FBX材质与渲染管线兼容性全解析
  • 《我的世界》长久稳定服务器:从零加入与深度游玩全指南
  • 【无人机配送】基于帕累托遗传蚁群优化(PGA)算法在支持ISAC的CAT-M1物联网传感器网络中的多无人机路径规划 无人机能耗、飞行距离、覆盖范围及资源分配,系统吞吐量最高可达95%附Matlab代码
  • AI Agent零代码生信分析:5天搭建自动化工作站实战指南
  • 2026年毕业生黑科技榜单9款AI论文写作工具横评!
  • LiDAR-IMU标定工具安装与实战:从环境配置到精度验证全解析