DNS服务器是为了网络上的主机提供域名解析的服务的服务器。Solaris10虽然自带了BIND9.2.4版本,但它并不是Sun公司的产品,InternetSoftwareConsortium负责BIND软件的更新,我们应当到网站下载最新版本的BIND软件,因为新的版本的软件可以防止某些漏洞。
下面我们来介绍如何配置DNS服务器。
一、从源代码安装配置DNS服务器
(1)为了下载最新的BIND软件,我们到下载,本例子下载的是bind-9.3.2.tar.gz。
(2)将下载的软件放到系统中的某个目录下,本例中放在usr/local/src目录下。
#cdusr/local/src
#wget
#cpbind-9.3.2.tar.gz..
#cd..
#gzip-dbind-9.3.2.tar.gz
#tar-vxfbind-9.3.2.tar
#rmbind-9.3.2.tar
#cdbind-9.3.2
#./configure
#make
#makeinstall
#cd/usr/sbin
(3)生成的可执行文件位于/usr/local/sbin目录下。最重要的可执行文件为named和rndc。
#/usr/local/sbin/rndc-confgen>/etc/rndc.conf
#cat/etc/rndc.conf
输出为:
#Startofrndc.conf
key"rndc-key"...{
algorithmhmac-md5;
secret"y9xvvfQjdWv9f/Fo7wquBg==";
};
options...{
default-key"rndc-key";
default-server127.0.0.1;
default-port953;
};
#Endofrndc.conf
#Usewiththefollowinginnamed.conf,adjustingtheallowlistasneeded:
#key"rndc-key"...{
#algorithmhmac-md5;
#secret"y9xvvfQjdWv9f/Fo7wquBg==";
#};
#controls...{
#inet127.0.0.1port953
#allow...{127.0.0.1;}keys...{"rndc-key";};
#};
#Endofnamed.conf
(9)创建rndc.key文件。将rndc.conf文件中注释部分拷贝生成如下文件:
#vi/etc/rndc.key
key"rndc-key"...{
algorithmhmac-md5;
secret"y9xvvfQjdWv9f/Fo7wquBg==";
};
controls...{
inet127.0.0.1port953\
allow...{127.0.0.1;}keys...{"rndc-key";};\
};
检查rndc是否正常工作:
#/usr/local/sbin/named-g
Jan1111:56:45.075startingBIND9.2.3-g
Jan1111:56:45.076using1CPU
Jan1111:56:45.079loadingconfigurationfrom'/etc/named.conf'
......
#/usr/local/sbin/rndcstatus
(10)编辑named.conf配置文件。
#vi/etc/named.conf
第一段的内容如下:
//generatedbynamed-bootconf.pl
options...{
directory"/var/named";
/**//*
*Ifthereisafirewallbetweenyouandnameserversyouwant
*totalkto,youmightneedtouncommentthequery-source
*directivebelow.PreviousversionsofBINDalwaysasked
*portbydefault.
*/
//query-sourceaddress*port53;
};
上面的部分是在这个文件开头的options设定的,首先用directory指定了named的资源记录(RR-ResourceRecord文件目录所在位置为:“/var/named”。也就是说,它会到这个目录下面寻找DNS记录文件)。所以,我们在后面部分所指定的文件,就无须使用绝对路径了,但它们一定要放在这个目录下面。
那一段被注释文字,如果你仔细阅读一下,它大致意思是如果你要设定的DNS服务器和client之间隔着防火墙的话,要将“//query-sourceaddress*port53;”前面的注解符号“//”拿掉(当然,也必须要设定好你的火墙)。不过,这只对早期的版本有影响,而在bind8.1之后则无须担心这个设定。接下来再让我们看下一段句子:
//
//acachingonlynameserverconfig
//
zone"."IN...{
typehint;
file"named.root";
};
通过这几行语句,我们为named定义了DNS系统中的根区域“.”(rootzone)的设定,同时它是一个internet(IN)的区域类别。这里还指定了rootzone的服务器种类(type)为“hint”(也只有这个zone会使用这样的种类)。最后,用file指定这个区域记录文件为:“named.root”,也就是“/var/named/named.root”文件。在rootzone后面,你应该还会看到如下这两段:
zone"localhost"IN...{
typemaster;
file"localhost.zone";
allow-update...{none;};
};
zone"0.0.127.in-addr.arpa"IN...{
typemaster;
file"named.local";
allow-update...{none;};
};
这里是定义出关于本机名称的DNS解释:第一个zone是localhost的正解zone,其服务器种类是master,记录档名称是localhost.zone(在/var/named目录下面),但这个zone不允许客户主机(或服务器)自行更新DNS的记录。而第二个zone则是本机区域的反向解析zone。
再看下面的两段,这两段是cjh.com域的正向和反向解析。
zone"cjh.com"IN...{//新加cjh.com的域
typemaster;
file"cjh.com.zone";
allow-update...{none;};
};
zone"9.168.192.in-addr.arpa"IN...{//新加域的反向解析
typemaster;
file"named.192.168.9";
allow-update...{none;};
};
最后一行是bind9.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目录下。