PowerDNS 简介
PowerDNS 是一个跨平台的开源 DNS 服务组件,支持 Win32 和 Linux/Unix 系统。在 Windows 下使用 Access 的 mdb 文件记录 DNS 信息,而在 Linux/Unix 下则使用 MySQL 来存储 DNS 数据。无论是 mdb 还是 MySQL,备份都非常方便。
安装步骤
1. 安装 MySQL
yum -y install mysql mysql-server
2. 设置开机启动并启动 MySQL
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start
3. 修改 MySQL root 密码
mysqladmin -u root password
4. 安装 PowerDNS
yum -y install pdns pdns-backend-mysql
5. 创建 PowerDNS 数据库
CREATE DATABASE powerdns;
6. 创建 PowerDNS 数据库用户
GRANT ALL ON powerdns.* TO 'power_admin'@'localhost' IDENTIFIED BY '你的密码';
FLUSH PRIVILEGES;
7. 创建数据表
USE powerdns;
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)
);
CREATE UNIQUE INDEX name_index ON domains(name);
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)
);
CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);
8. 配置 PowerDNS 使用 MySQL 后端
编辑 /etc/pdns/pdns.conf 文件,添加以下配置:
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=power_admin
gmysql-password=你的密码
gmysql-dbname=powerdns
9. 安装 Poweradmin 所需依赖包
yum -y install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext
10. 设置 Apache 自启动并启动
chkconfig --levels 235 httpd on
/etc/init.d/httpd start
11. 安装 Poweradmin 所需的 PEAR 包
yum install php-pear-DB php-pear-MDB2-Driver-mysql
12. 下载 Poweradmin
从 Poweradmin 官网 下载 poweradmin-2.1.6.tgz。
13. 安装 Poweradmin 到 Web 目录
tar xvfz poweradmin-2.1.5.tgz
mv poweradmin-2.1.5 /var/www/html/poweradmin
touch /var/www/html/poweradmin/inc/config.inc.php
chown -R apache:apache /var/www/html/poweradmin/
14. 开始配置 Poweradmin
访问 http://192.168.1.100/poweradmin/install/ 进行安装。按照向导提示完成配置,安装完成后系统会提示删除 install 目录。
15. 删除 install 目录以确保安全
rm -fr /var/www/html/poweradmin/install/
删除后,访问 http://192.168.1.100/poweradmin/index.php 即可登录管理界面。
配置 PowerDNS 递归查询
编辑 /etc/powerdns/pdns.conf,启用递归查询并指定上游 DNS 服务器:
allow-recursion=你的允许网段
launch=gmysql
recursor=8.8.8.8
创建普通用户并测试 A 记录
1. 登录 Poweradmin
访问 http://192.168.1.100/poweradmin/ 并使用管理员账号登录。
2. 添加用户
在用户管理中添加新用户,并设置相应权限。
3. 尝试登录
使用新创建的用户登录,验证权限是否生效。
4. 添加 A 记录
在域名管理中添加 A 记录,填写主机名和对应的 IP 地址。
5. 验证解析
使用 dig 或 nslookup 命令验证 A 记录是否生效。
使用体验
前提条件
将客户端的 DNS 服务器设置为 PowerDNS 服务器的 IP(例如 192.168.1.100)。
Windows 环境
在网络设置中将 DNS 服务器地址改为 192.168.1.100。
Linux 环境
修改 /etc/resolv.conf 文件,将 nameserver 设置为 192.168.1.100。
添加 Zone 记录
在 Poweradmin 中添加新的 Zone,填写域名和主 DNS 服务器信息。
添加 A 记录
在 Zone 中添加 A 记录,指定主机名和 IP 地址。添加成功后,客户端即可通过该域名访问对应 IP。
通过以上步骤,您可以成功搭建并管理自己的 DNS 服务。更多高级配置和使用技巧,请参考 PowerDNS 官方文档。
