bind+mysql_bind+mysql+dlz

DLZ(Dynamically Loadable Zones)与传统的BIND9不同,BIND的不足之处:

* BIND从文本文件中获取数据,这样容易因为编辑错误出现问题。

* BIND需要将数据加载到内存中,如果域或者记录较多,会消耗大量的内存。

* BIND启动时解析Zone文件,对于一个记录较多的DNS来说,会耽误更多的时间。

* 如果近修改一条记录,那么要重新加载或者重启BIND 才能生效,那么需要时间,可能会影响客户端查询。

而Bind-dlz 即将帮你解决这些问题, 对Zone文件操作也更方便了,直接对数据库操作,可以很方便扩充及开发管理程序。

实验所需清单:

CentOS 6.4 64位系统

bind-9.10.2.tar.gz

mysql-5.6.23.tar.gz

1.安装mysql

安装依赖包:

#yum -y install make cmake ncurses-devel bison-devel libaio-devel gcc-c++

创建mysql用户及组

#groupadd mysql

#useradd mysql -g mysql -M -s /sbin/nologin

安装mysql

#tar xf mysql-5.6.23.tar.gz

#cd mysql-5.6.23

#cmake .

#make && make install

#cd /usr/local/mysql/

#scripts/mysql_install_db --user=mysql

#chown -R :mysql .

#chown -R mysql data

#bin/mysqld_safe --user=mysql

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

#chkconfig --add mysql

#ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

#service mysql start

#bin/mysqladmin -u root password 'bmw12345'

#echo "/usr/local/mysql/lib" >> /etc/ld.so.conf

#ldconfig

2.配置bind

#yum -y install openssl-devel

#tar xf bind-9.10.2.tar.gz

#cd bind-9.10.2

#./configure --with-dlz-mysql --enable-largefile --enable-threads=no --prefix=/home/bind --disable-openssl-version-check

#make && make install

#useradd bind -M -s /sbin/nologin

#vim /home/bind/etc/named.conf

dlz "My zone" {

database "mysql

{host=127.0.0.1 dbname=dns ssl=false port=3306 user=root pass=bmw12345}

{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$'}";

};

配置不再详说,网上一大把

#/home/bind/sbin/named -u bind -c /home/bind/etc/named.conf

3.数据库添加

#mysql -uroot -pbmw12345

进入数据库操作

#create database dns;

#use dns

#CREATE TABLE dns_records(id int(11) unsigned NOT NULL auto_increment,zone varchar(255) NOT NULL,host varchar(255) NOT NULL default '@',type varchar(255) NOT NULL,data text,ttl int(11) default 600,mx_priority int(11) default NULL,refresh int(11) default NULL,retry int(11) default NULL,expire int(11) default NULL,minimum int(11) default NULL,serial bigint(20) default NULL,resp_person varchar(255) default NULL,primary_ns varchar(255),PRIMARY KEY(id));

#CREATE INDEX host_index ON dns_records(host);

#CREATE INDEX type_index ON dns_records(type);

#CREATE INDEX zone_index ON dns_records(zone);

#insert into dns_records (zone,host,type,data,refresh,retry,expire,minimum,serial,resp_person,primary_ns) values('test.com','@','SOA','ns.test.com',7200,3600,86400,3600,1000,'root.test.com.','ns.test.com.');

#insert into dns_records (zone,host,type,data) values('test.com','@','NS','ns.test.com.');

#insert into dns_records (zone,host,type,data) values('test.com','ns','A','1.1.1.1');

#insert into dns_records (zone,host,type,data) values('test.com','www','A','127.0.0.1');

4.验证

dig安装:yum -y install bind-utils

#dig @127.0.0.1 www.test.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值