云计算百科
云计算领域专业知识百科平台

【Linux笔记】DNS域名解析服务器(dns的安装、named.conf、resolv.conf、named.rfc1912.zones、slave辅助dns)

一、概念

Linux 系统中的 DNS(Domain Name System,域名系统)是互联网中用于将人类可读的域名(如 www.example.com)转换为计算机可识别的 IP 地址(如 192.168.1.1)的核心服务。


1、核心功能:

  • 正向解析:将域名转换为 IP 地址。

  • 反向解析:将 IP 地址转换为域名。

  • 支持多种记录类型(如 A、AAAA、CNAME、MX、NS 等)。

2、解析流程:

  • 本地缓存 → 本地配置的 DNS 服务器 → 递归查询(根域名服务器 → 顶级域名服务器 → 权威域名服务器)。

3、域:

一个网站,如www.bilibili.com,其中:

  • www.bilibili.com —— 域名
  • bilibili.com —— 域
  • www —— 名

4、解析

网站转IP 或者 IP转网站 的转变过程就叫解析

(1)域名网站 ——> IP地址(正向解析 )

        www.bilibili.com 转变为> 192.168.76.254(一个ip地址,这里博主只是举例,不代表b站网址ip是这个),把域名变成IP的过程叫正向解析

(2)IP地址 ——> 域名网站(反向解析 )

192.168.76.254  转变为> www.bilibili.com,把IP变成域名的过程叫反向解析

5、分布式

