bind dlz mysql ptr_bind-dlz结合mysql实现智能DNS
下面介绍bind结合mysql实现智能dns,以centos-6 32为例安装
安装mysql
yum install gcc gcc-c++ openssl-devel wget ncurses-devel make
groupadd mysql
useradd -g mysql mysql -s /sbin/nologin
cd /tmp
wget http://cdn.mysql.com/Downloads/MySQL-5.1/mysql-5.1.65.tar.gz
tar xzf mysql-5.1.65.tar.gz
cd mysql-5.1.65
./configure --prefix=/usr/local/mysql/ --without-pthread --with-unix-socket-path=/tmp/mysql.sock --with-extra-charsets=gbk,gb2312,utf8
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 /usr/local/mysql/var
cp support-files/mysql.server /etc/init.d/mysqld
chown root.root /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
ln -s /usr/local/mysql/bin/mysql /usr/bin
ln -s /usr/local/mysql/bin/mysqladmin /usr/bin
service mysqld start
mysqladmin -u root password root
安装bind
cd /tmp
wget http://ftp.isc.org/isc/bind9/cur/9.9/bind-9.9.1-P2.tar.gz
tar xzf bind-9.9.1-P2.tar.gz
cd bind-9.9.1-P2
./configure --prefix=/usr/local/bind/ --disable-openssl-version-check --with-dlz-mysql=/usr/local/mysql
make
make install
配置bind
cd /usr/local/bind/etc
../sbin/rndc-confgen -r /dev/urandom >rndc.conf
tail -n10 rndc.conf | head -n9 | sed -e s/#\//g>named.conf
vi named.conf
在后面增加:
include "/usr/local/bind/etc/CHINANET.acl"; //联通ACL
include "/usr/local/bind/etc/CNC.acl"; //电信ACL
include "/usr/local/bind/etc/view.conf"; //DLZ相关的配置
下载acl文件:
wget http://www.centos.bz/wp-content/uploads/2012/02/CHINANET.acl
wget http://www.centos.bz/wp-content/uploads/2012/02/CNC.acl
view.conf内容:
其中需要修改的字段为user=root pass=root,即此处mysql用户为root,密码为root。
view "CHINANET_view" {
match-clients { CHINANET; };
allow-query-cache { none; };
allow-recursion { none; };
allow-transfer { none; };
recursion no;
dlz "Mysql zone" {
database "mysql
{host=127.0.0.1 dbname=dns_data ssl=false port=3306 user=root pass=root}
{select zone from dns_records where zone = '$zone$' and view = 'any' 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 dns_records where zone = '$zone$' and host = '$record$' and view=(select view from dns_records where zone = '$zone$' and host = '$record$' and (view='CHINANET' or view='any') order by priority asc limit 1)}";
};
};
view "CNC_view" {
match-clients { CNC; };
allow-query-cache { none; };
allow-recursion { none; };
allow-transfer { none; };
recursion no;
dlz "Mysql zone" {
database "mysql
{host=127.0.0.1 dbname=dns_data ssl=false port=3306 user=root pass=root}
{select zone from dns_records where zone = '$zone$' and view = 'any' 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 dns_records where zone = '$zone$' and host = '$record$' and view=(select view from dns_records where zone = '$zone$' and host = '$record$' and (view='CNC' or view='any') order by priority asc limit 1)}";
};
};
view "any_view" {
match-clients { any; };
allow-query-cache { none; };
allow-recursion { none; };
allow-transfer { none; };
recursion no;
dlz "Mysql zone" {
database "mysql
{host=127.0.0.1 dbname=dns_data ssl=false port=3306 user=root pass=root}
{select zone from dns_records where zone = '$zone$' and view = 'any' 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 dns_records where zone = '$zone$' and host = '$record$' and view = 'any'}";
};
};
数据库配置
mysql>create database dns_data; //创建数据库名为 dns_data
mysql>use dns_data;
DROP TABLE IF EXISTS `dns_records`;
CREATE TABLE `dns_records` (
`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` char(20) default 'any', //any 代表默认,SOA 查询需,其它可以分,CNC……
`mx_priority` int(11) default NULL,
`priority` int(3) default 255, //any为255,其它如CNC,CHINANET等线路为200
`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.domain.com.',
`primary_ns` varchar(64) NOT NULL default 'ns1.domain.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;
启动bind服务
# /usr/local/bind/sbin/named -uroot -g -d 9 //调试状态,如果没有报错说明环境配置正确。
做成启动服务. Debug 的时候多用此模式启动bind.
# /usr/local/bind/sbin/rndc reload 重载 named.conf 相关配置文件.
# /usr/local/bind/sbin/named -uroot -c /usr/local/bind/etc/named.conf 启动 bind 服务.
#插入记录的sql实例
--SOA
INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`, `ttl`,`mx_priority`, `refresh`, `retry`, `expire`, `minimum`, `serial`, `resp_person`, `primary_ns`, `data_count`) VALUES ('centos.bz', '@', 'SOA', 'ns1.centos.bz.', 10, NULL, 3600, 3600, 86400, 10, 2008082700, 'root.centos.bz.', 'ns1.centos.bz.', 0);
--@ NS
INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`) VALUES ('centos.bz', '@', 'NS', 'ns1.centos.bz.'), ('centos.bz', '@', 'NS', 'ns2.centos.bz.');
--NS A
INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`) VALUES ('centos.bz', 'ns1', 'A', '211.100.72.137'), ('centos.bz', 'ns2', 'A', '219.232.244.11');
--A
INSERT INTO `dns_records` (`zone`, `host`, `type`, `data`, `ttl`, `view`,`priority`) VALUES ('centos.bz', 'www', 'A', '210.51.36.116', 3600, 'CNC',200), ('centos.bz', 'www', 'A', '221.238.249.178', 3600, 'CHINANET',200), ('centos.bz', 'www', 'A', '211.103.156.230', 3600, 'any',255);
--CNAME
INSERT INTO dns_records (zone,host,type,DATA,view,,priority) VALUES ('centos.bz', 'man', 'CNAME', 'www','CNC',200), ('centos.bz', 'man', 'CNAME', 'www','CHINANET',200), ('centos.bz', 'man', 'CNAME', 'www','any',255);
联通acl:http://www.centos.bz/wp-content/uploads/2012/02/CNC.acl 电信acl:http://www.centos.bz/wp-content/uploads/2012/02/CHINANET.acl
bind dlz mysql ptr_bind-dlz结合mysql实现智能DNS相关推荐
- bind dlz mysql ptr_Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法
使用文本配置文件的配置方式结合bind的最新的acl和view特性来实现智能DNS想必很多人已经很熟悉了,使用MySQL数据库来存放zone文件的方式可能也不少.对于两者都熟悉的,实现 Bind+DL ...
- bind dlz mysql rpm_智能DNS --BIND DLZ+MYSQL
智能DNS --BIND DLZ+MYSQL 一.概念介绍: 1.智能DNS: 智能DNS就是根据用户的来路,自动智能化判断来路IP返回给用户,而不需要用户进行选择. 智能DNS与普通DNS区别: 普 ...
- mysql与dns_借助mysql和DNS view实现智能DNS(centos6.3 x64环境)
开篇说明 关于智能DNS和CDN的东西可以看我之前的一篇博文 上次的博文简单使用了BIND的视图功能实现了简单的智能dns,此篇博文结合了mysql实现真正意义上的智能DNS系统 需要准备东西 首先y ...
- bind9 dlz mysql_利用BIND+DLZ+MYSQL构建企业智能DNS
目录: 一.简介 二.服务规划 三.安装BIND及基本环境 四.配置Bind-View-DLZ-MYSQL 五.添加相关记录并进行测试 六.配置从DNS 七.本文以FreeBSD 10.2 stabl ...
- bind dlz mysql rpm_MySQL+BIND-dlz 实现智能DNS
配置环境 系统:centos 6.8 Mysql: 5.7 BIND: 9.11.0 CentOS6编译环境安装 yum groupinstall "Development Tools&qu ...
- bind dlz mysql rpm_BIND+DLZ+MYSQL | 学步园
BIND+DLZ+MYSQL BIND-DLZ实验环境:RHEL4 所用到的软件包:BIND-9.5.0-P2.tar.gz(9.4.2以上版本都已经包含了DLZ补丁).Mysql-5.0.56.ta ...
- bind mysql web_bindview+dlz(mysql)
系统准备 配置iptables iptables -F iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -p ...
- with dlz mysql 条件_Flask Bind-DLZ + Mysql DNS管理平台
系统环境:CentOS 6.5 X64 软件版本: 绑定-9.9.5.tar.gz mysql-5.6.16.tar.gz 描述: 数据库安装就不在这里具体说了,了解运维的同学都应该知道,不知道的大家 ...
- with dlz mysql 条件_Bind-DLZ with MySQL
系统环境: 系统:centos 6.8 Mysql: 5.1 BIND: bind-9.11.0-P2.tar.gz 软件下载地址:ftp://ftp.isc.org/ 一.安装并配置MySQL. 1 ...
最新文章
- 2020,国产AI开源框架“亮剑”TensorFlow、PyTorch
- 第15届全国大学生智能汽车竞赛 人工智能创意赛(预赛)
- 在asp.net中使用加密数据库联接字符串
- react-native 打包apk
- C语言字符串左右排序交换
- 142-练习8和9 for循环的嵌套调用和随机数的生成
- 结巴分词关键词相似度_gensim和jieba分词进行主题分析,文本相似度
- mongodb更新操作符
- Bzoj1034 [ZJOI2008]泡泡堂BNB
- OTT 端性能优化建设之 Weex 实践之路
- selenium 简介 及浏览器配置
- 传智播客java教程视频资源,附学习笔记+面试整理+进阶书籍
- SW小技巧2:将属性链接到 SOLIDWORKS 工程图的简便方法
- WAIC | 奇点云携「酷炫AI应用」亮相2019世界人工智能大会
- html+php教程,HTML入门教程
- java获取word图片_java代码获取word文件中的图片
- 金融工具(也称信用工具)
- Shell中的date命令
- 2020_WWW_The Structure of Social Influence in Recommender Networks
- 一篇文章看明白 Android v1 v2 签名机制