|
架设dns全攻略<br>
<br>
作者cpss <a target=_blank href=http://cpss.zz.ha.cn>http://cpss.zz.ha.cn</a><br><br>
首先从 <a target=_blank href=http://www.isc.org/products/BIND/>http://www.isc.org/products/BIND/</a> (version 9.2.2)下载bind,并如下将压缩包解开。<br>
<br>
tar -xzvpf bind-9.2.2rc1.tar.gz<br>
<br>
然后,改变目录至我们解压产生的bind 原代码目录:<br>
<br>
cd bind-9.2.2rc1<br>
<br>
<br>
<br>
下一步,su成root用户。<br>
<br>
我们将bind安装到“/usr/local/”目录。如果没有该目录,就创建一个:<br>
<br>
mkdir /usr/local<br>
<br>
bind使用autoconf, 所以编译它是很容易的,如下:<br>
<br>
./configure --prefix=/usr/local --mandir=/usr/local/share/man<br>
<br>
大概几分钟时间,文件就配置好了。然后如下操作:<br>
<br>
make<br>
<br>
大约20分钟,编译工作可以完成。剩下的工作就是安装(install)了。如下操作:<br>
<br>
make install<br>
<br>
这也需要几分钟时间。<br>
<br>
<br>
<br>
当安装完毕后,bind并不能立即使用,这是因为还有些配置文件没有配置。我们将举些简单的配置作为例子。<br>
<br>
在标准安装,有一个 named.conf文件, 一个rndc.conf文件,和一个namedb 目录,该目录包含 localhost.rev文件。我们安装这些到“/usr/local/etc”目录。如果该目录不存在,就先创建一个: <br>
<br>
mkdir /usr/local/etc<br>
<br>
同样,我们还需要创建一个“namedb”目录:<br>
<br>
mkdir /var/namedb<br>
<br>
现在,我们编辑“named.conf”文件。我们以后可以添加更多的内容,但现在它看起来是这样的(我们可以从这里下载named.conf文件):<br>
<br>
options {<br>
<br>
directory "/var/namedb"; // 工作目录 <br>
<br>
pid-file "named.pid"; // 放pid文件到工作目录,否则pid文件在/var/run目录<br>
<br>
};<br>
<br>
<br>
zone "." {<br>type hint;<br>
<br>file "named.root";<br>
<br>
};<br>
<br>
<br>
<br>
// 提供loopback地址127.0.0.1的反向地址映射<br>
<br>
zone "0.0.127.in-addr.arpa" {<br>
<br>type master;<br>
<br>file "localhost.rev";<br>notify no;<br>
};<br>
<br>
zone "173.76.207.in-addr.arpa" in { type master; file "db.207.76.173";notify no; };<br>
<br>
//注意上面和下面形式不同的例子实际上完成的是一样的功能。<br>
<br>
zone "bind.com" {<br>
<br>type master;<br>
<br>file "bind.com.zone";<br>
<br>notify no;<br>
<br>};<br>
<br>
<br>
其中named.root(有时也称为named.ca,都是指的同一个东西,大家的习惯不同嘛)中包含的是目前全球顶级域名服务器地址信息,该文件有可能会随着时间的推移而变得过时了,需要我们定期去网上更新。这里是internic提供的免费下载的named.root,该文件的信息总是最新的。<br>
<br>
下面,我们创建localhost.rev文件。该文件看起来是这样的:<br>
<br>
$TTL 3600<br>
@ IN SOA user1.bind.com. hostmaster.bind.com.<br>(<br>1 ; Serial ; Increment by one after every change<br>3600 ; Refresh every hour<br>900 ; Retry every 15 minutes<br>3600000 ; Expire 1000 hours<br>3600 ) ; Minimum 1 hour<br>
<br>
<br>IN NS nameserv1.bind.com.<br>IN NS nameserv2.bind.com.<br>
<br>
<br>
1 IN PTR localhost.<br>
<br>
<br>
你也可以下载localhost.rev文件,并将下载的文件放置到/var/namedb目录中:<br>
<br>
mv localhost.rev /var/namedb<br>
<br>
你也可以下载地址解析文件的实例,从分析实例中得到学习。<br>
<br>
下面我们创建rndc.conf文件,并用它补充named.conf文件。rndc.conf 文件可以通过程序自动创建。我们先改变目录至/usr/local/etc :<br>
<br>
cd /usr/local/etc<br>
<br>
然后,我们使用rndc-confgen产生该配置文件。由于Solaris 7的一个bug,我们需要键入一堆字母来产生rndc联系bind使用的key(我在Solaris 8中安装时,是不需要的键入这些讨厌的字母的)。命令格式如下:<br>
<br>
/usr/local/sbin/rndc-confgen >; rndc.conf<br>
<br>
一直键入直到console上提示“stop typing”为止。这将自动产生rndc.conf 文件。rndc.conf文件也包括一些必须加入到named.conf的行。我们可以通过下面命令自动将这些行加到named.conf文件中:<br>
<br>
tail -n10 rndc.conf | head -n9 | sed -e s/#\ //g >;>; named.conf<br>
<br>
现在,我们可以准备运行bind了。首先我们先在console上通过命令运行:<br>
<br>
/usr/local/sbin/named -gc /usr/local/etc/named.conf &<br>
<br>
在出现一些信息后,将最后显示一行为“running”。<br>
<br>
使用如下命令:<br>
<br>
/usr/local/sbin/rndc status<br>
<br>
它将显示我们服务器已经运行了,显示如下:<br>
<br>
number of zones: 5<br>
<br>
debug level: 0<br>
<br>
xfers running: 0<br>
<br>
xfers deferred: 0<br>
<br>
soa queries in progress: 0<br>
<br>
query logging is OFF<br>
<br>
server is up and running<br>
<br>
bind启动后,我们可以用rndc来控制bind的运行、重新调配置文件,而不再需要野蛮地用kill对付bind了。<br>
<br>
现在我们可以去设置dns服务器启动时自动运行,不需要我们开一个窗口去运行它。我们可以在“/etc/rc2.d”目录下做一个启动文件,这样每次服务器启动时bind都会自动启动起来。这个工作比较简单,这里就不再赘述了。<br>
<br>
<br>
<br>
<br>
|
|