2010-10-31 v0.01 北京公司
系统环境:rhel 5.4
所需包:
bind-9.5.1-P2.tar.gz
ripe-dbase-client-v3.tar.gz
view
1. view_telecom
2. view_cnc
3. view_any
mysql
library: bind
table: cnc
telecom
any
master: ns1.jerome-1.com 192.168.166.202
slave : ns2.jerome-1.com 192.168.166.203
一.安装MySQL
//查看系统中是否已经安装了MySQL,如果是卸载所有以mysql开头的包。
rpm -qa | grep mysql
rpm -e mysql-*
rm -f /etc/my.cnf
groupadd mysql
useradd mysql -c "start mysqld's account" -d /dev/null -g mysql -s /sbin/nologin
cd /usr/local/src/
tar -xzvf mysql-5.1.36.tar.gz
cd mysql-5.1.36
./configure \
--prefix=/usr/local/mysql \
--with-mysqld-user=mysql \
--with-charset=utf8 --with-collation=utf8_bin --with-extra-charsets=big5,ascii,gb2312,gbk,utf8,latin1 \
--without-debug \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \
--disable-shared \
--localstatedir=/var/lib/mysql \
--without-isam \
--without-innodb \
--enable-assembler
make && make install
cp support-files/my-medium.cnf /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db --user=mysql
chown -R root:mysql /usr/local/mysql/
chown -R mysql:mysql /var/lib/mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &
配置系统启动时自动启动MySQl
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql
cd /etc/init.d
chmod 755 mysql
chkconfig --add mysql
chkconfig --level 3 mysql on
cp /usr/local/mysql/bin/mysql /usr/bin
mysql
use mysql;
UPDATE user SET Password=PASSWORD('1q2w3e') WHERE user='root';
FLUSH PRIVILEGES;
二.编译安装Bind
cd /usr/local/src/bind/
tar zxvf bind-9.6.0-P1.tar.gz
cd bind-9.6.0-P1
./configure --with-dlz-mysql \
--enable-largefile \
--enable-threads=no \
--prefix=/usr/local/bind \
--with-openssl=/usr/local/openssl/
make && make install
三.开始配置bind
1.创建 rndc.conf文件,用bind自带程序生成
把rndc.conf 中的key信息输出到 named.conf 中
cd /usr/local/bind/etc
../sbin/rndc-confgen >rndc.conf
tail -n10 rndc.conf | head -n9 | sed -e s/#\//g >named.conf
2.# vi localhost.zone
ttl 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
3.获得根域记录
cd /usr/local/bind/etc
dig > named.root
4、安装IP地址段查询工具Ripe-dbase-client-v3:
下载软件包:
wget http://ftp.apnic.net/apnic/dbase/tools/ripe-dbase-client-v3.tar.gz
cd /usr/local/src
tar zxvf ripe-dbase-client-v3.tar.gz
cd whois-3.1
./configure --prefix=/usr
make && make install
5、设置配置文件
配置ACL文件
/usr/bin/whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}'| sort -n | awk 'BEGIN{print "acl \"CNC\" '{'"}{print $1";"}END{print "'}';"}' > /usr/local/named/etc/cnc_acl.conf
/usr/bin/whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET | grep "descr" | grep "Reverse" | awk -F "for" '{if ($2!="") print $2}'| sort -n | awk 'BEGIN{print "acl \"TELECOM\" '{'"}{print $1";"}END{print "'}';"}' > /usr/local/named/etc/telecom_acl.conf
6.#vi named.conf 在后面加入如下:
include "/usr/local/bind/etc/cnc_acl.conf";
include "/usr/local/bind/etc/telecom_acl.conf";
include "/usr/local/bind/etc/view.conf";
7. #vi /usr/local/bind/etc/view.conf //创建view相关的配置文件
##################### #######cnc_view ##########################
view "cnc_view" { //定义view
match-clients { CNC; }; //指定 cnc_acl.conf 此处CNC不同于下面的提到的CNC CNC
的ACL文件仅仅在此处指定
allow-query-cache { none; }; //不提供cache
allow-recursion { none; };
allow-transfer { none; }; // 禁止任何人向master服务器请求 zone transfer
recursion no; // 禁止处理来自 cnc 的主机的递归请求
dlz "Mysql zone" {
database "mysql
{host=127.0.0.1 dbname=bind ssl=false port=3306 user=root pass=1q2w3e}
{select zone from cnc where zone = '%zone%' and view='CNC' limit 1}
{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 cnc where zone = '%zone%' and host = '%record%' and view='CNC'}
{}
{select ttl, type, host, mx_priority, case when lower(type)='txt' then concat('\"', data, '\"') else data end as mydata, resp_person, serial, refresh, retry, expire, minimum
from cnc where zone = '%zone%' and view='CNC'}
{select zone from xfr_table where zone = '%zone%' and client = '%client%' and view='CNC' limit 1}
{update data_count set count = count + 1 where zone ='%zone%' and view='CNC'}";
};
};
##################### #######cnc_view ##########################
dbname=bind //bind库
user=root pass=1q2w3e //用户root 密码1q2w3e
cnc <小写> //cnc表
CNC<大写> // 数据库中的记录VIEW=CNC
当定义其他view时在以上几处进行修改!
四.数据库 建 库 创建DLZ相关表的结构
不同的表只需要改下面红色标记的两处即可
一处是表的建立 另一处为指定默认域名
mysql>create database bind; //创建数据库名为bind
mysql>use bind;
CREATE TABLE `cnc` (
`id` int(10) unsigned NOT NULL auto_increment,
`zone` varchar(255) NOT NULL,
`host` varchar(255) NOT NULL default '@',
`type` enum('MX','CNAME','NS','SOA','A','PTR') NOT NULL,
`data` varchar(255) default NULL,
`ttl` int(11) NOT NULL default '800',
`view` enum('CNC','TELECOM','ANY') NOT NULL,
`mx_priority` int(11) default NULL,
`refresh` int(11) NOT NULL default '3600',
`retry` int(11) NOT NULL default '3600',
`expire` int(11) NOT NULL default '86400',
`minimum` int(11) NOT NULL default '3600',
`serial` bigint(20) NOT NULL default '2008082700',
`resp_person` varchar(64) NOT NULL default 'root.jerome.com.',
`primary_ns` varchar(64) NOT NULL default 'ns1.jerome.com.',
`data_count` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `type` (`type`),
KEY `host` (`host`),
KEY `zone` (`zone`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=gbk;
五. 关于DLZ 主从同步
1.按照该文档的第一二部分进行安装mysql和bind配置文件部分则可以直接从master上拷过来
#scp named.conf named.root cnc_acl.conf telecom_acl.conf view.conf localhost.zone
2.查看view.conf 文件中user=root pass=1q2w3e 该权限能否在本地查询
如果数据库帐户密码错误会导致 namd无法启动 提示msql connection failed
04-Nov-2010 07:29:04.463 mysql driver failed to create database connection after 4 attempts
3.如需做cache服务器,则按照以下注释方式进行修改即可.
view "telecom_view" {
match-clients { TELECOM; };
#allow-query-cache { none; };
#allow-recursion { none; };
#allow-transfer { none; };
recursion yes;
cnc表的建立结构和内容cnc-table-all.sql
可直接将此数据库脚本导入数据中 就可完成cnc表结构的建立 立会插入一些相关的Ay记录测试
DLZ相关数据库表结构建立.txt 此表同上 . 内容包含有三个view的表结构建立
TELECOM.sql
cnc.sql
any.sql
插入数据
插入PTR记录
insert into cnc (zone,host,type,data) values ("202.166.168.192.in-addr.arpa ","@","PTR","ns1.jerome-1.com.")
分享到:
相关推荐
智能DNS(Bind DLZ MYSQL )实际部署 http://archive.cnblogs.com/a/1957441/ 配置文件
利用 Bind DLZ MySQL 构建智能 DNS (绝好的资料,亲手配置,绝对可用,识货的人下) 日期: 2010-3-7 【题 纲】 一、相关述语简介 二、智能 DNS 系统服务规划 三、安装配置 Bind-DLZ (介绍 Bind-dlz具体...
利用Bind DLZ MySQL 构建智能DNS V2 中文版 读者必须有熟练的linux运维基础,同时对mysql也非常了解! 一、相关术语简介 二、智能DNS系统服务规划 三、安装BIND及基本环境 四、配置DNS TSIG 五、配置Bind-View-DLZ-...
利用Bind DLZ MySQL 构建智能DNS
bind+dlz实现智能DNS
智能DNS的原理很简单:在用户解析一个域名的时候,判断一下用户的IP,然后跟DNS服务器内部的IP表匹配一下,看看用户是电信还是网通用户,然后给用户返回对应的IP地址。
Antdns为Bind-DLZ的数据库后端提供了一个简约的管理界面。 如果需要,可以利用代码和数据库模式的开放结构来在任何当前网站中提供无缝集成。
利用Bind_DLZ_MySQL_构建智能DNS.pdf
开发已经进行了:https://github.com/jeagle/bind-dlz-perl BIND 9动态可加载区域(DLZ)插件在BIND中嵌入了Perl解释器,允许将Perl脚本编写为与BIND集成并提供DNS数据。 当前版本支持BIND 9 dlopen接口和BIND 9.9 ...
应用服务之DNS与智能DNS,bind-dlz+mysql(2)[定义].pdf
简介: bind_mysql_dlz 的web管理界面 整合了《利用Bind DLZ MySQL 构建智能DNS V2》 并做了适当修改,增加了禁用启用记录的功能 优化了部分配置
DLZ不是一个dns服务器,只是bind9的一个补丁,为简化了管理,减少了内存的使用和启动时间。使用DLZ可以将ZONE文件数据库数据存储在数据库,当数据库变化时,可以及时通知bind,并更新数据,不需要重启或重新加载配置...
web管理界面整合了《贡献一个自己写的DNS管理系统》以及《利用Bind DLZ MySQL 构建智能DNS V2》并做了适当修改,增加了禁用启用记录的功能优化了部分配置
DLZ不是一个dns服务器,只是bind9的一个补丁,为简化了管理,减少了内存的使用和启动时间。使用DLZ可以将ZONE文件数据库数据存储在数据库,当数据库变化时,可以及时通知bind,并更新数据,不需要重启或重新加载配置...
目标:向Bind 9添加功能,使Bind后端数据库能够支持添加和删除区域而不会中断正常的服务器操作。
用于MySQL的BIND DLZ的Web前端
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 ... 【项目质量】: 所有源码都经过严格测试,...
issue with potential bad data in a database used by DLZ or SDB. [RT #34993] Fix build issue on newer FreeBSD needing -lhx509 for GSSAPI build. [RT #35001] Address read after free in server side...
包括PowerDNS和Bind-DLZ的代理。 此外,Atomia DNS还包括许多客户端,这些客户端可以使管理变得简单(无特定顺序): 通过atomiadnsclient(atomiadns-client)进行命令行管理 通过atomiadns-webapp进行Web管理 ...