设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
小说专版  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专   题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: IT公社 IT community >> 操作系统 >> UNIX系统 >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
HP小型机主控台Console的…
安装文档ORACLE9i for s…
SCO OpenServer下Subver…
(转贴)ORACLE FOR SUN S…
Install Apache and PHP…
Oracle9i (9.2.0.4.0) R…
SCO OPENSERVER操作系统
Solaris - dns名称解析过…
DNS的安装和配置
grub启动管理器中怎样编…
  DNS 又一解决方案 izidns = bind 9 + PowerAdmin         
DNS 又一解决方案 izidns = bind 9 + PowerAdmin
 

曾经使用过 pdns(powerdns) ,它的前台界面 PowerAdmin 管理界面非常好用,美观大方整洁明晰,一经使用就不再想用别的管理界面。

  但如果说使用 DNS,绝大多数人还是更喜欢使用 bind 而不是别的。

  于是有人就想(比如我),PowerAdmin 管理界面要是能支持 bind 该多好呀!!!

  本想自己摸索摸索,但在 sourceforge 一找,不必了,因为有德国朋友早已经为我们做了一个 PowerAdmin 到 bind 9 的一个嫁接,令 bind9 + PowerAdmin 管理环境的搭建变得非常容易。它名字也很直观,叫作 izidns,估计读音类似于英语中的 easydns 吧。


[原理简述]

  通过对 izidns 的研究,发现它的想法非常朴实,思路直接而有效。

  简单说,它就是通过前台管理界面向数据库写数据,一个 tcl 脚本程序定时读取数据并倒成 dns 域文件,之后 reload dns 数据文件。

  也就是说 bind 并不是直接访问数据库得到数据,而是由 crontab 定时启动一个脚本生成 zone 数据并且启动 reload,reload 后也就更新了 bind 数据。

[适用情况分析]

  DNS 在关于 zone 数据的获取方式上一般有几种情况:
  1、通过数据库(dbms)获取
  2、通过 LDAP 库(对其陌生者,可简单将它看作一种特殊数据库)获取
  3、通过文件载入内存

  显然 1、2 两种情况都是实时添加实时生效,因为 DNS 将直接通过数据库接口获取数据。而情况 3 则有所不同,更新了zone 数据文件后需要 reload。

  在本方案中因为 zone 数据是定时生成的文件,如果数据量很大的情况,比如对于专门提供 DNS 服务的提供商则不适用,因为不断地定时 reload 对主机是负担,同时也一定程度上影响服务质量。但是如果是某个公司自用的 DNS,采用这种方案是完全可行的。
 

[软件准备]
  0、apache2
  1、mysql4.1.6
  2、php + DB-1.7.6 (pear 数据库通用接口, poweradmin 需要)
  3、phpMyAdmin.2.5.6.tar.gz
  4、tcl 8.3/8.4
  5、mysqltcl
  ——下载地址为  http://www.xdobry.de/mysqltcl  从网址看是德国造。
  6、izidns.tar.gz (已经包含poweradmin1.2.7.tar.gz)
  7、bind9.3.2

——0/1/2/7 均是大路货,比较好找
——3/4/6 均可到 sourceforge 上找到。
——所有软件包下载下来置于 /downloads/dns 下

[安装环境]

vmware 虚拟机 + redhat 9
[安装过程]
_______________________________________________________________________
第一、apache2 安装
_______________________________________________________________________

cd /download/dns
tar xvfz httpd...tar.gz
cd httpd...
./configure --prefix=/apache2 --enable-so
make
make install

## 此时,apache2 已经安装在 /apache2 目录下

_______________________________________________________________________
第二、mysql4.1.6
_______________________________________________________________________

## 看下有没有缺省的安装
rpm -qa | grep mysql
## 如有干掉它,先
rpm -r ......

useradd -d /home/mysql -s /sbin/nologin mysql

./configure --prefix=/home/mysql
make
make install

chown -R mysql /home/mysql
chgrp -R mysql /home/mysql/var

......设定管理用户与密码等...

_______________________________________________________________________
第三、php + DB-1.7.6
_______________________________________________________________________

## ——php 解释器将会作为 apache 的模块使用
./configure --with-apxs2=/apache2/bin/apxs \
            --with-mysql=/home/mysql \
            --with-pear \
            --with-gettext \
            --with-zlib \
            --enable-session \
            --enable-track-vars
make
make install

## 之后,
cp php.ini-dist /usr/local/lib/php.ini

## 然后修理 /apache2/conf 下 httpd.conf
#### 找 AddType
#### 增加
AddType application/x-httpd-php .php .php3 .phtml

#### 找 DirectoryIndex 行,改为
DirectoryIndex index.php index.html index.html.var

#### 找如下这句话
LoadModule php4_module modules/libphp4.so
#### 找到说明 php 作为 apache 的一个模块安装成功


## ——DB 是 php 与各类数据库之间的接口程序,后面 PowerAdmin 在安装配置时需要用到
pear install DB
## 将直接到 php 网站取 package 来安装

