DNS主从配置:

先配置时钟同步:

crontab -e 

*/3 * * * * /sbin/ntpdate ntp.sjtu.edu.cn &> /dev/null 将系统时钟与 ntp.sjtu.edu.cn同步。产生的邮件丢弃

主配置文件/etc/named.conf

options {                    必须要有

listen-on port 53 { 127.0.0.1; };  使用(//)注释掉本行,(注),当注释掉该行,意味着监听所有网段的53端口

listen-on-v6 port 53 { ::1; };

directory       "/var/named";  (DNS工作目录)

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";

allow-query     { localhost; };   允许那些主机查询   注释掉以后,允许所有主机查询。

recursion yes;   是否允许递归查询。


dnssec-enable yes;    DNS安全是否开启。

dnssec-validation yes;

dnssec-lookaside auto;


/* Path to ISC DLV key */

bindkeys-file "/etc/named.iscdlv.key";   DNS安全认证密钥文件路径


managed-keys-directory "/var/named/dynamic";  密钥管理目录。

};


logging {                       日志文件。

channel default_debug {

file "data/named.run";

severity dynamic;

};


zone "." IN {        定义区域

type hint;    //定义主机的类型,{master主,slvae从,hint根} 用户发出的请求非本机负责的转发给跟(hint)

file "named.ca";

};


include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";  

编辑主区域文件:  /etc/named.rfc1912.zones

zone "lqklinux.com" IN {    */添加新区域lqklinux.com

type master;        */定义主机的类型,{master主,slvae从,hint根}

file "lqklinux.com.zone";  */指定配置文件

};

为从DNS添加的区域解析库配置:   /var/named/lqklinux.com.zone  (包含资源记录和变量的定义)

$TTL    3600             */定义缓存时长 

$ORIGIN lqklinux.com.    */定义变量

@       IN      SOA     ns.lqklinux.com.        admin.lqklinux.com.     (  */资源记录条目第一条必须是SOA

2015091701 */解析库的版本号,例如2014080401

2H */周期性同步的时间间隔

10M */重试的时间间隔

1W */重试过期时长

1D ) */否定答案的统一缓存时长

IN      NS      ns.lqklinux.com. */区域名称

IN      MX  10  mail.lqklinux.com. */邮件交换区域

ns.lqklinux.com.        IN      A       172.16.4.16    (以下是A记录。)

mail.lqklinux.com.      IN      A       172.16.4.36

www.lqklinux.com.       IN      A       172.16.4.26

pop.lqklinux.com.       IN      CNAME   mail.lqklinux.com.

ops.lqklinux.com. IN NS ns.ops.lqklinux.com. (定义子域名称)

ns.ops.lqklinux.com. IN A 172.16.4.27 (定义子域域名解析服务器地址)

为新添加的子域解析库配置:

1),配置/etc/named.conf

2),配置/etc/named.rfc1912

添加如下内容:

zone "ops.lqklinux.com" IN {   */定义子域名称)

type master;   */定义主机的类型,{master主,slvae从,hint根}

file "ops.lqklinux.com.zone"; */定义子域配置文件

allow-transfer { 127.0.0.1; }; */定义子域允许传送IP范围。

3),配置/var/named/ops.lqklinux.com */为子域添加配置文件。(注意,该文件权限为640,属主:root,数组:named)

$TTL    3600             */定义缓存时长 

$ORIGIN ns.lqklinux.com.    

@       IN      SOA     ns.ops.lqklinux.com.        admin.ops.lqklinux.com.     (  */资源记录条目第一条必须是SOA

2015091701 */解析库的版本号,例如2014080401

2H */周期性同步的时间间隔

10M */重试的时间间隔

1W */重试过期时长

1D ) */否定答案的统一缓存时长

IN      NS      ns */域名称

IN MX mail

ns IN A ***.***.*** */为子域内的服务器添加A记录

mail IN A ***.***.***

www IN A ***.***.***

(注意:配置的是子域内的服务。添加的A记录是子域内的地址解析记录)

(注意:$ORIGIN 变量为子域的NS子域的域名)

检查DNS配置文件:

1),named-checkconf (不跟参数默认检查/etc/named.conf)

2),service named configtest (将检查配置文件的各区域)

3),named-checkzone "localhost" /var/named/named.localhost(检查localhost区域指定配置文件为/var/named/named.localhost )

4),rndc  reload  (重新加载配置文件)

5),注明C7上rndc reload 默认情况下将不能使用。调整比较麻烦,建议使用systemctl restart named


配置转发器:(目的为域内的客户端提供转发,帮助客户端解析地址)

转发所有的非本机负责的区域的请求至某指定的DNS服务器,添加配置至/etc/named.conf的options

options {

...

forward { only|first }; */开启转发功能并定义转发模式(开启转发意味着此服务器一定要给最终答案)

*/only模式仅开启递归模式 (查询上游DNS并将结果返回)

*/first模式使用递归和迭代模式 (查询上游DNS如果没有找到,自身再查找一次。)

forwarders { IP; }; */转发给转发服务器的服务器(此服务器必须开允许递归给转发服务器)

}


访问控制:

allow-transfer {}; */如果有辅助DNS,是否充许它可以同步zone文件。

allow-query {}; */允许接受来自某个地址的查询请求。不关心是递归查询还是非递归查询。

allow-update {}; */允许那些主机更新用於類型為 master dns 上

区别:

allow-update,表示允許指定的 client 來更新 zone 內的資料。比方於 zone 內新增,刪除與更新資料部份即是.

allow-transfer,表示允許指定的來源端能夠進行 zone transfer 的動作,也就是把 zone 內所有的 data 進行傳輸複製一份. 一般常用於 slave 透過 zone transfer 抓取 master zone data 便於更新本身 slave 的 zone data。


递归白名单

allow-recursion {}; */允许那些主机递归查询

recursion yes;


配置转发区域:    首先要有父DNS,既转发给当前DNS的那个DNS

zone "mageedu.com" IN { */定义转发域

type forward; */定义域类型

foward only|first; */定义转发类型

forwarders { IP; }; */定义转发服务器的地址(定义谁帮你转发IP)

}



bind acl: 


DNS内置的ACL:

none, any, local(本机), localnet(本机所在网络)


自定义acl:  */自上而下的匹配顺序,

acl ACL_NAME {

ip;

ip;

network;

};


acl localnetwork {      */定义一个ACL白名单。白名单的名称为“localnetwork”

172.16.0.0/16;

192.168.0.0/24;

};


allow-recursion { localnetwork; }; */在递归中调用ACL白名单。