named.conf;zone;view;type master;
http://sanyu.blog.51cto.com/7339300/1304062
地址规划:
二、修改配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
[root@ns1 ~] # cat /etc/named.rfc1912.zones // 定义内网、电信网络、联通网络所在网段 acl innet { 172.16.0.0 /16 ; 127.0.0.0 /8 ; }; acl telecom { 202.111.0.0 /16 ; }; acl unicom { 202.110.0.0 /16 ; }; // 内网视图 view innet { match-clients { innet; }; zone "." IN { type hint; file "named.ca" ; }; zone "localhost.localdomain" IN { type master; file "named.localhost" ; allow-update { none; }; }; zone "localhost" IN { type master; file "named.localhost" ; allow-update { none; }; }; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; file "named.loopback" ; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback" ; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty" ; allow-update { none; }; }; zone "sanyu.com" IN { type master; file "innet.sanyu.com.zone" ; }; zone "100.1.202.in-addr.arpa" IN { type master; file "innet.100.16.172.in-addr.arpa" ; }; }; // 电信视图 view telecom { match-clients { telecom; }; zone "sanyu.com" IN { type master; file "telecom.sanyu.com.zone" ; }; zone "100.111.202.in-addr.arpa" IN { type master; file "telecom.100.111.202.in-addr.arpa" ; }; }; // 联通视图 view unicom { match-clients { unicom; }; zone "sanyu.com" IN { type master; file "unicom.sanyu.com.zone" ; }; zone "100.110.202.in-addr.arpa" IN { type master; file "unicom.100.110.202.in-addr.arpa" ; }; }; |
删除第11,12,17行
上述过程脚本化实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
#!/bin/bash yum -y install bind bind-utils cat > /etc/named .rfc1912.zones <<END acl innet { 172.16.0.0 /16 ; 127.0.0.0 /8 ; }; acl telecom { 202.111.0.0 /16 ; }; acl unicom { 202.110.0.0 /16 ; }; view innet { match-clients { innet; }; zone "." IN { type hint; file "named.ca" ; }; zone "localhost.localdomain" IN { type master; file "named.localhost" ; allow-update { none; }; }; zone "localhost" IN { type master; file "named.localhost" ; allow-update { none; }; }; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; file "named.loopback" ; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback" ; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty" ; allow-update { none; }; }; zone "sanyu.com" IN { type master; file "innet.sanyu.com.zone" ; }; zone "100.1.202.in-addr.arpa" IN { type master; file "innet.100.16.172.in-addr.arpa" ; }; }; view telecom { match-clients { telecom; }; zone "sanyu.com" IN { type master; file "telecom.sanyu.com.zone" ; }; zone "100.111.202.in-addr.arpa" IN { type master; file "telecom.100.111.202.in-addr.arpa" ; }; }; view unicom { match-clients { unicom; }; zone "sanyu.com" IN { type master; file "unicom.sanyu.com.zone" ; }; zone "100.110.202.in-addr.arpa" IN { type master; file "unicom.100.110.202.in-addr.arpa" ; }; }; END cat > /var/named/innet .sanyu.com.zone <<END \$TTL 600 @ IN SOA ns1.sanyu.com. admin.sanyu.com. ( 2013080808 2H 10M 3D 1D ) IN NS ns1 IN MX 10 mail ns1 IN A 172.16.100.53 mail IN A 172.16.100.53 bbs IN A 172.16.100.81 shop IN A 172.16.100.43 END cat > /var/named/innet .100.16.172. in -addr.arpa<<END \$TTL 600 @ IN SOA ns1.sanyu.com. admin.sanyu.com. ( 2013080808 2H 10M 3D 1D ) IN NS ns1.sanyu.com. 53 IN PTR ns1.sanyu.com. 53 IN PTR mail.sanyu.com. 81 IN PTR bbs.sanyu.com. 43 IN PTR shop.sanyu.com. END sed s /172 .16.100.[0-9].* /202 .111.100.100 /g /var/named/innet .sanyu.com.zone >> /var/named/telecom .sanyu.com.zone sed 's/^[0-9].\{1,3\}/100/g' /var/named/innet .100.16.172. in -addr.arpa >> /var/named/telecom .100.111.202. in -addr.arpa sed s /172 .16.100.[0-9].* /202 .110.100.100 /g /var/named/innet .sanyu.com.zone >> /var/named/unicom .sanyu.com.zone sed 's/^[0-9].\{1,3\}/100/g' /var/named/innet .100.16.172. in -addr.arpa >> /var/named/unicom .100.110.202. in -addr.arpa chgrp named /var/named/ *.sanyu.com.zone /var/named/ * in -addr.arpa chmod 640 /var/named/ *sanyu.com.zone /var/named/ * in -addr.arpa sed -i /listen-on/d /etc/named .conf sed -i '/zone "." IN/,/^$/d' /etc/named .conf sed -i /allow-query/d /etc/named .conf service named start chkconfig named on |
本文出自 “非马梦衢” 博客,请务必保留此出处http://sanyu.blog.51cto.com/7339300/1304062
http://evanlinux.blog.51cto.com/7247558/1382049
目标:
1.成功搭建主从DNS服务器,实现正向反向解析
2.主DNS服务器只允许从DNS服务器的区域传送的请求,而从DNS服务器不能进行区域传送
3.域名解析请求的转发
4.acl和view的使用
Master DNS Server:192.168.0.22
Slave DNS Server:192.168.0.23
解析的域为 flyence.com
一. 搭建主DNS服务器
1. 安装bind
1
|
yum install bind –y |
2. 启动named服务
1
|
Service named start |
3.修改主配置文件/etc/named.conf,将下列3行注释
1
2
3
|
// listen-on port 53 { 127.0.0.1; }; // listen-on-v6 port 53 { ::1; }; // allow-query { localhost; }; |
4. 编辑/etc/named.rfc1912.zones,建立正向解析区域
1
2
3
4
|
zone "flyence.com" IN { type master; file "flyence.com" ; }; |
5.建立/var/named/flyence.com文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$TTL 600 @ IN SOA dns.flyence.com. admin.flyence.com. ( 2014032301 ; serial 2H ; refresh (2 hours) 10M ; retry (10 minutes) 7D ; expire (1 week) 2H ; minimum (2 hours) ) IN NS dns IN NS dns2 ;辅助DNS服务器的IP地址 IN MX 10 mail dns IN A 192.168.0.22 dns2 IN A 192.168.0.23 mail IN A 192.168.0.100 www IN A 192.168.0.101 www IN A 192.168.0.102 music IN CNAME www |
6.修改/var/named/flyence.com文件属性
1
2
|
chmod 640 /var/named/flyence .com chown :named /var/named/flyence .com |
7. 编辑/etc/named.rfc1912.zones,建立反向解析区域
1
2
3
4
|
zone "0.168.192.in-addr.arpa" IN { type master; file "192.168.0" ; }; |
8. 创建/var/named/192.168.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$TTL 600 @ IN SOA dns.flyence.com. admin.flyence.com. ( 2014032301 2H 10M 7D 2H ) IN NS dns.flyence.com. IN NS dns2.flyence.com. 22 IN PTR dns.flyence.com. 23 IN PTR dns2.flyence.com. 100 IN PTR mail.flyence.com. 101 IN PTR www.flyence.com. 102 IN PTR www.flyence.com. |
9. 修改/var/named/192.168.0文件属性
1
2
|
chmod 640 /var/named/192 .168.0 chown :named /var/named/192 .168.0 |
10. 重新载入配置文件并测试
1
|
rndc reload |
11. 测试
二. 搭建辅助DNS服务器
1. 安装bind
1
|
yum install bind –y |
2. 启动named服务
1
|
Service named start |
3.修改主配置文件/etc/named.conf,将下列3行注释
1
2
3
|
// listen-on port 53 { 127.0.0.1; }; // listen-on-v6 port 53 { ::1; }; // allow-query { localhost; }; |
4. 编辑/etc/named.rfc1912.zones,建立正向及反向解析区域
1
2
3
4
5
6
7
8
9
10
|
zone "flyence.com" IN { type slave; file "slave/flyence.com" ; masters { 192.168 . 0.22 ; }; }; zone "0.168.192.in-addr.arpa" IN { type slave; file "slave/192.168.0" ; masters { 192.168 . 0.22 ; }; }; |
5.重新读取主DNS服务器配置文件
1
|
rndc reload |
6.测试
三. 配置allow-transfer
1. 主DNS只允许从DNS服务器的区域传送请求
在/etc/named.rfc1912.zones
1
2
3
4
5
6
7
8
9
10
|
zone "flyence.com" IN { type master; file "flyence.com" ; allow-transfer { 192.168.0.23; }; }; zone "0.168.192.in-addr.arpa" IN { type master; file "192.168.0" ; allow-transfer { 192.168.0.23; }; }; |
2.测试,从本机请求完全区域传送
3. 辅助DNS服务器不允许任何人的区域传送请求
1
2
3
4
5
6
7
8
9
10
11
12
|
zone "flyence.com." IN { type slave; file "slaves/flyence.com" ; masters{ 192.168.0.22; }; allow-transfer{ none; }; }; zone "0.168.192.in-addr.arpa" IN { type slave; file "slaves/192.168.0" ; masters{ 192.168.0.22; }; allow-transfer{ none; }; }; |
4.测试,从本机请求完全区域传送
四. 域名解析请求的转发
当前在辅助DNS服务器向主DNS服务器请求解析“baidu.com.”的时候,是不能得到结果的
首先要保证转发请求的服务器必须为请求者提供递归查询,默认是开启的。
查看/etc/named.conf中的options选项中应该有一项是
1
|
recursion yes; |
没有的话就加上。
1. 在主DNS服务器的/etc/named.conf中的options中加上两行
1
2
|
forwarders { 192.168.0.1; }; forward only; |
注意在这里forwarders中的IP因人而异,是你要将请求转发至的服务器
2. 建立解析域zone=,可以建立在/etc/named.conf或在/etc/named.rfc1912.zones里。这次实验将它建立在/etc/named.conf中。
1
2
3
4
5
|
zone "baidu.com." IN { type forward; forwarders{ 192.168.0.1; }; forward only; }; |
3. 重读配置文件,并在辅助DNS服务器上测试。
1
|
rndc reload |
五. 使用acl访问控制
在第三步中,对allow-transfer进行了设定,在这里可以使用acl来进行组设定
1. 在/etc/named.conf的最上方添加acl
1
2
3
4
|
acl allowaxfr { 192.168.0.22; 192.168.0.23; }; |
2. 在/etc/named.rfc1912.zones中修改allow-transfer
1
2
3
4
5
|
zone "flyence.com" IN { type master; file "flyence.com" ; allow-transfer { allowaxfr; }; }; |
在反向解析中也这样修改。
3. 重读配置文件并测试
这次允许本机和辅助DNS进行完全传送
六. 使用view实现智能DNS解析
当使用view时,所有区域都必须在view中,包括根。则在/etc/named.conf中的根域必须搬到到/etc/named.rfc1912.zones中。
具体的用法
1
2
3
4
5
6
|
view VIEW_NAME { match-clients{ .. }; zone ".." IN { ... }; } |
192.168.0.23/32请求mail.flyence.com的IP时,显示192.168.0.100
其他所有主机请求mail.flyence.com的IP时,显示192.168.0.200
1. 将/etc/named.conf中的根域移动到/etc/named.rfc1912.zones中,并使用view
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
view "view1" { match-clients{ 192.168.0.23 /32 ; }; zone "." IN { type hint; file "named.ca" ; }; zone "localhost.localdomain" IN { type master; file "named.localhost" ; allow-update { none; }; }; zone "localhost" IN { type master; file "named.localhost" ; allow-update { none; }; }; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.a rpa" IN { type master; file "named.loopback" ; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback" ; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty" ; allow-update { none; }; }; zone "flyence.com" IN { type master; file "flyence.com" ; }; zone "0.168.192.in-addr.arpa" IN { type master; file "192.168.0" ; }; }; view "view2" { match-clients{ any; }; zone "flyence.com" IN { type master; file "flyence2.com" ; }; }; |
2. 复制/var/named/flyence.com为/var/named/flyence2.com,并将mx的A记录改为192.168.0.200
1
|
cp /var/named/flyence .com /var/named/flyence2 .com |
3. 修改/var/named/flyence2.com的权限和属组
1
2
|
chmod 640 /var/named/flyence2 .com chown :named /var/named/flyence2 .com |
4. 重读配置文件并进行测试
1
|
rndc reload |
在192.168.0.23上
在192.168.2.134上测试
本文出自 “footage of linux” 博客,请务必保留此出处http://evanlinux.blog.51cto.com/7247558/1382049
http://www.tuicool.com/articles/6FFFzq
主DNS配置从服务器:
我们知道,DNS服务器在网络服务中可能出现故障当机等状况,会导致DNS服务瘫痪,显然在实际的网络应用中我们不希望出现这种状况,所有我们就要配置从服务器来在主DNS服务器出现故障时代替他来工作,然而作为价格昂贵的服务器本身你又不希望出现这种极大的浪费,所有从服务器在实际工作中是和主服务器共同分担DNS解析任务的,这样既解决了服务器故障导致的问题,还可以缓解DNS服务器的压力。
那么要配置一个从服务器我们又该怎么做呢?
前提:我们要为本地配置一个从服务器aolens2。从服务器的IP 172.16.249.125
所以aolens2中也需要安装bind,zone,但无需解析库,可以直接去主服务器去同步。
1)首先,我们需要在主服务器配置文件中(/etc/named.conf)配置一个从服务器的定义
先去域名注册商(.com)哪里添加一个NS记录,指向从服务器节点。并添加到父域 的解析库中。
还需要在本地回应上级的NS记录,保持一致。主服务器中配置/var/named/aolens.com.zone文件。是主服务器的配置文件。
为什么要添加多个NS呢?那是应为主服务器发生变化时只通知NS定义的节点。要使从服务器得到同步就需要添加NS记录。
改变以后,版本号需要改变。。。
zone "ZONE_NAME" IN{ type slave; file "slaves/ZONE_NAME.zone"; master{ 172.16.249.138; }; }
2)为从服务器提供解析库
从服务器的解析库不是自己定义的,而是主服务器定义,自己去从主服务器上同步过来,不能手动修改和创建。
而Linux又有一种特性:只有管理员才能使用小于1024的端口。
所有 named的启动方式:是由root启动,启动完成后切换为以named系统用户的身份运行。
然而我们可以看到,/var/named/目录的权限在named用户下是没有写权限的,而为了安全我们又不能为named目录添加写权限,那怎么办呢?
实际上,从服务器从主服务器上同步数据时不是直接放到/var/named/目录下的,而是放在/var/named/slaves/目录下。可以看到slaves是具有写权限的哦!
3)DNS从服务器在去主服务器同步数据时,我们首先要保证时间同步
所有我们首先要有一个时间服务器,最好将时间服务器直接指向网络上的时间服务器,以确保时间的准确。
我们实验的环境中时间服务器放在172.16.0.1上,我们便去同步一下本机的时间。
ntpdate 172.16.0.1
或者crontab服务,每隔3分种同步一次。
*/3 * * * * /usr/sbin/ntpdate 172.16.0.1 &> /dev/null
其二:要保证二者的版本号相同或者从服务器的版本号比主服务器的版本号高,以便兼容主服务器的功能。
4)为从服务器安装bind
编辑从服务器的主配置文件 /etc/named.conf
named-checkconf检测是否有错误!
启动服务!
service named start 第一次启动会创建 /etc/rndc.key 文件。如果卡拿了需要获取熵池中的随机说或者指定/dev/urandom
rndc.key文件也可以自己手动生成:rndc-confgen
自己生成还需要修改权限为640,属组为named
ss -tunl 查看是否监听在53号端口。
同时确保防火墙是关闭的,应为防火墙默认是拒绝53号端口的
iptables -L查看防火墙规则
iptables -L 清除防火墙规则
service iptables stop停止防火墙。
到此时,从服务器的环境配置就ok了。
5)配置从服务器的区域了
打开从服务器的主配置文件 /etc/named..rfc1912.zones
named-checkconf检测有无错误;
确保有 /var/named/slaves/ 目录。
前边我们已经启动了,现在用rndc reload加载就可以了。
启动成功后我们就会发现, /var/named/slaves/目录下就会有我们主服务器的解析库文件,aolens.com.zone
dig -t A www.aolens.com @127.0.0.1 测试一下
OK!
如果修改主服务器的配置,需要先配置主服务器,修改序列号,rndc reload 加载。
从服务器就可以获取到了。
6)添加反解zone。
配置文件1.16.192.zone也修改为。
版本号修改:
service named restart 重启named服务
从服务器上就可以反解出主服务器的名字了。
查询正向NS记录
dig -t NS aolens.com @172.16.249.138
反向查询NS记录。
dig -t NS 249.16.172.in-addr.arpa @172.16.249.138
dig -t AXFR aolens.com @172.16.249.138 :获取所有节点
7)如果单单这样就可以获取服务器数据那就太危险了,别人可以通过模拟从服务器IP的方式获取主服务器的数据。所以我们要控制主服务器,让他只能同步给从服务器,而从服务器给谁都不同步。这样就相对安全了很多。
在bind中有内置的acl(访问控制列表)
none:表示死所有都不同步
any:表示所有都同步
localhost:只给本机同步
localnet:给同步给同网络
allow-update:允许更新
allow-transfer { ip; ip; ip; ... }; none|any|localhost|localnet 都是allow-transfer的参数
我们该从服务器的配置文件vim /etc/named.rfc1912.zone中添加allow-transfer { none; };表示不允许任何人同步
结果:rndc reload 加载后在主从服务器上都是无法同步的。
而主服务器则需要让从服务器同步:
配置文件vim /etc/named.rfc1912.zone
主服务器同步自己
从服务器同步主服务器:
即使这样IP以明文的方式传输还是很危险,所以,实际应用中是以加密IP 的方式发送密钥去请求,而接受服务器也是接受密钥来解析的。
所以我们建设的区域一般是不允许任何人更新的。需要在我们自己创建的zone中加上allow-update { none; };
/etc/named.rfc1912.zones
DNS的权限控制就这样配置了,
8)我们前边用了那么多rndc命令,那我们来了解一下rndc命令。
rndc reload:装在配置文件
rndc reload zone [class [view]] :装在一个区域。
rndc retransfer zone [class [view]]:让主服务器重新给从服务器发送数据的,执行端在从服务器
rndc flush :清空缓存。
rndc status:显示配置详细信息
9)DNS子域创建授权
我们基于aolens.com.创建它的子域op.aolnes.com.
而子域下存在www.op.aolens.com.主机
创建子域dev.aolens.com. 主机为 www.dev.aolens.com.
向子域授权:只需要在父域的区域解析库中添加“胶水记录”,glub record
胶水记录:就是在父域的解析库中加上
子域名称 IN NS 子域的名称服务器
ops.aolens.com. IN NS ns.ops.aolens.com.
ns.ops.aolens.com. IN A 172.16.18.18
dev.aolens.com. IN NS ns.dev.aolens.com.
ns.dev.aolens.com. IN A 172.16.18.19
我们现在父域中建立子域NS配置:假如我们就只有一条
ops.aolens.com. IN NS ns.ops.aolens.com. ns.ops.aolens.com. IN A 172.16.249.125
named-checkconf 检测
rndc reload 加载
dig -t NS ops.aolens.com @172.16.249.138我们会发现无法响应,那是因为我们还没有在将子域建立起来。所以无法响应父域请求。
10)下面我们就来创建子域。
步奏呢也是先安装bind
修改/etc/named.conf文件。将无用的注释掉。
service named start 启动,并生成rndc.key文件。
启动起来后去编辑/etc/named.rfc1912.zones
添加子域空间配置。
而ops.aolens.com.zone文件需要我们自己去建立
vim /var/named/ops.aolens.zone
在子域上测试。 dig -t A www.ops.aolens.com @172.16.249.125
我们的测试主机是没有在网上注册的,所以子域去根解析出来的不是本服务器。那么我们能不能告诉子域,遇到这个服务器后直接去父域请求,由父域给解析。
所以子域就作为转发器来工作。
11)转发器转发非本机负责的区域的请求至指定的DNS服务器。
配置/etc/named.conf
添加 options {
...
forward {only|first}; only表示告诉没答案就相信, first没答案自己去找。
forwarders { IP; };
}
递归白名单:
allow-recursion {}; :允许谁来我这递归。一般必须包含主机IP
recursion yes:表示允许任何人递归。
编辑子域的/etc/named.conf 在options中添加
在子域dig -t A www.aolens.com @172.16.249.138
然而你本地可以解析一个外部域名,而你的子域的主机不一定也可以解析,那么作为服务器的作用就是帮助本地主机解析外部主机域名,所以我们的服务器配置中forwarders中应该指向一个可以联接外部网络的IP,将主机的请求转发出去。
配置转发区域:指定转发(你请求aolens.com给你转发,其他的请求不给转发。),其他的自己去找。
zone “aolens.com”IN { ---------定义转发
type forward;
forward only|first; ---------定义仅转发,还是转发找不到则自己找。
forwraders { ip; }; ---------指定转发的IP
}
12)bind 的acl访问控制列表。
bind内置的acl:nona ,any , localhost, localnet.
acl的自定义:
acl acl_NAME {
IP;
IP;
}
例如:acl localnetwork { 172.16.0.0/16; 192.16.0.0/24; }
任何调用的localnetwork的都是定义的主机。而acl需要先定义才能使用,所以要放在/etc/named.conf文件的最上方。
13)bind view 视图:
功能:由于主机解析查询时会轮询使用解析到的服务器,而bindview则根据客户端的来源不同,将同一个名称解析至不同的值,不做轮询。
鉴于我国的各地既有联通网络,又有电信网络,而联通电信之间的连接靠的是北京机房的中转,那么可以想象,如果你处在电信网络下,向联通服务器发起请求的速度会有多慢。为了解决这种状况,边出现了bind view 这种功能,让联通用户至访问联通服务器,电信只访问电信。这样速度就会快很多了。
格式:
view VIEW_NAME {
match-clients { 客户端地址,如果客户端很多,则用cal定义 ; }; ------》说明本view对应那些客户端的
zone " " IN {
};
};
不同的zone可以定义多个view来定义不同网络,
match-clients {any;};
下面我们来配置view
首先将/etc/named.conf中的
zone "." { type hint; file "named.ca"; };
这四行剪贴到/etc/named.rfc1912.zones中,
将里面所有的zone都括起来,下边我用zones.*来代表文件里边所有的zone配置数据。
view ints {
match-clients { 172.16.0.0/16; 127.0.0.1; };
zone "." {
type hint;
file "named.ca";
};
zone.*
}; --------------->里边是配置了的zone
view outs {
match-clients { any; };
zone "aolens.com" IN {
type master;
file "aolens.com.outs";
};
};---------------------->代表除了上边配置的,其他的都是在这个zone中。
named-checkconf检测是否有错误
cd到/var/named/下创建aolens.com.outs
该其属组为named,权限为640
然后找一个IP地址段不为定义段的主机,我们实验用
dig -t A www.aolens.com @172.16.249.138 可以看到,解析出来的地址为11.11.11.11
使用view注意事项:
1、通常只为内网客户端提供递归功能,提供根区域等;
2、通过只为外网客户端提供本机所负责的区域的解析;
http://blog.ifeng.com/article/27110027.html
DNS相关,及在bind9中view视图的使用方式 起源: ChinaUnix博客 日期:2007.06.10 15:32 (共有条评论)
A.DNS原理
这里就是域名解析进程,想要具体懂得,可以通过抓DNS包,我只貌似抓到了一个恳求包,然而应答包灭有抓到,我这里有DNS包的字段,谁有兴致咱们一起研讨一下>_
B.bind软件相干
rpm -qa bind*
bind-utils-9.3.3-7.el5
bind-chroot-9.3.3-7.el5
bind-9.3.3-7.el5
bind-libs-9.3.3-7.el5
注意:rhel5就提供这么多少个包,和4有点不同,并且没有/etc/named.conf文件,起因鬼才知道。
那么这些东西都是做什么的呢?
rpm -ql bind-utils-9.3.3-7.el5
/usr/bin/dig
/usr/bin/host
/usr/bin/nslookup
/usr/bin/nsupdate
留神:我所列出的不包含man文档中的文件
这个包给出的是一些用于节制DNS服务器的命令。
rpm -ql bind-chroot-9.3.3-7.el5
/var/named/chroot
/var/named/chroot/etc
/var/named/chroot/var
/var/named/chroot/dev
/var/named/chroot/var/named
/var/named/chroot/var/named/data
/var/named/chroot/var/named/slaves
/var/named/chroot/var/run
/var/named/chroot/var/run/named
/var/named/chroot/var/tmp
这个其实就是树立chroot文件和他的子文件夹,我们可以在DNS可能进行准确解析的情形下来研究一下各个目录有什么变更,这个以后再说。
rpm -ql bind-libs-9.3.3-7.el5
这个就不列出来,都是库文件。
rpm -ql bind-9.3.3-7.el5
/etc/dbus-1/system.d/named.conf
/etc/logrotate.d/named
/etc/rc.d/init.d/named
/etc/sysconfig/named
/usr/sbin/bind-chroot-admin
/usr/sbin/dns-keygen
/usr/sbin/dnssec-keygen
/usr/sbin/dnssec-signzone
/usr/sbin/lwresd
/usr/sbin/named
/usr/sbin/named-bootconf
/usr/sbin/named-checkconf
/usr/sbin/named-checkzone
/usr/sbin/nameGetForwards
/usr/sbin/nameSetForwarda
/usr/sbin/rndc
/usr/sbin/rndc-confgen
/var/named
/var/named/data
/var/named/slaves
/var/run/named
这里还有一些是doc和man的文档,里面有例子,先容的很详细,这些例子都比较好用强烈倡议去看。Bv9arm文档是bind的手册,我是没有时光看了,有兴趣的可以搞。
问题:为什么没有我们需要配置的/etc/named.config文件?只有一个相似的/etc/dbus-1/system.d/named.conf,不过他不是,自己创建吧(真麻烦...)
PS:我们从这些乱78遭的文件和命令中得到什么东西呢?最少知道一些和bind有关的命令,还有bind所属的文件夹,还有就是或者我们的服务无奈启用的时候,是不是少了那个软件包的某某文件。。。再说,了解软件不是什么坏事件。
C:体系中的named服务
这个货色波及shell,以后再说,不能放过他的。
D:配置named服务.
我们要自己做域名解析,不是托管。
假设我们有一个局域网,一个用做DNS服务器的主机,3个服务器web,mail,ftp
想想看我么请求什么?
1,我们需要一个静态IP,他是在网路上地址。(现在是我们只用一台主机做DNS)
2,如果需要长时间并且对外供给mail,ftp,web服务,那么我们还需要3个静态IP,一个服务器一个。
3, 局域网内的机器,可以解析到外网。
4,外网用户可以解析到我们的web,mail,ftp.但是他不可以解析到我们局域网的主机
5,我们需要一个域名caterpillar.com
6, 我们只管理一个档次。恩,我不晓得这种说法是不是确实,但是意思就是我们只治理一个域,域下面没有其余的域。(这个说法我也不断定。)对这个比拟通的同窗盼望可以说明一下。
画图
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7,www.gyfp5678.com; this.alt='Click here to open new windownCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new windownCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('');}" onmousewheel="return imgzoom(this);" alt="" />
新买的电脑还没有装word.
我忘记了画DNS主机的局域网接口:地址是192.168.0.254
局域网内IP为192.168.0网段,主机名分辨为karon,xeno,和mars
DNS静态IP为123.66.88.254,主机名为ns1.
FTP静态IP为123.66.88.1, 主机名为ftp
MAIL静态IP为123.66.88.2,主机名为mail
WEB静态IP为123.66.88.3,主机名为web
下面我们配置named.conf
曾经和刘醒基同学探讨过bind中view的应用,当初就用view来写,view把系列的zone联合到一起来实现功能,是很有趣的东西。我用的是RHEL5,貌似和4有一点不同,不过原理一样。
我们一段一段的来,并且要很细,便于以后翻阅>_
option {
directory "/var/named"; 默认路径
dump-file "/var/named/data/cache_dump.db"; 这里不写错,只有你用绝对路径的时候才会被加上默认门路
startistice-file "/var/named/data/named_stats.txt"; 同上
};
option选项有良多.不用照这书抄,不写的项采取默认的就可以了。
我们只写这一段,而后named-checkconf.
Y~~竟然胜利,这个猪头命令只检查语法,并且他只检讨/etc/named.conf文件,还有,只写一个option,居然发明named服务可以启用,晕,他也是猪头服务,看了一下rc中named的启动脚本,果然和内容没有任何关系。
acl "caterpillar's lan"{
127.0.0.1; 192.168.0.0/24;
};
创立一个拜访把持列表,定义的这个列表当前会用到。
我们需要知道的是,caterpillar's lan是一个名字罢了,起什么都可以,127.0.0.1是本机。192.168.0.0/24表现我们的局域网,
以后就可以用caterpillar's lan来代表我么的主机和局域网了。
注意:
地址列表可以用any,none,localnets,localhost.
any:任何主机
none:不匹配任何主机
localhost本地主机
localnets本地网络所有主机
还有,这里的地址是IPv4的地址,ipv6目前还不支撑呢。
controls {
inet 127.0.0.1 allow { localhost; };
};
这个语句东西写成这个样子实在没用,你不写的时候默认也是这样的,
inet是监听在127.0.0.1上面的一个控制通道的socket接口,而allow则肯定了掌握通道的才能,这里是容许本机主机。
view "inside" {
match-clients { "caterpillar's lan"; };
recursion yes; 这里表示在这个view中的所有请求,开启递归查问。
zone "." IN { IN为类,如果你不写,那么默认的就是IN类。
type hint; hint,这个么是根服务器的特别类型。
file "name.ca"; 文件在name.ca下。
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "caterpillar's arpalan.db";
}; 这个是对本机请求的反向解析。
zone "z-caterpillar.com" {
type master; 这个表示是在本机进行解析的。
file "db.caterpillar.com.inside";
allow-transfer { 192.168.0.2 }; 这个是域传输控制选项。
};
};
view这个东西功能是zone的一个聚集,方便管理zone,如果你一个view都没有的话,那么他们是属于一个view的,根本可以这么懂得。他可以宰割DNS,恰是这个功能才干让我们便利的实现入站和出站的不同管理。
看看他要实现的功效:
可以对本机所在的所有机器发出的请求进行解析,另外,本机的主机可以进行逆向解析。
恩 就这些。
那么依据域名解析过程。
我们这台DNS必定要可以到根服务器, 所以zone .必需存在,zone 0.168.192.in-addr.arpa 用来实现逆向解析,zone "caterpillar.com"用来对请求进行解析。
view "outside" {
match-clients { any; }; 此视图对应任何主机,一定要放在inside的后面,这样acl中定义的主机就会先看到inside里面的zone.
recursion no; 这里把递归关掉,也就是说,我们的这台主机对外来用户的非本地请求疏忽,我自己的域名我解析,你到我这里来查163?靠,想的美。门都没有,我又不是根服务器。
zone "." IN {
type hints;
file "name.ca";
} 每个view必须有zone "."
zone "caterpillar.com" { caterpillar.com的zone.
type master;
file "db.caterpillar.com.outside";
allow-transfer { 123.66.88.2; };
};
这个和上一个类似,但是没有反向解析域,至于为什么这么做。外网用户我们不许可他反向解析到我们,所以不需要反项解析域。
基础OK,和书上不同的是少logging,不过这没有关联。
现在我们来看看,相关的区域文件怎么写。
name.ca 这个能够去下载,不须要自己写。
db.caterpillar.com.inside
$TTL 86400
@ INSOA ns1.caterpillar.com.zhaoliang.caterpillar.com. ( 2007060901;28800;14400;3600000;86400; )
主受权记载,这个不必说了,条件是我有一个zhaoliang@caterpillar.com的邮箱,在我本人的mail服务器上。后面跟课堂上的有点不同,不外是一样的。别忘却每次修正都要更新序列号。
@ INNSns1.caterpillar.com.
这句话的意思是,@域名的DNS服务器是ns1.caterpillar.com,那么他的IP是多少呢?下面有>_
@ MX10mail.caterpillar.com.
这个的意思是说,有@域名的邮件统统给我扔到mail.caterpillar.com.上去,那么他的IP是多少呢,下面同样有。其实这个就是邮件路由啊>_
ns1INA 192.168.0.254
??,DNS服务器的地址不是123.66.88.254么?怎么可以用这个。别忘了我们这个view仅仅处置本机要求,用接在局域网上网卡的IP是最快的。
mail IN A 123.66.88.2
ftpINA 123.66.88.1
webINA 123.66.88.3
差别一下,以上的部门是为本地的对外请求提供服务。也许你感到把服务器和客户机放在一个LAN里比较好,但是我认为那不直观。
karon IN A 192.168.0.1
xeno INA 192.168.0.2
mars INA 192.168.0.3
以上的局部是对内请求服务的。
好了OK了
db.caterpillar.com.outside
$TTL 86400
@ INSOA ns1.caterpillar.com. zhaoliang.caterpillar.com. ( 2007060901;28800;14400;3600000;86400; )
@ INSNns1.caterpillar.com.
@ MX10mail.caterpillar.com.
ns1INA 123.66.88.254
这里就需要用到外网的IP了
mail IN A 123.88.66.2
ftpINA 123.88.66.1
webINA 123.88.66.3
为什么没有本机的?这个view是对外网查询的,我不爱好他知道本地局域网的IP地址。
caterpiller's arpalan.db
$TTL
@ INSOA ns1.caterpillar.com. zhaoliang.caterpillar.com. ( 2007060901:28800;14400;3600000;86400; )
@ INNSns1.caterpillar.com.
1 INPTR karon.caterpillar.com.
2 INPTR xeno.caterpillar.com.
3 INPTR mars.caterpillar.com.
254INPTR ns1.caterpillar.com.
嘿嘿,搞定收工。
http://zhumeng8337797.blog.163.com/blog/static/100768914201041010364307/
基于视图的DNS解析
系统要求:AS4,DNS为系统自带的。
目的:根据来自不同网络用户的访问请求,对相同的域名解析成不同的IP,使用户可以访问离他最近的那台服务器,以增加用户的访问速度。
实现:在lidoo.com,newlido.com域中。name.conf中增加不同的视图来判断,来访者的IP是属于那个网络
所有涉及到的文件
/var/named/chroot/var/named/newlido.zone #newlido.com域在电信的解析文件
/var/named/chroot/var/named/newlido.zone.cnc #newlido.com域在网通的解析文件
/var/named/chroot/var/named/lidoo.zone.cnc #lidoo.com域在电信的解析文件
/var/named/chroot/var/named/lidoo.zone # newlido.com域在网通的解析文件
/var/named/chroot/etc/cn_ip/CHINANET #电信IP段配置文件
/var/named/chroot/etc/cn_ip/CNCGROUP #网通IP段配置文件
/var/named/chroot/etc/cn_ip/cn_isp.sh #动态更新电信、网通IP段到配置文件中的脚本,可以放在crontab中每个月或每个星期凌晨时段运行一次。
/var/named/chroot/etc/named_common.conf #公用配置文件
/var/named/chroot/etc/named.conf #主配置文件
下面是网通DNS中的相关配置文件。
编辑 /var/named/chroot/etc/named.conf
//
// named.conf for Red Hat caching-nameserver
//
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db"; #解析后的缓冲文件
statistics-file "/var/named/data/named_stats.txt";
pid-file "/var/run/named/named.pid";
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
//acl "china_netcom" { #使用acl定义包含下列IP段的是属于那个网络的。
// 61.207.0.0/16;
// 168.160.224.0/19;
// 210.51.0.0/16;
//};
include "/etc/cn_ip/CNCGROUP"; #如IP段很多的话为了界面清楚及更新方便可以定义在单独的一个文件中 (文件格式见附件)
//acl "china_telecom" {
// 202.96.0.0/16;
// 218.0.0.0/8;
// 61.151.0.0/16;
// 222.73.0.0/16;
//};
include "/etc/cn_ip/CHINANET";
view "for_cnc" { #建立对应的视图,根据来访IP的不同使用不同的解析文件(如果还需增加对不同的网络用户进行解析,可以在增加这样的视图)
match-clients { china_netcom; };
recursion yes;
include "/etc/named_common.conf"; #公用的本地解析文件 (文件见附件)
zone "lidoo.com" IN { #具体的域名解析文件
type master;
file "lidoo.zone.cnc";
allow-update { none; };
};
zone "newlido.com" IN { #具体的域名解析文件
type master;
file "newlido.zone.cnc";
allow-update { none; };
};
};
view "for_ctc_and_all" {
match-clients { china_telecom; any; }; #any代表其它未包含在定义好IP段中的所有IP
recursion yes;
include "/etc/named_common.conf";
zone "lidoo.com" IN {
type master;
file "lidoo.zone";
allow-update { none; };
};
zone "newlido.com" IN {
type master;
file "newlido.zone";
allow-update { none; };
};
};
include "/etc/rndc.key";
编辑 /var/named/chroot/var/named/lido.zone.cnc
$TTL 86400
@ IN SOA @ root.lidoo.com (
2006071701 ; serial (d. adams) #更新ID,最好每次更改DNS配置都在原有基础上增大一点
3H ; refresh #3小时更新一次本地DNS
15M ; retry #如果更新失败就在15分钟后重试
1W ; expiry #DNS缓存在1周后过期
1D ) ; minimum #最小过期为1天,即使其它地方的DNS更新了缓存中也不更新
IN NS dns1 #DNS地址域名
IN NS dns2 #DNS地址域名
IN MX 10 mail #有mail的话需要有MX 标记,数字10是权重,可以是其它数字,这里可以设置其它的带有 MX标记的名字,利用权重用来表示优先级,只有MX标记可以设置权重。
IN A 210.51.22.149 #该域默认的IP,lidoo.com
dns1 IN A 222.73.254.218 #DNS1 在上级ISP那注册的 DNS
dns2 IN A 210.51.22.149 #DNS2 在上级ISP那注册的 DNS
xbrl IN A 210.51.22.147 #目前和电信的配置文件相比就这里的IP不一样
mail IN A 61.151.244.162
www IN A 61.151.244.162
service IN A 61.151.244.166
said IN A 61.151.244.167
lidoinfo IN A 61.151.244.164
quote IN A 61.151.244.165
quote1 IN A 61.129.43.11
quote2 IN A 222.73.254.220
quote3 IN A 222.73.254.224
quote5 IN A 210.51.22.136
(要增加不同的主机名就在这里增加)
编辑 /var/named/chroot/var/named/newlido.zone.cnc
$TTL 86400
@ IN SOA @ root.newlido.com (
2006071701 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS dns1
IN NS dns2
IN MX 10 mail.lidoo.com.
IN A 210.51.22.149
dns1 IN A 222.73.254.218
dns2 IN A 210.51.22.149
www IN A 61.151.244.166
编辑 /var/named/chroot/var/named/lido.zone
$TTL 86400
@ IN SOA @ root.lidoo.com (
2006071701 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS dns1
IN NS dns2
IN MX 10 mail
IN A 222.73.254.218
dns1 IN A 222.73.254.218
dns2 IN A 210.51.22.149
xbrl IN A 222.73.249.51 #目前和网通的配置文件相比就这里的IP不一样
mail IN A 61.151.244.162
www IN A 61.151.244.162
service IN A 61.151.244.166
said IN A 61.151.244.167
lidoinfo IN A 61.151.244.164
quote IN A 61.151.244.165
quote1 IN A 61.129.43.11
quote2 IN A 222.73.254.220
quote3 IN A 222.73.254.224
quote5 IN A 210.51.22.136
编辑 /var/named/chroot/var/named/newlido.zone
$TTL 86400
@ IN SOA @ root.newlido.com (
2006071701 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS dns1
IN NS dns2
IN MX 10 mail.lidoo.com.
IN A 222.73.254.218
dns1 IN A 222.73.254.218
dns2 IN A 210.51.22.149
www IN A 61.151.244.166
附件
编辑 /var/named/chroot/etc/named_common.conf
zone "." IN {
type hint;
file "named.ca";
};
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.ip6.local";
allow-update { none; };
};
zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
编辑 /var/named/chroot/etc/cn_ip/CNCGROUP (只列部分,IP)
# /var/named/chroot/etc/cn_ip/CHINANET 内容和网通的格式是一样的。这面就不列出了。
acl "china_netcom" {
58.16.0.0/16;
58.17.0.0/17;
203.93.192.0/18;
210.13.128.0/17;
210.14.160.0/19;
210.14.192.0/19;
221.200.0.0/14;
221.213.0.0/16;
221.216.0.0/13;
222.128.0.0/14;
222.132.0.0/14;
222.136.0.0/13;
222.160.0.0/15;
222.162.0.0/16;
222.163.0.0/19;
222.163.32.0/19;
222.163.64.0/18;
222.163.128.0/17;
};
[root@dns218 cn_ip]# cat cn_isp.sh
#!/bin/sh
FILE=ip_apnic
rm -f $FILE
rm -f cn.net CNCGROUP CHINANET UNICOM CERNET OTHER
wget
http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
-O $FILE
echo "acl \"china_netcom\" {" > CNCGROUP
echo "acl \"china_telecom\" {" > CHINANET
echo "acl \"china_unicom\" {" > UNICOM
echo "acl \"china_cernet\" {" > CERNET
grep 'apnic|CN|ipv4|' $FILE | cut -f 4,5 -d'|'|sed -e 's/|/ /g' | while read ip cnt
do
echo $ip:$cnt
mask=$(cat > cn.net
NETNAME=`whois $
| sed -e '/./{H;$!d;}' -e 'x;/netnum/!d' |grep ^netname | sed -e 's/.*: \(.*\)/\1/g' | sed -e 's/-.*//g'`
case $NETNAME in
CNC)
echo -e "\t$ip/$mask;" >> CNCGROUP
;;
CHINANET|CNCGROUP)
echo -e "\t$ip/$mask;" >> $NETNAME
;;
CHINATELECOM)
echo -e "\t$ip/$mask;" >> CHINANET
;;
UNICOM)
echo -e "\t$ip/$mask;" >> UNICOM
echo $ip/$mask >> OTHER
;;
CERN|CERNET|CERBKB)
echo -e "\t$ip/$mask;" >> CERNET
echo $ip/$mask >> OTHER
;;
*)
echo $ip/$mask >> OTHER
;;
esac
done
echo "};" >> CNCGROUP
echo "};" >> CHINANET
echo "};" >> UNICOM
echo "};" >> CERNET
http://www.study-area.org/tips/bind9_view.htm
五、設定細節: - master 修改 /etc/named.conf ,內容類似如下: acl "lan" { 10.1.2.0/24; }; options { directory { "/var/named"; }; }; view "internal" { match-clients { !10.1.2.5; lan;127.0.0.1; }; // 這裡排除 slave 的另一位址 zone "." IN { type hint; file "named.root"; }; zone "my.domain" IN { type master; file "my.domain.int"; allow-transfer { 10.1.2.4; }; //允許 slave 的 primay 位址 }; }; view "external" { match-clients { any; }; recursion no; zone "." IN { type hint; file "named.root"; }; zone "my.domain" IN { type master; file "my.domain.ext"; allow-transfer { 10.1.2.5; }; //允許 slave 的 alias 位址 }; }; - slave 修改 /etc/named.conf ,內容類似如下: acl "lan" { 10.1.2.0/24; }; options { directory { "/var/named"; }; }; view "internal" { match-clients { lan;127.0.0.1; }; zone "." IN { type hint; file "named.root"; }; zone "my.domain" IN { type slave; file "slave.my.domain.int"; masters { 10.1.2.3; }; transfer-source 10.1.2.4; // 指定 primay 位址 }; }; view "external" { match-clients { any; }; recursion no; zone "." IN { type hint; file "named.root"; }; zone "my.domain" IN { type slave; file "slave.my.domain.ext"; masters { 10.1.2.3; }; transfer-source 10.1.2.5; // 指定 alias 位址 }; };
======================================================
https://awk.so/@code.google.com!/p/xbaydns/wiki/NamedConfig
Introduction
named.conf中的配置很多,我们需要满足以下要求:
- 支持分辨出访问者的来源(view)
- 组织好zone文件的目录结构(控制同一目录中的文件数量)
- 组织好各个view的认证文件(key)
- named.conf中的配置文件频繁变更的部分应被分离出来,方便传送
目录结构
/etc/namedb(named配置文件根目录)
|
+--acl(acl配置文件存储目录)
|
+--dynamic(存储动态更新的master zone目录)
|
+--master(存储手工维护的master zone目录)
|
+--slave(存储slave zone目录)
|
+--view(存储所有view的定义目录)
文件结构
named.conf
options {
// chroot相关设置
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
// These zones are already covered by the empty zones listed below.
// If you remove the related empty zones below, comment these lines out.
disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";
disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
// 否定递归请求
recursion no;
allow-transfer { 127.0.0.1; };
allow-update { 127.0.0.1; };
};
// 导入acl的定义
include "acldef.conf";
// 导入logging的定义
include "logging.conf"
acldef.conf
acldef.conf是定义了所有的acl信息。这里可以定义用户来访的区域。你可以在这里任意定义acl,比如:
acl "internal" { 127.0.0.1; };
acl "hdhost" { 10.217.24.0/24; };
如果你的acl足够的多,而且非常大,哪么应该将acl分片,放入acl子目录中。这时acldef.conf中的内容如下表示:
acl "internal" { 127.0.0.1; };
acl "hdhost" { 10.217.24.0/24; };
include "acl/cncacl.conf";
logging.conf
缺省我们什么log都记,需要时会更改为简单的方式。
logging {
category default {
_default_log;
};
channel _default_log {
file "/var/log/named.log";
severity debug;
print-time yes;
};
};
master/empty.db
$TTL 3h
@ SOA @ nobody.localhost. 42 1d 12h 1w 3h
; Serial, Refresh, Retry, Expire, Neg. cache TTL
@ NS @
; Silence a BIND warning
@ A 127.0.0.1
master/localhost-reverse.db
$TTL 3h
@ SOA localhost. nobody.localhost. 42 1d 12h 1w 3h
; Serial, Refresh, Retry, Expire, Neg. cache TTL
NS localhost.
1.0.0 PTR localhost.
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 PTR localhost.
master/localhost-forward.db
$TTL 3h
localhost. SOA localhost. nobody.localhost. 42 1d 12h 1w 3h
; Serial, Refresh, Retry, Expire, Neg. cache TTL
NS localhost.
A 127.0.0.1
AAAA ::1
defaultzone.conf
defaultzone是按照RFC的要求加入了缺省必须的zone数据
// 这里的数据会在所有的view中出现
// 根服务器指向
zone "." { type hint; file "named.root"; };
// RFC 1912
zone "localhost" { type master; file "master/localhost-forward.db"; };
zone "127.in-addr.arpa" { type master; file "master/localhost-reverse.db"; };
zone "255.in-addr.arpa" { type master; file "master/empty.db"; };
// RFC 1912-style zone for IPv6 localhost address
zone "0.ip6.arpa" { type master; file "master/localhost-reverse.db"; };
// "This" Network (RFCs 1912 and 3330)
zone "0.in-addr.arpa" { type master; file "master/empty.db"; };
// IANA Reserved - Unlikely to ever be assigned
zone "1.in-addr.arpa" { type master; file "master/empty.db"; };
zone "2.in-addr.arpa" { type master; file "master/empty.db"; };
zone "223.in-addr.arpa" { type master; file "master/empty.db"; };
// Public Data Networks (RFC 3330)
zone "14.in-addr.arpa" { type master; file "master/empty.db"; };
// Private Use Networks (RFC 1918)
zone "10.in-addr.arpa" { type master; file "master/empty.db"; };
zone "16.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "17.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "18.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "19.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "20.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "21.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "22.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "23.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "24.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "25.172.in-addr.arpa" { type master; file "master/empty.db";