14.3.1 BIND的主配置文件

14.3.1  BIND的主配置文件

BIND主配置文件由named进程运行时首先读取,文件名为named.conf,默认在/etc目录下。该文件只包括Bind的基本配置,并不包含任何DNS的区域数据。安装DNS服务后,安装程序不会自动生成/etc/named.conf文件,用户需要自行创建或将/usr/share/doc/bind-9.3.3/sample/etc/named.conf范本文件复制为/etc/named.conf

named.conf配置文件由语句与注释组成,每一条主配置语句均有自己的选项参数。这些选项参数以子语句的形式组成,并包含在花括号内,作为主语句的组成部分。每一条语句,包括主语句和子语句,都必须以分号结尾。注释符号可以使用类似于C语言中的块注释“/*”和“*/”符号对,以及行注释符“//”或“#”。BIND 9支持的主配置语句及功能如表14-2所示。

14-2  BIND 9主配置语句名称

主配置语句名称

   

acl

定义一个访问控制列表,用于以后对列表中的IP进行访问控制

controls

定义有关本地域名服务器操作的控制通道,这些通道被rndc用来发送控制命令

include

把另一个文件中的内容包含进来做为主配置文件的内容

key

定义一个密匙信息,用于通过TSIG进行授权和认证的配置中

logging

设置日志服务器,以及日志信息的发送位置

options

设置DNS服务器的全局配置选项

续表

主配置语句名称

   

server

定义了与远程服务器交互的规则

trusted-keys

定义信任的 DNSSED密匙

view

定义一个视图

zone

定义一个区域

 

1acl语句

acl主配置语句用于定义一个命名的访问列表,里面包含了一些用IP表示的主机,这个访问列表可以在其他语句使用,表示其所定义的主机。其格式如下:

 

acl acl-name {

    address_match_list

};

 

address_match_list表示IP地址或IP地址集。其中,noneanylocalhostlocalnets4个内定的关键字有特别含义,分别表示没有主机、任何主机、本地网络接口IP和本地子网IP。一个具体的例子如下所示。

 

acl "someips" {              //定义一个名为someipsACL

  10.0.0.1; 192.168.23.1; 192.168.23.15;      //包含3个单个IP

};

acl "complex" {              //定义一个名为complexACL

  "someips";                  //可以包含其他ACL

  10.0.15.0/24;               //包含10.0.15.0子网中的所有IP

  !10.0.16.1/24;             //10.0.16.1子网的IP

  {10.0.17.1;10.0.18.2;};   //包含了一个IP

  localhost                 //本地网络接口IP(含实际接口IP127.0.0.1

 };

zone "example.com" {

  type slave;

  file "slave.example.com";

  allow-notify {"complex";}; //在此处使用了前面定义的complex访问列表

};

 

2controls语句

controls主语句定义有关本地域名服务器操作的控制通道,这些通道被rndc用来发送控制命令。在上节的例子named.conf配置文件中有以下语句,现解释如下:

 

controls {

     inet 127.0.0.1 port 953     //127.0.0.1接口的953号端口进行监听

        allow { 127.0.0.1; }      //只接受127.0.0.1的连接,即只有在本机使用rndc

                                //才能对named进行控制

       keys { "rndckey"; };      //使用名为rndckey的密钥才能访问

};

3include语句

include主语句表示把另一个文件的内容包含进来,作为named.conf文件的配置内容,其效果与把那个文件的内容直接输入named.conf时一样。之所以这样做,一是为了简化一些分布式的named.conf文件的管理,此时,每个管理员只负责自己所管辖的配置内容。二是为了安全,因为可以把一些密钥放在其他文件,不让无关的人查看。

4key语句

key主语句定义一个密匙,用于TSIG授权和认证。它主要在与其他DNS服务器或rndc工具通信时使用,可以通过运行rndc-confgen命令产生。在14.2.5小节的例子named.conf配置文件中有以下语句,现注释如下:

 

key "rndckey" {               //定义一个密钥,名为rndckey

       algorithm hmac-md5;   //采用hmac-md5算法,这也是目前唯一支持的加密算法

       secret "TKuaJSEo58zohJBfrdF7dQ==";   //密钥的具体数据

 };

 

5logging语句

logging是有关日志配置的主语句,可以有众多的子语句,指明了日志记录的位置、日志的内容、日志文件的大小和日志的级别等内容。下面是一个典型的日志语句内容。

 

logging{

  channel simple_log {  //定义一个名为simple_log的日志通道。可以定义多个通道,每

                            //个通道代表一种日志

  file "/var/log/named/bind.log" versions 3

                    //该日志记录在/var/log/named/bind.log文件中,版本号为3

                     

  size 5m;      //文件的大小是5MB,超过5MB时,会以bind.log.1的名字备份起来

    severity warning;    //高于或等于warning级别的日志才被记录

    print-time yes;      //日志记录包含时间域

    print-severity yes;  //日志记录包含日志级别域

    print-category yes;  //日志记录包含日志分类域

  };

  category default{     //所有的分类都记录到simple_log日志通道中

    simple_log;

  };

};

 

