CentOS 7 中的 DNS 服務器配置

它代表 ”D領域姓名是的系統”,將主機名或 URL 轉換為 IP 地址。 例如我們寫www.unixmen.com在瀏覽器中,DNS 服務器將域名轉換為其關聯的 IP 地址。 由於 IP 地址一直難以記住,因此 DNS 服務器用於將主機名(如 www.unixmen.com)轉換為 173.xxx.xx.xxx。 因此,記住域名而不是您的 IP 地址更容易。

本詳細教程將幫助您在系統上設置本地 DNS 服務器。 CentOS 7. 但是,這些步驟也適用於在 RHEL 和 Scientific Linux 7 上配置 DNS 服務器。

DNS服務器安裝

劇本

出於本教程的目的,我將使用三個節點。 一個將作為主 DNS 服務器,第二個系統將作為輔助 DNS,第三個將作為我們的 DNS 客戶端。 以下是我的三個系統的詳細信息。

主要(主)DNS 服務器詳細信息:

                      Operating System     : CentOS 7 minimal server
Hostname             : masterdns.unixmen.local
IP Address           : 192.168.1.101/24
                    

輔助(從)DNS 服務器詳細信息:

                      Operating System     : CentOS 7 minimal server
Hostname             : secondarydns.unixmen.local
IP Address           : 192.168.1.102/24
                    

顧客信息:

                      Operating System     : CentOS 6.5 Desktop  
Hostname             : client.unixmen.local
IP Address           : 192.168.1.103/24
                    

設置主(主)DNS 服務器

在您的服務器上安裝 bind9 軟件包。

                      yum install bind bind-utils -y
                    

1.配置DNS服務器

編輯'/etc/named.conf'訴訟程序。

                      vi /etc/named.conf
                    

添加行,如粗體所示:

                      //
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
    listen-on port 53 { 127.0.0.1; 
                      
                        192.168.1.101;
                      
                      }; 
                      
                        ### Master DNS IP ###
                      
                      
#    listen-on-v6 port 53 { ::1; };
    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     { localhost; 
                      
                        192.168.1.0/24;
                      
                      }; 
                      
                        ### IP Range ###
                      
                      
    allow-transfer{ localhost; 
                      
                        192.168.1.102;
                      
                       };   
                      
                        ### Slave DNS IP ###
                      
                      

    /* 
     - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
     - If you are building a RECURSIVE (caching) DNS server, you need to enable 
       recursion. 
     - If your recursive DNS server has a public IP address, you MUST enable access 
       control to limit queries to your legitimate users. Failing to do so will
       cause your server to become part of large scale DNS amplification 
       attacks. Implementing BCP38 within your network would greatly
       reduce such attack surface 
    */
    recursion yes;

    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;

    /* Path to ISC DLV key */
    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 {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
    type hint;
    file "named.ca";
};


                      
                        zone "unixmen.local" IN {
type master;
file "forward.unixmen";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "reverse.unixmen";
allow-update { none; };
};
                      
                      

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
                    

2. 創建區域文件

創建我們在前面提到的正向和反向區域文件'/etc/named.conf'訴訟程序。

2.1 創建轉發區

去創造forward.unixmen文件中'/var/命名'目錄。

                      vi /var/named/forward.unixmen
                    

添加以下行:

                      $TTL 86400
@   IN  SOA     masterdns.unixmen.local. root.unixmen.local. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          masterdns.unixmen.local.
@       IN  NS          secondarydns.unixmen.local.
@       IN  A           192.168.1.101
@       IN  A           192.168.1.102
@       IN  A           192.168.1.103
masterdns       IN  A   192.168.1.101
secondarydns    IN  A   192.168.1.102
client          IN  A   192.168.1.103
                    

2.2 創建反向區域

去創造逆向.unixmen文件中'/var/命名'目錄。

                      vi /var/named/reverse.unixmen
                    

添加以下行:

                      $TTL 86400
@   IN  SOA     masterdns.unixmen.local. root.unixmen.local. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          masterdns.unixmen.local.
@       IN  NS          secondarydns.unixmen.local.
@       IN  PTR         unixmen.local.
masterdns       IN  A   192.168.1.101
secondarydns    IN  A   192.168.1.102
client          IN  A   192.168.1.103
101     IN  PTR         masterdns.unixmen.local.
102     IN  PTR         secondarydns.unixmen.local.
103     IN  PTR         client.unixmen.local.
                    

