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

计算机网络——DNS

一、什么是DNS?

DNS(Domain Name System,域名系统) 是互联网的核心服务,负责将人类可读的域名(如 www.baidu.com)转换为机器可识别的 IP地址(如 14.119.104.254)。它像一本全球分布式“电话簿”,让用户无需记忆复杂数字即可访问网站。

关键特性:

  • 分层设计:域名结构分层次管理(如 .com → baidu → www)。

  • 分布式存储:全球数万台DNS服务器协同工作,无单点故障。

  • 高效缓存:减少重复查询,提升解析速度。


二、为什么要有DNS?

没有DNS的世界会怎样?

  1. 访问网站需输入IP地址
    用户需记忆 14.119.104.254 而非 www.baidu.com

  2. IP变更导致服务中断
    若服务器IP更换,所有用户必须手动更新。

  3. 无法支持复杂服务
    单IP无法托管多个网站(如虚拟主机)。

DNS的四大价值

痛点DNS解决方案
记忆难度高通过域名提供易记的别名
IP动态变化域名与IP动态绑定,自动更新
服务扩展性差支持负载均衡、CDN调度等高级功能
网络流量集中分布式架构缓解单点压力

三、域名的构成

1. 域名结构(从右到左)

以 www.baidu.com 为例:

  • 根域(Root Domain):隐式的 .(通常省略,如 com.)。

  • 顶级域(TLD).com(商业机构)、.org(非盈利组织)、.cn(国家代码)。

  • 二级域(SLD)baidu(注册的网站名称)。

  • 子域(Subdomain)www(常见的子域,表示Web服务)。

2. 域名树状图

根域(.)
└── 顶级域(com)
    └── 二级域(baidu)
        ├── 子域(www)
        └── 子域(mail)

四、DNS服务器的分类

类型作用示例
根DNS服务器提供顶级域服务器的IP地址全球13组根服务器(a.root-servers.net)
顶级域DNS服务器管理特定顶级域(如 .com)的权威服务器gtld-servers.net
权威DNS服务器存储具体域名的IP映射记录ns1.baidu.com(百度官方DNS)
递归DNS服务器代表用户完成完整查询过程的缓存服务器8.8.8.8(Google Public DNS)

五、DNS客户端

1. 客户端的作用

  • 发起查询:向递归DNS服务器发送域名解析请求。

  • 缓存管理:临时存储解析结果(通过TTL控制缓存时间)。

2. 客户端配置

Windows
# 查看当前DNS服务器
ipconfig /all
Linux
# 修改DNS配置(/etc/resolv.conf)
nameserver 114.114.114.114

六、DNS中继(Forwarder)

1. 什么是DNS中继?

企业或ISP部署的本地DNS服务器,将外部查询请求转发至上游服务器,实现:

  • 缓存加速:减少外网查询延迟。

  • 内容过滤:屏蔽恶意域名。

  • 流量管控:限制员工访问特定网站。

2. 中继 vs. 递归服务器

对比项DNS中继递归DNS服务器
查询方式转发请求至上游服务器自行完成全链路查询
典型场景企业内网、学校机房公共DNS服务(如Cloudflare)
缓存策略依赖上游响应自主缓存所有层级结果

七、域名解析过程

1. 递归查询(客户端视角)

mermaid

sequenceDiagram
    participant 用户
    participant 递归DNS
    participant 根DNS
    participant 顶级域DNS
    participant 权威DNS
    用户->>递归DNS: 查询 www.baidu.com
    递归DNS->>根DNS: 询问 .com 的顶级域服务器
    根DNS-->>递归DNS: 返回 .com 服务器IP
    递归DNS->>顶级域DNS: 询问 baidu.com 的权威服务器
    顶级域DNS-->>递归DNS: 返回 baidu.com 的权威服务器IP
    递归DNS->>权威DNS: 查询 www.baidu.com 的IP
    权威DNS-->>递归DNS: 返回 14.119.104.254
    递归DNS-->>用户: 返回最终IP

2. 迭代查询(服务器视角)

  1. 本地DNS询问根服务器 → 获取 .com 服务器地址。

  2. 询问 .com 服务器 → 获取 baidu.com 权威服务器地址。

  3. 询问 baidu.com 服务器 → 获取 www 子域的IP。

相关文章:

  • Java入职篇(1)——心态篇
  • CBNet:一种用于目标检测的复合骨干网架构之论文阅读
  • OpenEuler-22.03-LTS上利用Ansible轻松部署MySQL 5.7
  • 【HeadFirst系列之HeadFirstJava】第19天之深入理解访问者模式:解耦对象结构与操作的优雅设计
  • YOLOv4:目标检测的卓越进展
  • 大数据学习(68)- Flink和Spark Streaming
  • pom.xml中配置的repository,在编译器下载依赖包没生效,怎么解决
  • Springer独立出版 | 2025年第二届计算语言学与自然语言处理国际会议(CLNLP 2025)
  • 登录认证-登录校验-Filter
  • 凸优化算法学习笔记:决策单调性与 wqs二分
  • [新能源]新能源汽车快充与慢充说明
  • 【赵渝强老师】达梦数据库的目录结构
  • [笔记] 深入指南:使用 OpenManus 本地部署使用指南.
  • 生成式人工智能对芯片设计EDA行业的影响分析
  • 嵌入式硬件--开发工具-AD使用常用操作
  • install of jenkins-2.501-1.1.noarch conflicts with file
  • Linux ECM子网掩码常见问题排查
  • 基于图像比对的跨平台UI一致性校验工具开发全流程指南——Android/iOS/Web三端自动化测试实战
  • 开源后台管理系统推荐
  • 从零开始用AI开发游戏(三)背景故事
  • F4方程式上海站引擎轰鸣,见证中国赛车运动不断成长
  • 减重人生|吃得越少越好?比体重秤上的数字,更有意义的是什么?
  • 王毅同丹麦外交大臣拉斯穆森会谈
  • 瑞幸首度牵手成都国际非遗节,用一杯饮品将非遗之美推向全国
  • 小米法务部:犯罪团伙操纵近万账号诋毁小米,该起黑公关案告破
  • 广东进入“倒水模式”,珠江防总、珠江委已启动Ⅳ级应急响应