bind dns mysql,linux下bind9.8+dlz+mysql 的dns服务器局域网配置

linux下bind9.8+dlz+mysql 的dns服务器局域网配置

安装1.mysql

我用的二进制包安装

groupadd mysql

useradd -r -g mysql -s /sbin/nologin mysql

cd /usr/local/src

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz

tar zxvf mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz

mv mysql-5.6.24-linux2.6-x86_64 /usr/local/mysql

cd /usr/local/mysql

chown -R mysql:mysql ./

./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

cp support-files/mysql.server /etc/init.d/mysqld

export PATH=$PATH:/usr/local/mysql/bin

service mysqld start

mysql //这里初始没有密码直接回车

//这里把root用远程访问打开后,方便管理。我用的navicat for mysql 管理

grant all privileges on *.* to root@'%' identified by 'mysqlpassword';//语序远程连接

flush privileges;

//创建bind dlz的mysql数据库及表

create database bind;

use bind;

CREATE TABLE `dns_records` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

`zone` varchar(255) NOT NULL DEFAULT '' COMMENT '区域',

`host` varchar(255) NOT NULL DEFAULT '' COMMENT '主机名',

`type` varchar(255) NOT NULL DEFAULT '' COMMENT 'DNS数据类型',

`data` varchar(255) NOT NULL DEFAULT '' COMMENT 'IP地址/主机名/完整的域名',

`ttl` int(11) NOT NULL DEFAULT '0' COMMENT '存活时间',

`mx_priority` varchar(255) NOT NULL DEFAULT '' COMMENT 'mx优先级',

`refresh` int(11) NOT NULL DEFAULT '0' COMMENT 'SOA的刷新时间记录',

`retry` int(11) NOT NULL DEFAULT '0' COMMENT 'SOA的重试时间记录',

`expire` int(11) NOT NULL DEFAULT '0' COMMENT 'SOA的过期时间记录',

`minimum` int(11) NOT NULL DEFAULT '0' COMMENT 'SOA的最短时间记录',

`serial` bigint(20) NOT NULL DEFAULT '0' COMMENT 'SOA的连续时间记录',

`resp_person` varchar(255) NOT NULL DEFAULT '' COMMENT 'SOA负责人记录',

`primary_ns` varchar(255) NOT NULL DEFAULT '' COMMENT 'SOA的主要名称服务器记录',

PRIMARY KEY (`id`),

KEY `host` (`host`),

KEY `zone` (`zone`),

KEY `type` (`type`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

#插入一条数据备测试

insertinto dns_records (zone,host,type,data,ttl,retry) values('aaa.com','www','A','192.168.199.2','86400','15');

安装2.bind

cd /usr/local/src

wget ftp://ftp.isc.org/isc/bind9/9.8.7/bind-9.8.7.tar.gz

tar zxvf bind-9.8.7.tar.gz

cd ./bind-9.8.7

./configure --prefix=/usr/local/bind9 --disable-openssl-version-check --with-dlz-mysql=/usr/local/mysql

make && make install

cd /usr/local/bind9

./sbin/rndc-confgen -a

./sbin/rndc-confgen > ./etc/named.conf

#这里先看key

cat etc/rndc.key

key "rndc-key" {

algorithm hmac-md5;

secret "hq1L847nM6A/sDQ9ZBIX5w==";

};

vi ./etc/named.conf

# Start of rndc.conf

key "rndc-key" {

algorithm hmac-md5;

secret "hq1L847nM6A/sDQ9ZBIX5w==";

};

#

controls{

inet 127.0.0.1 port 953

allow { 127.0.0.1; } keys { "rndc-key"; };

};

options {

#default-key "rndc-key";

#default-server 127.0.0.1;

#default-port 953;

directory "/usr/local/bind9/etc/";

pid-file "/usr/local/bind9/var/run/named.pid";

allow-query{any;};

allow-query-cache{ any; };

recursion yes;

version "bns-dns1";

};

# End of rndc.conf

#include "/usr/local/bind9/etc/my.acl";

acl "my" {

127.0.0.1/18;

192.168.3.0/24;#局域网网段

};

view "my"{

match-clients{my;};

dlz "Mysql zone" {

database "mysql

{host=127.0.0.1 dbname=bind ssl=false port=3306 user=root pass=mysqlpassword}

{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 as mydata from dns_records where zone = '$zone$' and host = '$record$'}";

};

};

#保存即可

启动named

./sbin/named -4 -n 2 -f &

分享到:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值