DNS主从

[root@localhost ~]# yum -y install bind
[root@localhost ~]# 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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };                        允许查询

        recursion yes;                  允许递归查询

#       dnssec-enable yes;              域名系统安全协议      是否启用
#       dnssec-validation yes;          域名系统安全协议   是否验证

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.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";                    注释掉密钥路径

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

zone "szd.com" IN {                  正向区域配置,域对应IP
        type master;                 设置类型为主域
        file "szd.com.zone";         让szd.com指向数据文件szd.com.zone
        allow-update { none; };      允许动态更新哪些客户机地址,当前设置为全部禁止
};

zone "1.168.192.in-addr.arpa" IN {    反向区域配置
        type master;                  主域
        file "192.168.1.arpa";        指向哪个文件
        allow-update { none; };       全部禁止
};

[root@localhost ~]# cd /var/named/          
[root@localhost named]# cp -p named.localhost szd.com.zone        拷贝正向解析模板
[root@localhost named]# cp -p named.localhost 192.168.1.arpa      拷贝反向解析模板

正向解析

$TTL 1D
@       IN SOA  @ szd.com. admin.szd.com. (
                                1234567890      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
www     IN A    192.168.1.21
sun     IN CNAME www

$TTL 1D: 设置了有效地址的缓存记录时间为1天(Day)
@:表示了本机
SOA:start of authority 开始授权信息
Zgod.com.:DNS域名
Root.zgod.com.:DNS域的管理员邮箱
2019022101这一行:更新序列号
1D这一行:刷新时间,设置多久从域名服务器更新该地址的数据库文件。
1H这一行:重试时间,如果更新地址数据库失效,多久以后重新尝试。
1W这一行:失效时间,超过这个时间仍然不能更新的,就停止尝试。
3H这一行:无效地址(数据库当中不存在的地址)解析记录的缓存时间。
NS:NS域名服务器的记录,它行首的@可以忽略不写,默认是继承了SOA记录的行首@信息。如果我们要省略它不写的话,也必须为他空出位置。
A:address地址的记录,只在正向解析的区域数据库文件中使用,设置域名服务器的A记录,地址为IPV4的地址;
AAAA:同样用来设置域名服务器的A记录。地址是IPV6的。
CNAME:别名canonical name为同一个域名下设置不同的名称,别名写在CNAME之前,对应的真名写在CNAME后面。

反向解析

$TTL 1D
@       IN SOA  @ szd.com. admin.szd.com. (
                                1234567890      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
21      IN PTR  www.szd.com

PTR:PTR指针记录。只用在反向解析的区域数据文件当中。这一行最前面的数字21,代表了192.168. 1.21这个特定的IP地址,指向了www.szd.com这个地址

验证配置文件语法
[root@localhost named]# named-checkconf /etc/named.conf 
[root@localhost named]# named-checkconf /etc/named.rfc1912.zones 
[root@localhost named]# named-checkzone szd.com 192.168.1.arpa 
zone szd.com/IN: loaded serial 1234567890
OK
[root@localhost named]# vim szd.com.zone 
[root@localhost named]# named-checkzone szd.com szd.com.zone 
zone szd.com/IN: loaded serial 1234567890
OK

在Redhat中会报错原因是正反向解析配置文件中只能写DNS域的管理员邮箱

[root@localhost named]# named-checkzone szd.com szd.com.zone 
dns_rdata_fromtext: szd.com.zone:2: near 'admin.szd.com': not a valid number
zone szd.com/IN: loading from master file szd.com.zone failed: not a valid number
zone szd.com/IN: not loaded due to errors.

[root@localhost named]# yum -y install httpd               下载apache
[root@localhost named]# vim /etc/httpd/conf/httpd.conf     修改配置文件添加一个域
ServerName www.szd.com:80
[root@localhost named]# systemctl start httpd
[root@localhost named]# firewall-cmd --permanent --add-service=http
success
[root@localhost named]# firewall-cmd --permanent --add-service=dns
success
root@localhost named]# firewall-cmd --permanent --add-port=80/tcp
success
[root@localhost named]# firewall-cmd --reload 
success
[root@localhost named]# systemctl start named
[root@localhost named]# echo 'szd.szd.szd' > /var/www/html/index.html
[root@localhost named]# curl www.szd.com

客户机

[root@localhost ~]# cat /etc/resolv.conf  
# Generated by NetworkManager
nameserver 192.168.1.21                    设置DNS服务器IP
[root@localhost ~]# curl www.szd.com
szd.szd.szd

DNS主从服务

DNS主服务器 192.168.1.21
DNS从服务器 192.168.1.22
客户端 192.168.1.12

主服务器

[root@localhost named]# vim /etc/named.rfc1912.zones                       修改反向配置
zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.1.arpa";
        allow-transfer { 192.168.1.22; };                                  添加DNS从服务器IP
        allow-update { none; };
};
[root@localhost named]# named-checkconf /etc/named.rfc1912.zones            检测语法
[root@localhost ~]#  systemctl restart named                                重启服务

从服务器

[root@localhost ~]# yum -y install bind
[root@localhost ~]# vim /etc/named.conf                                     配置文件与上面修改内容相同
[root@localhost ~]# vim /etc/named.rfc1912.zones     修改配置文件
zone "kgc.com" IN {
        type slave;                           类型为从
        masters { 192.168.1.21; };    写入主服务器IP
        file "slave/kgc.com.zone";   从的正向解析文件
};

zone "1.168.192.in-addr.arpa" IN {
        type slave;        类型为从
        masters { 192.168.1.21; };    主服务器IP
        file "slave/192.168.1.arpa";  从的反向解析文件
};

[root@localhost ~]# systemctl start named
[root@localhost ~]# firewall-cmd --permanent --add-service=dns
success
[root@localhost ~]# firewall-cmd --permanent --add-service=http
success
[root@localhost ~]# firewall-cmd --reload 
success

客户端

[root@localhost ~]# vim /etc/resolv.conf
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.22                   写DNS从服务器IP
[root@localhost ~]# nslookup www.kgc.com
Server:		192.168.1.22
Address:	192.168.1.22#53

** server can't find www.kgc.com: SERVFAIL

[root@localhost ~]# curl www.kgc.com

你可能感兴趣的:(基础)