运维扫盲 ! 没DNS、 为啥百度都打不开?

运维扫盲 ! 没DNS、 为啥百度都打不开?

运维扫盲 ! 没DNS、 为啥百度都打不开?

                              开源日记                                                                                                 2025年08月16日 21:00                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

以下文章来源于开源运维                                                         ,作者开源运维

                                                                                                                                             开源运维                                           .                      

分享优质GitHub开源项目的安装教程。

                                                                                                                                                                                                                       

在网络世界中,IP地址是用来定位主机的“门牌号”,而域名是帮人们记忆这些复杂地址的“昵称”。DNS(Domain Name System)就是负责将这些“昵称”翻译成“门牌号”的系统,起到域名到IP地址互相映射的功能。以下,我们用技术视角深入剖析DNS域名解析过程。

图片

DNS解析的两种查询方式

DNS解析主要分为递归查询迭代查询

  • 1.递归查询:如果本地DNS服务器不知道目标域名的IP地址,它就会替用户向其他服务器询问,直到找到结果。
  • 2.迭代查询:本地DNS服务器告诉用户“你可以向某个DNS服务器去问”,然后由用户逐步向相关服务器查询。

现实中,通常采用递归 + 迭代混合模式:用户向本地DNS发起递归查询,而本地DNS与其他服务器之间采用迭代查询,从而降低网络负担。

DNS域名解析流程详解

图片

以下是DNS解析的标准步骤(假设访问网址为www.example.com):

1.查询本地缓存

操作系统和浏览器会先查看自己的DNS缓存,有没有保存过www.example.com对应的IP地址。如果找到,则直接用缓存结果。

2.本地域名服务器查询


若本地缓存无匹配结果,解析请求会发送到本地域名服务器(常由ISP提供,如电信、联通),本地DNS会进一步处理请求。

3.根域名服务器查询

如果本地DNS也没有结果,它会向根域名服务器发起迭代查询。根域名服务器返回顶级域名的服务器信息(比如com域的服务器地址)。

+------------------+
| 根域名服务器      |
+-------+----------+
        | 返回.com域信息
        v
+------------------+
| 顶级域名服务器    |
+-------+----------+
        | 返回example.com信息
        v
+------------------+
| 权威域名服务器    |
+------------------+

4.顶级域名服务器查询

根据根服务器的提示,本地DNS联系顶级域名服务器(TLD),例如管理.com的服务器。它会告诉本地DNS“去找example.com对应的权威域名服务器”。

5.权威域名服务器查询

本地DNS向权威域名服务器(托管www.example.com的服务器)发起查询,它会返回www.example.com的准确IP。

Query: What is the IP of www.example.com?  
Response: 192.0.2.1

6.响应用户请求

本地DNS将192.0.2.1的结果发回用户,完成解析。

加速解析:DNS缓存

为了提升解析速度,减少网络开销,缓存机制在DNS的各层级被广泛使用:

  • 浏览器缓存:浏览器会临时保存近期访问的域名和IP映射。
  • 本地DNS缓存:本地域名服务器会缓存查询结果一段时间(如48小时)。
  • 操作系统缓存:本地机器也维护DNS缓存,可以用以下命令查看和清理:

查看本地DNS缓存


# Windows
ipconfig /displaydns

# macOS/Linux
sudo systemd-resolve --statistics

清理本地DNS缓存

# Windows
ipconfig /flushdns

# macOS
sudo dscacheutil -flushcache

# Linux
sudo systemd-resolve --flush-caches

主要技术细节总结

  • 1.DNS负载分散:为避免网络拥堵,互联网上共有13组根域名服务器,分布在全球。
  • 2.UDP和TCP使用:DNS查询多使用UDP协议,因速度更快;但在区域传送或报文超512字节时,会切换为TCP协议。
  • 3.权威性:即使权威域名服务器提供了解析结果,查询路径上的每台服务器也会在缓存中存储下这一映射结果。

DNS运维实用技巧

  • 1.查看具体域名解析路径

使用dig命令分析每个查询过程:

dig www.example.com +trace
  • 2.测试域名解析时间

利用nslookupping检查响应速度:

nslookup www.example.com
  • 3.设置备用DNS服务器

若ISP DNS不稳定,可以使用公共DNS,比如Google的8.8.8.8或Cloudflare的1.1.1.1。

DNS是互联网的基础设施之一,理解其背后每一步的逻辑和优化技巧,对于所有运维人员而言,都是必备的知识。通过掌握查询流程和缓存机制,你不仅能够解决常见的解析问题,也能优化你的应用性能!


本站所有资源都是由网友投搞发布,或转载各大下载站,请自行检测软件的完整性!本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!如有侵权请联系我们删除下架,联系方式:273171821@qq.com
0
分享到: