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

全部博文(48)

文章存档

2009年(2)

2007年(46)

我的朋友

分类:

2007-07-17 13:29: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 选项在语句

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
    };
};

下面的例子将会对本主机和本地直连网络回应,它与排序

当得到一个有多个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 语句在组合的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 只为那些支持递归的客户机执行。

调整(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服务器也有效,规定了更新和重试的上、下限。

统计文件

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

referral

推荐应答的数目。

nxrrset

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

nxdomain

应答是NXDOMAIN 的数目。

recursion

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

failure

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

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

阅读(1270) | 评论(0) | 转发(0) |
0

上一篇:6.2.14.2. 转发

下一篇:6.2.15. server 语句语法

给主人留下些什么吧!~~