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

【TCP/IP】9. 域名系统(DNS)

9. 域名系统(DNS)

  • 9. 域名系统(DNS)
    • 概述
    • 9.1 命名机制与名字管理
      • 9.1.1 命名机制分类
      • 9.1.2 层次型命名的树形结构
    • 9.2 因特网域名
      • 9.2.1 域名结构
      • 9.2.2 域与区域的区别
    • 9.3 DNS 服务器
    • 9.4 域名解析
      • 9.4.1 解析类型
      • 9.4.2 解析方式
      • 9.4.3 解析效率优化
    • 9.5 DNS 报文格式
      • 9.5.1 首部字段(12 字节)
      • 9.5.2 问题部分
      • 9.5.3 回答 / 授权 / 附加部分
    • 9.6 DNS 资源记录
    • 9.7 DNS 配置及数据库文件
      • 9.7.1 配置文件(named.conf)
      • 9.7.2 Cache 文件(named.cache)
      • 9.7.3 正向查询文件(如 named.hosts)
      • 9.7.4 反向查询文件(如 named.rev)
    • 本章要点

9. 域名系统(DNS)

概述

DNS(Domain Name System)是 TCP/IP 应用层的核心协议,用于实现主机名与 IP 地址的映射,解决 IP 地址(点分十进制)抽象、难记忆的问题。其核心作用是在三个层次的主机标识系统中(物理地址→IP 地址→主机名),实现高层主机名与中层 IP 地址的映射,与 ARP(IP→物理地址)共同构成完整的地址映射体系。

9.1 命名机制与名字管理

DNS 采用层次型命名机制,通过树形结构组织名字空间,实现主机名的全局唯一性、便于管理和映射。

9.1.1 命名机制分类

机制类型特点局限性
无层次命名主机名无结构,由中央机构集中管理,通过主机文件实现映射不适合大规模网络,易冲突,管理效率低
层次型命名名字空间呈树形结构,按管理机构层次划分,分散管理保证唯一性,适应大规模网络,映射效率高

9.1.2 层次型命名的树形结构

  • 根域:唯一的顶层节点,通常省略,如需显式表示则以 “.” 结尾。
  • 节点标号:树中每个节点有唯一标号(由字母、数字、连字符组成,不超过 63 字节)。
  • 管理方式:上层机构将子名字空间授权给下层机构管理,每层只需保证自身子节点标号唯一,即可确保全局唯一性。

9.2 因特网域名

域名是层次型命名机制的具体体现,由圆点 “.” 分隔的标号序列构成,反映树形结构中从叶节点到根节点的路径。

9.2.1 域名结构

  • 完全合格域名(FQDN):包含从主机到根的完整标号序列,以 “.” 结尾(如serv.njust.edu.cn.)。
  • 层次划分:从高到低依次为:
    1. 根域:顶层,无标号;
    2. 顶级域:分为三类:
      • 通用顶级域名(gTLD):按组织类型划分,如com(商业)、org(非盈利)、edu(教育)、gov(政府)等;新增bizinfomobi等。
      • 国家代码顶级域名(ccTLD):按国家 / 地区划分,如cn(中国)、uk(英国)、hk(香港)等(2 个字母)。
      • arpa 域:专用技术域,用于反向解析(in-addr.arpa对应 IPv4,ip6.arpa对应 IPv6)。
    3. 次级域(二级域):由顶级域授权,对应具体组织 / 机构(如edu.cn下的njust.edu.cn)。
    4. 子域:次级域进一步划分的子空间(如net.njust.edu.cn)。
    5. 主机名:最底层,标识具体主机(如servserv.njust.edu.cn中)。

9.2.2 域与区域的区别

  • :树形结构中的完整子树(如njust.edu.cn)。
  • 区域(Zone):DNS 服务器的管理单元,可是域的一部分或完整域(如njust.edu.cn的服务器可能只管理net.njust.edu.cn子域)。

9.3 DNS 服务器

DNS 服务器是存储域名 - IP 映射信息、响应解析请求的核心设备,按功能分为三类:

服务器类型功能特点
主名字服务器存储区域文件的原始版本,负责区域信息的修改拥有唯一可写的区域文件,是区域的权威源
次名字服务器从主服务器复制区域文件(只读),通过 “区域传输” 同步更新提供冗余,减轻主服务器负载,增强可靠性
惟高速缓存名字服务器无区域文件,缓存解析结果,非授权响应通过缓存加速解析,启动后逐步积累信息,依赖 TTL(生存时间)刷新缓存

9.4 域名解析

