Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19008315
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: BSD

2008-04-09 09:28:26

Description:

       最近發現這樣一個不錯的概念
就是把 Bind DNS 的設定檔記錄資料轉換到資料庫存取,這個方式真的還蠻方便的這樣做的好處是你的每一筆資料一旦設定完成後你不需要去再 restart 重新啟動 Bind 才可生效,而且管理介面是 Web GUI 對於 Bind 的管理也更加方便了而在 Slave DNS 這部份要如何做呢?過去我們在使用 Slave DNS 這部份是使用 Zone Transfers 方式是將 Master 上的資料送到 Slave DNS 上而現在 MyDNS 因為是結合資料庫方式所以沒有 Zone Tranfers 可用,因此我們就可以使用 MySQL 上面的資料庫備援 ( MySQL database replication ) 功能把 Master DNS 上的資料送到 Slave DNS 上整個 MyDNS 的運作可以讓我們可學到 DNS 的設定以及 Database 的備援概念。

Environment :

            硬體:i386 PC x2 Intel P3 500
            記憶體: 256M RAM
            作業系統:FreeBSD 6.1 Release

Setp 1.

安裝 APM 環境

因為 MyDNS 這支程式是 PHP 所開發的所以 Server 要安裝 Apache + PHP + MySQL  的環境
請參考小弟之前的筆記: Apache20 + Mysql41 + PHP4

Setp 2.

安裝 mydns

#cd /usr/ports/dns/mydns
#make extract
#mkdir /usr/local/www/data-dist/mydns
#cd work/mydns-1.1.0/contrib/
#cp MyDNS.pm admin.php create_domain.pl stats.php /usr/local/www/data-dist/mydns
#cd /usr/ports/dns/mydns/
#make install clean

#cd /usr/local/www/data-dist/mydns
#vi admin.php

$dbhost = "localhost";
$dbuser = "mydns";
$dbpass = "mydns_password";
$dbname = "mydns";

#mysqladmin -u root -p create mydns    # 用 mysqladmin 建立 mydns 這個資料庫

#mydns --create-tables | mysql -u root -p mydns   # 建立 mydns 這個資料庫的資料表

#mysql -u root -p mydns

※ 建立可以使用 mydns 這個資料庫的使用者及權限

mysql>GRANT select,insert,update,delete,create,drop ON mydns.* TO mydns@localhost IDENTIFIED BY 'mydns_password';
mysql>GRANT SELECT ON mydns.* TO mydns_user@localhost IDENTIFIED BY 'mydns_password';
mysql>FLUSH PRIVILEGES;
mysql>quit;

Setp 3.

設定 mydns 的設定檔

#cp /usr/local/etc/mydns.conf.sample /usr/local/etc/mydns.conf
#chmod 600 /usr/local/etc/mydns.conf
#vi /usr/local/etc/mydns.conf

db-host = localhost
db-user = mydns
db-password = mydns_password
database = mydns

#vi /etc/rc.conf         
#  加入開機自動啟動

mydns_enable="YES"

#/usr/local/etc/rc.d/mydns.sh start         #  先手動啟動 mydns

開個 browse 即可開始使用 mydns



Testing...

#netstat -na |grep udp       
#   查看 bind udp 53 port 有無啟動
udp4       0      0  127.0.0.1.53           *.*
udp4       0      0  88.88.88.88.53        *.*

# dig @localhost wifi.ntut.idv.tw any      # 進去 Browse 設定一些東西之後,就可以回到 console 下用 dig 查詢看設定是否生效

; <<>> DiG 9.3.1 <<>> @localhost wifi.ntut.idv.tw any
; (2 servers found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50178
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;wifi.ntut.idv.tw.              IN      ANY

;; ANSWER SECTION:
wifi.ntut.idv.tw.       1200    IN      SOA     wifi.ntut.idv.tw. admin.wifi.ntut.idv.tw.wifi.ntut.idv.tw. 20060 28800 7200 604800 1200

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jun 23 17:47:36 2006
;; MSG SIZE  rcvd: 91

mysql> use mydns       
#  也可查看 mysql 內的資料是否已寫入
Database changed

mysql> show tables;
+-----------------+
| Tables_in_mydns |
+-----------------+
| rr                |
| soa             |
+-----------------+
3 rows in set (0.00 sec)

mysql> SELECT * FROM rr;
+----+------+---------+-------+----------------------------+------+-------+
| id | zone | name | type | data                      | aux | ttl    | 
+----+------+---------+-------+----------------------------+------+-------+
|  1 |    1   |mail    | A     | 88.88.88.88           |   0  | 1200 |
|  2 |    1   |mail    | MX   | mail.wifi.ntut.idv.tw.|  10 |  300  |
|  3 |    1   |ftp       | A     | 88.88.88.88          |   0  |  300  |
+----+------+------+------+-----------------------+-------+------+-------+
3 rows in set (0.01 sec)

mysql> select * FROM soa;
+----+-------------------+-------------------+-------------------------------------+------------------+-----------+-------+-------------+-------------+--------+
| id | origin            | ns                | mbox                              | serial           | refresh | retry | expire    | minimum |   ttl   |
+----+-------------------+-------------------+-------------------------------------+-------------------+---------+-------+--------------+--------------+-------+
|  1 | wifi.ntut.idv.tw. | wifi.ntut.idv.tw. | admin.wifi.ntut.idv.tw-- | 2006062301 | 28800  |  7200 | 604800 | 1200        |  300 |
+----+-------------------+-------------------+-------------------------------------+-------------------+---------+-------+--------------+--------------+--------+
1 row in set (0.01 sec)


References.



阅读(1121) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~