目录

1.概述

1.1.产生原因

1.2.作用:

1.3.连接方式

1.4因特网的域名结构

2. DNS域名解析过程

2.1.分类:

2.2.解析图:

2.2.1.图:

2.2.2.过程分析

3. 搭建DNS域名解析服务器

3.1.概述

3.2.安装软件

3.3.bind服务中三个关键文件

3.4主配置文件分析

5.1 区域配置文件

3.5.1.作用

3.5.2.区域配置文件示例分析

3.5.3 模板 (named.localhost ¥ named.loopback) 

3.6.域名解析记录分析

3.7.实验1:正向解析

3.8 实验2:反向解析

4.部署DNS从服务器

4.1.作用:

4.2.实验3:主从DNS服务器

4.2.1.完全区域传送

4.2.2 增量区域传送

4.2.3.注意:


1.概述

1.1.产生原因

        IP 地址:是互联网上计算机唯一的逻辑地址,通过IP 地址实现不同计算机之间的相互通信,每台联网计算机都需要通过I 地址来互相联系和分别,但由于P 地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的 P 地址,这样对于我们日常工作生活访问不同网站是很困难的。
        基于这种背景,人们在IP 地址的基础上又发展出了一种更易识别的符号化标识,这种标识由人们自行选择的字母和数字构成,相比IP 地址更易被识别和记忆,逐渐代替P 地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名

        域名虽然更易被用户所接受和使用,但计算机只能识别纯数字构成的IP 地址,不能直接读取域名。因此要想达到访问效果,就需要将域名翻译成IP 地址。而 DNS 域名解析承担的就是这种翻译效果

1.2.作用:

        DNS(Domain Name System)是互联网上的一项服务,用于将域名和IP地址进行相互映射使人更方便的访问互联网

        正向解析:域名->IP

        反向解析:IP->域名

1.3.连接方式

DNS使用53端口监听网络

查看方法:

        DNS默认以UDP这个较快速的数据传输协议来查询,但没有查询到完整的信息时,就会再次以TCP协议重新查询则启动DNS时,会同时启动TCP以及UDP的port53

[root@server ~]# cat /etc/services  # 存放已经安装的服务的端口号

复习:以学习到的端口号

        htp:21/20

        ssh:22

        远程登陆协议:23

        DNS:53

        http:80

        https:443

        ntp:123

1.4因特网的域名结构

1.4.1.拓扑:

        由于因特网的用户数量较多,则因特网命名时采用层次树状结构的命名方法

        域名(domain name): 任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的.名称

        域 (domain): 是名字空间中一个可被管理的划分结构

        注意:域名只是逻辑概念,并不代表计算机所在的物理地点

1.4.2.分类

        国家顶级域名: 采用IS03166的规定,如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为CCTLD(country code top-evel domains,cc表示国家代码contry-code)通用顶级域名:最常见的通用顶级域名有7个
         com(公司企业)
         net(网络服务机构)
         org(非营利组织)
         int(国际组织)
         gov(美国的政府部门)
         mil(美国的军事部门)

        基础结构域名(infrastructure domain): 这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名

1.4.3.域名服务器类型划分

