DNS服务器
安装BIND
1.去http://www.isc.org下载最新版本,如bind-9.3.2.tar.gz
2.编译安装
#tar zxvf bind-9.3.2.tar.gz
#cd bind-9.3.2
#./configure --sysconfdir=/etc 配置文件放在/etc
#make
#make install
rpm包安装,程序放在/usr/sbin目录下,默认编译安装程序放在/usr/local目录下,编译安装需手工创建主配置文件
#vi /etc/named.conf
编译时,注意大括号前后需有空格,光盘有一个叫caching-nameserver的软件包,装完后会自动复制一份默认的一些配置文件。这里我们都是手工创建
option {
directory “/var/named”; 指定服务器工作目录
};
zone “.” { 根区,服务器必须知道如何查找根,因为这里没有根服务器的数据库。 type hint; 所以定义为hint,链接到根的数据库,并指定链拉文件
file “name.ca”;
};
#mkdir /var/named
named.ca用来保存根域服务器的地址,但现在不知道根域服务器地址到底是多少。下面演示如何查找根服务器地址产生named.ca文件:
首先我们找一个可用的DNS IP,利用此DNS查找根地址。
#echo “nameserver 192.58.128.30” > /etc/resolv.conf
#dig -t NS . (dig是一个挖掘DNS记录的工具)
-t 指定类型为NS,即查找根DNS记录,查找后的结果:左边是根的域,右边是根服务器的主机名
#dig -t NS . > /var/named/named.ca
有了根服务器后,这台DNS服务器就可启动了。
用RNDC控制服务器
1.产生rndc控制文件
#rndc-confgen >/etc/rndc.conf
#tail +13 /etc/rndc.conf >>/etc/named.conf
将配置文件13行起到结尾的内容追加到named.conf
2.启动named服务器,监视/var/log/messages
#named
#tail /var/log/messages
如有错误,根据提示解决,例如RPM包安装可能会提示无法打开/var/run/named/named.pid
可以用root用户删除/var/run/named目录,再重建一个。
3.测试rndc和解析效果
#rndc status
#echo “nameserver 127.0.0.1” > /etc/resolv.conf
#host
www.chinaunix.com
第一次解析主机后将信息存入缓存,以后再解析时就很快,只要有了根区就可以查到整个互联网。
host,dig都是通过DNS查询,对于一台服务器来说,我们自己的应用环境总有一台叫localhost的主机,默认情况下localhost的主机总是在hosts文件定义,为取代hosts文件,需要把localhost加进DNS服务器,任何一台有网络的主机都 会有一个回环设备地址,回环设备地址没有相应的主机名,很多服务都 会起不来。
添加localhost域
#vi /etc/named.conf 添加
zone “localhost” { 区名叫localhost
type master; 表示这是主域服务器,数据库是自己维护的,不需要其他人管理
file “named.local”; 数据库文件(区文件)位置
};
编缉/var/named/named.local
@ 1D IN SOA localhost. root (
2006081201编号更新一次自己加1,当发生改变时,会通知其他域名服务器更新数据库
1H 多少时间刷新其他DNS的数据库记录
15M 主向从DNS服务器发送信息出现错误,会隔15分钟再重试
1W 如果重试还有错,一星期后过期
1D ) 缓存保存时间,默认为1天
IN NS @ 指定这个域的DNS服务器
IN A 127.0.0.1 指定DNS服务器的IP地址
在这个文件里必须指定这个文件所服务的域的范围,到底为哪个域服务,第一个字段,一般是域名或主机名,@表示当前的域名,就是前面zone后面的那句”localhost”,localhost将作为一个变量传递给named.local文件
第二个字段,表示域类型,IN为互联网类型
第三个字段,记录类型,任何区文件里都有一条SOA记录。还有其他记录类型,如NS域名服务器,A地址,接着后面是当前域的域名和管理者信息,管理者信息是一个邮箱地址,上面使用了缩写,全写应该是root.localhost.
注意不能用@,因为前面说过了,这是表示当前域名,并且最后是以点结束。
小括号前后要有空格,小括号包括的是整个域的管理信息。
localhost. IN NS localhost. 表示localhost. 域的DNS服务器为localhost
localhost. IN A 127.0.0.1 表示localhost主机IP地址为127.0.0.1
主机名,域名要以点结尾,表示结束。相同记录可省略某个字段