Chinaunix首页 | 论坛 | 博客
  • 博客访问: 161975
  • 博文数量: 48
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-08 18:10
文章分类

全部博文(48)

文章存档

2009年(2)

2007年(46)

我的朋友

分类:

2007-07-17 13:30:46

语句语法

server ip_addr {
    [ bogus yes_or_no ; ]
    [ provide-ixfr yes_or_no ; ]
    [ request-ixfr yes_or_no ; ]
    [ edns yes_or_no ; ]
    [ transfers number ; ]
    [ transfer-format ( one-answer | many-answers ) ; ]]
    [ keys { string ; [ string ; [...]] } ; ]
};

语句定义和使用

server语句定义与远程服务器相关的特性。

server 可以出现在配置文件的最上级,或者在view 语句中。如果一个view 语句包含一个或几个server 语句,那么只有view 语句中的有效,而最上级的则被忽略。如果view 没有包含server 语句,则把最高级的server 语句作为默认值使用。

如果发现远程服务器提供“坏”的数据,可以给这个服务器打上bogus (假的,伪造的)标志,这会阻止继续向这个服务器查询,默认的bogus 值是 no

provide-ixfr 子句决定本地主机是否作为管理服务器,并使它对指定的远程从属服务器的增量区域数据传送请求作出应答。如果设为yes,在需要时将会提供增量传送,如果设为no,所有对远程服务器的传送都会是非增量的。如果没有设置,在view中或全局中的 provide-ixfr 值将会成为默认值。

request-ixfr子句决定本地主机是否作为从属服务器, 并对指定的远程服务器作出增量区域数据传送请求。如果没有设置,在view中或全局中的 request-ixfr值将会成为默认值。

对不支持IXFR的服务器进行IXFR 请求会自动回应成AXFR,因此,不需要手工指定哪个服务器支持IXFR,哪个不支持。全局默认为yes 总是能够很好的工作 provide-ixfr request-ixfr 存在的用途是在双方都支持IXFR时禁止IXFR的使用,例如其中有一台服务器有很多问题如果使用IXFR会导致数据损坏。

edns 子句决定本地主机与远程主机通讯时是否尝试使用EDNS,默认是yes

服务器支持两种区域数据传送方法。第一种,one-answer,使用每一个RR记录一条信息的方法,第二种,many-answers ,会在一个包中尽可能多的加入RR记录。many-answers 更有效,但只在语句语法

trusted-keys {
    string number number number string ;
    [ string number number number string ; [...]]
};

语句定义和使用

trusted-keys 语句定义DNSSEC 安全根区域security rootsDNSSECSection 4.7中描述,安全根区域(security root)在得到非管理区域的公钥时定义。但是不能通过DNS安全的获得。因为它是DNS根区域或者没有指定它的父区域。一旦一个密钥被配置为可信任的密钥,它就会被认为是有效的,并被用来验证安全性。解析器在安全根区域的所有子域的DNS数据中尝试DNSSEC的有效性。

trusted-keys 语句可以包含多个密钥,每个包含密钥的域名,标志,协议,算法和64位的密钥数据。

语句语法

view view_name [class] {
      match-clients { address_match_list } ;
      match-destinations { address_match_list } ;
      match-recursive-only yes_or_no ;
      [ view_option; ...]
      [ zone-statistics yes_or_no ; ]
      [ zone_statement; ...]
};

语句的定义和使用

view BIND 9中一个功能强大的新特性,它可以使DNS服务器根据不同的用户来回答不同的答案。它有时可以使DNS服务器表现的象多个服务器一样而不需要真正安装多个服务器。

view 语句定义的一个部分是为一部分客户的。如果一个客户的源IP地址匹配了一个view match-clients 中的地址匹配表address_match_list,它就匹配了一个view。如果没有指定, match-clients match-destinations 默认都是匹配所有的地址。一个view 也可以象match-recursive-only一样指定,它是指只有从匹配客户的递归查询才可以匹配这个viewview 语句的顺序是重要的,一个客户请求在遇到第一个view中的匹配时就会被解析。

只有匹配view的用户才可以访问有view语句的区域。在多个view中定义有相同名字的区域,不同的用户会得到不同的数据。例如,对内网和外网用户得到的DNS数据不相同。

许多options 语句中的选项都可以用在view 语句中,并且只在view起效的地方这些选项才起效。当没有view值指定时,OPTIONS中的值是默认值。区域数据可以在view中指定默认的值,这个值默认通常是OPTIONS中指定的值。

Views 要指定类型,如果没有指定,假定就是class IN。注意所有non-IN views必须包括一个hint zone,因为只有IN class 有内置hints

如果配置文件中没有view 语句,默认的view会建立,它自动匹配所有客户,使用class IN,配置文件中指定的最高级的zone 语句被认为是默认view中的一部分。如果view 语句存在,所有的zone 语句都必须包含在view 语句中。

这里是一个典型的使用view设置的分离 DNS的例子。

view "internal" {
               // This should match our internal networks.
      match-clients { 10.0.0.0/8; };
               // Provide recursive service to internal clients only.
      recursion yes;
               // Provide a complete view of the example.com zone
               // including addresses of internal hosts.
      zone "example.com" {
            type master;
            file "example-internal.db";
      };
};
view "external" {
      match-clients { any; };
               // Refuse recursive service to external clients.
      recursion no;
               // Provide a restricted view of the example.com zone
               // containing only publicly accessible hosts.
      zone "example.com" {
           type master;
           file "example-external.db";
      };
};
阅读(1120) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~