CentOS7下BIND配置主從服務器和緩存服務器

系統環境: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

1、安裝與主配置文件

一、安裝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。二者只能運行一個。工具

參考:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-bind測試

二、主配置文件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組。

2、區域解析文件

一、正向解析

$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.

 3、測試配置文件

# 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

4、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 顯示服務器的狀態

5、防火牆

# 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

 6、從服務器配置

一、安裝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

https://www.server-world.info/en/note?os=CentOS_7&p=dns

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-bind

相關文章
相關標籤/搜索