需要软件
bind-9.3.4-6.P1.el5
bind-utils-9.3.4-6.P1.el5
bind-chroot-9.3.4-6.P1.el5
bind-libs-9.3.4-6.P1.el5
ypbind-1.19-8.el5
caching-nameserver-9.3.4-6.P1.el5(最后安装)
此软件装完后会在
/etc/生成已下两个配置文件,并且在
/var/named/chroot/var/named/下面生成几个区域文件
-rw-r----- 1 root named 198 2008-05-21 localdomain.zone
-rw-r----- 1 root named 195 2008-05-21 localhost.zone
-rw-r----- 1 root named 427 2008-05-21 named.broadcast
-rw-r----- 1 root named 1892 2008-05-21 named.ca
-rw-r----- 1 root named 424 2008-05-21 named.ip6.local
-rw-r----- 1 root named 426 2008-05-21 named.local
-rw-r----- 1 root named 427 2008-05-21 named.zero
/etc 下面的配置文件
named.conf 没有了, 改为
了named.caching-nameserver.conf和
named.rfc1912.zones两个文件,配置有两种方法,
第一种直接设置
named.cach......conf就行老!
第二种是设置在
named.cach......conf里面,区域文件写进
named.rfc1912.zones里面。
第一种方法:
直接配置:
named.caching-nameserver.conf
options (#基本设置)
{
listen-on port 53 {
any; }; 设置监听地址,高级配置里有说明
//listen-on-v6 port 53 {
any; }; IPV6的设置,去掉不用
directory "/var/named"; 指定区域文件在什么位置
dump-file "/var/named/data/cache_dump.db"; 指定高速缓存的位置
statistics-file "/var/named/data/named_stats.txt"; 指定统计数据写入文件的位置
memstatistics-file "/var/named/data/named_mem_stats.txt";
//Forwarders{168.95.1.1;139.175.10.20;}; 这个是转发功能,如果没有就代表不转发,相当于代理DNS服务器
query-source port
53; 查询端口设置,默认是53
//query-source-v6 port
53; IPV6的 去掉不用
allow-query {
any; }; }; 允许查询,后面跟IP,这里代表全部都可以
logging
{ channel default_debug {
file "data/named.run";
severity dynamic; }; };
//view localhost_resolver 把这5行去掉
//{ match-clients { localhost; };
//match-destinations { localhost; };
//recursion yes;
//include "/etc/named.rfc1912.zones"; };
zone"." 根区域
{ type hint; 区域类型:hint 是根专用类型
file "
named.ca"; }; 区域文件的名字,不能乱取名
zone "
eo.com" 这个就是要管理的区域名,不能乱写
{ type master; 这个区域的类型是 主DNS服务器
file "
named.eo.com"; }; 定义区域文件的名字,可以乱取
zone "
1.168.192.in-addr.arpa" 区域反解,这个写法特殊,IP反起写最后加
in-addr.arpa结尾
{ type master; 同上
file "
named.192.168.1"; }; 同上
装了 bind-chroot-9.3.4-6.P1.el5软件后,区域配置文件位置变成了/var/named/chroot/var/named/,在里面新建立一个文件,名字要跟上面定义的名字一模一样才得行
名字为 named.192.168.1 (#反解)
$TTL 86400
@ IN SOA
linux.eo.com.
root.eo.com. (
1997022700 ; serial (d. adams)
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum
@ IN NS linux.eo.com.
102 IN PTR linux.eo.com.
2 IN PTR ftp.eo.com.
3 IN PTR www.eo.com.
4 IN PTR http.eo.com.
5 IN PTR xp.eo.com.
6 IN PTR w98.eo.com.
PTR代表反解的意思
这个地方的文件名也要跟上面定义的名字一样
named.eo.com (
#正解)
$TTL 86400
@ IN SOA
linux.eo.com.
root.eo.com.
(
1997022700 ; serial (d. adams)
28800 ; refresh
14400 ; retry
3600000 ; expiry
88400 ) ; minimum
@ IN NS linux.eo.com.
linux IN A 192.168.1.102
www IN A 192.168.1.3
ftp IN A 192.168.1.2
http IN A 192.168.1.4
xp IN A 192.168.1.5
w98 IN A 192.168.1.6
(1)、
$TTL 86400 ; 这个跟清除 cache 的时间有关系!单位是秒!记录在对方服务器存放的时间,
(2)、
@ 这个表示zone 定义出的那个部分!以这个文件内容为例,因为我们在 /etc/ named.cach......conf 当中就是定义出 eo.com 为一个 zone ,因此,在这个文件里边, 这个符号就代表 eo.com 这个区域
(3)、SOA 这个是 Start of Authority 开始设定内容的意思!也就是接在后面的设定要开始了!这个在每一个zone的文件中都存在!
SOA后面的中括号“(”一定要和SOA写在同一行上!切忌)
(4)、在 SOA 后面会接着两个部分,第一个为主机名称FQDN( linux.eo.com. 完整域名,其中的linux就是主机名,在/etc/sysconfig/network里面指定的),请特别留意那个小数点 (.) 这个东西很重要!他代表『一个完整的 主机名 + 域名了』! 如果没有加上 (.) 的话,那么就表示该文字『仅为 hostname ,还需要加上 domain name 』! 这里是新手最容易出现的错误!
第二个为管理员的 e-mail !因为不能使用 @ (已经是特殊符号了), 所以这里也同样的以 (.) 来取代!例如上面我以
[email protected] 来做为我的 e-mail ,所以就写成了 root.eo.com. ,同样的,最后面有个 (.) !
(5)、小刮号 ( ) 括起了五个数字,这五个数字除了minimum与 TTL 有关之外, 其它的都跟 slave 与 master 的资料同步运作有关。
Serial :这个数字仅是用来做为 master 与 slave 之间的 update 的参考数值也就是说,当 Slave 的 serial 小于 Master 时, 那么 update 才会动作!通常我们以日期时间来做为 Serial 的订定依据,例如2009年4月23日第一次设定,可以写成 『2009042301』请注意,这个数字不可超过10个数字。
Refresh :slave 多久进行主动更新的时间
Retry :如果到了Refresh 的时间,但是 slave 却无法连接到 master 时, 那么在多久之后,slave 会再次的主动尝试与主机联机;
Expire :如果 slave 一直无法与 master 连接上,那么经过多久的时间之后, 则命令 slave 不要再连接 master 了!
Minimum :这个其实就是 TTL 啦!如果您开头没有定义 TTL ,那么 TTL 的值就以这个来设定!
@ IN NS linux.eo.com.
linux IN A 192.168.1.102
写法:[区域] IN NS [主机名称]
@代表本区域,
NS后面一定要是主机名称(FQND),代表的意思是请向后面这台主机要求区域的查询。所以如果区域有两台以上的DNS服务器的话,那就必须写两个NS,而NS后面接的主机名称必须要有IP地址,因此就需要A标志了,A代表正解
第二种方法:
named.caching-nameserver.conf这个文件里面不添加任何东西,只改几个参数就可以
options (#基本设置)
{ listen-on port 53 {
any; };
//listen-on-v6 port 53 {
any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
//Forwarders{168.95.1.1;139.175.10.20;};
query-source port
53;
//query-source-v6 port
53;
allow-query {
any; }; };
logging
{ channel default_debug {
file "data/named.run";
severity dynamic; }; };
view localhost_resolver
{ match-clients { any; }; 这里要改成ANY
match-destinations { any; }; 同样改成ANY
recursion yes;
include "/etc/named.rfc1912.zones"; };表示调用 named.rfc1912.zones这个文件
在named.rfc1912.zones里面,添加区域文件,在文件最后面添加这两个区域就可以了,根区域已经在里面写好了,所以就不在写进去
zone "
eo.com" 正解
{ type master;
file "
named.eo.com"; };
zone "
1.168.192.in-addr.arpa" 反解
{ type master;
file "
named.192.168.1"; };
其他都不变,直接测试
要设置二级域名直接添加一个NS参数就可以了
比如现在域名是 eo.com,想在eo下申请一个二级域名dvd (dvd.eo.com)
就在
named.eo.com这个文件里面最下边添加两条命令
dvd IN NS dvd.eo.com 意思是说DVD这个区域交给
dvd.eo.com主机管理
dvd IN NS 192.168.1.* DVD主机IP是多少,这个IP为二级域名DNS的IP
(上面是鸟哥说的,可能不正确,下面是正在研究的)
子域授权
在父域配置如下:
[root@redhatlinux9 root]# vi /var/named/brus.net.zone
添加如下配置:
abc 1D IN NS ns.abc (
全称为ns.abc.brus.net)
ns.abc 1D IN A 10.0.0 .100
即把abc.brus.net这个子域授权给主机ns.abc.brus.net管理,IP地址为 10.0.0 .100
在要设置为子域服务器 10.0.0 .100上设置:
[root@redhatlinux9 root]# vi /etc/named.conf #
在此配置文件上添加被授权的zone
zone "abc.brus.net" IN {
type master
; #指定为MASTER类型
file "abc.brus.net.zone"
; 文件名可随便取,好记就行
[root@redhatlinux9 root]# vi /var/named/abc.brus.net.zone
$TTL 86400
@ 1D IN SOA @ root.abc.brus.net (
42 3H 15M 1W 1D )
1D IN NS ns.abc.brus.net. (
也可简写为ns)
ns 1D IN NS 192.168.0.100
www 1D IN NS 192.168.0.111
这里的@代表的是zone定义的域abc.brus.net
辅助域名服务器
主服务器地址为192.168.0.1,辅服务器为192.168.0.2,在0.2这台主机上配置就可以了
[root@redhatlinux9 root]# vi /etc/named.conf
添加如下配置:
zone “xyz.com” IN {
type slave
;
file “xyz.com.zone”
;
masters { 192.168.0.1
; };
}
;
高级配置选项
Opions {
Forwarders { 218.40.18.30
; };
配置转发
allow-transfer { 192.168.1.100
;};
允许更新的辅DNS,也可在zone区里设
allow-query { 192.168.1.0/24;}; 允许查询的IP地址/网段,此参数可设置在区域文件里面, 例: options { directory “/var/named”; allow-query 202.96.44.0/24; }; zone “263.net” In { type master; file “db.263.net”; allow-query { any;}; }; zone “qq.com.cn” In { type master; file “db.capital-online”; allow-query { any;}; 在这个例子中,多次使用了allow-query命令,因为位于zone命令中的allow-query优先级别高于options命令中的allow- query,所以,此配置允许任何主机查询授权域263.net和qq.com.cn,只允许指定网络 202.96.44.0/24上的主机查询外部的非授权域。
|
recursion yes;
设置开启递归查询 或者no,默认也是递归
listen-on port 53{192.168.1.102;};
如果DNS服务运行在有多个网卡的服务器上,那么默认的它会在所有网卡接口上监听服务,这个选项告诉它只在指定的接口上进行监听
allow-recursion { 206.168.119.176/29; };
设置递归查询的IP地址作出限制,如果递归查询请求来自不允许的IP地址,则BIND服务器软件将此查询以非递归查询对待
}
;
在正解区域文件
name.eo.com里面的最下面输入,一定要是最下面
eo.com. IN A 192.168.1.102
表示不输入主机名,直接输入域名就能提供访问,就是
直接解析域名,
baidu.com
如果输入的是
* IN A 192.168.1.102
就是说,主机名的地方用*号代替,表示 任意主机名.eo.com 都能提供访问,
比如: adeg.eo.com rddfg.eo.com 都能访问到IP指定的主机上面去,这就是
泛域名
RNDC 管控,请看下一章 :)
更详细的请参考:[url]http://redking.blog.51cto.com/27212/132377[/url]
本文出自 “eo” 博客,谢绝转载!