6options语句

options语句设定可以被整个BIND使用的全局选项。这个语句在每个配置文件中只有一处,如果出现多个options语句,则第一个options的配置有效,并且会产生一个警告信息。如果没有options语句,每个子语句使用默认值。options选项的子语句很多,下面先解释一下在14.2.3小节的例子主配置文件中出现的子语句。

q      directory:指定服务器的工作目录。配置文件其他语句中所使用的相对路径,指的都是在这个子语句指定的目录下。大多数的输出文件默认时也生成在这个目录下。如果没有设定,工作目录默认设置为服务器启动时的目录。指定目录时,应该以绝对路径表示。

q      pid-file:设定进程PID文件的路径名,如果没有指定,默认为/var/run/named.pid。因此,此时要注意运行进程的用户named对该目录要有写入的权限,否则,named将不能正常启动。pid-file 是给那些需要向运行着的服务器发送信号的程序使         用的。

q      forwarders:设定转发使用的IP地址。该子语句只有在forward设置成允许转发后才生效,默认的列表是空的,表示不转发。转发也可以设置在每个域中,这样全局选项中的转发设置就不会起作用了。用户可以将不同的域转发到不同的其他DNS服务器上,或者对不同的域实现forward onlyfirst的不同方式,也可以选择根本就不转发。

q      allow-query:主语句用于设定DNS服务器为哪些客户机提供DNS查询服务,可以在后面的花括号内放置命名的ACLaddress_match_listany表示任何主机都可以访问。allow-query也能在zone语句中设定,这样全局options中的allow-query选项在zone中就不起作用了。默认时是允许所有主机进行查询。

7server语句

server主语句定义了与远程服务器交互的规则,例如,决定本地DNS服务器是作为主域名服务器还是辅域名服务器,以及与其他DNS服务器通信时采用的密钥等。语句可以出现在配置文件的顶层,也可以出现在视图语句的内部。如果一个视图语句包括了自己的server语句,则只有那些视图语句内的server语句才起作用,顶层的server语句将被忽略。如果一个视图语句内不包括server语句,则顶层server语句将被当做默认值。

8trusted-keys语句

trusted-keys语句定义DNSSEC安全根的trusted-keysDNSSEC指由RFC2535定义的DNS sercurity。当一个非授权域的公钥是已知的,但不能安全地从DNS服务器获取时,需要加入一个trusted-keys。这种情况一般出现在singed域是一个非signed域的子域的时候,此时加了trusted key后被认为是安全的。trusted-keys语句能包含多重输入口,由键的域名、标志、协议算法和64位键数据组成。

9view语句

view语句定义了视图功能。视图是BIND 9提供的强大的新功能,允许DNS服务器根据客户端的不同有区别地回答DNS查询,每个视图定义了一个被特定客户端子集见到的DNS名称空间。这个功能在一台主机上运行多个形式上独立的DNS服务器时特别有用。

10zone语句

zone语句定义了DNS服务器所管理的区,也就是哪一些域的域名是授权给该DNS服务器回答的。一共有5种类型的区,由其type子语句指定,具体名称和功能如下所示。

q      Master(主域):主域用来保存某个区域(如www.wzvtc.cn)的数据信息。

q      Slave(辅域):也叫次级域,数据来自主域,起备份作用。

q      StubStub区与辅域相似,但它只复制主域的NS记录,而不是整个区数据。它不是标准DNS的功能,只是BIND提供的功能。

q      Forward(转发):转发域中一般配置了 forwardforwarders子句,用于把对该域的查询请求转由其他DNS服务器处理。

q      HintHint域定义了一套最新的根DNS服务器地址,如果没有定义,DNS服务器会使用内建的根DNS服务器地址。

14.2.3小节的例子named.conf配置文件中有以下语句,现解释如下:

 

zone "." IN {            //定义一个名为“.”的区,查询类为IN

type hint;                //类型为hint

file "named.root";       //区文件是named.root

};

zone "0.0.127.in-addr.arpa" IN {   //定义一个名为0.0.127.in-addr.arpa的区,

                                    //查询类为IN

 type master;                 //类型为master

 file "named.local";         //区文件是named.local

 allow-update { none; };     //不允许任何客户端对数据进行更新

};

zone  "wzvtc.cn" IN {        //定义一个名为wzvtc.cn的区,查询类为IN

    type master;              //类型为master

    file "named.wzvtc.cn";   //区文件是named.wzvtc.cn

    allow-update { none; };  //不允许任何客户端对数据进行更新

};

zone  "1.10.10.in-addr.arpa" IN { 

                    //定义一个名为1.10.10.in-addr.arpa的区,查询类为IN

        type master;                   //类型为master

        file "named.1.10.10";         //区文件是named.1.10.10

        allow-update  { none; };      //不允许任何客户端对数据进行更新

};

%说明:在每一个zone语句中,都用file子语句定义一个区文件,这个文件里存放了域名与IP地址的对应关系。14.3.3节将对区文件进行详细解释。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值