DNS域名系统

  • 一、什么是DNS?
  • 二、DNS的域名层级
    • 1. 根域
    • 2. 顶级域
    • 3. 二级域
    • 4. 三级域(子域)
    • 5. 主机名
  • 三、DNS服务器的分类
  • 四、DNS的解析过程
  • 五、DNS的记录类型
  • 六、FQDN(完全限定域名)


一、什么是DNS?

DNS(Domain Name System,域名系统),是互联网中用于将人类可读的域名(如www.example.com)解析为机器可读的IP地址(如192.0.2.1)的分布式数据库系统,作用是将域名解析到ip地址

互联网的 “地址簿

DNS系统的作用
正向解析:根据主机名称(域名)查找对应的IP地址
反向解析:根据IP地址查找对应的主机域名

关键技术

  1. 缓存机制:减少重复查询,提升速度
    DNS 服务器会将已查询过的 “域名 - IP 映射” 暂存到缓存中(缓存时长由域名的 “TTL 值” 决定,通常为几分钟到几小时)。下次同一域名查询时,直接从缓存返回结果,无需重复向上级查询,大幅缩短解析时间

  2. 负载均衡:避免单点压力
    大型网站会有多台服务器对应同一域名(不同 IP)。DNS 服务器可通过 “轮询”“地域优先” 等策略,将不同用户解析到就近或负载较低的服务器,既提升访问速度,又避免单台服务器过载

  3. 容错与冗余:保障服务不中断
    多节点部署:权威 DNS 服务器通常部署多个节点(如国内 + 海外),若某节点故障,其他节点可继续提供服务;
    递归查询重试:本地 DNS 服务器若查询某上级服务器超时,会自动重试或切换到其他上级服务器,避免解析失败


二、DNS的域名层级

核心设计是树形层级结构,通过 “自上而下的层级划分” 解决了互联网中海量设备的域名与 IP 地址映射问题

1. 根域

没有实际名称,仅用.(句点)表示
例如完整域名www.example.com的 “全称” 其实是www.example.com.,末尾的.即根域,日常使用中会省略

作用:根域不存储具体的域名解析记录,仅负责 “指引方向”—— 当本地 DNS 服务器无法解析某个域名时,会首先向根 DNS 服务器请求,根服务器会返回该域名对应的 “顶级域 DNS 服务器” 地址,引导解析流程向下一层级推进
全球共有 13 组根 DNS 服务器(用字母 A~M 标识)

2. 顶级域

根域的直接子节点,是域名中最靠右的部分。主要包括组织域(也称为通用顶级域)和国家地区域

类型典型案例
组织域.com(商业)、.org(非营利)、.edu(教育)、.gov(政府)、.net(网络服务)、.mil(军事部门)、.int(国际组织)
国家地区域.cn(中国)、.us(美国)、.jp(日本)、.uk(英国)、.hk(中国香港)

3. 二级域

标识 “具体的组织、个人或服务”,是域名的 “身份标识”—— 例如baidu.com中的baidu直接对应百度公司,taobao.com中的taobao对应淘宝平台

二级域的所有者可自主创建 / 删除三级域(无需向注册商申请),只需在该二级域的权威 DNS 服务器(主 DNS / 从 DNS)中添加对应的子域解析记录即可

4. 三级域(子域)

用于区分二级域下的 “不同服务或部门”,实现资源的分类管理

部分场景中,“三级域” 与 “主机名” 可能重合,本质是简化了层级划分,不影响解析逻辑

5. 主机名

DNS 树形结构的 “叶子节点”,是域名的最左侧部分,直接对应 “具体的网络设备”(如服务器、路由器、终端设备)

标识 “某个子域下的具体设备”,是域名解析的 “最终目标”


三、DNS服务器的分类

