架构师成长之路6.3 DNS服务器搭建(部署单台DNS)
1.安装bind
yum -y install bind-utils bind bind-devel bind-chroot bind-libs
2.编辑/etc/named.conf
- 全局配置:options {};
- 日志子系统配置:logging {};
- 区域定义:本机能够为哪些zone进行解析,就要定义哪些zone。
zone "ZONE_NAME" IN {};
注意:任何服务程序如果期望其能够通过网络被其它主机访 问,至少应该监听在一个能与外部主机通信的IP地址上。
options { version "1.1.1"; listen-on port 53 {any;}; #表示使用53端口 directory "/var/named/chroot/etc/";#用来指定zone(A记录/MX记录等)文件配置路径,注意chroot加强安全性 pid-file "/var/named/chroot/var/run/named/named.pid"; #当服务起来的时候,pid的位置 allow-query { any; };#允许解析访问的权限,可以是ip地址或ip段 Dump-file "/var/named/chroot/var/log/binddump.db"; Statistics-file "/var/named/chroot/var/log/named_stats";#可以看到解析数量/成功率等,用于监控 zone-statistics yes;# 配置yes,才能写入 memstatistics-file "log/mem_stats"; empty-zones-enable no; #不允许配置zone,却没有记录 forwarders {202.106.196.115;8.8.8.8; };#外部转发至以下IP地址 }; key "rndc-key" { # 生成rndc控制命令的key文件,rndc与bind之间使用md5认证 algorithm hmac-md5; secret "Eqw4hClGExUWeDkKBX/pBg=="; }; controls { inet 127.0.0.1 port 953 #连接的实际是953,不是53 allow { 127.0.0.1; } keys { "rndc-key"; }; }; logging { #指定日志记录分类和他们的目标位置 channel warning { file "/var/named/chroot/var/log/dns_warning" versions 10 size 10m;#日志轮转10次,每次10M severity warning; print-category yes; print-severity yes; print-time yes; }; channel general_dns { file "/var/named/chroot/var/log/dns_log" versions 10 size 100m;#日志轮转10次,每次100M severity info; print-category yes; print-severity yes; print-time yes; }; category default { warning; }; category queries { general_dns; }; }; include "/var/named/chroot/etc/view.conf"; # viem简单实现智能DNS功能
3.编辑/etc/rndc.key
内容需要与/etc/named.conf中的key一样
key "rndc-key" { algorithm hmac-md5; secret "Eqw4hClGExUWeDkKBX/pBg=="; };
4.编辑/etc/rndc.conf
默认没有此文件。
key "rndc-key" { algorithm hmac-md5; secret "Eqw4hClGExUWeDkKBX/pBg=="; }; options { default-key "rndc-key"; default-server 127.0.0.1; default-port 953; };
5.编辑/var/named/chroot/etc/view.conf
view "View1" { #View1只是一个view名称 allow-transfer { #dns-ip-list; }; notify yes; also-notify { #dns-ip-list; }; # ixfr-from-differences yes; zone "carlos.com" { type master; #master:表示定义的是主域名服务器,slave :表示定义的是辅助域名服务器 file "carlos.com.zone"; #与文件对应的zone文件 allow-transfer { #允许谁同步信息 192.168.56.14; }; notify yes; #当我的master配置文件发生变更时,通知以下IP also-notify { 192.168.56.14; }; }; zone "forward.com" { type forward; forwarders { 10.255.253.220; }; }; };
6.编辑/var/named/chroot/etc/com.zone
$ORIGIN . #zone生效的域 $TTL 3600 ; 1 hour carlos.com IN SOA op.Carlos.com. dns.carlos.com. ( 2000 ; serial #多DNS时候,以数量增加确认同步是否正常 900 ; refresh (15 minutes)#同步数据超15min失败 600 ; retry (10 minutes)#同步失败后10min重传一次 86400 ; expire (1 day)# 过期时间1day 3600 ; minimum (1 hour)#TTL ) NS op.carlos.com. $ORIGIN carlos.com. shanks A 1.2.3.4 op A 1.2.3.4
7.修改目录权限
cd /var && chown -R named.named named/ #修改目录权限 /etc/init.d/named start #启动 chkconfig named on #加开机启动
8.监听端口
.....