## 如果事先下载 DB-1.7.6.tgz
pear install DB-1.7.6.tgz
## 将显示
install ok: DB 1.7.6

## 有一点要注意,如果安装 php 时不加 --with-pear 与 --with-zlib 则 pear 不能用

## 这样 php 与 DB 抽象层接口包的安装也就,O了K了


_______________________________________________________________________
第四、phpMyAdmin
_______________________________________________________________________

cd /apache2/htdocs
tar xvfz /downloads/dns/phpMyAdmin2.5.6.tar.gz
cd phpMyAdmin2.5.6

## 加工 config.inc.php——
#### ——设置访问地址
#### 第39行改为:$cfg['PmaAbsoluteUri'] = 'http://your.IP.or.Name/phpMyAdmin2.5.6';
#### ——设定 mysql 管理者密码
#### 第85行改为:$cfg['Servers'][$i]['password']      = 'your_password';
#### ——更改缺省使用语言及强制使用语言
#### 第374行改为:$cfg['DefaultLang'] = 'zh';
#### 第378行改为:$cfg['Lang'] = 'zh';
#### ——更改字符集
#### 第384行改为:$cfg['DefaultCharset'] = 'gb2312';
#### 存盘退出

## 此时如果 apache 启动了,通过 http://your.IP.or.Name/phpMyAdmin2.5.6 则可透过 Browser 来管理 mysql 数据库
## 但要注意,由于打开这个页面就可进行数据库管理,十分不安全,因此还必须增加 htaccess 以加强安全......

## 当然,还有个办法就把脚本中的默认认证方式 config 改为 http,这样,在显示页面时 Browser 会弹出一框问数据库
## 管理者的数据库密码。这里我就不啰嗦了。这要是不设防,出了安全问题可别怪我没说哦。


_______________________________________________________________________
第五、bind9.3.2
_______________________________________________________________________

rpm -qa | grep bind
## 如有干掉它,例如显示如下:
bind-9.2.1-16

rpm -e bind-9.2.1-16
## 如有依赖则一一解决掉,先

cd /download/dns
tar xvfz bind-9.3.2.tar.gz
cd bind-9.3.2

## 如果之前干掉了 bind, 则用户 named 也会被干掉,所以现在添加用户 named
useradd -d /home/named -s /sbin/nologin named

## 为方便管理,计划将它装在 /home/named 下
./configure --prefix=/home/named
make && make install

## 建立配置文件存放目录 etc 及用于记录进程信息的目录 var
mkdir /home/named/etc /home/named/var
## 让 var 对于 named 可写
chown named var

cd /home/named/etc

## 先下载顶级 dns 的域文件 named.root (当然首先假定你的机子能上网哈)
../bin/dig > named.root

## 然后生成 named.conf
#### 生成 rndc 控制命令的 key 文件
#### 需注意,这一步要求操作系统配有随机数发生器,所以系统的 random 服务不能停
#### 否则这一步,将会卡住,象没了反应一样
../sbin/rndc-confgen > rndc.conf
#### 从 rndc.conf 文件中提取 named.conf 用的 key 生成 named.conf 文件
tail -10 rndc.conf | head -9 | sed 's/# //g' > named.conf
#### 此时,named.conf 内容为:
key "rndc-key" {
        algorithm hmac-md5;
        secret "O0SuB34RK+E3r+m5Fbh2eA==";
};
controls {
        inet 127.0.0.1 port 953
                allow { 127.0.0.1; } keys { "rndc-key"; };
};


## 增加 localhost.rev 文件,如果有 make-locahost 脚本,可以直接使用生成标准文件
## 否则直接编辑也可,内容如下(注意将urhost/urdomain替换为实际名称):
## 它实际上是本地反向解析文件,内容如下(注意将urhost/urdomain替换为实际名称):

$TTL    3600

@       IN      SOA     urhost.urdomain.com. root.urhost.urdomain.com.  (
                                20060425        ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                3600000 ; Expire
                                3600 )  ; Minimum
        IN      NS      urhost.urdomain.com.
1       IN      PTR     localhost.urdomain.com.

## 这样才能把 127.0.0.1 反向解析为 localhost.urdomain.com


## 现增加一个反向解析文件192.168.0.rev,内容如下(注意将urhost/urdomain替换为实际名称):

$TTL    3600

@       IN      SOA     urhost.urdomain.com. root.urhost.urdomain.com.  (
                                20060425        ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                3600000 ; Expire
                                3600 )  ; Minimum
        IN      NS      urhost.urdomain.com.
247       IN      PTR     urhost.urdomain.com.

## 上面 247 是我试验机的 IP 192.168.0.247
## 这样才能把 192.168.0.247 反解析为 urhost.urdomain.com

## 在先前说的 named.conf 中增加如下内容
zone "." IN {
    type hint;
    file "/home/named/etc/named.root";
};
zone "0.0.127.in-addr.arpa" IN {
     type master;
     file "/home/named/etc/localhost.rev";
     allow-update { none; };

[1] [2] [3] 下一页

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2007-1-2 3:18:16
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:itqoo    责任编辑:itqoo 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持