系统环境:CentOS 6.5 X64
软件版本:

  • bind-9.9.5.tar.gz
  • mysql-5.6.16.tar.gz

描述:

  • 数据库安装就不在这里具体说了,了解运维的同学都应该知道,不知道的大家就自行百度。
  • bind 相关配置文件, 详见:https://github.com/1032231418/Bind-Web.git

源码安装配置 Bind

1.源码编译安装

 tar -zxvf  bind-9.9.5.tar.gz           #解压压缩包
 cd bind-9.9.5
 ./configure --prefix=/usr/local/bind/  \
 --enable-threads=no \
 --enable-newstats   \
 --with-dlz-mysql    \
 --disable-openssl-version-check

 #官网说明强调编译关闭多线程,即--enable-threads=no

 make
 make install           #源码编译安装完成

2.环境变量配置

cat>>/etc/profile<
PATH=$PATH:/usr/local/bind/bin:/usr/local/bind/sbin
export PATH
EOF
source  /etc/profile  #重新加载一下环境变量
named -v 

如下图,说明环境变量是正确
Flask  Bind-DLZ + Mysql  DNS 管理平台

3.用户添加授权目录

useradd -s /sbin/nologin named
chown -R named:named /usr/local/bind/

4.配置 Bind

vi /usr/local/bind/etc/named.conf

options{
        directory"/usr/local/bind/";
        version"bind-9.9.9";
        listen-onport53 { any; };
        allow-query-cache { any; };
        listen-on-v6port53 {::1; };
        allow-query { any; };
        recursion yes; 
        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

};

key"rndc-key"{
        algorithm hmac-md5;
        secret"C4Fg6OGjJipHKfgUWcAh+g==";

};

controls {
        inet 127.0.0.1port953
                allow{ 127.0.0.1; } keys {"rndc-key";};
};

view"ours_domain"{
        match-clients {any; };
        allow-query-cache {any; };
        allow-recursion {any; };
        allow-transfer {any; };

        dlz"Mysql zone"{
                database"mysql
                {host=127.0.0.1 dbname=named ssl=false port=3306 user=root pass=123456}
                {select zone from dns_records where zone='$zone$'}
                {select ttl, type, mx_priority, case when lower(type)='txt' then concat('\"',data,'\"') when lower(type) = 'soa' then concat_ws(' ', data, resp_person, serial, refresh, retry, expire, minimum) else data end from dns_records where zone = '$zone$' and host = '$record$'}";
        };
        zone"."IN {
            type hint;
            file"/usr/local/bind/etc/named.ca";
        };

};

保存退出

生成 name.ca 文件

(demo) -bash-4.1# cd /usr/local/bind/etc/
(demo) -bash-4.1# dig -t NS .>named.ca

5.配置数据库,导入 sql 文件

# mysql -p #登录数据库
mysql>CREATE DATABASE named CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql>source named.sql; #注意路径,这里我放在当前目录

就两张表,一个 dns 用到的表,一个用户管理表

Flask Bind-DLZ + Mysql DNS 管理平台_第1张图片

6.启动 Bind 服务并设置开机启动脚本

(demo) -bash-4.1# /usr/local/bind/sbin/named

监控系统日志:

tail -f /var/log/messages

如下,说明服务启动正常
Flask Bind-DLZ + Mysql DNS 管理平台_第2张图片

测试 bind 连接数据库是否正常:
Flask Bind-DLZ + Mysql DNS 管理平台_第3张图片

设置 Bind 开机启动脚本

bind 本文档会附带,传到服务器  /etc/init.d/ 目录
(demo) -bash-4.1# chmod  755 /etc/init.d/bind 
(demo) -bash-4.1# #mkdir  /var/run/named/ && chown  named:named -R /var/run/named 
杀掉 named  服务,改用脚本启动

(demo) -bash-4.1# pkill  named
(demo) -bash-4.1# /etc/init.d/bind  start            #监控日志,查看启动状态
(demo) -bash-4.1# chkconfig  --add bind            #加入开机启动

tail -f /var/log/messages
Flask Bind-DLZ + Mysql DNS 管理平台_第4张图片

(demo) -bash-4.1# git  clone  https://github.com/1032231418/Bind-Web.git  #git  克隆下来
(demo) -bash-4.1# cd Bind-Web
(demo) -bash-4.1# python  run.py

配置 Bind-Web 管理平台

克隆管理平台

(demo) -bash-4.1# git  clone  https://github.com/1032231418/Bind-Web.git  #git  克隆下来
(demo) -bash-4.1# cd Bind-Web
(demo) -bash-4.1# python  run.py

运行软件程序使用 flask 框架写的,要用 pip 安装该框架

pip install

http://ip/5000 访问 WEB 界面 登录

账户 :eagle

密码 :123456

Flask Bind-DLZ + Mysql DNS 管理平台_第5张图片

功能:

  • 用户管理
  • 域名管理
  • ......
    Flask Bind-DLZ + Mysql DNS 管理平台_第6张图片
    Flask Bind-DLZ + Mysql DNS 管理平台_第7张图片

解析测试:
Flask Bind-DLZ + Mysql DNS 管理平台_第8张图片

详情:http://mp.weixin.qq.com/s/d2xvQnlp93iguM4wDxejDA