3.啟動DNS服務

啟用並啟動 DNS 服務:

                      systemctl enable named
systemctl start named
                    

4.防火牆設置

我們必須允許默認的 DNS 服務端口 53 通過防火牆。

                      firewall-cmd --permanent --add-port=53/tcp
                    
                      firewall-cmd --permanent --add-port=53/udp
                    

5.重啟防火牆

                      firewall-cmd --reload
                    

6. 配置權限、所有權和 SELinux

一一運行以下命令:

                      
chgrp named -R /var/named



 

chown -v root:named /etc/named.conf

restorecon -rv /var/named

restorecon /etc/named.conf
                    

7. 測試 DNS 配置和區域文件的語法錯誤

檢查默認的 DNS 配置文件:

                      named-checkconf /etc/named.conf
                    

如果它沒有返回任何內容,那麼您的配置文件是有效的。

檢查轉發區域:

                      named-checkzone unixmen.local /var/named/forward.unixmen
                    

樣本輸出:

                      zone unixmen.local/IN: loaded serial 2011071001
OK
                    

檢查反向區域:

                      named-checkzone unixmen.local /var/named/reverse.unixmen 

                    

樣本輸出:

                      zone unixmen.local/IN: loaded serial 2011071001
OK
                    

在網絡接口配置文件中添加 DNS 服務器詳細信息。

                      vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
                    
                      TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="5d0428b3-6af2-4f6b-9fe3-4250cd839efa"
ONBOOT="yes"
HWADDR="08:00:27:19:68:73"
IPADDR0="192.168.1.101"
PREFIX0="24"
GATEWAY0="192.168.1.1"

                      
                        DNS="192.168.1.101"
                      
                      
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
                    

編輯文件/etc/resolv.conf,

                      vi /etc/resolv.conf
                    

添加名稱服務器 IP 地址:

                      nameserver      192.168.1.101
                    

保存並關閉文件。

重啟網絡服務:

                      systemctl restart network
                    

8.測試DNS服務器

                      dig masterdns.unixmen.local
                    

樣本輸出:

                      ; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> masterdns.unixmen.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25179
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;masterdns.unixmen.local.    IN    A

;; ANSWER SECTION:
masterdns.unixmen.local. 86400    IN    A    192.168.1.101

;; AUTHORITY SECTION:
unixmen.local.        86400    IN    NS    secondarydns.unixmen.local.
unixmen.local.        86400    IN    NS    masterdns.unixmen.local.

;; ADDITIONAL SECTION:
secondarydns.unixmen.local. 86400 IN    A    192.168.1.102

;; Query time: 0 msec
;; SERVER: 192.168.1.101#53(192.168.1.101)
;; WHEN: Wed Aug 20 16:20:46 IST 2014
;; MSG SIZE  rcvd: 125
                    
                      nslookup unixmen.local
                    

樣本輸出:

                      Server:        192.168.1.101
Address:    192.168.1.101#53

Name:    unixmen.local
Address: 192.168.1.103
Name:    unixmen.local
Address: 192.168.1.101
Name:    unixmen.local
Address: 192.168.1.102
                    

現在主 DNS 服務器可以使用了。

是時候設置我們的輔助 DNS 服務器了。

輔助(從)DNS 服務器配置

使用以下命令安裝綁定包:

                      yum install bind bind-utils -y
                    

1.配置從DNS服務器

編輯文件'/etc/named.conf'

                      vi /etc/named.conf
                    

如粗體所示進行更改。

                      //
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1; 
                      
                        192.168.1.102;
                      
                       };
listen-on-v6 port 53 { ::1; };
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     { localhost; 
                      
                        192.168.1.0/24;
                      
                       };
.
.
.
.
zone "." IN {
type hint;
file "named.ca";
};

                      
                        zone "unixmen.local" IN {
type slave;
file "slaves/unixmen.fwd";
masters { 192.168.1.101; };
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
file "slaves/unixmen.rev";
masters { 192.168.1.101; };
};
                      
                      
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
                    

2.啟動DNS服務

                      systemctl enable named
systemctl start named
                    

