7-9 DNS域名系统

DNS域名系统

DNS作用:把域名转换成IP地址。

DNS/DHCP服务器必须为静态IP地址,而Web/FTP均可为动态IP。

Linux系统中提供DNS服务的组件为bind,主配置文件为named.conf

诊断域名系统基础结构的信息和查看DNS服务器的IP地址命令是:nslookup

DNS记录类型

(记忆,必考六种记录类型)

记录类型 说明 备注
SOA SOA叫起始授权机构记录,SOA记录用于在众多NS记录中哪一台是主服务器 SOA记录还设置一些数据版本和更新以及过期时间的信息
A 把主机名解析为IPv4地址 www.test.com → 1.1.1.1
AAAA 把主机名解析为IPv6地址
[IPv4地址是32位,IPv6地址为128位,是4倍关系]
www.test.com→2001::1
指针 PTR 反向查询,把IP地址解析为主机名 1.1.1.1 → www.test.com
名字服务器 NS 为一个域指定授权域名服务器,该域的所有子域也被委派给这个服务器 比如某个区域由ns1.domain.com进行解析
邮件服务器 MX 指明区域的邮件服务器及优先级 建立电子邮箱服务,需要MX记录将指向邮件服务器地址
别名 CNAME 指定主机名的别名
把主机名解析为另一个主机名
www.test.com别名为webserver12.test.com

DNS查询

DNS查询过程

image-20250312192256255

image-20250312192341255

递归查询:域名服务器帮助用户进行名字解析,并返回最后的结果。【老好人】

迭代查询:域名服务器进行迭代访问,反复多次,直到最后找到结果。【踢皮球】

DNS(域名系统)查询过程是将域名(如www.example.com)转换为对应IP地址的层级化步骤,涉及多个缓存和服务器的协作。以下是详细流程及关键机制:

1. 本地缓存检查

  • 浏览器缓存:用户输入域名后,浏览器首先检查自身缓存(记录最近访问的域名与IP映射)。
  • 操作系统缓存:若浏览器未命中,系统会检查本地hosts文件或DNS缓存(由操作系统维护,使用命令ipconfig /displaydns可以查询本地DNS缓存记录,使用命令ipconfig /flushdns可以清除本地DNS缓存记录)。
  • 目的:快速返回结果,减少网络请求。

2. 递归查询(Recursive Query)

若本地无记录,请求将发送至本地DNS服务器(也称主域名服务器)(通常由ISP或网络管理员提供):

  • 递归解析:本地DNS服务器代替客户端完成后续查询,直至返回结果。
  • 本地服务器缓存:检查自身缓存,若命中则直接返回结果。

3. 迭代查询(Iterative Query)

若本地服务器未缓存目标域名,则通过以下层级迭代查询:

  1. 根域名服务器(Root Server) :本地服务器向根服务器发起请求,根服务器返回负责该**顶级域名(TLD)**的服务器地址(如.com、.org)。
  2. 顶级域名服务器(TLD Server) :TLD服务器返回该域名的权威DNS服务器地址(如example.com的权威服务器)。
  3. 权威DNS服务器 (授权域名服务器):权威服务器提供最终的IP地址记录(A记录或AAAA记录)。

4. 结果返回与缓存

  • 响应链路:权威服务器→TLD服务器→根服务器→本地DNS服务器→客户端。
  • 缓存机制:每级服务器或客户端可能缓存结果,设置TTL(生存时间)控制有效期。

关键概念区分

  • 递归 vs 迭代
    • 递归查询:由客户端发起,要求DNS服务器必须返回最终结果(成功或失败)
    • 迭代查询:由DNS服务器发起,其他服务器仅返回“下一步建议”,不保证最终结果。
  • 权威服务器:存储域名与IP映射的官方数据库,如example.com的权威服务器由域名注册商配置。

示例流程(以www.example.com为例)

  1. 用户输入www.example.com,浏览器/系统缓存未命中。
  2. 请求发送至本地DNS服务器(主域名服务器),其缓存中无记录。
  3. 本地服务器向根服务器查询.com的TLD服务器地址。
  4. 根服务器返回.com TLD服务器的IP。
  5. 本地服务器向.com TLD服务器查询example.com的权威服务器。
  6. TLD服务器返回example.com权威服务器的IP。
  7. 本地服务器向权威服务器请求www.example.com的IP。
  8. 权威服务器返回IP,本地服务器缓存结果并返回给用户。

优化与安全

  • DNS缓存:减少重复查询,提升效率,但可能导致更新延迟(依赖TTL)。
  • CDN与负载均衡:权威服务器可能返回多个IP(如CDN节点),实现流量分发。
  • DNSSEC:通过数字签名验证DNS响应的真实性,防止劫持。

通过上述步骤,DNS查询实现了从域名到IP的高效、分布式解析,支撑了全球互联网的正常运行。

补充:由于递归查询对于被查询的域名服务器负担太大,通常采用以下模式,从请求主机到本地域名服机的查询采用递归查询方式,而其余的查询是迭代查询方式。

image-20230412220938238

例题

例题1

image-20250312192359203

解析:在域名解析过程中,根域名服务器一般是迭代查询,排除D。授权域名服务可能是递归、也可能是迭代查询,故C不对;主域名服务器(本地域名服务器)没有给客户返回查询结果,肯定是迭代查询,故排除B,正确答案选A。

注:由授权域名服务器传回解析结果,并不能说明授权域名服务器是递归查询,需要看如果他本地查不到,是否还会踢皮球,如果踢皮球那么是迭代,如果不踢皮球,就是递归(一般授权域名服务器会踢皮球)

例题2

image-20250312192424770

解析:递归是老好人,会帮你找到答案,返回给你;迭代是踢皮球,让你去其他人。

  • 全球只有13台根域名服务器,不可能递归给你查找,不然会累崩。
  • 域内主域名服务器返回用户查询请求是自己分内工作(专门干这事,所以不能偷懒,一定给出满意的结果),是递归查询。

例题3

image-20250312192507988

例题4

image-20250312192516058

解析:如果202.112.115.3采用递归,肯定是由他给客户端返回查询结果。本题中是由授权域名服务器返回的结果,说明主域名服务器踢皮球踢【迭代】给了授权域名服务器。授权域名服务器可能选代,也可能是递归算法。

例题5

image-20250312192529638

解析:

  • 本地域名服务器是递归
  • 根域名服务器是迭代
  • 中介域名服务器是递归
  • 授权域名服务器可能采用迭代,也可能递归。

Z例题6

image-20250425005142160

解析:IPv4正向解析记录为A记录,IPv6为AAAA记录,因为IPv4地址是32位,IPv6地址为128位,是4倍关系

Z例题7

image-20250425005207858

解析:hosts文件中存在主机名(域名)和IP地址的映射关系,且不会过期,而DNS缓存会超时过期。

  1. /etc/networks用于网络别名解析,但现代Linux已很少使用。
  2. /etc/hostname影响主机名称,但不影响域名解析。
  3. /etc/hosts优先于DNS,用于静态解析本地或局域网内的主机名。
  4. /etc/resolv.conf用于DNS解析,指定外部DNS服务器地址,用来指定DNS服务器解析顺序。

站内搜索

没有找到内容!