域名解析是根据主机名查询 IP(正向)或根据 IP 查询主机名(反向)的过程,通过 DNS 服务器与客户端的交互完成。

9.4.1 解析类型

  • 正向解析:域名→IP 地址(或其他资源记录)。
  • 反向解析:IP 地址→域名,通过in-addr.arpa域实现(IP 地址字节反转后拼接in-addr.arpa,如202.119.80.126126.80.119.202.in-addr.arpa)。

9.4.2 解析方式

  1. 递归解析
    • 客户端向服务器发送请求,服务器必须返回最终结果(成功或失败),无需客户端进一步操作。
    • 适用于客户端解析器(如用户主机)。
  2. 反复解析
    • 服务器若无法解析,返回可能能解析的服务器地址,客户端需向新服务器重复请求,直至获得结果。
    • 适用于服务器之间的解析(如本地服务器查询根服务器)。

9.4.3 解析效率优化

  • 两步解析:先查本地服务器,失败再自顶向下查询根服务器,平衡效率与层次管理。
  • 高速缓存:服务器缓存解析结果,标注 TTL(生存时间),过期后删除,减少重复查询。
  • 缓存有效性:非授权结果需注明来源,客户端可选择向授权服务器验证;TTL 确保缓存及时更新。

9.5 DNS 报文格式

DNS 请求与响应报文格式相同,由首部、问题部分、回答部分、授权部分、附加信息部分组成。

9.5.1 首部字段(12 字节)

字段长度(比特)含义
标识16匹配请求与响应
标志16含多个子字段: - QR(1 比特):0 = 请求,1 = 响应; - OpCode(4 比特):0 = 标准查询,1 = 反向查询,2 = 服务器状态; - AA(1 比特):1 = 授权服务器; - TC(1 比特):1 = 报文被截断(超过 512 字节); - RD(1 比特):1 = 请求递归解析; - RA(1 比特):1 = 服务器支持递归; - rCode(4 比特):0 = 成功,3 = 域名不存在等
问题数16问题部分的记录数
回答数16回答部分的记录数(请求报文为 0)
授权数16授权部分的记录数(请求报文为 0)
附加数16附加信息部分的记录数(请求报文为 0)

9.5.2 问题部分

由多个问题记录组成,格式为:

  • 查询名:可变长,以 “长度 + 标号” 形式表示(如serv.njust.edu.cn4serv5njust3edu2cn0)。
  • 查询类(16 比特):1 = 因特网(IN)。
  • 查询类型(16 比特):指定查询的资源类型,如 A(IPv4)、AAAA(IPv6)、NS(名字服务器)等。

9.5.3 回答 / 授权 / 附加部分

由资源记录组成,格式为:

  • 域名:可变长,支持压缩(以指针指向报文中重复域名,节省空间)。
  • 类型(16 比特):同查询类型。
  • (16 比特):同查询类。
  • TTL(32 比特):缓存生存时间(秒)。
  • 资源数据长度(16 比特):资源数据的字节数。
  • 资源数据:根据类型不同,可为 IP 地址(A 记录)、域名(NS 记录)等。

9.6 DNS 资源记录

资源记录是 DNS 数据库的基本单元,存储域名与 IP(或其他信息)的映射,常用类型如下:

类型代码作用语法示例
A1域名→IPv4 地址serv.njust.edu.cn. IN A 202.119.80.126
AAAA28域名→IPv6 地址host IN AAAA 2001:db8::1
NS2标识区域的授权服务器njust.edu.cn. IN NS serv.njust.edu.cn.
SOA6授权开始,定义区域主服务器及参数@ IN SOA serv.njust.edu.cn. hostmaster.njust.edu.cn. ( serial refresh retry expire TTL )@表示当前域)
CNAME5定义主机别名www IN CNAME serv.njust.edu.cn.wwwserv的别名)
PTR12IP→域名(反向解析)126.80.119.202.in-addr.arpa. IN PTR serv.njust.edu.cn.
MX15邮件交换服务器,含优先级(值越小优先级越高)njust.edu.cn. IN MX 10 msrv.njust.edu.cn.(优先级 10 的邮件服务器)

9.7 DNS 配置及数据库文件

以 BIND(Berkeley Internet Name Daemon)软件为例,DNS 服务器配置依赖以下文件:

9.7.1 配置文件(named.conf)

定义服务器管理的区域、文件路径等,示例:

  directory "/etc/db";  # 其他文件路径
};
zone "." {  # 根域type hint;  # 根服务器信息file "named.cache";
};
zone "njust.edu.cn" {  # 主区域type master;  # 主服务器file "named.hosts";  # 正向查询文件
};
zone "80.119.202.in-addr.arpa" {  # 反向区域type master;file "named.rev";  # 反向查询文件
};

