TOP↑
TWNIC最新消息國內外網路動態網路統計網路專欄前期電子報回首頁 2004.02│第26期  
 
 
PowerDNS - Realtime Update 的 DNS 伺服器介紹
  網址價格直直落,現在就讓您撿便宜啦!!

   若您使用過一般的 DNS 軟體,想必您一定知道,當您在 DNS 中添加一筆 FQDN 資料時,通常都得要重新執行 DNS 服務的功能,若您尚有其他主機,通常會設為 master/slave 之狀況,而這種狀況更有資料同步的設定問題.但相信很多人都會有一個疑問,就是難到不能 DNS 在接到查詢請求時,才到資料庫中去查,然再回應給使用者,如此即可以做到即時的更新,且以資料庫型式來處理網域名稱相關係料,可以有更多的加值空間.


  其實答案是可以的,且方法完全不難,並支援多數的 OS 平台(Windows,Linux,Unix, BSD, Mac OS 等) ,網路上,最有名即 PowerDNS,可從 www.powerdns.com 處下載到,以下就簡單的介紹這套軟體的安裝及設定步驟


  $>wget http://downloads.powerdns.com/releases/pdns-2.9.13.tar.gz
$>tar -zxvf pdns-2.9.13.tar.gz
$>cd pdns-2.9.13
$>ls -la
$>./configure --help | more
$>which mysql
$>./configure --prefix=/usr --with-mysql=/usr
$>make
$>make install


 除了支援 mysql 外,也支援 pgsql ( 詳細的編譯條件您可使用 –help 取得 ),裝好後設定檔在 /usr/local/etc/pdns.conf 中,詳細的設定檔內容您可以在http://downloads.powerdns.com/documentation/html/ 取得,以上僅例一個最簡單的例子供參考:


  launch=gmysql #使用 mysql 資料庫
  gmysql-host=localhost # 主機位址或 hostname
  gmysql-user=username # mysql 的使用者名稱
  gmysql-password=passwd # 該使用者之密碼
  gmysql-dbname=DNS # 資料庫名稱
  logfile=/var/log/pdns.log # 系統記錄檔
  query-logging=yes # DNS查詢的資料是否記錄
  webserver=yes # 使用 Web 功能監測系統
  webserver-address=211.76.247.2 # IP 位址
  webserver-password=http_passwd # Web 監測系統登入密碼
  webserver-port=8081 # Web Server 的port
  recursor=168.95.1.1 # 轉送查詢之主機

  CREATE TABLE domains (
id int(11) NOT NULL auto_increment,
name varchar(255) NOT NULL default '',
master varchar(20) default NULL,
last_check int(11) default NULL,
type varchar(6) NOT NULL default '',
notified_serial int(11) default NULL,
account varchar(40) default NULL,
PRIMARY KEY (id),
UNIQUE KEY name_index (name)
) TYPE=MyISAM;
CREATE TABLE records (
id int(11) NOT NULL auto_increment,
domain_id int(11) default NULL,
name varchar(255) default NULL,
type varchar(6) default NULL,
content varchar(255) default NULL,
ttl int(11) default NULL,
prio int(11) default NULL,
change_date int(11) default NULL,
PRIMARY KEY (id),
KEY rec_name_index (name),
KEY nametype_index (name,type),
KEY domain_id (domain_id),
FULLTEXT KEY content (content),
FULLTEXT KEY content_2 (content)
) TYPE=MyISAM;

 上面所指的資料庫名稱(DNS) 之表格共兩個,其內容如下:
以下為範資料及查詢例子:




 依上面表格及表格之內容(請記得填寫 SOA 及 NS 內容,prio 欄位為 MX 之優先權欄位),我們查詢 xxx.com.tw 之 NS 記錄,可以正確顯示出來


  [root@CSPS20 admin]# dig @localhost xxx.com.tw. ns
;; QUESTION SECTION:
;xxx.com.tw. IN NS

;; ANSWER SECTION:
xxx.com.tw. 15 IN NS ns1.xxx.com.tw.

;; ADDITIONAL SECTION:
ns1.xxx.com.tw. 86400 IN A 1.2.3.4

;; Query time: 3 msec
;; SERVER: 127.0.0.1#53(localhost)
;; WHEN: Sat Jan 17 02:52:06 2004
;; MSG SIZE rcvd: 62


 上述之內容若您對一般的 DNS 設定夠了解,相信表格中的欄位意義您亦可以了解,若您原來對 DNS 不甚了解,建議您可至 http://rs.twnic.net.tw/DNS92/ 下載教學檔案.


  但以一般的 DNS 而言,TWNIC DNS指定最少兩部的要求,若您架了兩部的 PDNS,要如何做 master 與 slave 的區別呢? PDNS 沒有轄區傳送之問題,而是您需要從資料庫層層著手,使兩個資料庫可以同步,以 mysql 而言,可參考http://www.mysql.com/doc/en/Replication.html 中詳細的說明.

 pdns.conf 中的 Web 該段,您可設定好啟動後,以 http://webserver-address:webserver-port 連線即可看到 PDNS 運作狀況:

 上面的之畫面尚不到監測項目的五分之一,基本上 PDNS server 的狀況都可以從這個畫面了解.

 Pdns.conf 中的最後一個部份recursor=168.95.1.1 ,類似一般 DNS 設定中之 forward 功能,若您沒有此行設定,您的 PDNS 屬於非遞迴主機(non-recursion).因為大多數以資料庫為主的 DNS (如 mydns,twnic dyndns) 在實作,考慮速度及安全的因素下,皆會為非遞迴主機,若您一定要 PDNS 幫您查出來它所沒有的資料的答案,就需要指定此一參數,方能如同一般的 DNS 功能.

 相信經此一介紹,您可以了解了解更多 DNS 軟體. 資料庫型式故有其優點,但相對的其查詢速度就比非資料庫的來得慢,以我們測試的狀況 PDNS 的查詢每秒最多僅能查詢近千次,而 ISC BIND(named) 則可上萬次,然每秒千次之查詢對 99% 的公司而言亦巳相當足夠.至於您若要讓您的使用者或客戶使用 PDNS 的資料庫功能,基本上您可能需開發適檔的網頁功能,不過網路上亦有人針對 PDNS 做了一套網頁,下一期我們將為大家介紹這套東西,及如何轉案現在 Zone File 的格式到 PDNS

   
 

2004年第一期
更多歷史檔案
檢索:
 


財團法人台灣網路資訊中心
臺北市羅斯福路二段9號4樓之2 Website:www.twnic.net.tw
Tel:+886-2-2341-1313 Fax:+886-2-2396-8832 E-mail:service@twnic.net.tw
版權聲明,禁止未經授權轉貼節錄