Steven Teng

A c# Fans

导航

基于Bind的动态域名服务器架设

Posted on 2013-05-03 19:16  StevenTeng  阅读(761)  评论(0)    收藏  举报

系统环境:  ubuntu12.04 server

软件版本:  Bind9.9.2-2

       Lnmp0.9-full

 

系统安装

只选择Openssh,如果你不需要远程的话也可以不要,千万不要选择自动安装的mysql和DNS server。

 

Mysql

然后执行lnmp自动安装,安装完后mysql是我们主要用的服务。

然后进phpmyadmin建立一个数据库dns,然后建立以下表格:

create table `records`(
`id` int(10) unsigned NOT NULL auto_increment,
`zone` varchar(255) NOT NULL, 
`ttl` int(11) NOT NULL default '600', 
`type` varchar(255) NOT NULL default 'A', 
`host` varchar(255) NOT NULL, 
`mx_priority` int(11) default NULL, 
`data` text, 
primary key (`id`),
key `type` (`type`),
key `host` (`host`),
key `zone` (`zone`));

字段说明:

Id不解释

Zone是动态域名的一级域名

Ttl是域名生存周期 我设置为10分钟 600s

Type是解析的种类,我架设的这个主要是动态域名服务,所以只支持A记录,其他记录的支持可以参考最后标注的文档

Host是动态域名的前缀,如xxx.china.com 这个就是xxx

Mx_priority 这个是优先级,默认为空即可

Data就是IP地址记录了

 

然后插入一条测试数据

INSERT INTO `records` (`id`, `zone`, `ttl`, `type`, `host`, `mx_priority`, `data`) VALUE (1, 'dengsir.com', 600, 'A', 'www', NULL, '8.8.8.8');

 

Bind

解压下载的bind源码,然后进入它的目录

配置bind:

./configure --prefix=/usr/local/bind --enable-largefile --enable-threads=no --with-dlz-mysql

说明: with-dlz-mysql这个很重要,意思是开启mysql连接服务 bind-dlz

然后编译和安装

make
make install

 

进入安装目录生产key和配置文件

cd /usr/local/bind/sbin
./rndc-confgen >../etc/rndc.conf
cd ../etc
tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf

 

然后在named.conf中加入

dlz "Mysql zone" {
   database "mysql
   {host=localhost dbname=dns user=root pass=mysql}
   {select zone from records where zone = '$zone$'}
   {select ttl, type, mx_priority, data from records where zone = '$zone$' and host = '$record$'}";
};

 

上面的数据库地址 名称 用户名 密码可自己按照自己的设置修改

然后链接一个mysql的库文件给Bind

ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.16 /usr/lib/

这个文件可能叫xxx.so.16 也可能是其他,比如18,这个视mysq版本而定,我的是16

最后测试一下:

我们用显示信息的参数启动一下

/usr/local/bind/sbin/named -uroot -d1 -g &

如果没问题的话 上面添加的域名就可以被这个服务器解析了。

如果没问题后,可以去除参数添加进开机项

vi /etc/rc.local

在文件中的exit 0 前加入一下一行即可

/usr/local/bind/sbin/named

 

最后

优化一下前台php完成动态ip更新即可完成ddns服务器的架设。

 

参考文档:

http://bbs.chinaunix.net/thread-2301472-1-1.html

http://blog.chinaunix.net/uid-24690947-id-3069277.html

http://bind-dlz.sourceforge.net/mysql_driver.html

 

转载请注明出处:

http://www.cnblogs.com/steventeng/articles/3057253.html