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

全部博文(48)

文章存档

2009年(2)

2007年(46)

我的朋友

分类:

2007-07-17 11:23:00

6    BIND 9 配置参考

目录

6.1. 配置文件组成

6.2. 配置文件原理

6.3. 区域数据文件

配置文件组成

以下是BIND配置文件的组成元素。

acl_name

访问控制列表名:一个 address_match_list 的名字,使用acl statement定义。

address_match_list

地址匹配表:一组或一个ip_addr, ip_prefix, key_id, acl_name 组成,参看Section 6.1.1

domain_name

名:一个双引号之间的字符串,用做DNS的名字,例如:"my.test.domain"

dotted_decimal

点分隔的10进制数:一个或多个整数,值从0255之间,只用“点”分隔 (`.'),例如123, 45.67 89.123.45.67

ip4_addr

IPv4地址:4个点分隔的十进制数( dotted_decimal

ip6_addr

IPv6地址:例如: 2001:db8::1234

ip_addr

Ipv4地址或者Ipv6地址:ip4_addr ip6_addr

ip_port

IP端口号:整数在0 65535之间,小于1024的限制为根用户使用,某些情况下使用“星号”(`*') 是作为占位符,表示此处可以随机使用一个(high-numbered)数。

ip_prefix

IP地址网络号:由IP地址紧跟一个斜杠 (`/'),然后是子网掩码中1的个数。ip_addr后面的0会被忽略。例如127/8是网络127.0.0.0 子网掩码 255.0.0.01.2.3.0/28 是网络 1.2.3.0 子网掩码是 255.255.255.240.

key_id

共享密钥所代表的域名:用来传送加密数据。

key_list

密钥列表:一组key_ids,一个或几个,用分号分隔,用分号结束。

number

数字:一个32位无符号整数(例如:在04294967295,包括这两个数)。根据环境,这个值会有很多限制。

path_name

路径名:引号中用来表示路径的名称:如 zones/master/my.test.domain.

size_spec

指定的大小(数):无限制或有限制,或者默认

无限制数(unlimited size_spec )在没有限制的地方用,默认值( default size_spec )则强制使用限制的值。

一个数可选的在其后跟一个字符:K or k1K, M or m 1M, G or g 1G倍,它们的实际倍数是1024, 1024*1024, 1024*1024*1024

这个值 必须为64位无符号整数, (0 18446744073709551615, 包含这两个数)。使用无限制数最安全的方法是设置一个实际的大数。

yes_or_no

逻辑值: yes notrue false,或者是10

dialup_option

Dialup_option选项,可以是yes, no, notify, notify-passive, refresh passive。在区域中, notify-passive, refresh, passive 限制只能用于从属区域或stub 区域。

地址匹配表

句法

address_match_list = address_match_list_element ;
  [ address_match_list_element; ... ]
address_match_list_element = [ ! ] (ip_address [/length] |
   key key_id | acl_name | { address_match_list } )

定义和使用

地址匹配列表主要用于决定不同服务器的存取权限。也用来定义优先查询的其它域名服务器的地址,那台主机使用named 进程监听查询。地址匹配表可以由下面任何一项或多项组成:

·         IP地址 (IPv4 IPv6)

·         网络地址(IP prefix ,使用 `/'符号)

·         密钥字( key ID),由key 语句定义

·         先前已经定义的地址匹配列表

·         使用括号包括的嵌套的地址匹配表

如果在某个元素前面加上 (`!'),表示是否定的意思。匹配表的名字是"any," "none," "localhost" "localnets" 已经预先定义过了,它们的精确定义可以在ACL描述一节中找到。

Key子句名称有些不合语法,既然不论是主机还是网络地址都可以使用密钥进行有效的存取,而地址匹配依旧在使用。(即生瑜,何生亮?用密钥就可以了,还搞个地址匹配。呵呵)

当一个指定的IP 地址或网络地址与地址匹配表比较时,它会依次比较表中所有地址直到找到匹配或者表结束。匹配的解释依赖与它使用的地方,是存取控制,定义监听端口,或者作为一个拓扑来判断该元素是否被否定。

当用在存取控制表中,一个肯定的匹配允许存取,一个否定匹配拒绝存取。如果没有匹配,存取就被拒绝,子句allow-notify, allow-query, allow-transfer, allow-update blackhole 都使用肯定地址匹配。相似的,监听选项使服务器不接收不在本机列表中的地址。

当使用拓扑子句时,一个肯定的比较会基于匹配到元素在表中的位置返回一个距离,(离地址匹配表的开头越近,它离服务器的距离就越近)。一个否定的比较将会设置为离服务器的最大距离,如果没有匹配,地址得到的距离比任何肯定的表元素的距离都长,比任何否定的表元素的距离都短。

因为使用了发现匹配就结束的算法,一个元素如果是其它元素的子网,就要先写这个元素,就是先写精确的子网,后写较大的子网,不管是不是否定的元素。例如,1.2.3/24; ! 1.2.3.13; 两个元素1.2.3.13 出现就会完成匹配,因为算法匹配它符合1.2.3/24,使用! 1.2.3.13; 1.2.3/24(顺序反过来) 来解决这个问题,此时先匹配1.2.3.13已经被否定,而其它这个子网中的元素都可以通过。

注释语句

句法

/* This is a 定义和使用

注释语句可以出现在配置文件任何空白的地方。

C注释语句开始于/* (slash, star) 结束于 */ (star, slash)。因为他们被完整的界定,所以他们可以用在一行中的一部分,或者跨过多行。

C注释语句不能被嵌套,例如,下面的例子是非法的,因为第一个*/已经使注释结束了。

/* This is the start of a comment.
   This is still part of the comment.
/* This is an incorrect attempt at nesting a comment. */
   This is no longer in any comment. */

C++的注释语句用// (slash, slash)开头,直到这一行的结束,不能连续数行,如果想要连续多行,每行都要用// 开头。

例如:

// This is the start of a comment.  The next line
// is a new comment, even though it is logically
// part of the previous comment.

Shell的注释语句(或者类perl,如果你愿意) # (number sign)开头,直到行的结束。和C++类似。

例如:

# This is the start of a comment.  The next line
# is a new comment, even though it is logically
# part of the previous comment.

警告

警告:不能使用分号(`;') 开始注释语句,分号在区域配置文件中表示一个语句的结束。

阅读(1207) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~