PowerDNS là một chương trình mã nguồn mở, cho phép xây dựng máy chủ DNS hiệu năng cao. Chương trình này có thể chạy trên nhiều hệ thống GNU/Linnux, Unix, MacOS, được viết bằng C++ và được phát hành dưới GPLv2. Nó sử dụng các cơ sở dữ liệu phổ biến như MySQL, MariaDB, etc để đọc các tập tin Zone và Record.
Bài viết này sẽ hướng dẫn các bạn cài đặt máy chủ PowerDNS trên CentOS 6
Contents
Cài đặt MySQL
Cài đặt MySQL bằng lệnh sau:
yum -y install mysql mysqsl-server
Khởi động MySQL và thiết lập khởi động cùng hệ thống:
service mysqld start chkconfig mysqld on
Đặt password MySQL cho user root:
mysqladmin -u root password <your_password>
Tạo PowerDNS Database và User
Đăng nhập vào MySQL bằng lệnh sau:
mysql -u root -p
Tạo database cho PowerDNS
CREATE DATABASE powerdns;
Tạo database user cho PowerDNS và gán quyền truy cập database cho user này:
GRANT ALL ON powerdns.* TO 'poweruser '@'localhost' IDENTIFIED BY 'powerpassword';
Gõ lệnh sau để cập nhật lại các thiết lập:
FLUSH PRIVILEGES;
Sử dụng powerdns database bằng lệnh sau:
USE powerdns;
Tạo bảng domains:
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) );
Tạo Unique Index cho bảng domains:
CREATE UNIQUE INDEX name_index ON domains(name);
Tạo bảng records:
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);
Tạo bảng supermasters:
CREATE TABLE supermasters ( ip VARCHAR(25) NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) DEFAULT NULL );
Thoát khỏi giao diện console MySQL:
quit;
Cài đặt PowerDNS
Cài đặt EPEL repository
rpm -Uvh http://epel.mirror.net.in/epel/6/i386/epel-release-6-8.noarch.rpm
Gõ lệnh sau để cài đặt PowerDNS
yum -y install pdns pdns-backend-mysql bind-utils
Khởi động PowerDNS và thiết lập khỏi động cùng OS
service pdns start chkconfig pdns on
Cài đặt PowerAdmin
Cài đặt PowerAdmin bằng lệnh sau:
wget http://nchc.dl.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz tar zxvf poweradmin-2.1.7.tgz cd poweradmin-2.1.6/inc mv config-me.inc.php config.inc.php
Chỉnh sửa file config.inc.php
vi config.inc.php
Thiết lập các thông số databases như sau:
$db_host = 'localhost'; $db_port = '3306'; $db_user = 'powerdns'; $db_pass = 'password'; $db_name = 'powerdns'; $db_type = 'mysql'; $session_key = 'session_key';
Chuyển thư mục PowerAdmin vào Apache’s DocumentRoot:
mv /root/ poweradmin-2.1.7/* /var/www/html/ service httpd restart
Khởi động lại PowerDNS daemon:
service pdns restart
Tạo Zone và Record cho PowerDNS
Đăng nhập vào Poweradmin http://server_ip/poweradmin/index.php
Tạo file Zone
Trong thí dụ này, chúng ta sẽ sử dụng domain duyngoc-domain.123host.asia và địa chỉ IP: 210.211.116.245
Tạo zone thuận tên là “duyngoc-domain.123host.asia:
Tạo zone nghịch tên là “116.211.210.in-addr.arpa”:
Xem các file zone đã được tạo bằng cách nhấn vào link List zones:
Tạo DNS Record
Tạo Record cho zone thuận như sau:
Tạo Record cho zone nghịch như sau:
Khai báo Nameserver:
Kiểm tra hoạt động của DNS Records
Kiểm tra A Record:
Kiểm tra NS Record:
Kiểm tra SOA Record:
Kiểm tra MX Record:
Kết luận
Hướng dẫn đã giúp các bạn tạo được một máy chủ PowerDNS kết nối tới cơ sở dữ liệu MySQL. Với Poweradmin control panel, các bạn có thể thao tác tạo zone và các bản ghi trên nền giao diện web một cách dễ dàng. Chúc các bạn thực hiện thành công!
Leave A Comment?