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 &
原文链接:linux下bind9.8+dlz+mysql 的dns服务器局域网配置,转载请注明来源!