文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>第 6 章 BIND 9 配置参考 (7)

第 6 章 BIND 9 配置参考 (7)

时间:2007-05-22  来源:liufirst

6.2.14.10. 拓扑(Topology)

当服务器在一组域名服务器中选择一个进行查询时,如果其它条件都一样,那么它会选择一个离自己“最近”的服务器进行查询。topology 语句设置一个地址匹配表(address_match_list)并且用一个特别的方法解释它。每一个最高级的表的元素都被设置一个“距离”(distance),一个非否定的元素的距离值基于它在表中的位置,离表开头越近,距离值越小。一个否定的匹配将会设置一个离本服务器最大的值。如果匹配不成功,这个地址会比任何非否定的元素都“远”,并且比所有否定的元素都近。例如:

topology {
    10/8;
    !1.2.3/24;
    { 1.2/16; 3/8; };
};

将会先判断是否是网络10,然后判断是否在网络 1.2.0.0 (netmask 255.255.0.0) ,最后是网络不属于1.2.3 (netmask 255.255.255.0)。

默认的拓扑是:

    topology { localhost; localnets; };

注意: topology 选项在BIND 9中已经不用了。

6.2.14.11. sortlist语句

DNS查询的应答可能会是包括许多条记录 (RRs)组成的RR组(RRset),RR记录在组中会有一个不确定的顺序,(但需要参见rrset-order 语句 Section 6.2.14.12),客户机需要以一个合适的方法重新排列这个顺序,在本地网络中的地址比其它网络中的地址更优先。然而不是所有的解析器都能做到这个,或者他们的配置有问题。当一个客户机使用本地域名服务器时,可以由本地域名服务器基于客户地址执行排序,这仅需要配置域名服务器,而不是所有客户机。

sortlist 语句(如下) 设置一个地址匹配表(address_match_list),并且用比topology 语句更特殊的方法解释。每个sortlist 中的最高级语句必须是有一个或两个元素的清晰的地址匹配表(address_match_list),每个最高级语句的第一个元素(可能是IP地址,IP地址前缀,一个ACL的名字或者嵌入一个地址匹配表address_match_list) 与要比较的源地址对比,直到找到匹配。

一旦找到匹配地址,如果最高级的语句只有一个元素,实际的元素将被用来作为应答列表的第一个元素。如果语句里有两个元素,那么第二个元素将会按拓扑语句里面的地址匹配表一样对待,每个最高级的元素都被设定一个距离值, 最短距离的值将会放到应答的开头。

在下面的例子中,主机收到的任何查询的应答都与相连接的本地网络相关。Next 应答中的第一个地址是在192.168.1/24 网络中,其后是192.168.2/24 或者192.168.3/24 网络,这两个网络没有先后。在192.168.1/24 网络中查询的主机得到192.168.2/24 和 192.168.3/24 两个网络,在192.168.4/24 或者192.168.5/24 的主机将只使用他们直连的网络。

sortlist {
    { localhost;               // IF   the local host
        { localnets;           // THEN first fit on the
            192.168.1/24;      //   following nets
            { 192.168.2/24; 192.168.3/24; }; }; };
    { 192.168.1/24;            // IF   on class C 192.168.1
        { 192.168.1/24;        // THEN use .1, or .2 or .3
            { 192.168.2/24; 192.168.3/24; }; }; };
    { 192.168.2/24;            // IF   on class C 192.168.2
        { 192.168.2/24;        // THEN use .2, or .1 or .3
            { 192.168.1/24; 192.168.3/24; }; }; };
    { 192.168.3/24;            // IF   on class C 192.168.3
        { 192.168.3/24;        // THEN use .3, or .1 or .2
            { 192.168.1/24; 192.168.2/24; }; }; };
{ { 192.168.4/24; 192.168.5/24; };   
          // if .4 or .5, prefer that net
    };
};

下面的例子将会对本主机和本地直连网络回应,它与BIND 4.9.x中的地址排序相似,本主机将会选择本地直连的网络,其它的主机也会选择与它们直连的网络,其它的查询不被排序。

sortlist {
           { localhost; localnets; };
           { localnets; };
};

6.2.14.12. RRset 排序

当得到一个有多个RR记录的RR组时,重新给这些记录排定顺序是有用的。rrset-order 语句允许对RR组的记录排序,参见sortlist语句,Section 6.2.14.11。

一个order_spec 定义如下:

[ class class_name ][ type type_name ][ name "domain_name"]
      order ordering

如果没有指定class,默认是ANY,如果没有指定type,默认也是ANY,如果没有指定name默认是"*"。

ordering 可选的值是:

Fixed

固定的:记录按它们在区域文件中定义的顺序排列。

random

随机的:随机排序。

Cyclic

循环的:使用循环方法。

例如:

rrset-order {
   class IN type A name "host.example.com" order random;
   order cyclic;
};

