centos7搭建主从DNS服务器

欢迎关注我的公众号《pencil带你玩转Linux》,回复“Linux学习资料”获取视频教程哦。

centos7搭建主从DNS服务器_第1张图片

DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制。其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析。

主DNS服务器

 1. DNS服务器需要安装bind、bind-chroot、bind-utils:

yum -y install bind bind-utils bind-chroot

2. 编辑配置文件/etc/named.conf,找到listen-on这一行,改为:

listen-on port 53 { any; }; #any是匹配所有的意思

3.找到allow-query这一行,改为:

  allow-query     { any; };

4.对DNS配置文件进行一下语法检查:

named-checkconf /etc/named.conf

5.重启DNS服务器:

systemctl   restart  named

6.查看DNS服务器是否启动:

systemctl status named

7.配置防火墙 添加服务:

firewall-cmd --permanent --add-service=dns
firewall-cmd  --reload

8.配置正向解析

编辑 /etc/named.rfc1912.zones,在末尾添加需要解析的域:

以www.web1.com为例,192.168.52.134是DNS服务器的本机Ip
zone "web1.com" IN {
  type master;
  file "data/web1.com.zone";
};

在/var/named/data/目录下创建web1.com.zone域:

$TTL 3H   #3H 是3小时
@       IN SOA  web1.com. root (
            #web1.com是主机名称,即在这个域中哪个DNS作为主服务器,在本例中,即为web1.com    root是管理员邮箱地址
                                        20180928 ; serial  #序号。这个序号代表这个数据库档案的陈旧,序号越大,代表越新。当slave要判断是否主动下载新的数据库时,就以序号是否比slave上的还有新来判断。
                                        1D      ; refresh  #即slave向master要求数据更新的频率。
                                        1H      ; retry   #失败重新尝试时间(Retry)。如果因为某些因素,导致slave无法对master达成联机,那么在多久的时间内,slave会尝试重新联机到master。
                                        1W      ; expire  #失效时间(Expire)。如果一直失败尝试时间,持续联机到达这个设定值时限,那么slave将不再继续尝试联机。
                                        3H )    ; minimum  #存活时间(Minimum TTL)。如果在这个数据库zone file中,每笔记录都没有显性设定TTL快取时间的话,那么就以这个值为主。
        IN   NS            @
        IN   A          192.168.52.134
www     IN   A          192.168.52.134
ftp     IN   A          192.168.52.134

重启DNS:

systemctl restart named

修改/etc/resolv.conf:

vim /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.52.134

ping www.web1.com:

#ping -c 4 www.web1.com
PING www.web1.com (192.168.52.134) 56(84) bytes of data.
64 bytes from www.web3.com (192.168.52.134): icmp_seq=1 ttl=64 time=0.281 ms
64 bytes from www.web3.com (192.168.52.134): icmp_seq=2 ttl=64 time=0.370 ms
64 bytes from www.web3.com (192.168.52.134): icmp_seq=3 ttl=64 time=0.263 ms
64 bytes from www.web3.com (192.168.52.134): icmp_seq=4 ttl=64 time=0.285 ms

以上结果说明解析成功!

或使用nslookup命令验证:

#nslookup 
> www.web1.com
Server:		192.168.52.134
Address:	192.168.52.134#53

Name:	www.web1.com
Address: 192.168.52.134
> 

反向解析

1.修改/etc/named.rfc1912.zones

zone "52.168.192.in-addr.arpa" IN {
#注意192.168.52是3位网络位
  type master;
  file "data/52.168.192.zone";

};

2.在/var/named/data/目录下创建52.168.192.zone方向解析域:

$TTL 3H
@       IN SOA   web3.com.  root (
                                        20180928; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@     IN      NS       www.web3.com.
134  IN     PTR        www.web3.com.
134  IN     PTR       ftp.web3.com.

3.重启DNS:

systemctl restart named

4.nslookup 192.168.52.134:

#nslookup 192.168.52.134
Server:		192.168.52.134
Address:	192.168.52.134#53

134.52.168.192.in-addr.arpa	name = www.web3.com.
134.52.168.192.in-addr.arpa	name = ftp.web3.com.

至此反向代理设置成功!

从DNS服务器配置

从DNS服务器是192.168.52.139的机器

 

1.在主dns服务器的/etc/named.rfc1912.zones中找到刚才的添加的web1.com域名和52.168.192.in-addr.arpa反向解析域c修改如下:

zone "web1.com" IN {
  type master;
  file "data/web1.com.zone";
     allow-transfer {192.168.52.139;};
        notify              yes;
        also-notify  {192.168.52.139;};
};
zone "52.168.192.in-addr.arpa" IN {
  type master;
  file "data/134.52.168.192.zone";
   allow-transfer {192.168.52.139;}; #只允许通知的从服务器
        notify              yes;  #主从同步通知从DNS这个配置很重要     
        also-notify  {192.168.52.139;};  

};

2.编辑从服务器上的named.conf文件:

listen-on port 53 { any; }; 
 allow-query     { any; };

3.编辑从DNS服务器/etc/named.rfc1912.zones:

zone "web1.com"   IN {
        type slave;                                   ###本机是从服务器
        file "data/web1.com.zone";             ###将同步后的文件放置在哪里,这里是/var/named/data/

        masters { 192.168.52.134; };         ###指定主服务器的ip地址
};

4.在/var/named/data/目录下创建web1.com.zone的空文件, 并设置所有者,所有组都为named:

chown named:named web1.com.zone

5.修改 /etc/resolv.conf:

# Generated by NetworkManager
search localdomain
nameserver 192.168.52.139

6.从启dns服务:

systemctl restart named

7,这时打开web1.com.zone,你就会发现有内容,不过是二进制内容,不能编辑,如:

cat web1.com.zone 
[���M*0
web1com-web1comrootweb1com3��Q�	:�*0$*0
web1com��4�**0
web1com
web1com(*0ftpweb1com��4�(*0wwwweb1com��4�

8.nslookup命令或ping命令验证:

nslookup  
> www.web1.com       
Server:		192.168.52.139
Address:	192.168.52.139#53

Name:	www.web1.com
Address: 192.168.52.134


ping www.web1.com
PING www.web1.com (192.168.52.134) 56(84) bytes of data.
64 bytes from 192.168.52.134 (192.168.52.134): icmp_seq=1 ttl=64 time=0.719 ms
64 bytes from 192.168.52.134 (192.168.52.134): icmp_seq=2 ttl=64 time=0.410 ms
64 bytes from 192.168.52.134 (192.168.52.134): icmp_seq=3 ttl=64 time=0.362 ms
64 bytes from 192.168.52.134 (192.168.52.134): icmp_seq=4 ttl=64 time=0.333 ms

从DNS服务器反向解析

1.编辑从DNS服务器/etc/named.rfc1912.zones:

zone "52.168.192.in-addr.arpa" IN {
  type slave;
  file "data/52.168.192.zone";
    masters { 192.168.52.134; };
};

2.在/var/named/data下创建52.168.192.zone空文件,并赋予所有者,所有组为:named:

touch 52.168.192.zone
chown named:named 52.168.192.zone

3.查看/var/named/data目录下52.168.192.zone文件是否被写入数据:

cat 52.168.192.zone

4.重启从DNS服务器,用ping和nslookup命令验证

至此主从DNS服务器搭建成功!

你可能感兴趣的:(centos7搭建主从DNS服务器)