最近小编我在自己的pc上安装了linux mint 14桌面版操作系统,就像试试这个桌面版的操作系统能不能实现服务器系统的性能,整好我最近在尝试使用一种新的搭建dns服务器的方法(不使用bind),powerDns+mysql+powerAdmin,这种dns服务器易于管理,因为有web页面可一直接添加、修改、更新和删除域或者记录,于是小编我就开始动手做了。
setp 1:准备工作,你需要下载相应的软件包啦,PowerDNS,Mysql,PowerAdmin,但是很是庆幸啊,这个桌面版的mint是基于ubuntu开发而来的,安装软件的方式和ubuntu是一致的,ubuntu的软件仓库可是各种的软件都有啊,小编我是着实体验了一把傻瓜似的安装享受,但是要提醒的是你的现更新以下本地的软件列表库,不然你要搜索安装的软件可能不存在的
#apt-get update
step 2:安装mysql,因为powerDns的域和记录等信息都是记录在mysql数据库中的,所有mysql是必不可少的
# apt-get -y install mysql-server mysql-client
又因为mysql默认是绑定自己环回地址的,这样我们在外界管理是管理不到的,我们可以修改一下mysql的配置文件以取消地址绑定,这里我们可以使用sed编辑器来修改,当然也可以直接用vi编辑器
# sed -i -e 's/bind-address/#bind-address/' /etc/mysql/my.cnf
启动mysql
# service mysql start
之后可以查看一下mysql的启动状态,如果发现3306端口启动了就说明mysql启动没问题了
# netstat -tupln |grep mysql
# apt-get -y install pdns-server pdns-backend-mysql
安装完成之后要进行相应的配置来让powerDns支持mysql,powerDns官方提供了一个安装说明文档
下载打开之后找到如下页面
可以看到相关mysql配置修改 etc/powerdns/pdns.conf文件内容,将原有”#launch=gmysql“的”#“去掉,并且添加以下内容
gmysql-host=127.0.0.1
gmysql-user=powerdns //这里的user是安装powerDns时系统生成的 gmysql-password=123456
gmysql-dbname=dnsdb //powerDns的数据库名在后面要使用mysql创建
step 4:新建powerDns数据库dnsdb(名字可以任意取,但是要和上面提到的pdns.conf配置文件的内容一致)
打开mysql
cmq-ThinkPad-R400 cmq # mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 51
Server version: 5.5.29-0ubuntu0.12.10.1 (Ubuntu)
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
#建立一个名为dnsdb的数据库用于存储PowerDNS的数据。
mysql> create database dnsdb;
#给用户pdnsuser(这个用户要使用useradd创建)授予操作dnsdb数据库的全部权限。
mysql> GRANT ALL ON dnsdb.* TO 'pdnsuser'@'localhost' IDENTIFIED BY '123456';
mysql> GRANT ALL ON dnsdb.* TO 'pdnsuser'@'localhost.localdomain' IDENTIFIED BY '123456';
mysql> FLUSH PRIVILEGES;
#创建相应的表,用以存放域、记录等,读者可能会想,我哪知道数据字典的格式啊,别担心,官方文档是有地,直接复制粘贴就是了
先切换到dnsdb
mysql > use dnsdb;
创建域表
mysql > CREATE TABLE domains (
id INT auto_increment,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(6) NOT NULL,
notified_serial INT DEFAULT NULL,
account VARCHAR(40) DEFAULT NULL,
primary key (id)
);
创建记录表
mysql > CREATE TABLE records (
id INT auto_increment,domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(6) DEFAULT NULL,
content VARCHAR(255) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
primary key(id)
);
创建supermesters
mysql > CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);
当然官方操作文档还提供了相应的优化机制,就是创建一些索引
mysql > CREATE INDEX rec_name_index ON records(name);
mysql > CREATE INDEX nametype_index ON records(name,type);
mysql > CREATE INDEX domain_id ON records(domain_id);
插入几条测试记录
INSERT INTO domains (name, type) values ("test.com", "NATIVE");
INSERT INTO records (domain_id, name, content, type,ttl,prio)
VALUES (1,"test.com","localhost ahu@ds9a.nl 1","SOA",86400,NULL);
INSERT INTO records (domain_id, name, content, type,ttl,prio)
VALUES (1,"test.com","dns-us1.powerdns.net","NS",86400,NULL);
INSERT INTO records (domain_id, name, content, type,ttl,prio)
VALUES (1,"test.com","dns-eu1.powerdns.net","NS",86400,NULL);
INSERT INTO records (domain_id, name, content, type,ttl,prio)
VALUES (1,"www.test.com","199.198.197.196","A",120,NULL);
INSERT INTO records (domain_id, name, content, type,ttl,prio)
VALUES (1,"mail.test.com","195.194.193.192","A",120,NULL);
INSERT INTO records (domain_id, name, content, type,ttl,prio)
VALUES (1,"localhost.test.com","127.0.0.1","A",120,NULL);
INSERT INTO records (domain_id, name, content, type,ttl,prio)
VALUES (1,"test.com","mail.test.com","MX",120,25);
step 5:重新启动powerDns
#service pdns retstart
step 6:测试,解析方式有很多host、nslookup、dig等等
cmq-ThinkPad-R400 cmq # host www.test.com
www.test.com is an alias for test.blockdos.com.
test.blockdos.com is an alias for test.3dnsgeo.com.
test.3dnsgeo.com has address 50.23.225.49
test.3dnsgeo.com has address 174.36.85.72
成功啦乡亲们!!!!
step 7:如果总是直接在mysql里添加数据那真是会把人累死的啦,那么咱就来解决一下啦,可以使用poweradmin这个利器来解决,下载完成之后只需几步就能出现友好的web管理界面啦,当然既然是web管理,那么apache便是少不了的了,小编使用了以下命令安装
# apt-get -y install apache2 libapache2-mod-php5 php5 php5-common \
php5-curl php5-dev php5-gd php-pear php5-imap gettext \
php5-mcrypt php5-mhash php5-ming php5-mysql \ php5-xmlrpc
# pear install DB
# pear install pear/MDB2#mysql
将下载完的poweradmin-2.1.6.tgz解压缩
# tar -xvzf poweradmin-2.1.6.tgz
# mv poweradmin-2.1.6 /var/www/dnsadmin
修改用户和用户组
# chown -R www-data:www-data /var/www/dnsadmin
打开浏览器访问http://127.0.0.1/dnsadmin/install/index.php
默认选择英文之后点击“go to step 2”,一直点到“go to step 4”(就是第三页)输入MySQL中root用户(注意是root用户)、密码、地址、端口、数据库名称,最后一个输入框是是指定以后登录Poweradmin时管理员(admin)的密码(最后测试登录web页面会用到,读者要记着啊)。
第4页指定为PowerDNS建立的MySQL用户的信息,输入在第4步中为建立的MySQL用户(还记得我们建立的pdnsuser)、密码以及SOA、NS记录。
第五页是授权
然后到了第六页,它提示说没法创建config.inc.php,这可麻烦大了,如果这个文件没法创建那么我们下面的工作就没法完成了,这是为什么呢,主要是因为mint这个系统的权限问题,我们目前登录的用户都是普通用户,没法轻易创建文件,那么我们可以在终端下切换到root用户下使用vi来手工创建就是了,页面上提示的很清楚,可以手工创建,并且内容已经附上了
mint下的vim是以下这种形式(小编我开始可是真是不习惯,读者你可以用别名替代以下的啦)
# vim.tiny /var/www/dnsadmin/inc/config.inc.php 将以下内容添加进去保存退出即可
继续到达第七页
又有提示了:you should (must!) remove the directory "install/" from the Poweradmin root directory. You will not be able to use Poweradmin if it exists. 意思就是你必须删除”install/“文件夹不然你就无法使用Poweradmin的管理界面,这个文件夹在哪呢,其实就是/var/www/dnsadmin/install/把它删除就是了
# rm -rf /var/www/dnsadmin/install/
接下来就是测试Poweradmin的管理界面的时刻了,在浏览器中打开http://127.0.0.0/dnsadmin/ 输入管理用户(admin)以及密码(第1步“Poweradmin administrator password”中输入的内容)。
登录之后就是这个样子了
那么开始使用吧,你能清楚的看到很多的菜单选项,如果想创建一个新域的话就点击“Add master zone”小编我这里添加了一个“zzutest.cn”的玩玩
可以选择域的类型,我选的是主域之后点击”Add zone”就是了,然后回到“Index”页面点击“List zones”就会看到下面的内容(小编原来在mysql数据库中添加的域也会显示出来)
那么如何能添加主机记录呢,请看下图,单击小编鼠标指示的位置就是域的视图模式了
找到“Add record”按钮的上面就可以添加相应的主机记录了比如小编添加了一个
zzutest.cn NS abc.net
然后单击“Add record”按钮就会添加成功了
然后添加一条主机记录啦
www.zzutest.cn A 202.197.189.111
到此小编就已经把powerDns的使用给讲完了,个人觉的还有一个web管理工具也可以用于管理powerDns的数据库,那就是phpMyadmin啦,可以直接操纵数据库的每一条记录phpMyadmin也不需要安装啦,直接解压到/var/www/目录就是了
这就是我的phpMyadmin的管理页面啦,左边可以看到本机所有的mysql数据库啦,可以展开dnsdb看看
左侧的这些表是不是很熟悉啊,这些都是小编在前面手工建立的啦,web管理界面信息标明的很清晰啦,小编我就不一一介绍啦,在接下来的一篇博客小编我会给读者介绍另一种dns服务器软件的使用的,敬请关注哈
本文转自 chenming421 51CTO博客,原文链接:http://blog.51cto.com/wnqcmq/1168904