服务器类型核心功能数据来源
权威 DNS 服务器存储某域名的官方解析记录(最终答案),是 “域名解析的源头” ,负责返回ip管理员手动配置(
缓存 DNS 服务器暂存 “已查询过的解析结果”,加速重复查询,不存官方记录从其他服务器(权威 / 根 / 顶级域)查询并缓存
主权威 DNS 服务器权威服务器的 “主节点”,直接存储 / 修改解析记录,是从服务器的 “数据源”管理员直接编辑
从权威 DNS 服务器权威服务器的 “备份节点”,通过区域传输(AXFR/IXFR),主服务器宕机后,它可替代提供解析同步主服务器记录从主权威服务器同步
递归 DNS 服务器接收用户查询后,“替用户查到底”(从根→顶级域→权威),返回最终结果逐层查询并缓存

四、DNS的解析过程

以访问www.qq.com为例

  1. 先查看本地缓存
    操作系统和浏览器会检查本地 DNS 缓存,看是否已经缓存了该 FQDN 对应的 IP 地址。如果有,则直接使用缓存结果,解析过程结束

  2. 查看hosts文件配置的域名解析

  3. 向本地域名服务器进行递归查询,先查看缓存,查看本地数据库文件,是否有记录,没有再问根域名服务器

  4. 本地域名服务器采用迭代查询,先向根域名服务器查询,逐步向下查询

    • 查询根域名服务器:根域名服务器返回负责.com 顶级域的顶级域名服务器地址
    • 查询顶级域名服务器:顶级域名服务器返回负责 qq.com 域的权威域名服务器地址
    • 查询权威域名服务器:权威域名服务器返回 www.qq.com 对应的 IP 地址
  5. 客户机缓存dns记录

  6. 客户机使用ip地址去访问服务器


五、DNS的记录类型

在这里插入图片描述
在这里插入图片描述


六、FQDN(完全限定域名)

FQDN(Fully Qualified Domain Name,完全限定域名)是 DNS 系统中用于精确定位网络资源的完整域名格式,它包含从主机名到顶级域名的完整层级结构,能够在全球范围内唯一标识一个网络节点

  • FQDN 是域名的完整形式,包括主机名和所有父域
  • DNS 解析 是将 FQDN 转换为 IP 地址的过程,通过递归和迭代查询实现
  • FQDN 解析是互联网通信的基础,确保用户能够通过易记的域名访问网络资源

在实际使用中,末尾的根域点号(.)通常可以省略,但在 DNS 配置中,点号表示根域,是 FQDN 的完整形式

FQDN 的解析过程是 DNS 系统的核心功能,它将 FQDN 转换为对应的 IP 地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94881.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94881.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94881.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟内存和虚拟页面

虚拟内存虚拟内存是现代操作系统提供的一种内存管理机制,它允许程序访问比实际物理内存更大的地址空间。虚拟内存通过将程序的地址空间划分为多个固定大小的块(称为页面),并将这些页面映射到物理内存或磁盘上的页面文件中&#xf…

【2025年电赛E题】基于k230的矩形框识别锁定1

文章目录 概要 整体架构流程 技术名词解释 技术细节 1. 多阈值适配与目标识别逻辑 2. 动态ROI与状态管理机制 3. 数据平滑与偏差计算 4. 硬件适配与UART通信 小结 静态矩形框识别 动态矩形框追踪 概要 本文分析的代码是基于立创庐山派K230CanMV开发板的目标追踪系统实现,主要…

c语言中的数组可以用int a[3]来创建。写一次int就可以了,而java中要声明两次int类型像这样:int[] arr = new int[3];

C 语言数组只需写一次int,而 Java 需两次int相关声明,核心原因是两种语言的数组本质定义、类型系统设计和内存管理逻辑完全不同,具体可拆解为两点核心差异:一、C 语言:数组是 “内存块的类型绑定”,一次声明…

深度学习——详细教学:神经元、神经网络、感知机、激活函数、损失函数、优化算法(梯度下降)

神经网络实战: 深度学习——神经网络简单实践(在乳腺癌数据集上的小型二分类示例)-CSDN博客https://blog.csdn.net/2302_78022640/article/details/150779819?spm1001.2014.3001.5502 深度学习——神经网络(PyTorch 实现 MNIST…

Ubuntu 软件安装的五种方法

1、App Store 安装 Ubuntu 里面有 一个App叫 “Ubuntu软件” 2、Sudo apt-get install 安装法 注意 使用apt工具安装软件,需要sudo,也就是root权限 例子 apt -get install git 会提示查看是否以root用户运行,install-安装sudo a…

Day15 (前端:JavaScript基础阶段)

接续上文:Day14——JavaScript 核心知识全解析:变量、类型与操作符深度探秘-CSDN博客 点关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!! 主页:一位搞嵌入式的 genius-CSDN博…

在线旅游及旅行管理系统项目SQL注入

1.前言 之前在网上随便逛逛的时候,发现一个有各种各样的PHP项目的管理系统,随便点进一个查看,发现还把mysql版本都写出来了,而且还是PHP语言。 https://itsourcecode.com/free-projects/php-project/online-tours-and-travels-m…

Java网络编程(UDP, TCP, HTTP)

1. OSI 七层网络模型层级名称核心功能协议示例数据单元7应用层提供用户接口和网络服务HTTP, FTP, SMTP, DNS报文6表示层数据格式转换、加密/解密、压缩/解压SSL, JPEG, MPEG数据流5会话层建立、管理和终止会话连接NetBIOS, RPC会话数据4传输层端到端可靠传输、流量控制、差错校…

【P2P】P2P主要技术及RELAY服务1:python实现

P2P 技术 P2P(点对点)网络的核心是去中心化的网络拓扑和通信协议。DP的应用相对较少,但可能出现在: 路由优化:在一些复杂的P2P网络中,一个节点需要向另一个节点发送消息。为了找到一条延迟最低或跳数最少的路径,可能会用到类似最短路径的算法,而这类算法(如Bellman-F…

docker 安装 redis 并设置 volumes 并修改 修改密码(一)

在 Docker 中安装 Redis 并设置volumes持久化数据,同时修改 Redis 密码的完整步骤如下: 安装 Docker 如果还没有安装 Docker,可以参考以下步骤安装: 在 Alibaba Cloud Linux 上安装 Docker # 更新系统 sudo yum update -y# 安装 Docker 依赖 sudo yum install -y yum-util…

如何找出所有连接到本机指定端口的客户端 IP

在日常运维或排查网络问题时,我们常常需要知道:有哪些客户端正在连接我的服务?连接数是否异常?是否存在恶意扫描或 DDoS 行为?本文将教你使用一条简洁高效的 Linux 命令组合,统计连接到本机某个端口&#x…

java IDE安装idea社区版步骤

IntelliJ IDEA 社区版(Community Edition)是一款功能强大且完全免费的集成开发环境,非常适合 Java 和 Kotlin 初学者或进行基础开发2。我会为你提供详细的安装步骤。 🛠 IntelliJ IDEA 社区版安装指南 📋 系统要求与…

Agent智能体

什么是 Agent? Agent 是一个智能体,可以接收用户请求,利用大模型(LLM)的推理能力,自动决定: 自己回答还是调用外部工具(数据库、API、脚本等) 最终把结果返回给用户。 能…

【VSCode】使用VSCode打开md文件以及转化为PDF

【VSCode】使用VSCode打开md文件以及转化为PDF在 Visual Studio Code (VS Code) 中渲染 Markdown 并保存为 PDF,可以通过以下步骤实现。 首先安装好 VSCode,可以参考下述链接 https://blog.csdn.net/weixin_43848614/article/details/148042035 安装m…

苹果ImageIO零日漏洞分析:攻击背景与iOS零点击漏洞历史对比

苹果公司已紧急发布全生态系统安全更新,修复编号为CVE-2025-43300的ImageIO框架高危零日漏洞(zero-day),该漏洞已被用于复杂的定向攻击。这是苹果在2025年修复的第七个零日漏洞,凸显iOS和macOS设备面临的威胁持续升级。…

面试 TOP101 递归/回溯专题题解汇总Java版(BM55 —— BM61)

8月刷题挑战,多重好礼等你拿 递归/回溯 题号题目名称核心思路时间复杂度空间复杂度代码亮点牛客原题链接BM55没有重复项数字的全排列使用回溯法生成所有排列O(n!)O(n)使用回溯法生成所有排列,逻辑清晰🔗 直达BM56有重复项数字的全排列使用回…

音频相关数学知识

时域(Time domain)是描述数学函数或物理信号对时间的关系,如果声音对应频率正负波动,对应事件x轴为时间,y轴为振幅频域信号在频率方面特性,如射频范围正弦型函数可以用来虚拟音频,正弦&#xff…

SAP-ABAP:SAP HANA 架构解析:主从(Scale-Out)与主备(High Availability)架构深度对比

SAP HANA 架构解析:主从(Scale-Out)与主备(High Availability)架构深度对比 一、架构概述 在SAP HANA数据库系统中,两种核心架构模式解决了不同的业务需求:主从架构(Scale-Out&#…

【Hadoop】HDFS 分布式存储系统

Namenode是整个HDFS文件系统的前端,只有一个,管理数据块映射信息,配置副本策略,处理客户端的读写请求。Secondary namenode是namenode的热备,当active namenode出现故障时,快速切换为新的active namenode。…

[特殊字符] 如何在自己的仓库开发,同时保持同步原作者更新(超详细教程)

在开源协作开发中,很多时候我们会遇到这样一种情况: 👉 我们想基于一个开源项目继续开发,代码要推送到自己的仓库里; 👉 但原作者可能还会更新,我们也希望能随时把最新的改动同步过来。 本文以 …