作者cpss ,原文出处:http://cpss.zz.ha.cn/bind/bind.htm
首先从这里(version 9.2.2)下载bind,并如下将压缩包解开。
tar -xzvpf bind-9.2.2rc1.tar.gz
然后,改变目录至我们解压产生的bind 原代码目录:
cd bind-9.2.2rc1
下一步,su 成 root 用户。
我们将 bind 安装到 /usr/local/ 目录。如果没有该目录,就创建一个:
mkdir /usr/local
bind 使用 autoconf , 所以编译它是很容易的,如下:
./configure –prefix=/usr/local –mandir=/usr/local/share/man
大概几分钟时间,文件就配置好了。然后如下操作:
make
大约20分钟,编译工作可以完成。剩下的工作就是安装(install)了。如下操作:
make install
这也需要几分钟时间。
当安装完毕后,bind 并不能立即使用,这是因为还有些配置文件没有配置。我们将举些简单的配置作为例子。
在标准安装,有一个 named.conf 文件, 一个 rndc.conf 文件,和一个 namedb 目录,该目录包含 localhost.rev 文件。我们安装这些到 /usr/local/etc 目录。如果该目录不存在,就先创建一个:
mkdir /usr/local/etc
同样,我们还需要创建一个 namedb 目录:
mkdir /var/namedb
现在,我们编辑 named.conf 文件。我们以后可以添加更多的内容,但现在它看起来是这样的(我们可以从这里下载 named.conf 文件):
options {
directory "/var/namedb"; // 工作目录
pid-file "named.pid"; // 放pid文件到工作目录,否则pid文件在/var/run目录
};
zone "." {
type hint;
type hint;
file "named.root";
};
// 提供loopback地址127.0.0.1的反向地址映射
zone "0.0.127.in-addr.arpa" {
type master;
file "localhost.rev";
notify no;
};
notify no;
};
zone "173.76.207.in-addr.arpa" in { type master; file "db.207.76.173";notify no; };
//注意上面和下面形式不同的例子实际上完成的是一样的功能。
zone "bind.com" {
type master;
file "bind.com.zone";
notify no;
};
其中named.root(有时也称为named.ca,都是指的同一个东西,大家的习惯不同嘛)中包含的是目前全球顶级域名服务器地址信息,该文件有可能会随着时间的推移而变得过时了,需要我们定期去网上更新。这里是internic提供的免费下载的named.root,该文件的信息总是最新的。
下面,我们创建localhost.rev文件。该文件看起来是这样的:
$TTL 3600
@ IN SOA user1.bind.com. hostmaster.bind.com.
(
1 ; Serial ; Increment by one after every change
3600 ; Refresh every hour
900 ; Retry every 15 minutes
3600000 ; Expire 1000 hours
3600 ) ; Minimum 1 hour
IN NS nameserv1.bind.com.
IN NS nameserv2.bind.com.
1 IN PTR localhost.
@ IN SOA user1.bind.com. hostmaster.bind.com.
(
1 ; Serial ; Increment by one after every change
3600 ; Refresh every hour
900 ; Retry every 15 minutes
3600000 ; Expire 1000 hours
3600 ) ; Minimum 1 hour
IN NS nameserv1.bind.com.
IN NS nameserv2.bind.com.
1 IN PTR localhost.
你也可以下载localhost.rev文件,并将下载的文件放置到/var/namedb目录中:
mv localhost.rev /var/namedb
你也可以下载地址解析文件的实例,从分析实例中得到学习。
下面我们创建 rndc.conf 文件,并用它补充 named.conf 文件。rndc.conf 文件可以通过程序自动创建。我们先改变目录至 /usr/local/etc :
cd /usr/local/etc
然后,我们使用 rndc-confgen 产生该配置文件。由于 Solaris 7 的一个 bug ,我们需要键入一堆字母来产生 rndc 联系 bind 使用的 key(我在Solaris 8中安装时,是不需要的键入这些讨厌的字母的)。命令格式如下:
/usr/local/sbin/rndc-confgen > rndc.conf
一直键入直到console上提示“stop typing”为止。这将自动产生rndc.conf 文件。rndc.conf文件也包括一些必须加入到named.conf的行。我们可以通过下面命令自动将这些行加到named.conf文件中:
tail -n10 rndc.conf | head -n9 | sed -e s/# //g >> named.conf
现在,我们可以准备运行bind了。首先我们先在console上通过命令运行:
/usr/local/sbin/named -gc /usr/local/etc/named.conf &
在出现一些信息后,将最后显示一行为“running”。
使用如下命令:
/usr/local/sbin/rndc status
它将显示我们服务器已经运行了,显示如下:
number of zones: 5
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
server is up and running
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
server is up and running
bind启动后,我们可以用 rndc 来控制 bind 的运行、重新调配置文件,而不再需要野蛮地用kill对付bind了。
现在我们可以去设置dns服务器启动时自动运行,不需要我们开一个窗口去运行它。我们可以在“/etc/rc2.d”目录下做一个启动文件,这样每次服务器启动时bind都会自动启动起来。这个工作比较简单,这里就不再赘述了。
—————————————
什么是域名解析?
域名解析就是域名到IP地址的转换过程。IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址。域名的解析工作由DNS服务器完成。
域名解析就是域名到IP地址的转换过程。IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址。域名的解析工作由DNS服务器完成。
什么是A记录?
A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。
A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。
什么是MX记录?
邮件路由记录,用户可以将该域名下的邮件服务器指向到自己的mail server上,然后即可自行操控所有的邮箱设置。您只需在线填写您服务器的IP地址,即可将您域名下的邮件全部转到您自己设定相应的邮件服务器上。
邮件路由记录,用户可以将该域名下的邮件服务器指向到自己的mail server上,然后即可自行操控所有的邮箱设置。您只需在线填写您服务器的IP地址,即可将您域名下的邮件全部转到您自己设定相应的邮件服务器上。
什么是CNAME记录?
即:别名记录。这种记录允许您将多个名字映射到同一台计算机。 通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A记录)。 它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。 这两个别名的全称就是www.mydomain.com和“mail.mydomain.com”。实际上他们都指向“host.mydomain.com”。
即:别名记录。这种记录允许您将多个名字映射到同一台计算机。 通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A记录)。 它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。 这两个别名的全称就是www.mydomain.com和“mail.mydomain.com”。实际上他们都指向“host.mydomain.com”。
什么是TTL值?
TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上缓存时间。要理解TTL值,请先看下面的一个例子:
假设,有这样一个域名myhost.abc.com(其实,这就是一条DNS记录,通常表示在abc.com域中有一台名为myhost的主机)对应IP地址为1.1.1.1,它的TTL为10分钟。这个域名或称这条记录存储在一台名为dns.abc.com的DNS服务器上。
TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上缓存时间。要理解TTL值,请先看下面的一个例子:
假设,有这样一个域名myhost.abc.com(其实,这就是一条DNS记录,通常表示在abc.com域中有一台名为myhost的主机)对应IP地址为1.1.1.1,它的TTL为10分钟。这个域名或称这条记录存储在一台名为dns.abc.com的DNS服务器上。
现在有一个用户在浏览器中键入一下地址(又称URL):http://myhost.abc.com 这时会发生什么呢?
该访问者指定的DNS服务器(或是他的ISP,互联网服务商,动态分配给他的)8.8.8.8就会试图为他解释myhost.abc.com,当然8.8.8.8这台DNS服务器由于没有包含myhost.abc.com这条信息,因此无法立即解析,但是通过全球DNS的递归查询后,最终定位到dns.abc.com这台DNS服务器,dns.abc.com这台DNS服务器将myhost.abc.com对应的IP地址1.1.1.1告诉8.8.8.8这台DNS服务器,然有再由8.8.8.8告诉用户结果。8.8.8.8为了以后加快对myhost.abc.com这条记录的解析,就将刚才的1.1.1.1结果保留一段时间,这就是TTL时间,在这段时间内如果用户又有对myhost.abc.com这条记录的解析请求,它就直接告诉用户1.1.1.1,当TTL到期则又会重复上面的过程。