系统准备

配置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)相关推荐

  1. 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 ...

  2. bind dlz mysql ptr_Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法

    使用文本配置文件的配置方式结合bind的最新的acl和view特性来实现智能DNS想必很多人已经很熟悉了,使用MySQL数据库来存放zone文件的方式可能也不少.对于两者都熟悉的,实现 Bind+DL ...

  3. 使用bind+dlz+mysql实现动态配置DNS

    DNS之bind服务器配置 CentOS7编译环境安装 yum group install "Development Tools" yum install openssl* yum ...

  4. bind9 dlz mysql_利用BIND+DLZ+MYSQL构建企业智能DNS

    目录: 一.简介 二.服务规划 三.安装BIND及基本环境 四.配置Bind-View-DLZ-MYSQL 五.添加相关记录并进行测试 六.配置从DNS 七.本文以FreeBSD 10.2 stabl ...

  5. mysql dlz驱动,bind dlz mysql的配备

    bind dlz mysql的配置 部分配置 配置文件name.conf logging { channel query_log { file "/byread/logs/bind/quer ...

  6. bind dlz mysql rpm_MySQL+BIND-dlz 实现智能DNS

    配置环境 系统:centos 6.8 Mysql: 5.7 BIND: 9.11.0 CentOS6编译环境安装 yum groupinstall "Development Tools&qu ...

  7. bind dlz mysql rpm_智能DNS --BIND DLZ+MYSQL

    智能DNS --BIND DLZ+MYSQL 一.概念介绍: 1.智能DNS: 智能DNS就是根据用户的来路,自动智能化判断来路IP返回给用户,而不需要用户进行选择. 智能DNS与普通DNS区别: 普 ...

  8. 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 ...

  9. centos 6.2 bind dlz mysql 驱动,bind9 dlz mysql 配置 – daemon

    1.数据库安装 yum -y install mysql-community-server mysql-community-devel 2.编译安装bind 一些基础的包,请参考前一章 ./confi ...

最新文章

  1. 在OpenPower720上安装SLES9(I)
  2. 《网络安全——应用技术与工程实践》
  3. 共享数据库、共享数据表
  4. 2019 Multi-University Training Contest 1 - 1001 - Blank - dp
  5. 富士通台式电脑_电脑bios怎么进入-电脑bios进入方法介绍
  6. 魔众商城系统源码 v4.0.0 beta
  7. CentOS依赖包查找工具(https://centos.pkgs.org)
  8. Netflix的zuul使用
  9. ESP8266 arduino下载程序不执行的若干bug
  10. matlab读不出数据,xlsread为什么读不出数据
  11. HttpClient4.X 升级 入门 + http连接池使用
  12. Java解压ZIP、RAR文件
  13. 虚拟主播?这个项目,我能玩一年!
  14. Polkadot(波卡)简介
  15. 如何分析多个极兔快递物流每个网点之间是否超过12小时
  16. day25组合总和3_电话号码的字母总和
  17. passive-interface的含义
  18. 打印机出现黄色感叹号!无法查看属性和设置,开机查看打印机,打印自动变灰色问题无法使用!
  19. 计算机专业学生如何写一份优秀的校招简历(大三、研二学生请进)
  20. js/Jquery通过MutationObserver实现监听dom元素的属性变化 用div简单实例

热门文章

  1. 别 了,余 额 宝!
  2. 欺诈检测_签名欺诈检测-一种高级分析方法
  3. 希尔排序及手推时间复杂度(java实现)
  4. java joda 获取utc时间_Java获取时间与系统时间相差8小时终极解决方案
  5. MES系统的应用(中)
  6. lisp 梯形展开图_斜截圆柱件钣金展开图的AutoCAD二次开发
  7. 如何 拆 贴片电容 而不是把焊盘给搞坏
  8. Windows无法安装,选中的磁盘为GPT分区形式 --解决办法
  9. Book Sharing
  10. Android上的Dalvik虚拟机