正向和反向區域現在自動從主 DNS 服務器複製到輔助 DNS 服務器上的“/var/named/slaves/”。

                      ls /var/named/slaves/
                    

樣本輸出:

                      unixmen.fwd  unixmen.rev
                    

3.添加DNS服務器詳細信息

在網絡接口配置文件中添加 DNS 服務器詳細信息。

                      vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
                    
                      TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="5d0428b3-6af2-4f6b-9fe3-4250cd839efa"
ONBOOT="yes"
HWADDR="08:00:27:19:68:73"
IPADDR0="192.168.1.102"
PREFIX0="24"
GATEWAY0="192.168.1.1"

                      
                        DNS1="192.168.1.101"
DNS2="192.168.1.102"

                      
                      IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
                    

編輯文件/etc/resolv.conf,

                      vi /etc/resolv.conf
                    

添加名稱服務器 IP 地址:

                      nameserver      192.168.1.101
nameserver      192.168.1.102
                    

保存並關閉文件。

重啟網絡服務:

                      systemctl restart network
                    

4.防火牆設置

我們必須允許默認的 DNS 服務端口 53 通過防火牆。

                      firewall-cmd --permanent --add-port=53/tcp
                    

5.重啟防火牆

                      firewall-cmd --reload
                    

6. 配置權限、所有權和 SELinux

                      
chgrp named -R /var/named



 

chown -v root:named /etc/named.conf

restorecon -rv /var/named

restorecon /etc/named.conf
                    

7.測試DNS服務器

                      dig masterdns.unixmen.local
                    

樣本輸出:

                      ; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> masterdns.unixmen.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18204
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;masterdns.unixmen.local.    IN    A

;; ANSWER SECTION:
masterdns.unixmen.local. 86400    IN    A    192.168.1.101

;; AUTHORITY SECTION:
unixmen.local.        86400    IN    NS    masterdns.unixmen.local.
unixmen.local.        86400    IN    NS    secondarydns.unixmen.local.

;; ADDITIONAL SECTION:
secondarydns.unixmen.local. 86400 IN    A    192.168.1.102

;; Query time: 0 msec
;; SERVER: 192.168.1.102#53(192.168.1.102)
;; WHEN: Wed Aug 20 17:04:30 IST 2014
;; MSG SIZE  rcvd: 125
                    
                      dig secondarydns.unixmen.local
                    

樣本輸出:

                      ; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> secondarydns.unixmen.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60819
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;secondarydns.unixmen.local.    IN    A

;; ANSWER SECTION:
secondarydns.unixmen.local. 86400 IN    A    192.168.1.102

;; AUTHORITY SECTION:
unixmen.local.        86400    IN    NS    masterdns.unixmen.local.
unixmen.local.        86400    IN    NS    secondarydns.unixmen.local.

;; ADDITIONAL SECTION:
masterdns.unixmen.local. 86400    IN    A    192.168.1.101

;; Query time: 0 msec
;; SERVER: 192.168.1.102#53(192.168.1.102)
;; WHEN: Wed Aug 20 17:05:50 IST 2014
;; MSG SIZE  rcvd: 125
                    
                      nslookup unixmen.local
                    

樣本輸出:

                      Server:        192.168.1.102
Address:    192.168.1.102#53

Name:    unixmen.local
Address: 192.168.1.101
Name:    unixmen.local
Address: 192.168.1.103
Name:    unixmen.local
Address: 192.168.1.102
                    

客戶端配置

在中添加 DNS 服務器詳細信息'/etc/resolv.conf'所有客戶端系統上的文件

                      vi /etc/resolv.conf
                    
                      # Generated by NetworkManager
search unixmen.local
nameserver 192.168.1.101
nameserver 192.168.1.102

                    

重啟網絡服務或重啟系統。

測試 DNS 服務器

現在您可以使用以下任何命令測試 DNS 服務器:

                      dig masterdns.unixmen.local
                    
                      dig secondarydns.unixmen.local

                    
                      dig client.unixmen.local

                    
                      nslookup unixmen.local

                    

現在就是這樣。 主 DNS 服務器和輔助 DNS 服務器已準備好使用。

如果要在系統上配置 DNS 服務器Ubuntu請參考以下鏈接。

  • 在 Ubuntu 中配置 DNS 服務器

健康!

相關文章