最近小編我在自己的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
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364835957hSEm.jpg"></a>
下載下傳打開之後找到如下頁面
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_13648359765glM.jpg"></a>
可以看到相關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> <b>create database dnsdb;</b>
#給使用者pdnsuser(這個使用者要使用useradd建立)授予操作dnsdb資料庫的全部權限。
<b>mysql> GRANT ALL ON dnsdb.* TO 'pdnsuser'@'localhost' IDENTIFIED BY '123456';</b>
<b>mysql> GRANT ALL ON dnsdb.* TO 'pdnsuser'@'localhost.localdomain' IDENTIFIED BY '123456'; </b>
<b>mysql> FLUSH PRIVILEGES;</b>
#建立相應的表,用以存放域、記錄等,讀者可能會想,我哪知道資料字典的格式啊,别擔心,官方文檔是有地,直接複制粘貼就是了
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836203XbSM.jpg"></a>
先切換到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 [email protected] 1","SOA",86400,NULL);
VALUES (1,"test.com","dns-us1.powerdns.net","NS",86400,NULL);
VALUES (1,"test.com","dns-eu1.powerdns.net","NS",86400,NULL);
VALUES (1,"www.test.com","199.198.197.196","A",120,NULL);
VALUES (1,"mail.test.com","195.194.193.192","A",120,NULL);
VALUES (1,"localhost.test.com","127.0.0.1","A",120,NULL);
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
成功啦鄉親們!!!!
# 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
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_13648362116fsp.jpg"></a>
預設選擇英文之後點選“go to step 2”,一直點到“go to step 4”(就是第三頁)輸入MySQL中root使用者(注意是root使用者)、密碼、位址、端口、資料庫名稱,最後一個輸入框是是指定以後登入Poweradmin時管理者(admin)的密碼(最後測試登入web頁面會用到,讀者要記着啊)。
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836224g6kT.jpg"></a>
第4頁指定為PowerDNS建立的MySQL使用者的資訊,輸入在第4步中為建立的MySQL使用者(還記得我們建立的pdnsuser)、密碼以及SOA、NS記錄。
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836232d7hA.jpg"></a>
第五頁是授權
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_13648362439TsF.jpg"></a>
然後到了第六頁,它提示說沒法建立config.inc.php,這可麻煩大了,如果這個檔案沒法建立那麼我們下面的工作就沒法完成了,這是為什麼呢,主要是因為mint這個系統的權限問題,我們目前登入的使用者都是普通使用者,沒法輕易建立檔案,那麼我們可以在終端下切換到root使用者下使用vi來手工建立就是了,頁面上提示的很清楚,可以手工建立,并且内容已經附上了
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836258dM2g.jpg"></a>
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”中輸入的内容)。
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_13648362651WKb.jpg"></a>
登入之後就是這個樣子了
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836269Moqh.jpg"></a>
那麼開始使用吧,你能清楚的看到很多的菜單選項,如果想建立一個新域的話就點選“Add master zone”小編我這裡添加了一個“zzutest.cn”的玩玩
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_136483627820cI.jpg"></a>
可以選擇域的類型,我選的是主域之後點選”Add zone”就是了,然後回到“Index”頁面點選“List zones”就會看到下面的内容(小編原來在mysql資料庫中添加的域也會顯示出來)
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836283wobi.jpg"></a>
那麼如何能添加主機記錄呢,請看下圖,單擊小編滑鼠訓示的位置就是域的視圖模式了
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836289cndj.jpg"></a>
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_13648362954axe.jpg"></a>
找到“Add record”按鈕的上面就可以添加相應的主機記錄了比如小編添加了一個
zzutest.cn NS abc.net
然後單擊“Add record”按鈕就會添加成功了
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836303AcGM.jpg"></a>
然後添加一條主機記錄啦
www.zzutest.cn A 202.197.189.111
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_1364836309MLL6.jpg"></a>
這就是我的phpMyadmin的管理頁面啦,左邊可以看到本機所有的mysql資料庫啦,可以展開dnsdb看看
<a href="http://wnqcmq.blog.51cto.com/attachment/201304/1/5200614_136483631310Q2.jpg"></a>
左側的這些表是不是很熟悉啊,這些都是小編在前面手工建立的啦,web管理界面資訊标明的很清晰啦,小編我就不一一介紹啦,在接下來的一篇部落格小編我會給讀者介紹另一種dns伺服器軟體的使用的,敬請關注哈
本文轉自 chenming421 51CTO部落格,原文連結:http://blog.51cto.com/wnqcmq/1168904