会使class IN 中type A 的有"host.example.com" 后缀的回应使用随机的顺序,所有其它记录回应使用循环顺序。

如果有多个rrset-order 语句,他们并不是组合关系,只有最后一个有效。

注意: rrset-order 语句在BIND 9中已经没有了。BIND 9 当前只有"random-cyclic"(随机循环)排序,服务器随机在Rrset中选择一个开始点 ,并且以开始点的记录为头返回一个记录,包括RRset的结束点。( wrapping around the end of the RRset if necessary)

6.2.14.13. 组合的IPv6 应答

许多小的解析器支持IPv6 DNS 查询,它们遵守RFC1886,转发查询时支持在IP6.INT中使用AAAA 记录和半位元标签("nibble labels"),但不支持RFC2874 类型的查询 (在IP6.ARPA中使用A6 记录和二进制标签)。

对于那些想继续使用这样的小解析器而不愿转换到BIND 9的轻量级解析器的人, BIND 9 提供了一个自动转换RFC1886类的查询到RFC2874类的查询并且返回合成的AAAA 和 PTR 记录。

这个特性默认是关闭的,由options 或 view 子句的allow-v6-synthesis { address_match_list }语句对每个客户打开。打开时,递归查询AAAA ,服务器先尝试使用A6查询,如果失败,就使用AAAA查询。不管哪种查询成功,返回都使用组合的AAAA 记录。近似的,在IP6.INT递归查询PTR将会先在IP6.ARPA 中使用二进制查询标签,如果失败,则在IP6.INT中查询,返回使用ip6.int中组合的PTR 记录。

组合记录的TTL值是0, DNSSEC有效性的组合应答当前不支持,因此,包含组合的RRs 的记录没有AD 位。

注意: allow-v6-synthesis 只为那些支持递归的客户机执行。

6.2.14.14. 调整(Tuning)

lame-ttl

问题服务器指针存在的时间:设置以秒为单位缓存一个问题服务器(lame server), 0 禁止缓存 (这不被推荐),默认是600 (10 分钟),最大是1800 (30 分钟)。

max-ncache-ttl

最大否定内容缓存时间:为了减少网络流量和提高服务器的表现,服务器保存一些否定的答案。max-ncache-ttl 用来设置这些答案保存的最长时间,以秒为单位,默认的max-ncache-ttl 是10800 秒 (3 小时)。 max-ncache-ttl 不能超过7 天,如果设置的比7天大,会自动变成7天。

max-cache-ttl

最大缓存时间:max-cache-ttl 设置服务器保存正常答案(肯定positive)的时间,默认是7天。

min-roots

最小的根服务器数(已经不用了):需要的可接受的最小根服务器数,默认是2。

注意: BIND 9中已经没有了。

sig-validity-interval

作为动态更新的结果,DNSSEC签名自动产生后多少天会过期, 参见(Section 4.1),默认是30天。签名接受时间无条件设置为1小时之前,用来允许时钟误差。

min-refresh-time, max-refresh-time, min-retry-time, max-retry-time

最短更新时间,最大更新时间,最短重试时间,最大重试时间:这些选项控制服务器刷新一个区域 (查询SOA 变化) 或者重试失败的传送。通常区域的SOA值,但这个值由管理服务器设定,从属服务器对此有很小的控制权。

这个选项允许管理员对每个区域、每个view或全部设置最小最大更新、重试时间,这些选项对从属服务器和stub服务器也有效,规定了更新和重试的上、下限。

6.2.14.15. 统计文件

BIND 9 的统计文件与BIND 8相似,但不相同。

统计文件开始一行是“+++ Statistics Dump +++ (973798949)”, 圆括号中的数是一个标准的UNIX式的时间戳,这是从1970年1月1日起以秒为单位的数。紧跟这一行是几行包括计数器类型,计数器值,可选的区域名,可选的VIEW名。没有view和zone的行是全局统计信息,有zone和view的行是对指定的view和zone有效。 (默认的view 名字可以省略)。统计文件的结束行是“--- Statistics Dump --- (973798949)”,这个数字和前面的数字是一样的。

统计信息有:

success

对于服务器或者区域成功的查询。一个成功查询的定义是对一个查询返回一个NOERROR 应答而不是推荐应答(referral response)。

referral

推荐应答的数目。

nxrrset

使用NOERROR 但没有数据的应答。

nxdomain

应答是NXDOMAIN 的数目。

recursion

导致服务器产生递归查询的数目。

failure

产生failure应答而不是上面其它种应答的数目。

每一个查询都只会引起success, referral, nxrrset, nxdomain, 或 failure 中一种数目的增加,也可能同时引起recursion 计数的增加。

相关阅读 更多 +
排行榜 更多 +
rento大富翁手游

rento大富翁手游

休闲益智 下载
未来教育考试

未来教育考试

学习教育 下载
我要整个活

我要整个活

动作格斗 下载