组织架构:

        根域名服务器: 最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。本地域名服务器要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。则根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。所以根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服纸器进行查询。

        (用于管理所有的域名解析服务  ,但不直接负责域名解析。存储所有的域名解析记录,但不直接进行域名解析)

        在与现有IPv4根服务器体系架构充分兼容基础上,由我国下一代互联网国家工程中心领衔发起的“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台Pv6(互联网协议第六版)根服务器架设,事实上形成了13台原有根加25台IPv6根的新格局为建立多边、民主、透明的国际互联网治理体系打下坚实基础。中国部署了其中的4台,由1台主根服务器和3台辅根服务器组成,打破了中国过去没有根服务器的困境。

        顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名
        权限域名服务器:负责一个””的域名服务器(如下图的:openlab

        本地域名服务器: 本地域名服务器不属于域名服务器的层次结构,当主机发出DNS查询时,这个查询报文就发送给本地域名服务器
        为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,如:

                主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与IP 地址之间的对应关系(真正干活的)

                从服务器: 从主服务器中获得域名与P 地址的对应关系并进行维护,以防主服务器宕机等情况(打下手的)

                缓存服务器: 通过向其他域名解析服务器查询获得域名与IP 地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率,一般部署在企业内网的网关位置,用于加速用户的域名查询请求

2. DNS域名解析过程

2.1.分类:

        递归解析:DNS 服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS 服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户
        迭代解析(反复):DNS 服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS 服务器的地址,用户再向这台 DNS 服务器提交请求,依次反复,直到返回查询结果

2.2.解析图:

2.2.1.图:

2.2.2.过程分析

        第一步:在浏览器中输入www.google 域名,本地电脑会检查浏览器缓存中有没有这个域名对应的解析过的IP 地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过 TTL 属性来设置。这个缓存时间太长和太短都不太好,如果时间太长,一旦域名被解析到的IP 有变化,会导致被客户端缓存的域名无法解析到变化后的P 地址,以致该域名不能正常解析,这段时间内有一部分用户无法访问网站。如果设置时间太短,会导致用户每次访问网站都要重新解析一次域名

        第二步:如果浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的 DNS解析结果。其实操作系统也有一个[域名解析]的过程,在 Linux 中可以通过 /etc/hosts 文件来设置,而在windows 中可以通过配置 C:WindowslSystem32\driversletclhosts 文件来设置,用户可以将任何域名解析到任何能够访问的IP 地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地 DNS 解析的规程,所以有黑客就可能通过修改用户的域名来把特定的域名解析到他指定的IP 地址上,导致这些域名被劫持

        第三步:前两步是在本地电脑上完成的,若无法解析时,就要用到我们网络配置中的“DNS 服务器地址”了。操作系统会把这个域名发送给这个本地 DNS 服务器。每个完整的内网通常都会配置本地 DNS 服务器,例如用户是在学校或工作单位接入互联网,那么用户的本地 DNS 服务器肯定在学校或工作单位里面。它们一般都会缓存域名解析结果,当然缓存时间是受到域名的失效时间控制的。大约 80% 的域名解析到这里就结束了,后续的 DNS 迭代和递归也是由本地 DNS服务器负责

        第四步:如果本地 DNS 服务器仍然没有命中,就直接到根 DNS 服务器请求解析

        第五步:根 DNS 服务器返回给本地 DNS 域名服务器一个顶级 DNS 服务器地址,它是国际顶级域名服务器,如、、 等,全球只有 13 台左右

        第六步:本地 DNS服务器再向上一步获得的顶级DNS 服务器发送解析请求

        第七步: 接受请求的顶级 DNS 服务器查找并返回此域名对应的 Name Server 域名服务器的地址,这个 Name Server 服务器就是我要访问的网站域名提供商的服务器,其实该域名的解析任务就是由域名提供商的服务器来完成。比如我要访问 www.baidu,而这个域名是从A公司注册获得的,那么A公司上的服务器就会有 www.baidu 的相关信息

        第八步:返回该域名对应的IP 和 TTL 值,本地 DNS 服务器会缓存这个域名和IP 的对应关系缓存时间由 TTL 值控制
        第九步: Name Server 服务器收到查询请求后再其数据库中进行查询,找到映射关系后将其IP地址返回给本地DNS服务器

        第十步: 本地DNS服务器把解析的结果返回给本地电脑,本地电脑根据 TTL 值缓存在本地系统缓存中,域名解析过程结束在实际的 DNS 解析过程中,可能还不止这 10 步,如 Name Server 可能有很多级,或者有一个 GTM 来负载均衡控制,这都有可能会影响域名解析过程

注意:

            从客户端到本地DNS服务器是属于递归查询

            DNS服务器之间使用的交互查询就是迭代查

        114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。

        223.5.5.5和223.6.6.6是阿里提供的免费域名解析服务器地址

        8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用

3. 搭建DNS域名解析服务器

3.1.概述

        伯克利因特网域名解析服务是一种全球使用最BIND: Berkeley Internet Name Domain广泛的、最高效的、最安全的域名解析服务程序

3.2.安装软件

[root@server ~]# yum   install  bind -y

3.3.bind服务中三个关键文件

        /etc/named.conf:主配置文件,共59行, (负责全局性配置,服务是否启动,具体的监听端口号)查看黑白名单,以及端口号是否开启。去除注释和空行之和有效行数仅30行左右,用于设置bind服务程序的运行
        /etc/named.rfc1912.zones : 区域配置文件 (zone) ,用于保存域名和IP地址对应关系文件的所在位置,类似于图书目录,当需要修改域名与IP映射关系时需要在此文件中查找相关文件位置(存储具体解析记录文件的位置)查看域具体的映射文件名字
        /var/named 目录: 数据配置文件目录,该目录存储保存域名和IP地址映射关系的数据文件

# 域名解析具体记录的数据库文件(数据配置文件
[root@server ~]# vim /var/named/named.localhost                # 正向解析模板        
[root@server ~]# vim /var/named/named.loopback                # 反向解析模板 

3.4主配置文件分析

主配置文件共4部分组成

  options{}

  options{ 
        listen-on port 53 { 127.0.0.1; };  
                     # 监听端口号53, 白名单{172.0.0.1  } 重要,监听允许访问的ip与端口,可以使用IP地址网段、所有主机 (any)                                 
        listen-on-v6 port 53 { ::1; };
        directory"/var/named";  # DNS数据目录位置,默认即可
        dump-file"/var/named/data/cache_dump.db"; # 默认缓存文件位置,默认即可
        statistics-file “/var/named/data/named_stats.txt"  # DNS状态文件保存文件,默认即可
        memstatistics-file "/var/named/data/named_mem_stats.txt
                                     #内存状态文件保存文件,默认即可
        secroots-file"/var/named/data/named.secroots";       # 安全根服务器保存位置,默认即可
        recursing-file "/var/named/data/named.recursing",# 递归查询文件保存位置,默认即可
        recursing-file "/var/named/data/named.recursing",
                                        # 递归查询文件保存位置,默认即可
        allow-query        { localhost;};
                # 重要,表示允许那些客户端进行访问,可以书写IP地址、网段、所有主机 (any)
        recursion yes;                                           # 重要,允许递归查询,若删除则为迭代查询
        dnssec-validation yes;                                              # 开启加密,默认即可
        managed-keys-directory "/var/named/dynamic";
                                                        # 指定目录中文件保存位置,用于管理密钥 (DNSSEC)
        pid-file"/run/named/named.pid";                         # pid文件保存路径,默认即可
        session-keyfile"/run/named/session.key",        # 会话密钥存储路径,自动生成,默认即可

};

  logging{}    # 日志

logging { # 指定日志记录的分类及其存储目录
        channel default_debug  # 设置日志输出方式
                file"data/named.run"; # 产生日志信息文件的位置
                severity dynamic;#日志级别
        };
};

   zonef{}       # 区域

