网络服务 - DNS
00 分钟
2024-6-20
Created
Jun 14, 2024 12:44 PM
Tags

DNS 服务

(一)服务原理

简介

  • Domain Name System域名系统
  • 域名 指向 网络 IP 地址,让人们可以通过注册的域名方便访问到网站。

什么是域名?

域名是一个映射到数字 IP 地址的文本字符串,可用于从客户端软件访问网站。通俗地来说,域名是用户在浏览器窗口中键入的文本,用它来访问特定网站。例如,Google 的域名是 “google.com”。网站的实际地址是一个复杂的数字 IP 地址,但多亏有 DNS,用户可以输入友好的域名,并将它们路由到其要查找的网站。这个过程就称为 DNS 查询。

域名组成

  • 根域
    • 全球有限数量的根域服务器(13台)
  • 顶级域 | 一级域
    • 由域名管理机构创建和管理
  • 注册域 | 二级域
    • 个人和企业可以申请的域名(有偿);
  • 子域 | 三级域
    • 在申请的二级域基础上,设置的网站名。

DNS 查询

在没有任何高速缓存的典型 DNS 查询中,有四个服务器协同工作以将 IP 地址传递给客户端:递归解析器根域名服务器TLD 顶级域名服务器权威域名服务器
完整的典型 DNS 查询
完整的典型 DNS 查询
DNS递归器(也称为 DNS 解析器,客户端的首选 DNS )是一台服务器,它从 DNS 客户端接收查询,然后与其他 DNS 服务器进行交互以查找正确的 IP 。解析器收到来自客户端的请求后,实际上就充当客户端本身,查询其他三种类型的 DNS 服务器以搜索正确的 IP 。
首先,解析器查询根域名服务器。根域名服务器是将人类可读域名解析为 IP 地址的第一步。然后,根服务器使用存储其域信息的 顶级域 (TLD) DNS 服务器(例如 .com 或 .net)的地址 响应解析器。
接下来,解析器查询 TLD 服务器。TLD 服务器以 域的权威名称服务器的 IP 地址 进行响应。然后,递归查询器查询权威名称服务器,该服务器将使用 源站的 IP 地址 进行响应。
解析器最终将源站 IP 地址传递回客户端。然后,使用该 IP 地址,客户端可以直接向源站发起查询,并且源站将通过发送可以由网页浏览器解释和显示的网站数据进行响应。
DNS查询分类有:
  • 递归查询(Recursive Query)
    • 发生在客户机与指定的DNS服务器之间,返回 确定 的值。
  • 迭代查询(Iterative Query)
    • 发生在指定DNS服务器与后续DNS服务器之间,返回 大致 的值。
根据域名解析的方向也可分为:
  • 正向查询:由域名解析为 IP 地址
  • 反向查询:由 IP 地址解析为域名

DNS 高速缓存

除了上述过程,递归解析器还可以使用高速缓存的数据解析 DNS 查询。在为给定的网站检索了正确的 IP 地址之后,解析程序将在有限的时间内将该信息存储在其高速缓存中。在此时间段内,如果其他任何客户端发送对该域名的请求,则解析程序可以跳过典型的 DNS 查找过程,并仅使用保存在 缓存 中的IP地址来响应客户端。
缓存时间限制到期后,解析器必须再次检索 IP 地址,并在其缓存中创建一个新条目。在每个站点的 DNS 记录明确设置了此时间限制,称为 生存时间 (TTL)。通常,TTL 范围为 24-48 小时。TTL 是必需的,因为网页服务器偶尔会更改其 IP 地址,所以解析器无法无限期地从高速缓存中提供相同的 IP。

域名解析流程

注:HOSTS 文件和缓存优先级高于 DNS 服务
客户机本地解析
  • 客户机 首先查找 本地 hosts 文件 ,如果有则返回,否则进行下一步;
  • 客户机 查看 本地缓存 ,是否存在本条目的缓存,如果有则直接返回,否则进行下一步;
  • 将请求转发给指向的 DNS服务器。
