前言
1
安装bind和mysql
1.Mysql安装,你喜欢编译或者yum都可以;
yum -y install mysql mysql-server mysql-devel
2.安装bind和mysql-bind ##这里我用编译安装,注意以下修改可使得bind支持mysql
解压:
tar xzf bind-9.11.1.tar.gz
分别复制mysql-bind的mysqldb.c和mysqldb.h到bind-9.11.1/bin/named和bind-9.11.1/bin/named/include:
cd mysql-bind
cp mysqldb.c mysqldb.h /root/bind-9.11.1/bin/named
cp mysqldb.c mysqldb.h /root/bind-9.11.1/bin/named/include
修改bind源码中的bin/named/Makefile.in文件:
DBDRIVER_OBJS = mysqldb.@O@ #注意两个@中间那个是大写O
DBDRIVER_SRCS = mysqldb.c
DBDRIVER_INCLUDES = -I/usr/include/mysql -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -fasynchronous-unwind-tables -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv
DBDRIVER_LIBS = -rdynamic -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib -lssl -lcrypto
注:
DBDRIVER_INCLUDES的值由命令/usr/bin/mysql_config --cflags获得。
DBDRIVER_LIBS的值由命令/usr/bin/mysql_config --libs获得。
编辑bind源文件bin/named/main.c:
在函数setup(void)里面ns_server_create()的前面添加mysqldb_init();,如:
/*
* Add calls to register sdb drivers here.
*/
/* xxdb_init(); */
mysqldb_init();
ns_server_create(ns_g_mctx, &ns_g_server);
在函数cleanup(void)里面ns_server_destroy()的后面添加mysqldb_clear(),如:
ns_server_destroy(&ns_g_server);
mysqldb_clear();
/*
* Add calls to unregister sdb drivers here.
*/
/* xxdb_clear(); */
编辑bind源文件中的bin/named/mysqldb.c文件:
更改#include 为#include
开始安装bind:
yum -y install gcc openssl-devel
cd /tmp/bind-9.11.1
./configure --prefix=/opt/bind9/ --enable-threads --disable-openssl-version-check
make && make install
2
named.conf文件配置
options {
//域名文件存放的绝对路径
directory "/usr/local/named/var";
//如果bind启动,自动会在/usr/local/named/var目录生成一个named.pid文件,打开文件就是named进程的ID
pid-file "named.pid";
};
域rjkj.com的zone文件
zone "rjkj.com" IN {
type master; //该域名服务器是主域名服务器,这个选项主要用在主备部署中
database "mysqldb eflycloud other 127.0.0.1 root 123456";
//定义了到那个数据库、那个数据表获取正向记录数据
};
然后启动bind服务
/opt/bind9/sbin/named -c /opt/bind9/etc/named.conf
3
mysql配置
service mysqldstart
mysql -u root -p //设置mysql的密码
mysql>createdatabaseexample; //建立example数据库
use example;
CREATETABLE`rjkj_com `( //建表
`id`int(10) unsignedNOTNULLAUTO_INCREMENT,
`host`varchar(255)NOTNULLDEFAULT'@',
`type`enum('MX','CNAME','NS','SOA','A','PTR')NOTNULL,
`data`varchar(255)DEFAULTNULL,
`ttl`int(11)NOTNULLDEFAULT'800',
PRIMARYKEY(`id`)
);
insertINTOrjkj_com(zone,host,type,data,ttl)values('www.rjkj.com ','A','10.255.1.27',86400); //添加几条域名解析记录
上面就是一个数据库和数据表的过程,也可以通过phpmyadmin处理。
从此以后,你只需要在浏览器打开phpmyadmin,对数据进行修改即可,不用进系统操作,不用重启服务,就能享受高性能又方便的智能DNS。
下一期
继续深入探究智能DNS更好更有趣的玩法,
例如如何加强DNS的可靠性、稳定性,
又例如加入外部智能DNS代理等等。
领取专属 10元无门槛券
私享最新 技术干货