zone  "."  IN  { # zone 表示区域, "."  表示根,此处设置DNS根服务器的相关内容
            type hint;# 表示服务器的类型为根
            file "named.ca";  # 用于保存dns根服务器信息的文件,存储路径/var/named/named.ca,一共有13台ipv4和13台ipv6根服务器信息
;            

include      # 文件加载

include"/etc/named.rfc1912.zones"# 表示当前DNS服务器的区域配置文件位置
include "/etc/named.root.key";# 密钥存储文件位置

5.1 区域配置文件

3.5.1.作用

         /etc/named.rfc1912zones文件为bind服务程序的区域配置文件,用来保存域名与IP地址映射关系文件的位置,是一系列功能模板的集合

3.5.2.区域配置文件示例分析

正向解析:

        

zone  "localhost.localdomain"  IN  {       # 正向解析域名

                type master; # 服务类型: master表示主服务器,slave表示从服务器,hint根服务

                file  "named.1ocalhost"; # 域名与IP地址规则文件存储位置

                allow-update  { none; } ;   # 允许那些客户端动态更新本机域名解析

# a11ow-update: 允许更新解析库内容,一般关闭
# a11ow-query: 允许查询的主机,白名单
# allow-tranfter :允许同步的主机,白名单,常用
# a1low-recursion:允许递归的主机

反向解析:

        zone  "1.0.0.127.in-addr.arpa”  IN  {  # 表示127.0.0.1的反向解析配置,IP地址需要倒置书写,只需书写网段即可

                type master;
                file   "named.loopback";  # 反向解析的规则文件保存位置

                allow-update {  none;  };

3.5.3 模板 (named.localhost ¥ named.loopback 

正向解析模板:[root@server ~]# vim /var/named/named.localhost   

$TTL 1D # 设置生存周期时间,为1天,$表示宏定义
@         IN   SOA        @         rname.invalid.(      
# @ : 表示zone域,现在表示域名,如baidu
# IN SOA : 授权信息开始(起始授权记录)
# rname.invalid.: 域名管理员的邮箱 (不能使用@,使用点替代邮件分隔符@)
                                     0          ; seria1         # 序列号,10位以内的整数        
                                     1D        ; refresh        # 更新频率为1天
                                     1H        ;retry             # 失败重试时间为1小时
                                     1w        ;expire          # 失效时间1周
                                     3H        ;minimum     # 缓存时间为3小时

               N        NS        ns.域名.         

ns           IN        A        域名解析服务器IP地址
www       IN        A        域名解析服务器IP地址
bbs         IN        A        域名解析服务器IP地址
mail        IN        A        域名解析服务器IP地址

# A: 表示IPV4地址, AAAA表示IPv6地址

反向解析模板:[root@server ~]# vim /var/named/named.loopback       

@         IN   SOA         @         rname.invalid.(      
                                     0          ; seria1                
                                     1D        ; refresh      
                                     1H        ;retry           
                                     1w        ;expire      
                                     3H        ;minimum   

               IN             NS        ns.域名.         

ns           IN              A        域名解析服务器IP地址
IP地址    PTR        域名。                    # PTR 指针记录,用于反向解析

3.6.域名解析记录分析

        A记录:A代表 Address,(具体域名对应的IP结果)来指定域名对应的IP 地址,如将item.taobao 指定到115.238.23.xxx,将switch.taobao 指定到 121.14.24.xxx

        MX记录: Mail Exchange,就是可以将某个域名下的邮件服务器指向自己的 Mail Server,如taobao 域名的A记录I 地址是115.238.25.xxx,如果将MX记录设置为115.238.25.xxx,即 xx@taobao 的邮件路由,DNS 会将邮件发送到 115.238.25.xxx所在的服务器,而正常通过 Web 请求的话仍然解析到 A 记录的IP 地址

        NS记录:(该区域内负责他域名解析记录的服务器域名为某个域名指定 DNS 解析服务器,也就是这个域名由指定的IP 地址的 DNS 服务器取解析

        CNAME 记录: Canonical ame,即别名解析。所谓别名解析就是可以为一个域名设置一个或者多个别名,如将aaa 解析到 bbb、将 ccc 也解析到 bbb,其中 bbb分别是aaa 和 ccc 的别名

        TXT 记录:为某个主机名或域名设置说明,如可以为 ddd,net 设置 TXT 记录为“这是XXX 的博客”这样的说明

3.7.实验1:正向解析

    服务端IP                   客户端IP                                     网址
192.168.17.128        192.168.17.129                       www.openlab        

步骤一:准备工作

[root@server ~]# setenforce 0
[root@server ~]# systemct1 stop firewalld

[root@server ~]# yum instal1 bind -y

                注意:若最终测试时想使用测试方法二,则建议配置以下操作

# 客户端设置静态IP地址

[root@node1 ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.17.129/24 ipv4.gateway 192.168.17.2 ipv4.dns 114.114.114.114
[root@node1 ~]# nmcli connection reload 
[root@node1 ~]# nmcli connection up ens160 

步骤二:DNS解析配置

第一步: 服务端操作,配置DNS主配置文件

[root@server ~]# vim /etc/named.conf 

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { any; };
第二步:服务端操作,编辑区域配置文件,可以清空后添加,也可以选择一个解析模版进行修改
[root@server ~]# vim /etc/named.rfc1912.zones 

#  随机选择一个正向解析模板, 进行改写,设置解析区域名及存储解析记录的数据文件名。并删除多余的正向解析模板。命令及图图如下:

zone "openlab" IN {
        type master;
        file "openlab.zone" ;   #  默认在/var/named
        allow-update { none; };
};

第三步:服务端操作,编辑数据配置文件

拷贝:

[root@server ~]# cd /var/named/
[root@server named]# cp -a named.localhost  openlab.zone

或者使用以下命令:

[root@server ~]# cp -a /var/named/named.localhost     /var/named/openlab.zone
                                     # cp -a 完全拷贝(文件的权限也开拷贝)

root@server ~]#  vim /var/named/openlab.zone 

$TTL 1D
opeblab.    IN SOA  ns.openlab.  andy.qq. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
openlab.                 IN      NS                   ns.openlab.
ns.openlab.            IN      A                     192.168.17.128
www.openlab.        IN      A                     192.168.17.128
bbs.openlan.          IN      A                     192.168.17.129
ftp.openlab.            IN      A                     192.168.17.129
www1.openlab.      IN      CNAME           www.openlab.

注意:编辑域名配置时,要写完全限定结构(由根域、顶级域名、权威域名服务器构成)

           因此每个域名后都要添加"."(代表根域)

第四步:服务端操作,重启服务

[root@server named]# systemctl  start named

第六步:测试

测试方法一:[root@node1 ~]# nslookup www.openlab 192.168.17.128

Server:        192.168.17.128
Address:    192.168.17.128#53

Name:    www.openlab
Address: 192.168.17.128

[root@node1 ~]# host www.openlab 192.168.17.128

Using domain server:
Name: 192.168.17.128
Address: 192.168.17.128#53
Aliases: 

www.openlab has address 192.168.17.128

[root@node1 ~]# dig -t A  www.openlab @192.168.17.128

; <<>> DiG 9.16.23-RH <<>> -t A www.openlab @192.168.17.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2813
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 10ab3242503d19e70100000065572548318ee637b19269c5 (good)
;; QUESTION SECTION:
;www.openlab.        IN    A

;; ANSWER SECTION:
www.openlab.    86400    IN    A    192.168.17.128

;; Query time: 0 msec
;; SERVER: 192.168.17.128#53(192.168.17.128)
;; WHEN: Fri Nov 17 16:33:12 CST 2023
;; MSG SIZE  rcvd: 88

测试方法二:

将客户端的网卡配置文件中的DNS解析地址修改为服务端的IP地址,以后客户端的dns解析申请会交给服务端来完成

[root@node1 ~]# vim /etc/NetworkManager/system-connections/ens160.nmconnection   # 打开网卡配置文件

[root@nodel ~]# nmcli    connection  reload        # 重载配置文件

[root@nodel ~]# nmcli   connection up ens160   # 激活

[root@server ~]# nslookup    # 进入交互模式进行测试

以下方法均可测试:

[root@server ~]# host www,openlab
[root@server ~]# dig  @192.168.48.130 www.openlab

3.7.2.注意:第三步数据配置文件可以进行精简

        SOA起始授权记录: openlab. IN SOA ns.openlab.admin.openlab.()表示openlab.这个域名指定dns服务器为ns.openlab.这台主机,以及其它附加信息

       ns记录:openlab           IN         NS        ns.openlab.,声明openlab.这个域**,名的dns服务器为ns.openlab.主机

        以上区别: NS记录仅仅只是声明该域内哪台主机是dns服务器,用来提供名称解析服务,NS记录不会区分哪台dns服务器是master哪台dns服务器是slave。而SOA记录则用于指定哪个NS记录对应的主机是master dns服务器,也就是从多个dns服务器中挑选一台任命其为该域内的master dns服务器,其他的都是slave,都需要从master上获取域相关数据。

        A记录:表示那台主机解析为什么IP地址
        CNAME记录:别名,www1.openlab.主机解析为www.openlab.主机在查找对应IP
精简原则:
        可以使用@替代域名,如@替代openlab.。

        可以使用空格或tab重复继承上一行第一列的值

        可以省略域名,会自动补全,如: www为www.openlab

        配置文件可以省略如下:

$TTL 1D
opeblab.    IN SOA  ns.openlab.  andy.qq. (
                                         0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
             IN      NS      ns.openlab.
ns         IN      A       192.168.17.128
www     IN      A       192.168.17.128
bbs       IN      A       192.168.17.129
ftp         IN      A       192.168.17.129
www1   IN  CNAME   www

3.8 实验2:反向解析

    服务端IP                   客户端IP                                     网址
192.168.17.128        192.168.17.129                       www.openlab        

第一步:服务端操作,基于上例,继续完成,主配置文件按照上例设置不变,编辑区域配置文选择一个反向解析模版进行修改件,

[root@server named]# vim /etc/named.rfc1912.zones 

zone "17.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.17.arpa";                        # 数据配置文件名使用网段号+.arpa组成
        allow-update { none; };
};

第二步:服务端操作,编辑数据配置文件,复制一份反向解析模版 (named.loopback),在修
改局部即可

[root@server named]# cp -a /var/named/named.loopback   /var/named/192.168.17.arpa
[root@server named]# vim /var/named/192.168.17.arpa 

$TTL 1D        
@       IN SOA  ns.openlab.  jenny.qq. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.openlab.
128     IN      PTR     ns.openlab.
128     IN      PTR     www.openlab.
128     IN      PTR     bbs.openlab.
128     IN      PTR     ftp.openlab.

第三步:服务端重启服务

[root@server named]# systemct] restart named

第四步: 客户端操作,测试

测试一:

[root@node1 ~]# host 192.168.17.128  192.168.17.128

[root@node1 ~]# nslookup  192.168.17.128 192.168.17.128

测试二:

[root@node1 ~]# nslookup 

4.部署DNS从服务器

4.1.作用:

        DNS作为重要的互联网基础设施服务,保证 DNS 域名解析服务的正常运转至关重要,只有这样才能提供稳定、快速且不间断的域名查询服务

        DNS 域名解析服务中,从服务器可以从主服务器上获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率

注意:

        时间同步必须保持一致性
        bind最好使用同一版本

4.2.实验3:主从DNS服务器

4.2.1.完全区域传送

        将一个区域文件复制到多个从服务器上的过程称为区域传送
        将主服务器的所有信息全部复制到从服务器中,称为完全区域传送,即复制整个区域文件
        实验说明

    设备                              IP                                系统        

主服务器                192.168.48.130                RHEL9.1

从服务器                192.168.48.131                RHEL9.1

第一步: 两个服务器server和node1恢复快照,安装软件,设置静态IP

所有设备均执行以下操作:

setenforce 0
systemctl stop firewal1d

服务端及客户端都设置静态IP地址:

[root@server ~]# yum instal1 bind -y

[root@nodel ~]# yum instal1 bind -y

第二步:主服务器server端操作,设置dns主配置文件,修改内容如下

[root@server ~]# vim /etc/named.conf 
options {
        listen-on port 53 { 192.168.17.128; };                # 可以该为本机IP或any
        ........
        allow-query     { any; };

第三步:主服务器server操作,设置区域配置文件

[root@server ~]# vim /etc/named.rfc1912.zones 

zone "openlab" IN {
        type master;
        file "openlab.zone";
        allow-transfer { 192.168.17.129; };
};             #  重点:改为同步模式,格式为a11ow-transfer {   从服务器的IP地址;  };

第四步:主服务器server端操作,设置正向解析的数据配置文件

[root@server ~]# cd /var/named/
[root@server named]# cp -a named.localhost  openlab.zone
[root@server named]# vim openlab.zone 

$TTL 1D
openlab.    IN SOA  ns.openlab. andy.qq. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
openlab.            IN      NS      ns.openlab.
openlab.            IN      NS      slave.openlab.  # 增加从服务器信息
ns.openlab.         IN      A       192.168.17.128
slave.openlab.      IN      A       192.168.17.129 # 增加从服务器信息

www.openlab.        IN      A       192.168.17.128
ftp.openlab.        IN      A       192.168.17.128
bbs.openlab.        IN      A       192.168.17.128

第五步:主服务器server端操作,重启服务

[root@server named]#  systemctl restart named

第六步:从服务器node1端操作,修改主配置文件

[root@node1 ~]# vim /etc/named.conf 

options {
        listen-on port 53 { 192.168.17.129; };
         .......
        allow-query     { any; };

第七步:从服务器node1端操作,修改区域配置文件

[root@node1 ~]# vim /etc/named.rfc1912.zones 

zone "openlab" IN {
        type slave;                                             # 服务类型变更为从
        masters { 192.168.17.128; };                # 设置主服务器的IP地址
        file "slaves/openlab.zone";         # 从服务器的数据配置文件存储位置slaves目录下
};

第八步: 从服务器node1端重启服务,当从服务器服务重启,会向主服务器同步拉取数据到/var/named/slaves

[root@node1 slaves]# ls
[root@node1 slaves]# systemctl start named   # 重启后会自动从主服务器拉取文件
[root@node1 slaves]# ls

openlab.zone                        # 拉取数据  (拉取的文件为openlab.zone

第九步:测试

查看客户端node2网卡配置情况

[root@node2 ~]# vim /etc/NetworkManager/system-connections/ens160.nmconnection 

修改DNS服务器IP地址:

重启服务

[root@node2 ~]# nmcli connection reload 
[root@node2 ~]# nmcli connection up ens160 

连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
测试:[root@node2 ~]# nslookup www.openlab

4.2.2 增量区域传送

功能:仅复制区域中变化的数据部分,减少数据传送的时间。

第一步:主服务器server端操作,修改数据配置文件

[root@server named]# vim /var/named/openlab.zone 

$TTL 1D
openlab.    IN SOA  ns.openlab. andy.qq. (
                                        1       ; serial 
                         # 注意: 1 ;  serial中序号修改为1,否则从服务器不会更新数据
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
openlab.            IN      NS      ns.openlab.
openlab.            IN      NS      slave.openlab.
openlab.            IN      MX      8       mail.openlab.

ns.openlab.         IN      A       192.168.17.128
slave.openlab.      IN      A       192.168.17.129

mail.openlab.       IN      A       192.168.17.128
www.openlab.        IN      A       192.168.17.128
ftp.openlab.        IN      A       192.168.17.128
        # 此处删除bbs.openlab  观察结果
www1.openlab.       IN      CNAME   www.openlab.

# 注意: "1        ;  serial "      中序号修改为1,否则从服务器不会更新数据

第二步:主服务器server端操作,重启服务

[root@server named]#  systemctl restart named

第三步: 从服务器node1端,重启服务

[root@node1 slaves]# systemctl start named

第四步:定位node2端测试

注意:从bbs.openlab我们可以看出,无论增加还是删除,改变的数据都会被拉取

4.2.3.注意:

序号必须比原序号要大
更新频率需要改小一些,这样可以更快看到实验结果
增量传送中主服务端需要写关于从服务器的NS记录和A记录,否则从服务器端不更新数据