Centos7 下配置主从dns(bind)

摘要:
dns主备搭建环境说明系统:CentOS7.6x86_64主master:10.0.0.182备slave:10.0.0.1151、安装主要包,在主备机器都执行如下命令yuminstallbindbind-utilsbind-chroot-y2、进行配置配置主master上配置/etc/named.conf////named.conf////ProvidedbyRedHatbindpackaget

dns 主备搭建

环境说明

系统:CentOS 7.6 x86_64
主master:10.0.0.182
备slave:10.0.0.115

1、安装主要包,在主备机器都执行如下命令

yum install bind bind-utils bind-chroot -y

2、进行配置配置

主master上配置
/etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

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; };
        notify yes;
        recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;
        bindkeys-file "/etc/named/named.root.key";
        managed-keys-directory "/var/named/dynamic";
        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
        masterfile-format text ;
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

#include "/etc/named/named.rfc1912.zones";
include "/etc/named/named.sx.zones";
include "/etc/named/named.root.key";
/etc/named/named.sx.zones,由于该文件是自定义的文件,需要手动更改下文件权限,
chown root.named /etc/named/named.sx.zones
zone "sx" IN {
        type master;
        file "zones/sx.zone";
        allow-update { 10.0.0.115; };
        also-notify { 10.0.0.115; };
        allow-transfer { 10.0.0.115; };
};
zone "sx.com" IN {
        type master;
        file "zones/sx.com.zone";
        allow-update { 10.0.0.115; };
        also-notify { 10.0.0.115; };
        allow-transfer { 10.0.0.115; };
};
在/var/named/ 下创建zones目录,并更改用户属主和属组
mkdir /var/named/zones
chown named.named /var/named/zones
cat /var/named/zones/sx.zone
$TTL 600
@       IN SOA  @ rname.invalid. (
                                        2       ; serial
                                        1M      ; refresh
                                        1M      ; retry
                                        1M      ; expire
                                        3H )    ; minimum
@       NS      ns1
@       NS      ns2
ns1     A       10.0.0.182
ns2     A       10.0.0.115
*     A       10.0.0.184
从slave上的配置
cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

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;
        bindkeys-file "/etc/named/named.root.key";
        managed-keys-directory "/var/named/dynamic";
        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
        masterfile-format text ;
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

#include "/etc/named/named.rfc1912.zones";
include "/etc/named/named.sx.zones";
include "/etc/named/named.root.key";
cat /etc/named/named.sx.zones
注意自定义文件属组和属主
zone "sx" IN {
        type slave;
        masters { 10.0.0.182; };
        file "slaves/sx.zone";
};
zone "sx.com" IN {
        type slave;
        masters { 10.0.0.182; };
        file "slaves/sx.com.zone";
};

3、启动(主备上分别操作)

systemctl start named
systemctl enable named
备上启动后,配置文件会自动同步过来
启动成功标识包含进程和端口
Centos7 下配置主从dns(bind)第1张

4、主从测试

在主上编辑zone配置文件

Centos7 下配置主从dns(bind)第2张  

每次执行完之后serial 值增加1
然后主上执行systectl restart named
在备机上验证配置是否同步过来
先看备机上的日志,tail -n 100 /var/log/message,正常同步会有如下类似提示日志信息

Centos7 下配置主从dns(bind)第3张

在看配置文件

cat /var/named/slaves/sx.com.zone ,看到配置已经同步,serial 值也同步变更过来
Centos7 下配置主从dns(bind)第4张

5、客户端配置解析测试

在内网的其他机器上配置/etc/resolv.conf 添加该dns
然后进行解析对应域名,可以正常解析
echo "nameserver 10.0.0.115" >> /etc/resolv.conf
Centos7 下配置主从dns(bind)第5张

配置调试过程中问题总结:

问题一:
配置完成后备机上zone同步过来的显示的乱码文件
主要原因:主从解析文件类型不同
解析方法:
从服务器配置文件(/etc/named.conf )添加并重启服务
masterfile-format text ;
问题二:
配置完成后发现不会自动主从同步
主从同步配置需要添加如下配置
主上需要配置通知服务开启(/etc/named.conf ),添加如下配置
notify yes;
在该配置文件上添加如下内容/etc/named/named.sx.zones
also-notify { 10.0.0.115; }; #配置备机的IP
allow-transfer { 10.0.0.115; }; #允许备机进行同步数据,同步刷新时间间隔根据zone配置的refresh的时间,进行刷新

免责声明:文章转载自《Centos7 下配置主从dns(bind)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python操作Access数据库基本操作步骤分析Android 播放视频并获取指定时间的帧画面下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用Prometheus监控bind9的DNS服务

首先编译bind_exporter,编译方式参见bind_exporter 创建一个systemd配置文件来运行bind_exporter vi /etc/systemd/system/bind_exporter.service 内容如下,注意此处的用户和组使用与named程序相同的用户和组“named”。--web.listen-address为对...

Linux网络配置命令介绍【转】

方法/步骤 1 在接下来的讲解中,讲解的Linux网络配置和网络诊断的命令有: ifconfig、ping、netstat、traceroute、dig和nslookup、host、hostname、route、arp、ethtool、GUI管理命令system-config-network。   2 第一个命令ifconfig,这个命令可以...

注册表修改IP地址和DNS等信息

---------------------win8系统 1. 2. 3. ------------------------------------------------------------------------------------------------------------------------------------------...

KnockoutJs官网教程学习(一)

这一教程中你将会体验到一些用knockout.js和Model-View-ViewModel(MVVM)模式去创建一个Web UI的基础方式。 将学会如何用views(视图)和declarative bindings(声明的绑定信息)去定义一个UI的展现方式,它的数据和行为使用的ViewModels(视图模型)和observables(观测),以及如何一切...

boost之ThreadPool

threadpool是基于boost库实现的一个线程池子库,但线程池实现起来不是很复杂。我们从threadpool中又能学到什么东西呢? 它是基于boost库实现的,如果大家对boost库有兴趣,看看一个简单的实现还是可以学到点东西的。 threadpool基本功能 1、任务封装,包括普通任务(task_func)和优先级任务(prio_task_fun...

Java高并发网络编程(四)Netty

在网络应用开发的过程中,直接使用JDK提供的NIO的API,比较繁琐,而且想要进行性能提升,还需要结合多线程技术。 由于网络编程本身的复杂性,以及JDK API开发的使用难度较高,所以在开源社区中,涌现出来了很多对JDK NIO进行封装、增强的网络编程框架,比如Netty、Mina等。 一、Netty简介 https://netty.io/官网 Netty...