系統環境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64html
軟件版本:bind-chroot-9.9.4-51.el7_4.1.x86_64linux
服務器規劃:1臺主服務器、1臺從服務器,主從服務器都做爲DNS緩存服務器,啓用DNS轉發緩存
主DNS服務器:10.20.20.2服務器
從DNS服務器:10.20.20.3session
一、安裝bind-chroottcp
CentOS7不一樣於6,只須要安裝bind-chroot,就會自動安裝主程序包bind和庫bind-libs。同時安裝bind-utils(包含host和dig程序的包)ide
# yum install bind-chroot bind-utils # systemctl start named-chroot.service # systemctl enable named-chroot.service
CentOS7下安裝了bind-chroot以後,若要使用named-chroot.service,則須要關閉named.service。二者只能運行一個。工具
二、主配置文件named.confui
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組。
一、正向解析
$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值,若是發現大於當前值,則當即同步。
二、反向解析
$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 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
一、安裝bind-chroot
# yum install bind-chroot bind-utils # systemctl start named-chroot.service # systemctl enable named-chroot.service
二、主配置文件
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文件夾的權限
三、重載配置
分別重載主從服務器配置。
# rndc flush;rndc reload
四、防火牆
# 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