9.7.2 Cache 文件(named.cache)

存储根域名服务器信息,用于初始化解析,示例:

. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4
# 其他根服务器记录...

9.7.3 正向查询文件(如 named.hosts)

存储域名→IP 映射,示例:

@ IN SOA serv.njust.edu.cn. hostmaster.njust.edu.cn. (1998030501  # serial(版本号)10800       # refresh(3小时,同步间隔)3600        # retry(1小时,重试间隔)604800      # expire(7天,过期时间)86400       # TTL(1天)
)
@ IN NS serv.njust.edu.cn.  # 授权服务器
serv.njust.edu.cn. IN A 202.119.80.126  # 主机IP
www IN CNAME serv.njust.edu.cn.  # 别名
njust.edu.cn. IN MX 10 msrv.njust.edu.cn.  # 邮件服务器

9.7.4 反向查询文件(如 named.rev)

存储 IP→域名映射,示例(对应 202.119.80.0 网段):

80.119.202.in-addr.arpa. IN SOA serv.njust.edu.cn. hostmaster.njust.edu.cn. (1998030501  # serial10800       # refresh3600        # retry604800      # expire86400       # TTL
)
@ IN NS serv.njust.edu.cn.
126 IN PTR serv.njust.edu.cn.  # 202.119.80.126→serv
127 IN PTR msrv.njust.edu.cn.  # 202.119.80.127→msrv

本章要点

  • DNS 采用层次型命名机制,通过树形结构组织域名空间,实现主机名的全局唯一性和分散管理。
  • 域名由根域、顶级域(gTLD/ccTLD/arpa)、次级域、子域和主机名构成,FQDN 包含完整路径。
  • DNS 服务器分主服务器(原始区域文件)、次服务器(复制同步)、惟高速缓存服务器(缓存解析结果),使用 UDP/TCP 的 53 号端口。
  • 解析方式包括递归(服务器返回最终结果)和反复(客户端多次请求),反向解析通过in-addr.arpa域实现。
  • DNS 报文含首部、问题、回答、授权、附加部分,资源记录是核心数据单元(如 A、NS、SOA、MX 等)。
  • BIND 配置依赖 named.conf(区域定义)、cache 文件(根服务器)、正向 / 反向查询文件(映射记录)。
http://www.dtcms.com/a/272844.html

相关文章:

  • Agent自动化与代码智能
  • 【更新至2023年】1998-2023年各地级市第一产业占GDP比重数据(全市)
  • 防爬虫君子协定 Robots.txt 文件
  • jetson agx orin 刷机、cuda、pytorch配置指南【亲测有效】
  • 【AI】人工智能领域关键术语全解析
  • [C#] 使用TextBox换行失败的原因与解决方案:换用RichTextBox的实战经验
  • AI 智能体:开启自动化协作新时代
  • The 2023 ICPC Asia Hangzhou Regional Contest(G. Snake Move(最短路))
  • GoView 低代码数据可视化
  • Git保姆级入门实战:从安装配置到常用命令与常见错误解决
  • Shader面试题100道之(61-80)
  • 动态规划疑惑总结
  • Oracle大表数据清理优化与注意事项详解
  • 毫米波雷达守护银发安全:七彩喜跌倒检测仪重构居家养老防线
  • AI+低代码双引擎驱动:重构智能业务系统的产品逻辑
  • 二分查找篇——搜索旋转排序数组【LeetCode】一次二分查找
  • Datawhale AI 夏令营:基于带货视频评论的用户洞察挑战赛 Notebook(上篇)
  • C#集合:从基础到进阶的全面解析
  • 力扣-48.旋转图像
  • 文件追加模式:编写一个程序,向一个已存在的文件末尾追加内容。
  • ADVANTEST R4131 SPECTRUM ANALYZER 光谱分析仪
  • 有缺陷的访问控制
  • Agent调用(高德地图)MCP服务
  • Java虚拟机栈Test01
  • 盲盒一番赏小程序技术实现方案:高并发与防作弊的平衡之道
  • C#System.Runtime.InteropServices.ExternalException (0x80004005): GDI+ 中发生一般性错误。
  • Kettle导入Excel文件进数据库时,数值发生错误的一种原因
  • 计算机视觉速成 之 概述
  • Ubuntu如何快速搭建docker以及使用代理访问
  • Linux入门篇学习——Linux 工具之 make 工具和 makefile 文件