作者:刘颖博
时间:2003-6-6
mail:liuyingbo@126.com,请指正
转载请注明出处及作者
环境
操作系统:red hat linux
内核版本:2.4.20-8
下载源代码
在Internet Software Consortium(ISC)的ftp:
ftp://ftp.isc.org/isc/bind9/9.2.2/ 下载源代码包bind-9.2.2.tar.gz
目前最高的rpm版本是9.2.1
rpm包可以下载:ftp://updates.redhat.com/7.3/en/os/SRPMS/bind-9.2.1-1.7x.2.src.rpm
解压缩包
gzip -d bind-9.2.2.tar.gz
//执行成功后生成bind-9.2.2.tar文件,bind-9.2.2.tar.gz不存在
tar xvf bind-9.2.2.tar
//执行成功后生成目录bind-9.2.2
或者tar zxvf binf-9.2.2.tar.gz
//执行成功后生成目录bind-9.2.2
编译
编译前需要确认的环境变量:
在运行./configure之间需要确认的环境变量,这几个环境变量将影响编译:(主要是确认环境变量正确性,如不存在以下环境变量,没有关系,执行./configure会自动配置)
CC
The C compiler to use. configure tries to figure out the right one for supported systems.
CFLAGS
C compiler flags. Defaults to include -g and/or -O2 as supported by the compiler.
STD_CINCLUDES
System header file directories. Can be used to specify where add-on thread or IPv6 support is, for example. Defaults to empty string.
STD_CDEFINES
Any additional preprocessor symbols you want defined. Defaults to empty string.
To build shared libraries, specify "--with-libtool" on the configure command line.
执行编译安装步骤:
./configure
//可以 ./configure --help获得帮助
//自动配置系统信息,生成一些相关文件
make all
make install
//时间比较长,同时会产生一些warning,不会产生影响
注:make clean (make superclean)
//卸装
BIND正常安装在/usr/local目录下,但可以调整通过 configure命令的—prefix参数设置,如./configure --prefix=/usr/local格式
这样就安装成功了!
配置
区数据文件(db.DOMAIN 与db.ADDR文件) 配置
SOA记录: 指示该区的权威
NS记录:列出该区的一个名子服务器
其他记录:有关该区中主机的数据,包括
A:名字到地址的映射
PTR:地址到名字的映射
CNAME:规范名字(相对于别名)
a.针对 db.DOMAIN db.ADDR文件
bind8.2版本以后使用$TTL语句设定默认的TTL(time to live生存期)的值
$TTL 86400 (或者用1D,24H等)
b. 针对db.DOMAIN db.ADDR文件
接下来就是SOA(start of authority)记录,每个db.DOMAIN
db.ADDR文件都是必须有一个也职能有一个SOA记录.我们的服务器享有对区yncnc.net的
权威,所以格式如下:
yncnc.net. IN SOA ns.yncnc.net. root.yncnc.net. (
1 ;序列号
3H ;3小时后刷新
15M ;15分钟后重试
1W ;1星期后过期
1D) ;否定缓存TTL为1天
其中IN 表示Internet
SOA后面的第一个名字(ns.yncnc.net.)是yncnc.net区的主名字服务器.第二个名字(roo
t.yncnc.net.)是管理该区的人的邮件.
c. 针对db.DOMAIN db.ADDR文件
NS(name server)记录,为我们的区的每一个权威名字服务器都添加一个NS记录
如:
yncnc.net. IN NS ns.yncnc.net.
d. 针对db.DOMAIN 文件
地址和别名记录,创建名字到地址的映射,加下列\资源记录
;
;主机地址
;A代表地址
www.yncnc.net. IN A 221.3.128.268
ns.yncnc.net. IN A 221.3.131.4
mail.yncnc.net. IN A 221.3.131.5
;
;别名
;CNAME(canonical name,规范名)
pop.yncnc.net. IN CNAME mail.yncnc.net.
pop3.yncnc.net. IN CNAME mail.yncnc.net.
smtp.yncnc.net IN CNAME mail.yncnc.net.
e. 针对db.ADDR文件
PTR记录,如下
5.131.3.221.in-addr.arpa. IN PTR mail.yncnc.net
注意:地址只能指向一个名字:规范名
上面就是完整的区数据文件中的各种资源记录
bind配置文件 ànamed.conf
注释
/**/
//
#
区数据文件的目录
option {
directory “/var/named”;
//这里放置区数据文件
}
区数据文件对应的说明
zone “yncnc.net” in {
type master;
file “db.yncnc.net”
}
配置根线索文件
zone “.” in {
type hint;
file “db.cache”
//ftp.rs.internic.net(198.41.0.6) 匿名下载domain目录最新的named.boot,改名
}
地址匹配列表ACL的语法
acl name {address_match_lists;};
blackhole子句语法,避免对一些地址作出相应
options {
/*不对私有地址作出相应*/
blackhole {
10/8;
172.18/12;
192.168/16;
}
}
建立辅名字服务器
只需将区数据文件类似于
zone “yncnc.net” in {
type master;
file “db.yncnc.net”;
}
改为
zone “yncnc.net” in {
type slave;
file “bak.yncnc.net”;
master {221.3.131.4;};
//其主域名服务器的地址
}
DNS中电子邮件 MX记录的配置
yncnc.net. IN MX 0 mail.yncnc.net
yncnc.net. IN MX 10 mail2.yncnc.net
//假设存在两个邮件服务器,其中0 ,10 是配置的优先级,值越小优先级越高
注意配置的优先级 和 必须使用规范名,不能使用别名
配置解析器
主要resolv.conf文件
search指令:搜索列表,支持8个域名
nameserver指令:查询的名字服务器的地址,最多三个
options指令:debug,ndots,attempts,timeout,rotate,no-check-names几个选项
sortlist指令:指定优先使用的子网和网络,最多十个
domain指令:指定本地域名