- 论坛徽章:
- 0
|
DNS服务器是为了网络上的主机提供域名解析的服务的服务器。Solaris10虽然自带了BIND 9.2.4版本,但它并不是SUN公司的产品,Internet Software Consortium负责BIND软件的更新,我们不妨到
www.isc.org
网站下载最新版本的BIND软件,因为新的版本的软件可以防止某些漏洞。
下面我们来介绍如何配置DNS服务器。如果您使用Solaris10系统自带的软件,请从第7步看起。
1.为了下载最新的BIND软件,我们到http://www.isc.org/products/BIND/ 下载,本例子下载的是bind-9.3.1.tar.gz。
2.将下载的软件放到系统中的某个目录下,本例中放在/home/bind目录下。
#cd /home/bind
3.进入软件存放目录,对软件解压缩到/usr/local/src
#tar -xzfz bind-9.3.1.tar.gz -C /usr/local/src
4.进入安装目录
# cd bind-9.3.1
5.编译BIND软件
# ./configure
# make
# make install
6.生成的可执行文件位于/usr/local/sbin目录下。最重要的可执行文件为named和rndc。
7.在/usr/sbin目录中创建可执行文件的软链接
# ln -s /usr/local/sbin/rndc /usr/sbin/rndc
# ln -s /usr/local/sbin/named /usr/sbin/named
8.在BIND9命名服务控制工具rndc和BIND8的控制工具ndc不兼容,rndc有一个控制文件,就是rndc.conf文件,其作用就是指定管理服务器和使用的加密算法。它是由rndc-confgen命令所产生的。下面就是创建rndc.conf配置文件的步骤:
# /usr/local/sbin/rndc-confgen > /etc/rndc.conf
# cat /etc/rndc.conf
输出为:
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "y9xvvfQjdWv9f/Fo7wquBg==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "y9xvvfQjdWv9f/Fo7wquBg==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
9.创建rndc.key文件。将rndc.conf文件中注释部分拷贝生成如下文件:
# vi /etc/rndc.key
key "rndc-key" {
algorithm hmac-md5;
secret "y9xvvfQjdWv9f/Fo7wquBg==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
检查rndc是否正常工作:
#/usr/local/sbin/named -g
Jan 11 11:56:45.075 starting BIND 9.2.3 -g
Jan 11 11:56:45.076 using 1 CPU
Jan 11 11:56:45.079 loading configuration from '/etc/named.conf'
......
#/usr/local/sbin/rndc status
10.编辑named.conf配置文件。
# vi /etc/named.conf
第一段的内容如下:
// generated by named-bootconf.pl
options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
先让我们了解这个文件上面用来做注解的符号是“ // ”,而不是一般 shell script 的“#”;另外,“ /* ”与“ */ ”之间则注解一整段文字。同时,每一个完整的设定都以“ ;”结尾。
上面的部份是在这个文件开头的 options 设定,首先用 directory 指定了 named 的资源记录( RR - Resource Record 文件目录所在位置为:“/var/named”;也就是说,它会到这个目录下面寻找 DNS 记录文件。所以,我们在后面部份所指定的文件,就无需使用绝对路径了,但它们一定要放在这个目录下面。
那一段被注释文字,如果您仔细阅读一下,它大致是说:如果您要设定的 DNS 伺服器和 client 之间是隔著火墙的话,要 将“// query-source address * port 53;”前面的注解符号“ // ”拿掉(当然,您也必须要设定好您的火墙啦)。不过,这只对早期的版本有影响,而在 bind 8.1 之後则无需担心这个设定。
接下来再让我们看下一段句子:
//
// a caching only nameserver config
//
zone "." IN {
type hint;
file "named.root";
};
透过这几行,我们为 named 定义了 DNS 系统中的根区域“ . ”(root zone) 的设定,同时它是一个 internet (IN) 的区域类别。这里还指定了root zone 的服务器种类(type) 为“hint”(也只有这个 zone 会使用这样的种类)。最后,用 file 指定这 个区域记录文件为:“named.root”,也就是“/var/named/named.root”文件。
在root zone 后面,您应该还会看到如下这两段:
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
这里是定义出关于本机名称的DNS解释:第一个 zone 是 localhost 的正解 zone,其服务器种类是 master,记录档名称是 localhost.zone (在 /var/named 目录下面),但这个 zone 不允许客户主机(或服务器)自行更新 DNS 的记录。
而第二个 zone 则是本机区域的反向解析zone 。
再看下面的两段,这两段是duanfenglei.com域的正向和反向解析。
zone "duanfenglei.com" IN { //新加duanfenglei.com的域
type master;
file "duanfenglei.com.zone";
allow-update { none; };
};
zone "9.168.192.in-addr.arpa" IN { //新加域的反向解析
type master;
file "named.192.168.9";
allow-update { none; };
};
最后一行是bind 9.x 版本的新功能,用来进行区域转移或 DNS 更新所用的加密处理。
include "/etc/rndc.key";
11.创建/var/named目录
# mkdir /var/named
# cd /var/named
12.匿名登录到ftp站点FTP.RS.INTERNIC.NET,获取/domain目录下的named.root文件,将该文件置于/var/named目录下。
13.创建localhost.zone文件
# vi /var/named/localhost.zone
$TTL 86400
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS @
1D IN A 127.0.0.1
14.创建named.local文件
# vi named.local
$TTL 86400
@ IN SOA localhost. root.localhost. (
2005022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
[root@linux etc]# mkdir /var/named
进入/var/named
[root@linux etc]# cd /var/named
建立localhost.zone文件
[root@linux named]#vi localhost.zone
$TTL 86400
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS @
1D IN A 127.0.0.1
建立named.local文件
[root@linux named]#vi named.local
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 61.177.252 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
15.创建duanfenglei.com.zone文件
# vi duanfenglei.zone
$TTL 1D
@ IN SOA duanfenglei.com. root.duanfenglei.com. (
1053891162
3H
15M
1W
1D )
IN NS duanfenglei.com.
IN MX 5 duanfenglei.com.
www IN A 192.168.9.9
16创建named.192.168.9文件
# vi named.192.168.9
$TTL 86400
@ IN SOA duanfenglei.com. root.duanfenglei.com.(
20031001;
7200;
3600;
43200;
86400);
@ IN NS duanfenglei.com.
9 IN PTR dns.duanfenglei.com.
17.在Solaris10操作系统中启动DNS服务
#svcadm enable /network/dns/server
查看:
# svcs -l /network/dns/server
fmri svc:/network/dns/server:default
name Internet domain name server (DNS)
enabled true
state online
next_state none
restarter svc:/system/svc/restarter:default
contract_id 25
dependency require_all/none svc:/system/filesystem/minimal (online)
dependency require_all/none file://localhost/etc/named.conf (online)
dependency require_any/error svc:/network/loopback (online)
dependency optional_all/error svc:/network/physical (online)
18.测试DNS反向解析是否成功
# host 192.168.9.9
9.9.168.192.in-addr.arpa domain name pointer dns.duanfenglei.com.
19.测试DNS解析是否成功
# nslookup
> www.duanfenglei.com
Server: 192.168.9.9
Address: 192.168.9.9#53
Name: www.duanfenglei.com
Address: 192.168.9.9
>
出现上面的提示,说明DNS服务已经成功启动。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8646/showart_106160.html |
|