首选 DNS 服务器查询
  • DNS服务器 查看域名是否 本地解析 ,是则本地解析返回,否则进行下一步;
  • DNS服务器本地缓存 中查找,有则返回,无则进行下一步;
  • DNS服务器根域服务器 发起 DNS 请求,根域返回一级域的地址列表;
  • 使用列表中某一个一级域的 IP 地址,发起 DNS 请求,一级域返回二级域服务器地址列表;
  • 使用列表中某一个二级域的 IP 地址,发起 DNS 请求,二级域返回对应主机的 IP 地址;
  • 本地 DNS 服务器 收到后返回给 客户机,并在本地 DNS 服务器缓存一份。

(二)服务参数

(三)DNS 服务搭建流程

1. 基本架构部署

实验环境
  • 操作系统:CentOS Linux release 7.6.1810
  • 软件工具:bind
  • 关闭防火墙 / SELINUX
设备
属性
虚拟机网卡
本机网卡
网卡对应 IP 地址
C7 - 1
DNS Server
VMNET 3
ens33
192.168.88.10
C7 - 2
DNS Client
VMNET 3
ens33
192.168.88.20
服务端 Server
  1. 安装 bind 软件
    1. 配置 DNS 服务配置文件
      1. 启动服务并设置自启动
        客户端 Client
        验证:

        2. DNS 主从服务器部署

        负载均衡,减小主服务器压力
        实验环境
        • 操作系统:CentOS Linux release 7.6.1810
        • 软件工具:bind
        • 关闭防火墙 / SELINUX
        设备
        属性
        虚拟机网卡
        本机网卡
        网卡对应 IP 地址
        C7 - 1
        DNS Master Server
        VMNET 3
        ens33
        192.168.88.10
        C7 - 2
        DNS Slave Server
        VMNET 3
        ens33
        192.168.88.20
        C7 - 3
        DNS Client
        VMNET 3
        ens33
        192.168.88.30
        DNS 主服务器 Master Server
        1. 配置 DNS 服务配置文件
          1. 重启 named 服务
            DNS 从服务器 Slave Server
            1. 下载安装 bind 软件
              1. 配置 DNS 服务配置文件
                1. 📢
                  数据配置文件无需配置,主从部署完成后自动同步
              1. 启动 named 服务并设置自启动

                3. DNS 缓存服务器部署

                实验环境
                • 操作系统:CentOS Linux release 7.6.1810
                • 软件工具:bind、dnsmasq
                • 关闭防火墙 / SELINUX
                设备
                属性
                虚拟机网卡
                本机网卡
                网卡对应 IP 地址
                C7 - 1
                DNS Master Server
                VMNET 3
                ens33
                192.168.88.10
                C7 - 2
                DNS Cache Server
                VMNET 3
                ens33
                192.168.88.20
                C7 - 3
                DNS Client
                VMNET 3
                ens33
                192.168.88.30
                DNS 主服务器 Master Server
                同基本架构部署。
                DNS 缓存服务器 Cache Server
                1. 安装 dnsmasq 软件
                  1. 配置 dnsmasq 服务
                    1. 启动 dnsmasq 服务并设置自启动

                      4. DNS 智能解析部署

                      此实验环境在 基本架构部署 基础上进行
                      服务端
                      1. 重新配置 DHCP 服务配置文件
                        1. 重启 named 服务

                          (四)常见报错 & 问题

                          • 域名解析时 hosts 文件 优先级高于 DNS 服务
                          • 部署主从 DNS 服务器,当主服务器挂掉时,从服务器依旧可以工作,,可以提高服务的可用性(让客户端查觉不到的方法是分配DNS2);
                          • 部署缓存 DNS 服务器,当主服务器挂掉时,缓存服务器无法返回解析未缓存数据的结果;
                          • 部署 DNS 智能解析需在主配置文件中注释掉原区域配置文件。
                          上一篇
                          Linux 基础知识 往期汇总
                          下一篇
                          <K8S> vol. 01 - kubernetes 组件