Linux系统运维

Linux系统运维 - 专业的linux运维学习与交流社区

当前位置: 主页 > 环境部署 > 监控报警 >

bind9 + mysql 搞DNS

时间:2013-05-22 10:18来源:www.shencan.net 作者:admin 点击:
昨天写了一篇 bind9 +DLZ 的文章原理相信大家都明白了其实也是bind9调用mysql数据库 表内的东西 (当做zone区域数据) 今天为啥还要写bind9 +mysql 呢其实原理都是一样的 bind 的所有bind zone区
有疑问或交流请在以下版权信息处联系作者,点击作者名字便宜可查询联系方式及作者简介
欢迎大家分享自己的工作经验,学习总结,技术文档等
请点击查阅:分享方法,转载本文请注明出处,谢谢


昨天写了一篇 bind9 +DLZ 的文章 原理相信大家都明白了  其实也是bind9 调用mysql 数据库 表内的东西 (当做zone区域数据) 今天为啥还要写bind9 + mysql 呢  其实原理都是一样的 bind 的所有bind zone区域文件都存在mysql内  只是bind +DLZ 是通过 bind自带的一个驱动实现的(编译的时候指定的)

今天写bind 9 + mysql 其实也是为了对比一下 这2种方式的区别

其实大家也知道了  一个是通过bind9调用mysql驱动  一个是通过mysql-bind 这个包来实现的

下面我们开始来讲吧

关于mysql 这里不多讲了  我是用yum 源安装的  安装方法大家都懂的 yum  install mysql  mysql-devel mysql-server  -y

我的bind的版本是  bind9.9

wget ftp://ftp.isc.org/isc/bind9/cur/9.9/bind-9.9.2-P2.tar.gz

我的mysql-bind的版本是 mysql-bind-0.2

wget http://nchc.dl.sourceforge.net/project/mysql-bind/mysql-bind/mysql-bind-0.2%20src/mysql-bind.tar.gz

开始干活吧   下载完后 都先解压 下面的过程有些麻烦 需要改写源码 的东西

tar  fxz  bind-9.9.2-P2.tar.gz && tar fxz mysql-bind.tar.gz

cd mysql-bind && cat README #这个文件就是教你这么改文件的 包括以下源码的修改

修改的位置 我都框起来了  下面我都做一片吧   #英文好的应该是小case

1.先cp mysqldb.c  mysqldb.h  2个文件到 bind9/bin/named 和 bind9/bin/named/include目录下 # bind9.9 我在root目录下解压的

然后到 bind9.9 源码目录下 修改以下文件

cd /root/bind-9.9.2-P2

vim bin/named/Makefile.in   改成下面就行

700

DBDRIVER_INCLUDES

DBDRIVER_LIBS  这2个值 是分别运行 下面的命令 产生的 ##PS  上面都有说明

这个文件改好了 再改下这个文件

vim bin/named/main.c #添加2个东西就行  注意下位置

这个文件改完了

最后改这个文件

vim bin/named/mysqldb.c

把named 改成include 就行

OK  文件都修改完了  开始编译安装把

LIBS= && CFLAGS= && ./configure –prefix=/usr/local/bind9/ –disable-openssl-version-check && make -j  8  && make -j 8 install

OK  bind9 +mysql-bind 都安装完了  我们简单配置下 bind吧  #其实上篇文章中有

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

bind9 配置先搞到这里 我们去弄下 mysql的数据库与表吧

默认yum 安装的mysql没密码 我先设置个吧

mysqladmin -uroot password  sc

登陆到mysql

mysql -uroot -p

mysql> create database shencan;  #先搞个数据库

mysql>  use shencan;

mysql> CREATE TABLE sc (     #搞个sc 表

name varchar(255) default NULL,

ttl int(20) default NULL,

type varchar(255) default NULL,

data varchar(255) default NULL);

然后插条zone区域 (最简单的就是 SOA NS A 这3条)

mysql> INSERT INTO sc VALUES (‘shencan.net’, 22222, ‘SOA’, ‘shencan.net. www.shencan.net. 201305212 28800 7200 86400 28800′);

mysql> INSERT INTO sc VALUES (‘shencan.net’, 22222, ‘NS’, ‘ns1.shencan.net.’);

mysql> INSERT INTO sc  VALUES (‘www.shencan.net’,’11111′,’A',’1.1.1.1′);

INSERT INTO sc VALUES (‘ns1.shencan.net’, 22222, ‘A’, ’127.0.0.1′);

先看看吧

OK  数据库搞完了  我们接着去搞bind9 配置吧

vim /usr/local/bind9/etc/named.conf

新增一个 zone 主要配置讲解下

database “mysqldb shencan sc 127.0.0.1 root root”;

database 这个你懂的

mysqldb  这个你懂的

shencan   mysql 数据库名称 #刚才新建的

sc        mysql  shencan 数据库内的一个表

127.0.0.1   mysql地址  # 我是本机安装的mysql

root      mysql用户名

sc       mysql密码

关于 这块实现智能dns 也是一样的  定义 acl  然后搞不同 view  #上一篇文章有 这里不多介绍了

我启动named吧

可以先调试下

/usr/local/bind9/sbin/named -c /usr/local/bind9/etc/named.conf  -g

没有问题的话 直接起来吧

/usr/local/bind9/sbin/named -c /usr/local/bind9/etc/named.conf

OK 起来了

我们来验证下吧

dig @127.0.0.1 www.shencan.net

OK  您懂的  都生效了 。

总结下 吧    加上昨天写的 bind9 +DLZ 这2篇文章 简单对比分析下吧

bind +DLZ  支持多数据库 你懂的  是基于驱动来链接的 应该效率比较高(猜的)

bind + mysql(mysql-bind)  zone区域配置那块 个人觉得比 bind +DLZ那块简单 明了

有时间测试下性能吧  。。

本文来自linux系统运维http://www.linuxyw.com/linux/bushu/jiankongbaojing/20130522/423.html

顶一下
(0)
0%
踩一下
(0)
0%
分享按钮
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
栏目列表
推荐内容