对于powerdns服务器,最近我在网上找了好多的资料都是比较麻烦而且实现起来特别复杂的,环境配置弄了好久都没有成功,近来听说linux mint的操作系统玩着比较舒服,就装了一个类于Windows的操作系统上手特别方便,我就想在这个系统上能不能实现powerdns的安装配置和服务器的搭建呢呢,抱着这个疑问索性我就试了一下,发现竟然可以实现,和cent os以及redhat的不同。我使用一种新的搭建dns服务器的方法不是bind的方式而是powerDns+mysql+powerAdmin,这种dns服务器易于管理,因为有web页面可一直接添加、修改、更新和删除域或者记录。
首先,你需要下载相应的软件包,例如PowerDNS,Mysql,PowerAdmin,这个linux mint是基于ubuntu开发的,安装软件的方式和ubuntu是方法类似的,ubuntu的软件资源中心相当丰富,但是要首先更新本地的软件列表库才能找到这些软件。
使用apt-get update指令更新软件库。
安装mysql,因为powerDns的域和记录等信息都是记录在mysql数据库中所以要安装mysql apt-get -y install mysql-server mysql-client
又因为mysql默认是绑定自己环回地址的,这样我们在外界管理是管理不到的,我们可以修改一下mysql的配置文件以取消地址绑定,这里我们可以使用sed编辑器来修改
sed -i -e 's/bind-address/#bind-address/' /etc/mysql/my.cnf
开启mysql服务
service mysql start
查看mysql的启动状态,检查3306端口是否启动
接下来需要安装powerDns
安装完成之后要进行相应的配置来让powerDns支持mysql,powerDns官方提供了一个安装文档
查找相关mysql配置
修改 etc/powerdns/pdns.conf文件内容,将原有”#launch=gmysql“的”#“去掉,并且添加以下内容
gmysql-user=powerdns gmysql-user是安装powerDns时系统生成的
gmysql-dbname=dnsdb powerDns dnsdb的数据库名在后面要使用mysql创建
新建powerDns数据库名dnsdb,但是要和pdns.conf配置文件的内容一致
打开mysql
需要建立一个名为dnslib的数据库来存储PowerDNS的相关数据
给用户pdnsuser(这个用户要使用useradd创建)授予操作dnslib数据库的全部权限
创建相应的表,用以存放域、记录等
使用dnslib
创建域表
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)
);
创建记录表
创建supermesters
当然官方操作文档还提供了相应的优化机制,就是创建一些索引
插入几条测试记录
重新启动powerDns
测试,解析方式有很多host、nslookup等
如果像上述方式直接在mysql里添加数据任务量就太大了,可以使用poweradmin来解决数据的问题,下载完成之后出现web管理界面,明显apache是必不可少的首先需要安装下列安装包,才能使用工具。。。。。
需要下载poweradmin-2.1.6然后将将下载完的poweradmin-2.1.6.tgz解压缩
tar -xvzf poweradmin-2.1.6.tgz
再修改用户和用户组
打开浏览器访问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