bind mysql web_bindview+dlz(mysql)
系统准备
配置iptables
iptables -F
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -p all -j ACCEPT
service iptables save
service iptables restart
关闭selinux
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/sysconfig/selinux
setenforce 0
安装配置mysql
二进制安装
yum -y install lrzsz
cd /usr/local/src
rz
tar zxvf mysql* -C /usr/local
cd /usr/local
ln -sv mysql* mysql
cd mysql
mkdir -pv /data/mysql
useradd -r -U -s /sbin/nologin -d /data/mysql mysql
chown mysql:mysql /data/mysql -R
chown mysql:mysql /usr/local/mysql -R
scripts/mysql_install_db --user=mysql --datadir=/data/mysql
chown -R root .
cp support-files/my-large.cnf /etc/my.cnf
core=`cat /proc/cpuinfo |grep "processor" |wc -l`
sed -i "s/thread_concurrency = 8/thread_concurrency = `expr 2 \* $core`/g" /etc/my.cnf
sed -i -e '/\[mysqld\]/a \datadir = \/data\/mysql' /etc/my.cnf
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig mysqld on
ln -sv /usr/local/mysql/include /usr/include/mysql
echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
ldconfig
echo -e 'PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
mysql建立表
service mysqld start
mysql_secure_ installation
mysql>create database dns_view;
mysql>use dns_view;
CREATE TABLE `dnstb` (
`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 '600',
`view` char(20) default 'OP',
`mx_priority` int(11) default NULL,
`refresh` int(11) NOT NULL default '600',
`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 '2011061200',
`resp_person` varchar(64) NOT NULL default 'root.foo.com.',
`primary_ns` varchar(64) NOT NULL default 'ns1.foo.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;
mysql授权:
grant all privileges on dns_view.* to root@'172.16.1.104' identified by '123456';
安装配置bind9.11
编译安装bind9.11
yum -y install gcc zlib-devel perl
cd /usr/local/src
tar zxvf bind-9.11.0-P3.tar.gz
cd bind-9.11.0-P3
./configure --prefix=/usr/local/bind --with-dlz-mysql=/usr/local/mysql --enable-treads=no --enable-largefile --disable-ipv6 --with-openssl=no
make && make install
echo -e 'PATH=/usr/local/bind/bin:/usr/local/bind/sbin:$PATH' >> /etc/profile
source /etc/profile
配置rndc
cd /usr/local/bind/etc/
echo -e "ajksdfhiwurhi23y789asd8fh23bjkfasdf2iu3jkweafsdfl" > random
rndc-confgen -r random > rndc.conf
tail -n10 rndc.conf | head -n9 |sed -e s/#\//g > named.conf
配置bind
logging {
channel query_log {
file "/var/log/named.log" versions 3 size 20m;
severity info;
print-time yes;
print-category yes;
print-severity yes;
};
category queries {
query_log;
};
category lame-servers {
null;
};
};
options {
directory "/usr/local/bind/etc";
forwarders {119.29.29.29;8.8.8.8;};
forward only ;
pid-file "named.pid";
allow-query {any;};
allow-query-cache { any; };
allow-recursion { any; };
# recursion yes;
dnssec-enable no;
dnssec-validation no;
listen-on port 53 {
192.168.1.5;
};
#listen-on-v6 port 53 { any;};
};
include "/usr/local/bind/etc/ip/dev.txt";
include "/usr/local/bind/etc/ip/prod.txt";
include "/usr/local/bind/etc/view.conf";
配置acl和view
mkdir ip
vi ip/dev.txt
acl dev{
10.1.1.0/24;
172.16.1.0/24;
192.168.36.0/24;
};
vi ip/prod.txt
acl prod{
172.16.2.0/24;
};
vi view.conf
view "dev" {
match-clients {dev;};
dlz "Mysql zone" {
database "mysql
{host=127.0.0.1 dbname=dns_view ssl=false port=3306 user=root pass=123456 }
{select zone from dnstb where zone = '$zone$' and view = 'dev' 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 dnstb where zone
= '$zone$' and host = '$record$' and (view = 'dev' or view = 'OP')}
{}
{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 dnstb where zone = '$zone$' and view='dev'}
{select zone from xfr_table where zone = '$zone$' and client = '$client$' and
view='dev' limit 1}
{update data_count set count = count + 1 where zone ='$zone$' and view='dev'}";
};
};
view "prod" {
match-clients { prod; };
dlz "Mysql zone" {
database "mysql
{host=127.0.0.1 dbname=dns_view ssl=false port=3306 user=root pass=123456 }
{select zone from dnstb where zone = '$zone$' and view = 'prod' 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 dnstb where zone
= '$zone$' and host = '$record$' and (view = 'prod' or view = 'OP')}
{}
{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 dnstb where zone = '$zone$' and view='prod'}
{select zone from xfr_table where zone = '$zone$' and client = '$client$' and
view='prod' limit 1}
{update data_count set count = count + 1 where zone ='$zone$' and view='prod'}";
};
};
view "any" {
match-clients { any;};
dlz "Mysql zone" {
database "mysql
{host=127.0.0.1 dbname=dns_view ssl=false port=3306 user=root pass=123456 }
{select zone from dnstb 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 dnstb where zone
= '$zone$' and host = '$record$' and (view = 'any' or view='OP')}
{}
{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 dnstb where zone = '$zone$' and view='any'}
{select zone from xfr_table where zone = '$zone$' and client = '$client$' and
view='any' limit 1}
{update data_count set count = count + 1 where zone ='$zone$' and view='any'}";
};
};
服务使用
启动和重载配置文件
named -4 -uroot -c /usr/local/bind/etc/named.conf -d 9
rndc reload
添加dns记录
windows上安装navicat for mysql 添加DNS记录如图:
备用DNS:
步骤
安装bind和Mysql
配置rndc
配置BIND+VIEW,配置和主DNS一样,除了listen-on port 53里面的IP
配置mysql主从复制,备用DNS上的mysql为从库,设置同步的数据库为dns_view。
bind mysql web_bindview+dlz(mysql)相关推荐
- 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 dlz mysql ptr_Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法
使用文本配置文件的配置方式结合bind的最新的acl和view特性来实现智能DNS想必很多人已经很熟悉了,使用MySQL数据库来存放zone文件的方式可能也不少.对于两者都熟悉的,实现 Bind+DL ...
- 使用bind+dlz+mysql实现动态配置DNS
DNS之bind服务器配置 CentOS7编译环境安装 yum group install "Development Tools" yum install openssl* yum ...
- bind9 dlz mysql_利用BIND+DLZ+MYSQL构建企业智能DNS
目录: 一.简介 二.服务规划 三.安装BIND及基本环境 四.配置Bind-View-DLZ-MYSQL 五.添加相关记录并进行测试 六.配置从DNS 七.本文以FreeBSD 10.2 stabl ...
- mysql dlz驱动,bind dlz mysql的配备
bind dlz mysql的配置 部分配置 配置文件name.conf logging { channel query_log { file "/byread/logs/bind/quer ...
- 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_智能DNS --BIND DLZ+MYSQL
智能DNS --BIND DLZ+MYSQL 一.概念介绍: 1.智能DNS: 智能DNS就是根据用户的来路,自动智能化判断来路IP返回给用户,而不需要用户进行选择. 智能DNS与普通DNS区别: 普 ...
- bind dlz mysql ptr_bind-dlz结合mysql实现智能DNS
下面介绍bind结合mysql实现智能dns,以centos-6 32为例安装 安装mysql yum install gcc gcc-c++ openssl-devel wget ncurses-d ...
- centos 6.2 bind dlz mysql 驱动,bind9 dlz mysql 配置 – daemon
1.数据库安装 yum -y install mysql-community-server mysql-community-devel 2.编译安装bind 一些基础的包,请参考前一章 ./confi ...
最新文章
- 在OpenPower720上安装SLES9(I)
- 《网络安全——应用技术与工程实践》
- 共享数据库、共享数据表
- 2019 Multi-University Training Contest 1 - 1001 - Blank - dp
- 富士通台式电脑_电脑bios怎么进入-电脑bios进入方法介绍
- 魔众商城系统源码 v4.0.0 beta
- CentOS依赖包查找工具(https://centos.pkgs.org)
- Netflix的zuul使用
- ESP8266 arduino下载程序不执行的若干bug
- matlab读不出数据,xlsread为什么读不出数据
- HttpClient4.X 升级 入门 + http连接池使用
- Java解压ZIP、RAR文件
- 虚拟主播?这个项目,我能玩一年!
- Polkadot(波卡)简介
- 如何分析多个极兔快递物流每个网点之间是否超过12小时
- day25组合总和3_电话号码的字母总和
- passive-interface的含义
- 打印机出现黄色感叹号!无法查看属性和设置,开机查看打印机,打印自动变灰色问题无法使用!
- 计算机专业学生如何写一份优秀的校招简历(大三、研二学生请进)
- js/Jquery通过MutationObserver实现监听dom元素的属性变化 用div简单实例