BIND9学习笔记(一)

Category : 工作学习 / Tags : , , / Date : 2010.04.21 / /

  之前把[BIND9管理员参考手册]粗略看了一下,对BIND这个服务有了进一步的认识。BIND这个服务说起来不算复杂,不过细节上的处理还是很讲究水平的。Google了一圈,没有找到比较系统、详细的安装配置文档。就自己简单的整理了这一篇关于BIND的文章。为了更加清楚的说明BIND这个服务,整个文章将全部用源码包安装的方式来完成。个人水平有限,望各位高手指正。

  一、BIND简介

  BIND是一款开放源码的DNS服务器软件,是Domain Name System (DNS) 协议的一个实现。Bind由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain。它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。

  BIND提供了DNS主要功能的开放实现包括: 域名服务器 (named)、DNS解析库函数、DNS服务器运行调试所用的工具。

  BIND主要分为三个版本:V4、V8、V9。V9是如今使用最多最广的版本。目前最新的稳定版本是9.7.1,最新的开发版本是V10。

  二、软件的相关资源。

  官方网站:http://www.isc.org
  
  源码软件包:http://www.isc.org/software/bind

  配置文件样例:http://bind.com/?path=dns

  三、软件的安装

  1.安装

wget http://ftp.isc.org/isc/bind9/9.7.0-P1/bind-9.7.0-P1.tar.gz  //获取源码安装包
tar xfz bind-9.7.0-P1.tar.gz  //解压安装包
cd bind-9.7.0-P1     //进入解压后生成的目录
./configure --prefix=/usr/local/bind  --enable-threads --without-openssl
make				//编译
make install 			//安装

  configure针对机器作安装的检查和设置,大部分的工作是由机器自动完成的,但是用户可以通过一些参数来完成一定的设置。可通过./configure –help察看参数设置帮助,可根据自己需要增减参数。简单说下这里用了的几个参数的意思:

--prefix=指定软件安装目录(默认为/usr/local/)。
--enable-threads  开启多线程处理能力
--without-openssl  由于是新装的系统,没装openssl。所以把openssl检查给屏掉了。一般不要屏哟(我是懒),屏掉就不支持DNSSEC了

  四、软件的配置

  默认情况下,安装过程是不会建立配置文件和一些默认的域名解析的。不过并不妨碍,可以从下载一些标准的配置文件示例,也可以使用本文所提供的样例文件。
  默认情况下,安装的 deamon为/usr/local/bind/sbin/named
  默认的主配置文件,/etc/named.conf(须手动建立)。

  建立主配置文件named.conf(这里就先建一个最简单例子,以后在慢慢来扩充)

  1、首先建立全局options

cd /usr/local/bind/etc/
vi named.conf

options
{
directory "/usr/local/bind/var";          //域名文件存放的绝对路径
pid-file "named.pid";              //如果bind启动,自动会在/usr/local/named/var目录生成一个named.pid文件,打开文件就是named进程的ID
forwarders {8.8.8.8;};  //指定一个转发DNS,当本地域名服务器无法解析的域名,就会被转发至前向DNS进行解析。
dump-file "cache_dump.db"; //设置服务器缓存数据文件的路径(rndc dumpdb转储数据的文件)
statistics-file "named_stats.txt"; //设置服务器统计信息文件的路径(rndc stats追加统计数据的文件)
allow-query    { any; };  //定义可使用这个DNS服务器的客户端,这里为任意主机都允许。
};

  2、定义log部分

logging 
{
channel default_debug {
file "named.run";
severity dynamic;};
};

  这部分是日志的设置,上面是一个Bind预定义通道,写这部分是为了说明Bind的日志可以非常细化的处理。这部分详细定义还是很复杂的,自己去看看相关资料吧!

  其中最主要的是file “named.run”; 这一句指定了日志文件的位置,要正常启动named,必须要保证这一文件是存在的,并且named进程对它有读写权限。

  severity是指定记录消息的级别。在bind中主要有以下几个级别(按照严重性递减的顺序):critical、error、warning、notice、info、debug[level]、dynamic。定义了某个级别后,系统会记录包括该级别以及比该级别更严重的级别的所有消息。比如定义级别为error,则会记录critical和error两个级别的信息。一般情况下,我们记录到info级别就可以了。

  3、定义根区域、本地域的正反解、自定义域的正反解

  A、定义根区域

zone "." IN
{
        type hint;          //根域名服务器
        file "named.root";  //存放在/usr/local/bind/var目录,文件名为named.root
};

  B、定义本地域的正反解

zone "localhost" IN
{
        type master;     //类型为主域名服务器
        file "named.localhost"; //本地正向解析的区文件
        allow-update {none;}; //不允许动态更新本区的数据
};

zone "0.0.127.in-addr.arpa" IN 
{
        type master;      //类型为主域名服务器
        file "named.127.0.0";   //本地反向解析的文件
        allow-update {none;};
};


无觅相关文章插件,快速提升流量

Pages: 1 2 3

Comments

2 Responses to “BIND9学习笔记(一)”

  • 2010-05-31 12:02Li Gang说道:

    请问前辈,您的rndc.key是怎么产生的?

    easylife Firefox 3.6.3 Firefox 3.6.3 Windows 7 Windows 7回复:

    @Li Gang, rndc-confgen -a, 一直没写[BIND9学习笔记(二)],这部分是打写在这里面的,争取最近写完。呵呵!

Leave a Reply

You must be logged in to post a comment.

传奇 似水流年 绽放 风筝 八月照相馆