07-DNS服务项目实战-01

部署DNS主服务器【正向解析】

参考资料:https://blog.51cto.com/u_15380738/4715365#1DNS_1

在主配置文件中定义区域

[19:20:23 root@vb01 ~]# egrep -v "//|^$" /etc/named.conf 
options {
        // listen-on port 53 { 127.0.0.1; };
        // listen-on port 53 { 127.0.0.1;192.168.0.0/24; };
        /*注销掉53端口绑定特定IP,表示该机器的任何IP都监听;也可以改为localhost,表示dns机器的所有IP地址*/

        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
        /*表示不限制访问来源,允许所有网段的机器进行dns查询*/

        recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.root.key";
        managed-keys-directory "/var/named/dynamic";
        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/rndc.key";

定义区域解析库文件

内容包括 :
 - 宏定义
 - 资源记录

 范例:区域数据库
[19:28:00 root@vb01 ~]# egrep -v "//|^$" /etc/named.rfc1912.zones     
zone "chengzi.org" IN {
    type master;
    file "chengzi.org.zone";
};
// 新增chengzi.org域,该域下的具体配置在/var/named/ zone
"localhost.localdomain" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "localhost" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty"; allow-update { none; }; };

配置区域数据库chengzi.org.zone

[19:28:20 root@vb01 ~]# cat /var/named/chengzi.org.zone 
$TTL 1D
@       IN SOA  master chengzi.org. (
                                        2022052110      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       192.168.56.11
www     A   192.168.56.12
k8snode1 A  192.168.56.35
k8snode2 A  192.168.56.37
db       A  192.168.56.12
*        A  192.168.56.12
@        A  192.168.56.12
  • 注意:更新区域数据库记录时,一定要记得更新版本号serial

语法检查

#主配置文件语法检查
named-checkconf
#解析库文件语法检查
named-checkzone chengzi.org /var/named/chengzi.org.zone
#配置生效
#三种方式
rndc reload
systemctl reload named
service named reload

客户端测试

[root@centos8-01 ~]# grep DNS /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.56.11
#DNS1=202.181.202.140
[root@centos8-01 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.56.11
[root@centos8-01 ~]# dig +short www.chengzi.org
192.168.56.12
[root@centos8-01 ~]# dig +short k8snode1.chengzi.org
192.168.56.35
[root@centos8-01 ~]# dig +short k8snode2.chengzi.org
192.168.56.37
[root@centos8-01 ~]# dig +short db.chengzi.org      
192.168.56.12
[root@centos8-01 ~]# dig +short abcdefg.chengzi.org
192.168.56.12

允许动态更新

  • 动态更新:可以通过远程更新区域数据库的资源记录
  • 实现动态更新,需要在指定的zone语句块中:Allow-update {any;}; 
  • 范例:
chmod 770 /var/named
setsebool  -P named_write_master_zones on    #开启SELinux才需要执行此步
nsupdate
>server 127.0.0.1
>zone magedu.org
>update add ftp.magedu.org 88888 IN A 8.8.8.8
>send
>update delete www.magedu.org A
>send 
#测试
dig ftp.magedu.org @127.0.0.1
ls -l /var/named/magedu.org.zone.jnl
cat /var/named/magedu.org.zone

启用DNS客户端缓存功能

  • 在高并发的服务器场景中,对DNS的服务器查询性能有较高的要求
  • 如果在客户端启用DNS缓存功能,可以大幅减轻DNS服务器的压力,同时也能提高DNS客户端名称解析速度

CentOS 启用DNS客户端缓存

  • CentOS 默认没有启用DNS客户端缓存,安装nscd(Name Service Cache Daemon,名称服务缓存守护进程)包可以支持DNS缓存功能,减少DNS服务器压力,提高DNS查询速度
yum -y install nscd && systemctl enable --now nscd
#查看缓存统计信息
nscd -g

#清除DNS客户端缓存
nscd -i hosts

Ubuntu 启用DNS客户端缓存

  • ubuntu 默认会启用DNS客户端缓存
systemctl status systemd-resolved.service
systemd-resolve --statistics
#清空缓存
systemd-resolve --flush-caches
systemd-resolve --statistics

别名解析

#服务端配置
[21:46:51 root@vb01 ~]# cat /var/named/chengzi.org.zone
$TTL 1D
@       IN SOA  master chengzi.org. (
                                        2022052121      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master        A     192.168.56.11
www         CNAME   chengzi.glb
chengzi.glb CNAME   chengzi.gbl.cdn
chengzi.gbl.cdn A   192.168.56.12
k8snode1    A   192.168.56.35
k8snode2    A   192.168.56.37
db          A   192.168.56.12
*           A   192.168.56.12
@           A   192.168.56.12
@           MX  10  mail1
@           MX  20  mail2
mail1       A   192.168.56.11
mail2       A   192.168.56.12
[21:46:44 root@vb01 ~]# rndc reload     
WARNING: key file (/etc/rndc.key) exists, but using default configuration file (/etc/rndc.conf)
server reload successful
[21:46:46 root@vb01 ~]# named-checkconf 
[21:46:48 root@vb01 ~]# named-checkzone chengzi.org /var/named/chengzi.org.zone 
zone chengzi.org/IN: loaded serial 2022052121
OK

#客户端测试
[nameke@centos8-01 ~]$ dig www.chengzi.org|grep chengzi.org
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> www.chengzi.org
;www.chengzi.org.               IN      A
www.chengzi.org.        86400   IN      CNAME   chengzi.glb.chengzi.org.
chengzi.glb.chengzi.org. 86400  IN      CNAME   chengzi.gbl.cdn.chengzi.org.
chengzi.gbl.cdn.chengzi.org. 86400 IN   A       192.168.56.12
chengzi.org.            86400   IN      NS      master.chengzi.org.
master.chengzi.org.     86400   IN      A       192.168.56.11

实现反向DSN解析

反向解析配置说明

  • 反向区域:即将IP反向解析为FQDN
  • 区域名称:网络地址反写.in-addr.arpa
实例:
172.16.100. --> 100.16.172.in-addr.arpa.

(2) 定义区域解析库文件
zone "ZONE_NAME" IN {
 type {master|slave|forward};
 file "网络地址.zone"
};

注意:不需要MX,以PTR记录为主
范例:
$TTL 86400
$ORIGIN 16.172.in-addr.arpa.
@ IN SOA ns1.magedu.org. admin.magedu.org. (
 2015042201
 1H
 5M
 7D
 1D )
 IN NS ns1.magedu.org.
1.2 IN PTR www.magedu.org.
3.4 IN PTR mx1.magedu.org.

#实现以下解析
172.16.2.1 www.magedu.org.
172.16.4.3 mx1.magedu.org.

反向解析实战

  • 主配置文件/etc/named.rfc1912.zones增加反向解析域
[00:51:30 root@vb01 /var/named]# egrep -v "//" /etc/named.rfc1912.zones    
// 增加反向解析域名
zone "56.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.56.arpa";
};
zone "chengzi.org" IN {
    type master;
    file "chengzi.org.zone";
};


zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};
  • 配置反向解析域内容
cd /var/named && cp -p named.loopback 192.168.56.arpa
[00:51:44 root@vb01 /var/named]# cat 192.168.56.arpa
$TTL 1D
@       IN SOA  master admin.chengzi.org. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
    NS  master.chengzi.org.
11 PTR master.chengzi.org.
12 PTR www.chengzi.org. 35 PTR k8snode1.chengzi.org. 37 PTR k8snode2.chengzi.org.
  • 检查正向解析域反向解析的语法配置
rndc reload     
named-checkconf    
named-checkzone 56.168.192.in-addr.arpa 192.168.56.arpa
named-checkzone chengzi.org /var/named/chengzi.org.zone
  • 客户端测试
dig -t ptr 37.56.168.192.in-addr.arpa @192.168.56.11|grep chengzi.org
dig -t ptr 35.56.168.192.in-addr.arpa @192.168.56.11|grep chengzi.org
dig -t ptr 12.56.168.192.in-addr.arpa @192.168.56.11|grep chengzi.org
dig -t ptr 11.56.168.192.in-addr.arpa @192.168.56.11|grep chengzi.org
host 192.168.56.12
nslookup 192.168.56.12

部署从DNS服务器

  • 只有一台主DNS服务器,存在单点失败的问题,可以建立主DNS服务器的备份服务器,即从服务器来实现DNS服务的容错机制。
  • 从服务器可以自动和主服务器进行单向的数据同步,从而和主DNS服务器一样,也可以对外提供查询服务,但从服务器不提供数据更新服务。

DNS从服务器要求

1. 应该为一台独立的名称服务器
2. 主服务器的区域解析库文件中必须有一条NS记录指向从服务器
3. 从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目
录中
4. 主服务器得允许从服务器作区域传送
5. 主从服务器时间应该同步,可通过ntp进行
6. bind程序的版本应该保持一致;否则,应该从高,主低

定义从区域

zone "ZONE_NAME" IN {
 type slave;
 masters { MASTER_IP; };
 file "slaves/ZONE_NAME.zone";
};

实战环境要求

#需要四台主机
DNS主服务器:192.168.56.11
DNS从服务器1:192.168.56.35
DNS从服务器2:192.168.56.123
WEB服务器:192.168.56.12 DNS客户端:192.168.56.37 #前期准备 关闭SElinux 关闭防火墙【也可以设置对应的防火墙规则】 时间同步

DNS主节点服务端配置

  • 主配置/etc/named.conf授权slave节点同步数据
[20:48:50 root@admin-dns ~]# egrep -v "^/" /etc/named.conf
options {
        // listen-on port 53 { 127.0.0.1; };//注释掉
        // listen-on port 53 { 127.0.0.1;192.168.0.0/24; };//注释掉
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
        allow-transfer { 192.168.56.35;192.168.56.123; };//允许从节点拉取数据
[20:48:55 root@admin-dns ~]# egrep -v "^/" /etc/named.rfc1912.zones 

zone "56.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.56.arpa";
    allow-transfer { 192.168.56.35;192.168.56.123; };
};
zone "chengzi.org" IN {
    type master;
    file "chengzi.org.zone";
    allow-transfer { 192.168.56.35;192.168.56.123; };
};
  • 正向解析配置文件添加两个slave从节点
[20:50:24 root@admin-dns ~]# cat /var/named/chengzi.org.zone 
$TTL 1D
@       IN SOA  master.chengzi.org. admin.chengzi.org. (
                             052128     ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
         NS        master.chengzi.org.
         NS    slave1
         NS    slave2
master   A         192.168.56.11
slave1   A     192.168.56.35
slave2   A     192.168.56.123
www      CNAME  chengzi.glb
chengzi.glb  CNAME   chengzi.gbl.cdn
chengzi.gbl.cdn  A   192.168.56.12
k8snode1     A   192.168.56.123
k8snode2     A   192.168.56.37
db           A   192.168.56.12
*            A   192.168.56.12
@            A   192.168.56.12
@            MX  10  mail1
@            MX  20  mail2
mail1        A   192.168.56.11
mail2        A   192.168.56.12
  • 反向解析添加记录
[20:51:50 root@admin-dns ~]# cat /var/named/192.168.56.arpa 
$TTL 1D
@       IN SOA  master admin.chengzi.org. (
                                        2       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS  master.chengzi.org.
    NS  slave1.chengzi.org.
    NS  slave2.chengzi.org.

11  PTR master.chengzi.org.
35  PTR slave1.chengzi.org.
123 PTR slave2.chengzi.org.
12      PTR     www.chengzi.org.
123  PTR k8snode1.chengzi.org.
37  PTR k8snode2.chengzi.org.

DNS从节点服务端配置

  • 配置主配置文件
options {
        // listen-on port 53 { 127.0.0.1; };
        // listen-on port 53 { 127.0.0.1;192.168.0.0/24; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
        allow-query-cache { any; };
        allow-transfer  { none; };//不允许其他任何机器来从节点拉取数据
  • 从节点定义区域及同步数据文件路径
zone "chengzi.org" IN {
    type slave;
    masters { 192.168.56.11; };
    file "slaves/chengzi.org.zone";//此为同步主节点正向解析记录的数据文件
};
zone "56.168.192.in-addr.arpa" IN {
    type slave;
    masters { 192.168.56.11; };
    file "slaves/chengzi.org.slave";//此为同步主节点反向解析记录的数据文件
};
  • 主从节点重新加载配置
#主节点
rndc reload
named-checkconf
named-checkzone chengzi.org /var/named/chengzi.org.zone
named-checkzone 56.168.192.in-addr.arpa /var/named/192.168.56.arpa
systemctl reload named.service

#从节点
rndc reload
named-checkconf
systemctl reload named.service 
  • 客户端测试
#正向解析
dig www.chengzi.org @192.168.56.11|grep chengzi.org
dig www.chengzi.org @192.168.56.35|grep chengzi.org

#反向解析
dig -t ptr 123.56.168.192.in-addr.arpa. @192.168.56.11|grep chengzi.org
dig -t ptr 123.56.168.192.in-addr.arpa. @192.168.56.35|grep chengzi.org

  • 主节点与slave1宕机测试
#主节点挂掉,测试结果
[21:12:51 root@admin-dns ~]# systemctl stop named.service
[root@centos8-01 ~]# dig www.chengzi.org|grep SERVER
;; SERVER: 192.168.56.35#53(192.168.56.35)

#主节点master和slave1同时挂掉,测试结果
[root@centos8-01 ~]# dig www.chengzi.org @192.168.56.123|grep SERVER   
;; SERVER: 192.168.56.123#53(192.168.56.123)

实现子域委派和转发查询

  • 将子域委派给其它主机管理,实现分布式DNS数据库
  • 正向解析区域子域方法
#定义两个子域区域
shanghai.magedu.org. IN NS ns1.ops.magedu.org.
shanghai.magedu.org. IN NS ns2.ops.magedu.org.
shenzhen.magedu.org. IN NS ns1.shenzhen.magedu.org.
shenzhen.magedu.org. IN NS ns2.shenzhen.magedu.org.
ns1.shanghai.magedu.org. IN A 1.1.1.1
ns2.shanghai.magedu.org. IN A 1.1.1.2
ns1.shenzhen.magedu.org. IN A 1.1.1.3
ns2.shenzhen.magedu.org. IN A 1.1.1.4

实现DNS父域和子域服务

参考资料:https://www.cnblogs.com/linchenkai/p/14258787.html

#需要五台主机
DNS父域服务器:192.168.56.11
DNS子域服务器:192.168.56.28、192.168.56.123
父域的web服务器:192.168.56.12,www.chengzi.org
子域的web服务器:
192.168.56.28:www.shanghai.chengzi.org、www.shanghai.magedu.org
192.168.56.123:www.guangzhou.chengzi.org、www.guangzhou.chengzi.org DNS客户端:192.168.56.37
  • dns-master父域服务器端
[15:17:32 root@admin-dns ~]# egrep -v "^/" /etc/named.conf 

options {
        // listen-on port 53 { 127.0.0.1; };
        // listen-on port 53 { 127.0.0.1;192.168.0.0/24; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
        allow-transfer { 192.168.56.123;192.168.56.28; };//允许子域服务器同步解析记录数据
[15:18:02 root@admin-dns ~]# egrep -v "/" /etc/named.rfc1912.zones 

zone "magedu.org" IN {
    type master;
    file "magedu.org.zone";
};

zone "56.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.56.arpa";
    allow-transfer { 192.168.56.28;192.168.56.123; };
};
zone "chengzi.org" IN {
    type master;
    file "chengzi.org.zone";
    allow-transfer { 192.168.56.28;192.168.56.123; };//两个子域服务器,分别为上海、广州地区
};
[15:21:02 root@admin-dns ~]# egrep -v "/" /var/named/chengzi.org.zone
$TTL 1D
@       IN SOA  master.chengzi.org. admin.chengzi.org. (
                             052139     ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
          NS   master.chengzi.org.
guangzhou NS   guangzhoudns
master    A        192.168.56.11
guangzhoudns A  192.168.56.123
www       CNAME websvr
websvr    A     192.168.56.12 
[15:23:57 root@admin-dns ~]# egrep -v "/" /var/named/magedu.org.zone
$TTL 1D
@       IN SOA  master admin.magedu.org. (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
             NS     master
shanghai NS     shanghains
master   A      192.168.56.11
shanghains A    192.168.56.28
websrv    A     192.168.56.12
www      CNAME  websrv
  • 上海子域服务器192.168.56.28
[15:16:56 root@vb06 ~]# egrep -v "^/" /etc/named.conf  
options {
        //listen-on port 53 { 127.0.0.1; };
        // 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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
        allow-transfer  { none; };
        recursion yes;
        dnssec-enable no;//关闭key认证
        dnssec-validation no;
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.root.key";

        managed-keys-directory "/var/named/dynamic";
        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};
logging {
        channel default_debug {
        file "data/named.run";
        severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
#定义子域服务器的解析区域
[15:25:35 root@vb06 ~]# egrep -v "^/" /etc/named.rfc1912.zones 
// shanghai.chengzi.org子域配置
zone
"shanghai.chengzi.org" IN { type master; file "shanghai.chengzi.org.zone"; }; // shanghai.magedu.org子域配置 zone "shanghai.magedu.org" IN { type master; file "shanghai.magedu.org.zone"; };
#56.28子域服务器分别定义上海、广州子域解析记录
[15:28:12 root@vb06 ~]# cat /var/named/shanghai.magedu.org.zone 
$TTL 1D
@       IN SOA  master admin.magedu.org. (
                                     052302     ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       192.168.56.28
websrv  A       192.168.56.12
www     A       192.168.56.35
[15:29:04 root@vb06 ~]# cat /var/named/shanghai.chengzi.org.zone
$TTL 1D
@ IN SOA master admin.chengzi.org. (
                           052220  ; serial
                           1D  ; refresh
                           1H  ; retry
                           1W  ; expire
                           3H )    ; minimum
              NS        master
master        A     192.168.56.28 
k8snode1      A     192.168.56.37
www           A     192.168.56.123
  • 广州子域服务器192.168.56.123
[15:16:56 root@dns-node2 ~]# egrep -v "^/" /etc/named.conf 
options {
        // listen-on port 53 { 127.0.0.1; };
        // listen-on port 53 { 127.0.0.1;192.168.0.0/24; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        #allow-query     { localhost; };
        allow-query     { any; };
        allow-query-cache { any; };
        allow-transfer  { none; };//该子域服务器没有下级,则禁止其他机器同步拉取解析记录
        recursion yes;
        dnssec-enable no;//关闭认证
        dnssec-validation no;
        bindkeys-file "/etc/named.root.key";
        managed-keys-directory "/var/named/dynamic";
        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};
logging {
        channel default_debug {
        file "data/named.run";
        severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
[15:34:15 root@dns-node2 ~]# egrep -v "^/" /etc/named.rfc1912.zones 
//主从节点配置
zone "chengzi.org" IN {
    type slave;
    masters { 192.168.56.11; };
    file "slaves/chengzi.org.zone";
};
// guangzhou.chengzi.org子域配置
zone "guangzhou.chengzi.org" IN {
    type master;
    file "guangzhou.chengzi.org.zone";
    allow-transfer { none; };
};
// 反向解析配置
zone "56.168.192.in-addr.arpa" IN {
    type slave;
    masters { 192.168.56.11; };
    file "slaves/chengzi.org.slave";
};
#广州子域解析记录
[15:36:28 root@dns-node2 ~]# cat /var/named/guangzhou.chengzi.org.zone 
$TTL 1D
@       IN SOA  master admin.chengzi.org. (
                                052230  ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                  NS        master
master        A     192.168.56.123
websrv        A     192.168.56.12
www           A     192.168.56.35
  • 主服务器与子域服务器56.28/56.123重新加载测试
#主服务器
rndc reload
named-checkconf
named-checkzone chengzi.org /var/named/chengzi.org.zone

#上海子域服务器56.28
rndc reload
named-checkconf
named-checkzone shanghai.magedu.org /var/named/shanghai.magedu.org.zone 
named-checkzone shanghai.magedu.org /var/named/shanghai.chengzi.org.zone

#广州子域服务器56.123
rndc reload
named-checkconf
named-checkzone guangzhou.chengzi.org /var/named/guangzhou.chengzi.org.zone 
  • 客户端192.168.56.37测试
[root@c8-client01 ~]# dig www.guangzhou.chengzi.org|grep org       
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> www.guangzhou.chengzi.org
;www.guangzhou.chengzi.org.     IN      A
www.guangzhou.chengzi.org. 74649 IN     A       192.168.56.35
guangzhou.chengzi.org.  86400   IN      NS      guangzhoudns.chengzi.org.
guangzhoudns.chengzi.org. 86400 IN      A       192.168.56.123
[root@c8-client01 ~]# 
[root@c8-client01 ~]# dig www.guangzhou.magedu.org|grep org 
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> www.guangzhou.magedu.org
;www.guangzhou.magedu.org.      IN      A
magedu.org.             10800   IN      SOA     master.magedu.org. admin.magedu.org. 1 86400 3600 604800 10800
[root@c8-client01 ~]#
[root@c8-client01 ~]# 
[root@c8-client01 ~]# dig www.shanghai.magedu.org|grep org         
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> www.shanghai.magedu.org
;www.shanghai.magedu.org.       IN      A
www.shanghai.magedu.org. 325    IN      A       47.91.170.222
magedu.org.             40380   IN      NS      expirens4.hichina.com.
magedu.org.             40380   IN      NS      expirens3.hichina.com.
[root@c8-client01 ~]# 
[root@c8-client01 ~]# dig www.shanghai.chengzi.org|grep org      
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> www.shanghai.chengzi.org
;www.shanghai.chengzi.org.      IN      A
chengzi.org.            10800   IN      SOA     master.chengzi.org. admin.chengzi.org. 52138 86400 3600 604800 10800

[root@c8-client01 ~]# dig www.shanghai.magedu.org|grep org         
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> www.shanghai.magedu.org
;www.shanghai.magedu.org.       IN      A
www.shanghai.magedu.org. 325    IN      A       47.91.170.222
magedu.org.             40380   IN      NS      expirens4.hichina.com.
magedu.org.             40380   IN      NS      expirens3.hichina.com.
[root@c8-client01 ~]# 
[root@c8-client01 ~]# dig www.shanghai.chengzi.org|grep org      
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> www.shanghai.chengzi.org
;www.shanghai.chengzi.org.      IN      A
chengzi.org.            10800   IN      SOA     master.chengzi.org. admin.chengzi.org. 52138 86400 3600 604800 10800
[root@c8-client01 ~]# 
[root@c8-client01 ~]# dig www.chengzi.org|grep org         
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> www.chengzi.org
;www.chengzi.org.               IN      A
www.chengzi.org.        86400   IN      CNAME   websvr.chengzi.org.
websvr.chengzi.org.     86400   IN      A       192.168.56.12
chengzi.org.            86400   IN      NS      master.chengzi.org.
master.chengzi.org.     86400   IN      A       192.168.56.11

DNS转发(缓存)服务器

DNS转发

  • 利用DNS转发,可以将用户的DNS请求,转发至指定的DNS服务,而非默认的根DNS服务器,并将指定服务器查询的返回结果进行缓存,提高效率
  • 注意:
    • 1. 被转发的服务器需要能够为请求者做递归,否则转发请求不予进行
    • 2. 在/etc/named.conf的全局配置块中,关闭dnssec功能 
dnssec-enable no;
dnssec-validation no;

转发方式

全局转发

  • 对非本机所负责解析区域的请求,全转发给指定的服务器
  • 在全局配置块中实现:
Options {
   forward first|only;
   forwarders { ip;};
};

特定区域转发

  • 仅转发对特定的区域的请求,比全局转发优先级高
zone "ZONE_NAME" IN {
   type forward;
   forward first|only;
   forwarders { ip;};
};
  • first:先转发至指定DNS服务器,如果无法解析查询请求,则本服务器再去根服务器查询
  • only: 先转发至指定DNS服务器,如果无法解析查询请求,则本服务器将不再去根服务器查询 

实战案例:实现DNS forward(缓存)服务器

环境要求

#需要四台主机
DNS主服务器:192.168.56.11
DNS只缓存服务器:192.168.56.28
web服务器:192.168.56.12
DNS客户端:192.168.56.37
  • 主DNS服务器192.168.56.11
#1、安装DNS
yum install bind -y
vim /etc/named.conf             
#2、注释掉两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };
vim /etc/named.rfc1912.zones    
#加上下面这段
zone "chengzi.org" {
   type master;
   file  "chengzi.org.zone";
};
#3、设置解析记录
cp -p /var/named/named.localhost /var/named/chengzi.org.zone
#如果没有-p,需要改权限。chgrp named chengzi.org.zone
vim /var/named/chengzi.org.zone
$TTL 1D
@   IN SOA master admin.chengzi.org. (
                    20220523 ; serial
                   1D ; refresh
                   1H ; retry
                   1W ; expire
                   3H )   ; minimum
           NS   master
master     A    192.168.56.11
websrv     A    192.168.56.12                       
www       CNAME websrv
#4、重新加载服务
systemctl start named          #第一次启动服务
rndc reload                    #不是第一次启动服务
  • 转发(只缓存)DNS服务器192.168.56.28
#1、安装DNS
yum install bind -y
vim /etc/named.conf             
#2、注释掉两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };
forward first;
forwarders { 192.168.56.11; }; 
#3、关闭dnsec功能
dnssec-enable no;
dnssec-validation no;
systemctl start named          #第一次启动服务
rndc reload                    #不是第一次启动服务
  • 在客户端测试192.168.56.37
dig www.chengzi.org    
curl www.chengzi.org
posted @ 2022-05-22 22:14  西瓜的春天  阅读(92)  评论(0)    收藏  举报