(1)分布式的优势

  • 避免单点故障:

    • 没有单一服务器控制所有数据,任一节点故障不会导致全网瘫痪。

  • 负载均衡:

    • 查询请求分散到不同层级的服务器,减轻单个节点的压力。

  • 扩展性:

    • 新域名只需在对应的权威服务器注册,无需修改全局配置。

  • 地理分布优化:

    • 权威服务器可部署在靠近用户的位置,降低延迟(例如 CDN 利用 DNS 返回用户最近的节点 IP)。

  • (2)简单的讲

    比如:

    非分布式是一个加法式子:1+2+3+4 = 10

    那分布式就是把加法式子拆分:1+2=3  |  3+4 =7  |  3+7 =10

    这个拆分的思想,就是把复杂的业务拆分成若干步骤,由不同的服务器分别完成

    (3)与集中式系统的对比

    特性分布式 DNS集中式系统(假设)
    数据存储 分片存储,各层级独立管理 单一数据库存储所有数据
    故障影响 局部故障不影响整体 单点故障导致全网瘫痪
    扩展性 易于扩展新域 扩展需修改全局配置
    延迟 通过缓存和地理分布优化 依赖中心节点的响应速度

    二、命令

    注意:本篇的命令配置涉及两个虚拟机(模拟一个DNS服务端,一个客户端)的配置和测试,请自行克隆准备两个虚拟机哦!

    1、安装dns(dns端进行,后续只要表明“dns端”即说明在dns端主机进行命令配置

    (1)软件BIND介绍

    Linux 中的 DNS 服务器软件:BIND (Berkeley Internet Name Domain)

    • 最广泛使用的开源 DNS 服务器,支持权威 DNS 和递归 DNS。

    • 特点:

      • 支持 DNSSEC(DNS 安全扩展)。

      • 高度可配置,适用于大型网络。

      • 主/从服务器架构支持数据同步。

    • 配置文件:

      • 主配置文件:/etc/named.conf

      • 区域文件:/var/named/ 目录下(如 example.com.zone)。

    (2)安装命令

    安装需要搭建软件仓库,详情请见之前博客,该命令在dns端主机进行!(后续只要表明“dns端”即说明在dns端主机进行命令配置)

    dnf install bind.x86_64 -y

    示例

     

    2、火墙允许(dns端进行)

    如果系统开启firewalld,则需要放行火墙

    (1)放行火墙

    firewall-cmd –permanent –add-service=dns

     示例


     (2)重启火墙

    firewall-cmd –reload

    示例 

     

    3、启动服务(dns端进行)

    启动dns服务

    systemctl enable –now named

     示例

     

    4、DNS配置(dns端进行)

    (1)进入/etc/named.conf

    vim /etc/named.conf

    示例


    (2) 进行修改

    找到options项,在其下进行修改,具体看图片

    示例

    解释: 

    • listen-on port 53 { any; }; —— 在系统所有接口上开启53端口
    • allow-query     { any; }; —— 允许所有人查询dns上的信息

     (3)重启服务

    重启服务来刷新状态

    systemctl restart named

    示例 

    做到这里,我们就确保能够访问dns


    (4)测试(客户端进行)

    在客户端指定服务端dns的ip,并在客户端进行测试

    1)进入/etc/resolv.conf

    vim /etc/resolv.conf

    示例


     2)进行编辑

    进入后添加nameserver,后面跟的ip地址是dns端主机的ip地址

    nameserver 192.168.76.100

    示例

    dns自己的主机端也顺带这样做了:

     


    3)测试

    dig www.baidu.com

    示例 

    能访问成功,但延迟巨大

    那么,怎么解决延迟大的问题呢?接下来就解决这个问题 

    5、dns高速缓存的配置(解决毫秒延迟大的问题)

    (1)进入/etc/named.conf(dns端进行)

    vim /etc/named.conf

    示例 


    (2)进行修改

    进入后,找回options项,添加forwarders,指定当本地没有要查询的信息时去8.8.8.8

    wq保存


    (3)重启服务 

    systemctl restart named

    示例

    这样就优化了延迟高的问题


    (4)测试(客户端进行)

    d1g Www.baidu.com

    示例 

    三、 dns高速缓存测试报错信息

    如果没有做上述的操作而测试的话,大概率会报错,以下是一些报错信息解析:

    1、报错一

    # dig www.baidu.com

    ; <<>> DiG 9.16.23-RH <<>> www.baidu.com
    ;; global options: +cmd
    ;; connection timed out; no servers could be reached

    此报错的问题:

    • DNS的软件没安装,或者服务没开
    • 火墙未放行
    •  dns本身设置未开放网络功能(端口未在ip上开放)

    2、报错二

    # dig www.baidu.com

    ; <<>> DiG 9.16.23-RH <<>> www.baidu.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: REFUSED(#被拒绝), id: 59820
    ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
    ;; WARNING: recursion requested but not available

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1232
    ; COOKIE: 99e3ac0c78b8353c0100000068200e77611b08638708a7c5 (good)
    ;; QUESTION SECTION:
    ;www.baidu.com. IN A

    ;; Query time: 2 msec
    ;; SERVER: 172.25.254.10#53(172.25.254.10)
    ;; WHEN: Sun May 11 10:41:56 CST 2025
    ;; MSG SIZE rcvd: 70

     此报错的问题:

    • dns的配置中限制了当前主机访问服务的请求

    四、搭建dns正向解析

    并不是所有的网站都希望或者能够放到世界的DNS服务器中,或者说在世界所有dns中没有记录可以查询,此时就可以搭建dns正向解析,该容器内彼此访问都是用域名的方式

    1、创建要维护的域

    (1)进入/etc/named.rfc1912.zones

    vim /etc/named.rfc1912.zones

    示例

    该文件为dns的域名维护子配置文件,文件被包含在主配置文件中

    (2)编辑修改

    按照下图进行修改

    示例

    图中框内的一些解释: 

    • "lincoln.org" —— 引号内表示维护的域名,lincoln为博主的用户名,这里你们随便取名即可,.org是网站的一种后缀(类似.com)
    • type master; —— 表示当前dns为主dns,master就是主人的意思,代表此dns为主dns
    • file "lincoln.org.zone"; —— 指定此域中的数据存放文件

    2、建立维护域所需要的数据文件

    如标题所示,建立维护域是需要一些必要的数据文件的

    (1)复制一份named.localhost并进行修改

    cp -p /var/named/named.localhost /var/named/lincoln.org.zone

    示例


    进入复制的文件:

    vim /var/named/lincoln.org.zone

    示例


     进行修改:

     示例

    原图:


    (2)重启服务

    systemctl restart named

    示例 


    (3)测试(客户端进行)

    测试刚刚自己写的域名

    dig www.lincoln.org

    示例 

    访问成功,正向dns解析搭建完成

    五、辅助dns的部署

    dns服务器可能会面临访问人数太多,导致dns相应速度变慢,甚至会因为访问压力太大导致dns崩溃,这时辅助dns就能够帮忙分流,分担压力

    1、安装dns相关软件(客户端进行)

    这里是要把客户端变成辅助dns,所以客户端也要安装dns的相关软件,操作和上面的服务端安装dns大差不差,所以只是简单的过一下命令,详细介绍就看上面的即可

    dnf install bind -y

    示例


    2、火墙放行(客户端进行)

    firewall-cmd –permanent –add-service=dns

    示例


    火墙重启 (客户端进行)

    firewall-cmd –reload

    示例

     


    3、DNS配置(客户端进行)

    vim /etc/named.conf

    示例


    进入后修改编辑

    示例


     开启服务

    systemctl enable –now named

    示例 


    进入此文件 

    vim /etc/named.rfc1912.zones

    示例 


    修改编辑

    示例

    辅助dns的配置和主dns配置有些许不同 


    重启服务

    systemctl restart named

    示例


    测试

    (1)dns端(也就是主dns端)的测试

    dig www.lincoln.org

    示例

    (2)客户端(也就是辅助dns端)的测试

    先修改:

    vim /etc/resolv.conf

    示例 

    进入后: 

     开始测试:

     

    六、辅助dns的数据同步优化

    主dns在更新域名的A记录时,辅助dns默认是不会跟着同步的,这样就会出现数据差异,从而导致使用辅助dns作为解析服务器的用户得到的地址就是错的

    如何解决?

    —— 让主dns主动通知辅助dns,我的A记录已经被更改,请同步数据到辅助dns上即可

    1、设置同步参数(主dns端进行)

    (1)进入/etc/named.rfc1912.zones

    vim /etc/named.rfc1912.zones

    示例 


    (2)修改编辑

    示例


    (3)测试

    是先解释:

    在辅助dns做从新同步时,使用数据文件中的serial从而确定主dns上的A记录被改变,此值变化代表A记录更新。serial值只能做增量变化,最大10位

    vim /var/named/lincoln.org.zone

    示例


    进入修改


    重启

    systemctl restart named

    示例

     


    查看在主dns中的更改生效情况

    示例


    查看辅助dns中的A记录是否自动更新

    示例


    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【Linux笔记】DNS域名解析服务器(dns的安装、named.conf、resolv.conf、named.rfc1912.zones、slave辅助dns)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!