转DNS DLZ +MYSQL
关于bind的软件介绍这里就不讲解了 大家都知道是干嘛的 这里多介绍一下DLZ这个东西
大家都知道维护bind的时候 如果想新增一个zone 需要vim 编辑添加 这样。。。。。然后bind启动后从磁盘把zone记录导入内存 就开始工作了
DLZ算是bind的好基友吧 因为用了DLZ之后 这些zone记录 你可以直接存到数据库内(mysql PostgreSQL等数据库) 而且是实现生效的 以后你只需要添加 修改mysql数据库 表里面的东西就行(大家都懂的搞个LAMP环境 写个简单的PHP页面 在前端web页面改就行)
DLZ是干啥的简单介绍了 关于DLZ其他剩下牛掰的功能 去官网看吧
现在我们在开始搞吧
bind9 默认不支持dlz 需要在编译的时候 –with-dlz-mysql下就行
我的版本是 bind-9.6.0-P1 mysql5.5.31(编译安装的)
1.先安装mysql吧 安装过程不详细介绍了 我以前讲mysql 主从 主主的时候有详细安装过程
安装完后 启动mysql 后需要做点东西 大家都懂的 关于库文件的
echo “/usr/local/mysql/lib/mysql” >> /etc/ld.so.conf
echo “/usr/local/lib” >>/etc/ld.so.conf
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/ #启动named的时候会报错 我的系统是64位的
mysql 先搞到这里吧
2.安装bind9 吧
wget http://ftp.isc.org/isc/bind9/9.6.0-P1/bind-9.6.0-P1.tar.gz && tar fxz bind-9.6.0-P1.tar.gz && cd bind-9.6.0-P1 && ./configure –prefix=/usr/local/bind9 –enable-threads=no –disable-openssl-version-check –with-dlz-mysql && make -j 8 && make -j 8 install
cd /usr/local/bind9/etc/ && ../sbin/rndc-confgen >rndc.conf && tail -n10 rndc.conf | head -n9 | sed -e s/#\//g >named.conf &&
dig > named.root
cat >localhost.zone <<EOF
ttl 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
EOF
这些过程没问题吧 大家都懂的
今天关于bind9 我不会讲智能dns那套(acl + view试图) 其实智能dns原理很简单 如果dlz这块你搞会了
你到时候 在mysql 里面多建几个表(什么 移动 电信 网通 其他等等) 然后分别存放 相应的zone 区域数据 最后在named配置文件的中 基于view调用就行(就是在不同的view下面 调用DLZ 数据库中不同的表而已)
named的基本安装搞完了 下面我们来看看 主配置文件吧
[root@CAN-GE-2 etc]# cat named.conf ##为了让你们好复制 我直接贴出来了 #这个配置已经最简单了 什么options logg配置啥都没
关于bind的其他东西 有时间再写博客吧
key “rndc-key” {
algorithm hmac-md5;
secret “jP9fkNWebN1Iar9Ee1T4Bw==”;
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { “rndc-key”; };
};
dlz “Mysql zone” {
database “mysql #调用dlz驱动
{host=127.0.0.1 dbname=dns ssl=false port=3306 user=root pass= } #主机 数据库名称 用户名 密码 端口信息 你懂的
{select zone from dns_records where zone=’%zone%’ limit 1} #查询zone 记录
{select ttl,type,mx_priority,case when lower(type)=’txt’ then concat(‘\”‘, data, ‘\”‘) #这些配置 直接是从DLZ官网文档中cp的
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%’}”;
};
前面的 TSIG(单词好像是这样写的) 配置不多讲了 主要看DLZ 这块
这里先简单贴下 实现智能dns这块的配置吧
acl “cnc” {IP地址 ; ip段};
acl “tel” {IP地址 ; ip段};
view “cnc” {
match-clients { cnc; };
dlz “Mysql zone” {
dlz的一些东西 你懂的
};
};
view “tel” {
match-clients { tel; };
dlz “Mysql zone” {
dlz的一些东西 你懂的
};
};
好 named 先搞到这里 再去接着搞mysql的数据库 表啥的吧
先建数据吧 名称是dns
create database dns;
use dns;
create table dns_records (
>zone varchar (255),
>host varchar (255),
>type varchar (255),
>data varchar (255),
>ttl int(11),
>mx_priority varchar (255),
>refresh int(11),
>retry int(11),
>expire int(11),
>minimum int(11),
>serial bigint(20),
>resp_person varchar (255),
>primary_ns varchar (255)
>);
关于为啥要这样定义 我就不说了 都是dns里面需要的专业术语的东西
然后插个数据进去吧
mysql> insert INTO dns_records (zone,host,type,data,ttl,retry) values (‘shencan.net’,'www’,'A’,’1.1.1.1′,’86400′,’15′);
查看下吧
都搞完了 起来吧
/usr/local/bind9/sbin/named -c /usr/local/bind9/etc/named.conf
OK 起来了
试试吧
OK 生效了 先写这么多吧 有点困了
转DNS DLZ +MYSQL的更多相关文章
- Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法
使用文本配置文件的配置方式结合bind的最新的acl和view特性来实现智能DNS想必很多人已经很熟悉了,使用MySQL数据库来存放zone文件的方式可能也不少.对于两者都熟悉的,实现 Bind+DL ...
- bind9+dlz+mysql连接断开问题
前言 关于bind-dlz介绍:http://bind-dlz.sourceforge.net/ DLZ(Dynamically Loadable Zones)与传统的BIND9不同,BIND的不足之 ...
- bind+dlz+mysql实现区域记录动态更新
BIND-DLZ实验:http://bind-dlz.sourceforge.net/ 实验环境:RHEL4,BIND-9.5.0-P2.tar.gz(9.4.0以上版本都已含DLZ补丁),Mysql ...
- bind9+mysql dlz(Dynamically Loadable Zones)
yum install openssl openssl-devel groupadd mysqluseradd -g mysql -s /sbin/nologin -M mysqlchown -R m ...
- 【Linux】基于Bind_DLZ和MySQL数据的DNS搭建
参考:http://www.linuxfromscratch.org/blfs/view/cvs/server/bind.html 参考:http://bind-dlz.sourceforge.net ...
- Bind+DLZ构建企业智能DNS/DNS
Bind+DLZ构建企业智能DNS 目录:一.简介二.服务规划三.安装BIND及基本环境四.配置Bind-View-DLZ-MYSQL五.添加相关记录并进行测试六.配置从DNS七.补充 一.简介: ...
- bind智能DNS + bindUI管理系统
bind UI 管理系统 https://github.com/cucker0/BindUI # bind安装 cd /usr/local/src wget http://ftp.isc.org/is ...
- Bind-DLZ with MySQL
系统环境: 系统:centos 6.8 Mysql: 5.1 BIND: bind--P2.tar.gz IP地址:192.168.153.130 软件下载地址:http://ftp.isc.org/ ...
- Fixing Poor MySQL Default Configuration Values
I've recently been accumulating some MySQL configuration variables that have defaults which have pro ...
随机推荐
- 负margin的移位参考线
同早年~ 问题描述 在xx项目中,羊城通卡号的输入框处使用了xx库中的实现方式,即将提示文字标签<label>通过负margin移位到<input>框的下面.静态时展现良好,j ...
- [LeetCode] Number of 1 Bits 位1的个数
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also know ...
- [LeetCode] Merge Sorted Array 混合插入有序数组
Given two sorted integer arrays A and B, merge B into A as one sorted array. Note:You may assume tha ...
- JavaScript模板引擎artTemplate.js——结语
再次首先感谢模板的作者大神,再次放出github的地址:artTemplate性能卓越的js模板引擎 然后感谢博客园的一位前辈,他写的handlebars.js模板引擎教程,对我提供了很大的帮助,也是 ...
- 【WPF】Combobox指定选中值用selectedValue不是很灵的时候,
wpf combobox 指定选中的值,前题,combobox是通过数据库绑定的ItemsSource:所以再指定的时候用selectValue不是很成功!我的解决方法是 生成一个字典,办值和索引对应 ...
- 【转】fatal error C1900: “P1”(第“20081201”版)和“P2”(第“20080116”版)之间 Il 不匹配
转自:这里(然而这里并没有写原出处) 背景:今天傻逼逼地想用vs2010来编译一个vs2013的项目,其中这个项目用到了一个库(应该是用2013编译的) 在我浅薄的认知中,以为只是13支持的特性更多, ...
- CSS Icon 项目地址 小图标-用css写成的
http://cssicon.space/#/icon/focus 这是所有用css写成的 小图标 右侧有 html和css代码
- 用MySQL语法建 一个学生表,包括学生姓名、性别、年龄、班级信息。
(1)创建表的SQL语句 create table student ( ID int primary key not null, NAME varchar(50), sex int, age int, ...
- 调戏OpenShift:一个免费能干的云平台
一.前因后果 以前为了搞微信的公众号,在新浪sae那里申请了一个服务器,一开始还挺好的 ,有免费的云豆送,但是一直运行应用也要消费云豆,搞得云豆也所剩无几了.作为一名屌丝,日常吃土,就单纯想玩一玩微信 ...
- 定制sqlmap tamper脚本
前言 渗透测试过程中遇到注入点常常丢到sqlmap中进行测试,假如网站有waf,sqlmap便无法直接注入了. 测试 在测试某个项目的过程中,一个页面的aid参数,习惯性的提交 and 1=1发现直接 ...