(2).配置开始:
进入DNS服务器工作的虚拟根目录/var/named/chroot/下,然后开始我们的配置工作:
cd /var/named/chroot/
a).由于安装了caching-nameserver,caching-nameserver包提供的功能有:
I)named.caching-server.conf文件,该文件可以作为named.conf的模板文件;
II).named.ca 提供了root server "hints";
III).能够缓存本地主机名和ip地址,加快本地查询效率;
cd etc/
cp named.caching-nameserver.conf name.conf
chown root:named name.conf 或者单纯地:chgrp named name.conf
这样我们就可以方便地编辑主配置文件name.conf了;
b). 主DNS的基本配置:
定义ACL:
要注意主机访问控制列表的格式:{ Match-Address-Lists; } ,支持的格式有:
IP地址:192.168.68.129
子网号:192.168.0.
CIDR规范:192.168.68.0/24
使用!来禁止:!192.168.1.0/24
定义主机访问控制列表时格式非常非常严格,一个错误都不可以出现,必须注意空格,例如一个正确例子:
{ 192.168.0.1; 192.168.0.; !192.168.1.0/24; }
错误写法一:{192.168.0.1;} 正确改为:{ 192.168.0.1; }
——"{" 后面和"}"前面有空格
错误写法二:{ 192.168.0.1;192.168.0.0; } 正确写法:{ 192.168.0.1; 192.168.0.0; }
——不同地址以一个空格隔开
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
PS: 通常所有的acl都要放到named.conf的最开头部分,以便可以让整个配置文件都可以方便地引用这些acl定义的match list!同在模板named.conf中你会看到:
listen-on port 53 { localhost;};
但你却找不到有关localhost这个acl的定义,其实这是Bind内建的ACL,内建的ACL还有:
none ——没有ip地址匹配
any ——所有ip地址都匹配
localhost ——在这个DNS服务器的所有ip都匹配
localnets ——与DNS服务器同一网段的所有ip地址都匹配
这样你会发现我定义的"myAddresses"和"localhost"的区别了,localhost代表了这个DNS服务器上所有网卡上的任何ipv4和ipv6的ip地址;myAddress更为精确,只有本地回环接口127.0.0.1与eth0的ip地址192.168.68.128;
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
定义可以访问DNS服务器的主机列表:
listen-on port 53 { match-list; };
——不要忘记了最后的";"号,整个配置文件的每行都是以";"结束的;
listen-on-v6 port 53 { ::1; };
——ipv6地址的监听端口
如果你没有定义选项 listen-on ,那么Bind默认会监听所有的网卡接口;
我的配置如下:
控制允许可以向DNS服务器提出查询请求的主机:
allow-query { myAddresses; trusted; };
如果你没有定义选项 allow-query ;那么Bind默认会允许所有的来访者都可以查询这个DNS服务器,相当于:
allow-query { any; };
控制允许可以进行迭代解析或查询的主机列表:
allow-recursion { match-list; };
如果你没有定义选项 allow-recursion ; 那么Bind默认会允许所有可以访问DNS的来访者都可以进行迭代查询
定义可以与主DNS服务器进行数据交流的辅助DNS服务器的ip地址:
allow-transfer { match-list; };
允许这些match-list中的辅助DNS与主DNS服务器进行数据的交流与传送。
例如:我的主DNS服务器192.168.68.128;辅助DNS服务器192.168.68.2,允许它们进行数据交流:
allow-transfer { 192.168.68.2; };:
如果你没有定义选项 allow-transfer ;那么Bind默认会允许所有的辅助DNS服务器与主DNS服务器进行数据交流
定义主DNS服务器的对客户的请求查询失败时的行为:
forwarders { match-list; };
forward first | only;
选项forwarders定义了当DNS服务器应答失败时,就将客户端的请求转发到match-list中的其他服务器;
选项forward 定义DNS服务的转发类型:first 是优先转发上述定义的DNS服务器;only是只会转发到上述定义的DNS服务器;
如果你没有定义选项 forwarders的选项 ;那么Bind默认不做任何转发动作。
主DNS的基本配置到此结束,运行命令:
bind-chroot-admin –e 启用chroot功能
bind-chroot-admin –s 同步虚拟目录与实际目录的文件
service named configtest 检查一下到目前为止的配置是否出错
service named start 启动DNS服务