CentOS7下BIND配置主从服务器和缓存服务器
系统环境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64
软件版本:bind-chroot-9.9.4-51.el7_4.1.x86_64
服务器规划:1台主服务器、1台从服务器,主从服务器都作为DNS缓存服务器,启用DNS转发
主DNS服务器:10.20.20.2
从DNS服务器:10.20.20.3
一、安装与主配置文件
1、安装bind-chroot
CentOS7不同于6,只需要安装bind-chroot,就会自动安装主程序包bind和库bind-libs。同时安装bind-utils(包含host和dig程序的包)
# yum install bind-chroot bind-utils # systemctl start named-chroot.service # systemctl enable named-chroot.service
CentOS7下安装了bind-chroot之后,若要使用named-chroot.service,则需要关闭named.service。两者只能运行一个。
2、主配置文件named.conf
acl trusted { 192.168.10.0/24; #定义一个acl列表 }; options { listen-on port 53 { 10.20.20.2; }; #指定监听端口和ip,可以指定多个ip listen-on-v6 port 53 { none; }; directory "/var/named"; 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 { trusted; }; #允许查询的客户端列表 allow-recursion { trusted; }; #运行通过本服务器递归查询的客户端列表 forward first; #转发模式,first选项代表首先查询forwarders中的DNS服务器,如果查询失败,则从根服务器开始递归查询(需要定义zone "."区域),only选项代表只查询forwarders中的服务器,如果查询失败也不会继续从根服务器进行递归查询 forwarders { #转发DNS查询的权威DNS服务器列表 202.103.24.68; 202.103.44.150; 223.5.5.5; 223.6.6.6; 114.114.114.114; 8.8.8.8; }; recursion yes; #允许递归查询 dnssec-enable no; #DNSSEC相关选项,国内的DNS服务器基本没有配置DNSSEC,因此关闭 dnssec-validation no; bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; logging { channel default_debug { severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; #正向解析 zone "st.local" IN { #本地区域配置 type master; #主服务器 file "st.local.zone"; #区域解析文件,位于CHROOT-PATH/var/named/ allow-update { none; }; allow-transfer { 10.20.20.3; }; #允许同步区域的从服务器列表 notify yes; #定时通知从服务器刷新区域信息,时间间隔为区域解析文件中的refresh值 }; #反向解析 zone "20.20.20.in-addr.arpa" IN { type master; file "10.20.20.zone"; allow-update { none; }; allow-transfer { 10.20.20.3; }; notify yes; };
这里直接在named.conf里面写zone的配置,也可以单独写到其他文件里,用include包含进来。zone里定义的区域解析文件位于CHROOT-PATH/var/named中,新建或cp的时候注意zone文件的权限,应定义为named用户或归属named组。
二、区域解析文件
1、正向解析
$TTL 1D $ORIGIN st.local. @ IN SOA ns1.st.local. admin.st.local. ( 2017121106 ; serial 1D ; refresh #服务器刷新时间 1H ; retry #重新刷新的时间 1W ; expire #宣告失效的时间 3H ) ; minimum #缓存保留时间 NS ns1.st.local. NS ns2.st.local. IN MX 10 mail.st.local. ns1 IN A 10.20.20.2 ns2 IN A 10.20.20.3 mail IN A 10.20.20.2
如果修改区域解析文件后不能同步至从服务器,则需要更改serial值大于当前值。从服务器在同步主服务器时,会比对serial值,如果发现大于当前值,则立即同步。
2、反向解析
$TTL 1D $ORIGIN 20.20.10.in-addr.arpa. @ IN SOA ns1.st.local. admin.st.local. ( 2017121107 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns1.st.local. NS ns2.st.local. IN MX 10 mail.st.local. 2 IN PTR ns1.st.local. 3 IN PTR ns2.st.local. 2 IN PTR mail.st.local.
三、测试配置文件
# named-checkconf -z zone st.local/IN: loaded serial 2017121106 zone 20.20.10.in-addr.arpa/IN: loaded serial 2017121107 # named-checkzone st.local var/named/st.local.zone zone st.local/IN: loaded serial 2017121106 OK # named-checkzone 20.20.10.in-addr.arpa var/named/10.20.20.zone zone 20.20.10.in-addr.arpa/IN: 20.20.10.in-addr.arpa/MX 'mail.st.local' (out of zone) has no addresses records (A or AAAA) zone 20.20.10.in-addr.arpa/IN: loaded serial 2017121107 OK
四、rndc管理工具
配置完成后,可直接使用rndc flush;rndc reload刷新并重载配置
rndc可用选项:
reload 重新装入配置文件和区域
reload zone [class [view]] 重新装入单个区域
refresh zone [class [view]] 安排区域的立即维护
reconfig 仅重新装入配置文件和新区域
stats 将服务器统计信息写入统计文件中
querylog 切换查询日志
dumpdb 将高速缓存转储到转储文件 (named_dump.db)
stop 将暂挂更新保存到主文件并停止服务器
halt 停止服务器,但不保存暂挂更新
trace 将调试级别增加一级
trace level 更改调试级别
notrace 将调试级别设置为 0
flush 刷新服务器的所有高速缓存
flush [view] 为某一视图刷新服务器的高速缓存
status 显示服务器的状态
五、防火墙
# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT # iptables -I INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT # iptables-save >/etc/sysconfig/iptables
六、从服务器配置
1、安装bind-chroot
# yum install bind-chroot bind-utils # systemctl start named-chroot.service # systemctl enable named-chroot.service
2、主配置文件
acl trusted { 192.168.10.0/24; }; options { listen-on port 53 { 10.20.20.3; }; listen-on-v6 port 53 { none; }; directory "/var/named"; 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 { trusted; }; allow-recursion { trusted; }; forward first; forwarders { 202.103.24.68; 202.103.44.150; 223.5.5.5; 223.6.6.6; 114.114.114.114; 8.8.8.8; }; recursion yes; dnssec-enable no; dnssec-validation no; bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; logging { channel default_debug { severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; #正向解析 zone "st.local" IN { type slave; #类型为slave masters { 10.20.20.2; }; #主服务器ip file "slaves/st.local.zone"; }; #反向解析 zone "20.20.10.in-addr.arpa" IN { type slave; masters { 10.20.20.2; }; file "slaves/10.20.20.zone"; };
注意/var/named/slaves文件夹的权限
3、重载配置
分别重载主从服务器配置。
# rndc flush;rndc reload
4、防火墙
# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT # iptables -I INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT # iptables-save >/etc/sysconfig/iptables
参考
http://www.361way.com/bind-dnscache/4802.html
http://www.361way.com/bind-dns/4807.html