Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17271
  • 博文数量: 5
  • 博客积分: 36
  • 博客等级: 民兵
  • 技术积分: 35
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-22 10:20
文章分类

全部博文(5)

文章存档

2012年(3)

2011年(2)

我的朋友
最近访客

分类:

2012-05-18 17:32:42

原文地址:建立BIND配置文件 作者:phoenix1017

BIND配置文件在4版本和8版本有很大不同,值得注意。但在8版本和9版本之间变化不大。由于4版本已经过时太久远,在这里就不介绍了,你可以参考以前的相关版本书籍。在配置文件中,你可以使用C C++或者是shell设计三种注释方法:

/* This is a C-style comment */// This is a C++-style comment# This is a shell-style comment

通常,配置文件包含一行目录指示该区数据文件放置位置。在读取数据文件之前,域名服务器把它的目录改变到本地,在这里允许将像对当前的目录文件名替换成全路经(绝对路径),下面就是一个选项的描述:

options {        directory "/var/named";        // Place additional options here.};

 

只能有一个选项描述在配置文件里,因此任何其他增加的选项(在本书提到的)必须放在这个目录内。

在主服务器中,配置文件包括每一个区数据所要读得区描述,每一行包括zone、随后的该区域名和类(in 代表internet),master类型是指这个服务器是主服务器,最后一行是文件名称:

zone "movie.edu" in {      type master;      file "db.movie.edu";};

 

在本章前面曾谈到,如果你在一个源记录中忽略了这个类(class),域名服务器将从配置文件里确定正确的类(class)。在区描述中的“in”设置了internet类,“in”类为区(zone)描述的缺省类,从而你可以省去设置直接使用internet类。

下面是配置文件中用于读“root hint”文件的内容:

zone "." in {        type hint;        file "db.cache";};

前面提到,这个文件不是为普通的缓冲数据,他只包含根(root)域名服务器的hints

实际上,BIND9已经建立hints区文件,从而你不必在named.conf(配置文件)内再建。但是,建上后也无碍,我们不要多虑。因此我们就一直包含他。

在缺省情况下,BIND设置配置文件为/etc/named.conf,区数据文件向我设置的一样在/var/named,这个目录不必非在此目录下,只要该目录的根目录有足够的空间,在运行域名服务前目录挂载上即可。以下是完整的named.conf文件:

// BIND configuration file options {        directory "/var/named";        // Place additional options here.}; zone "movie.edu" in {        type master;        file "db.movie.edu";}; zone "249.249.192.in-addr.arpa" in {        type master;        file "db.192.249.249";}; zone "253.253.192.in-addr.arpa" in {        type master;        file "db.192.253.253";}; zone "0.0.127.in-addr.arpa" in {        type master;        file "db.127.0.0";}; zone "." in {        type hint;        file "db.cache"; };

 

 

 

44 缩写

在这点,我们已经创建了所有的注域名服务器的文件。让我们回头再看一看区数据文件(zone datafile),有缩写格式我们还没使用,除非你理解了以前的长格式后,虽然所写格式看上去很怪。现在长格式我们已经讲过了,接下来讲述缩写格式。

441 增加域名

区描述的第二部分列举了域名,域名是缩写的关键,域名是在这个区数据文件中所有数据的源(origin),“源”被增加给该区数据文件中的所有的名字,不要以“.”结束,否则意义将不同,是因为每一个文件描述不同的区了。

既然“源”附加给名称,代替在db.movie.edu中输入shrek.movie.edu的地址:

shrek.movie.edu.    IN A     192.249.249.2

我们可以这样输入:

shrek    IN A     192.249.249.2 

db.192.249.249文件中,我们输入:

2.249.249.192.in-addr.arpa.  IN PTR shrek.movie.edu.

因为249.249.192.in-addr.arpa是“源”,我们可以这样输入:

2  IN PTR shrek.movie.edu.

还记得曾经提醒你在使用完整格式时不要忽略尾部的“.”吗?假设你忘记了尾部的“.”:

shrek.movie.edu    IN A     192.249.249.2

你根本没有替换,就变成了shrek.movie.edu.movie.edu

 

442 @符号

作为“源”的这个域名可以被表示为“@,在区文件的SOA记录中经常可以看到。SOA记录可以这样输入:

@ IN SOA toystory.movie.edu. al.movie.edu. (                          1        ; Serial                          3h       ; Refresh after 3 hours                          1h       ; Retry after 1 hour                          1w       ; Expire after 1 week                          1h )     ; Negative caching TTL of 1 hour

 

443 重复的名称

如果一个源记录(resource record,在RR记录的第一部分)是一个空格或“tab”键,这个名称是用得上一个记录的名称。可以用在名称的多个源记录中,下面示例:

wormhole   IN A     192.249.249.1           IN A     192.253.253.1

在第二个地址记录中,名称“wormhole”被隐含了,即使源记录是不同的类型以可以这样使用。

 

 

444 区数据文件的缩写形式

刚才我们介绍了缩写,下面我们将使用缩写形式编辑区数据文件(db.movie.edu文件):

$TTL 3h;; Origin added to names not ending; in a dot: movie.edu; @ IN SOA toystory.movie.edu. al.movie.edu. (                          1        ; Serial                          3h       ; Refresh after 3 hours                          1h       ; Retry after 1 hour                          1w       ; Expire after 1 week                          1h )     ; Negative caching TTL of 1 hour ;; Name servers (The name '@' is implied);           IN NS  toystory.movie.edu.           IN NS  wormhole.movie.edu. ;; Addresses for the canonical names;localhost      IN A     127.0.0.1shrek          IN A     192.249.249.2toystory       IN A     192.249.249.3monsters-inc   IN A     192.249.249.4misery         IN A     192.253.253.2shining        IN A     192.253.253.3carrie         IN A     192.253.253.4 wormhole       IN A     192.249.249.1               IN A     192.253.253.1 ;; Aliases;toys       IN CNAME toystorymi         IN CNAME monsters-incwh         IN CNAME wormhole ;; Interface specific names;wh249      IN A     192.249.249.1wh253      IN A     192.253.253.1

 

下面是db.192.249.249文件:

$TTL 3h;; Origin added to names not ending; in a dot: 249.249.192.in-addr.arpa; @ IN SOA toystory.movie.edu. al.movie.edu. (                          1        ; Serial                          3h       ; Refresh after 3 hours                          1h       ; Retry after 1 hour                          1w       ; Expire after 1 week                          1h )     ; Negative caching TTL of 1 hour ;; Name servers (The name '@' is implied);   IN NS  toystory.movie.edu.   IN NS  wormhole.movie.edu. ;; Addresses point to canonical names;1  IN PTR wormhole.movie.edu.2  IN PTR shrek.movie.edu.3  IN PTR toystory.movie.edu.4  IN PTR monsters-inc.movie.edu.

 

下面是db.192.253.253文件:

$TTL 3h;; Origin added to names not ending; in a dot: 253.253.192.in-addr.arpa; @ IN SOA toystory.movie.edu. al.movie.edu. (                          1        ; Serial                          3h       ; Refresh after 3 hours                          1h       ; Retry after 1 hour                          1w       ; Expire after 1 week                          1h )     ; Negative caching TTL of 1 hour ;; Name servers (The name '@' is implied);   IN NS  toystory.movie.edu.   IN NS  wormhole.movie.edu. ;; Addresses point to canonical names;1  IN PTR wormhole.movie.edu.2  IN PTR misery.movie.edu.3  IN PTR shining.movie.edu.4  IN PTR carrie.movie.edu.

 

下面是db.127.0.0文件:

$TTL 3h@ IN SOA toystory.movie.edu. al.movie.edu. (                          1        ; Serial                          3h       ; Refresh after 3 hours                          1h       ; Retry after 1 hour                          1w       ; Expire after 1 week                          1h )     ; Negative caching TTL of 1 hour    IN NS  toystory.movie.edu.   IN NS  wormhole.movie.edu. 1  IN PTR localhost.

 

当我们看这个新的db.movie.edu文件,你可能注意到SOANS记录中已经没有“movie.edu”了:

@ IN SOA toystory al (                          1        ; Serial                          3h       ; Refresh after 3 hours                          1h       ; Retry after 1 hour                          1w       ; Expire after 1 week                          1h )     ; Negative caching TTL of 1 day   IN NS  toystory  IN NS  wormhole 在其他的区数据文件中不能这样输入,因为他们的“源”是不同的。在db.movie.edu文件中,用这些名称代替完整的域名,所以在所有的区数据文件中NSSOA记录严格统一。
阅读(570) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~