DNS 作用

将主机名解析成 IP 地址,因为 IP 地址由一串数字组成,可以通俗的讲就是有些反人类不好记忆,所以使用 DNS 来将这一串数字解析为对应的域名,这样当用户访问时可以很方便的记住并且访问网页。但是计算机是不可能理解这种由拼音或者是英文组成的域名的,所以就可以利用 DNS 将名称解析成 IP 地址这样用户就可以通过域名来直接访问网络中的设备了。

DNS 介绍

域名系统,应用层协议,是互联网的一项服务,将域名和 IP 地址互相映射的一个分布式数据库,能够使人更方便地访问互联网,基于 C/S 架构。

DNS 查询类型(递归、迭代)

  • 递归查询:只会向根目录发起请求,如果根不知道权威服务器的位置,会根据客户端访问的域名一级一级的寻找,直到找到该域名的权威服务器返回给客户端
  • 迭代查询:客户端向根服务器发起请求,根返回给客户端自己的下一级(子域)的 DNS 服务器,客户端再次查询,直到一直请求找到权威服务器

DNS 缓存

局域网内每次通过 DNS 解析的域名都会在局域网的 DNS 服务器缓存下来解析记录,当用户再次访问时就不需要递归查询或者是迭代查询,直接通过本地的 DNS 缓存来查找目标主机的位置。但是缓存是有时间的。

DNS 的端口号

53/udp 同步和解析的作用

53/tcp 同步主从之间的文件作用

953/tcp rndc 这个管理软件是使用的 953 作为它的管理端口

FQDN 完整名称的组成

FQDN

在互联网中,所有的 dns 解析都是通过顶级的根域来解析所有的解析请求。全世界共有 13 台 DNS 的根域。

不同等级域的作用

  • 根域:最高等级的目录

  • 一级域名(顶级域)

    三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域 com, edu, mil, gov, net, org, int,arpa

  • 二级域名:taobao.com

  • 最多可达到 127 级域名

不同网页后缀代表的含义

域名的后缀大部分会体现网页的作用及用途,但是有个别的网站还是会显示用途不同。

  • com:商业用途
  • net:网络用途
  • edu:教育用途
  • gov
  • org:开源社区的类型
  • cn:国家域
  • io:新兴域名

DNS 服务器类型

  • 主 DNS 服务器
  • 从 DNS 服务器
  • 缓存 DNS 服务器(转发器)
主 DNS 服务器

管理和维护所负责解析的域内解析库的服务器

从 DNS 服务器

从主服务器或从服务器“复制”(区域传输)解析库副本

  • 序列号:解析库版本号,主服务器解析库变化时,其序列递增

  • 刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔

  • 重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔

  • 过期时长:从服务器联系不到主服务器时,多久后停止服务

  • 通知机制:主服务器解析库发生变化时,会主动通知从服务器

    <!--hexoPostRenderEscape:<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">0       ; serial</span><br><span class="line">1D      ; refresh</span><br><span class="line">1H      ; retry</span><br><span class="line">1W      ; expire</span><br><span class="line">3H )    ; minimum</span><br></pre></td></tr></table></figure>:hexoPostRenderEscape-->
    

区域传输

  • 完全传输:传送整个解析库,第一次同步时应该会完整传输
  • 增量传输:传递解析库变化的那部分内容,后面的解析都会是增量传输

解析形式

  • 正向解析:FQDN 将域名解析成 IP 地址
  • 反向解析:IP —> 将 IP 地址解析成域名

负责本地域名的正向和反向解析库

  • 正向区域
  • 反向区域

解析答案

  • 肯定答案:存在对应的查询结果
  • 否定答案:请求的条目不存在等原因导致无法返回结果
  • 权威答案:直接由存在此查询结果的 DNS 服务器(权威服务器)
  • 非权威答案:由其他非权威服务器返回的查询答案,一般是由代理答复

资源记录

区域解析库:众多资源记录 RR 组成

记录类型: A AAAA PTR SOA NS CNAME MX

  • SOA:起始授权记录,一个区域解析库有且只能有一条 SOA 记录,必须位于解析库的第一条记录
  • A:Internet Address,作用,FQDN—>IP(正向解析记录)
  • AAAA:FQDN—->IPv6
  • PTR:PoinTeR,IP—–>FQDN(反向解析记录)
  • NS:Name Server,用于标明当前区域的 DNS 服务器
  • CNAME:Canonical Name,别名记录
  • MX:Mail eXchanger,邮件交换器
  • TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此选项,如:SPF(反垃圾邮件记录),https 验证等
记录记录名称名称作用
SOA权威记录的起始指定有关 DNS 区域的权威性信息,包含主要名称服务器、域名管理员的电邮地址、域名的流水式编号、和有关几个刷新区域的定时器
AIPv4地址记录传回一个 32 位的 IPv4 地址,,常用于映射主机名到 IP 地址
AAAAIPv6地址记录传回一个 128 位的 IPv6 地址,常用于映射主机名称到 IP 地址
MX电邮交互记录引导域名到该域名的邮件传输代理列表
NS名称服务器记录委托 DNS 区域使用已提供的权威域名服务器
PTR指针记录引导一个规范名称,与 CNAME 记录不同,DNS 不会进程进程,只会传回名称,常用于反向 DNS 查找
TXT文本记录最初是为任意可读的文本 DNS 记录,自 1990 年起,记录更经常的带有机读取数据,已经不被推荐使用
CNAME规范名称记录(别名)一个主机名字的别名:域名系统将会继续尝试查找新的域名服务器

资源记录定义

bash
name        [TTL]        IN        rr_type        value
  1. TTL 可从全局继承
  2. 使用 @ 符号可用于引用当前区域的名字
  3. 同一个名字可以通过多条记录定义多个不同的值;此时 DNS 服务器会以轮询的方式响应
  4. 同一个值也可能有多个不同的定义名字;通过不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到一个主机

面试题

bash
1. 我的网站域名需要更改,如何使其更快的生效?
    刷新 dns 缓存
2. 更改TTL值为多少比较合适呢?是如何生效的?

DNS 解析查询过程

bash
Client --> hosts 文件 ---> Client DNS Service Local Cache ---> DNS Server(recursion递归)---> DNS Server Cache ---> DNS iteration(迭代)---> 根 ---> 顶级域名 DNS ---> 二级域名 DNS

DNS 文件

hosts 文件

txt
优先级最高