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白名单。
转载于:https://blog.51cto.com/drip123/1700073