[DNS] Linux(centos6)中dns(bind)服務器安裝及dns理論詳解


DNS域名解析系統linux


  • 什麼是DNS數據庫

DNS(Domain Name System,域名系統),萬維網上做爲域名和IP地址相互映射的一個分佈式數據庫,方便用戶使用名稱的訪問互聯網。經過域名,最終獲得該域名對應的IP地址的過程叫作域名解析(或主機名解析)。DNS協議運行在UDP或TCP協議之上,使用端口號53vim

  • FQDN
    緩存

全稱域名,例 www.itwish.cn 的FQDN爲 www.itwish.cn.    ,其中  www(主機名).itwish(二級域名).cn(一級域名).(根)安全

  • DNS查詢類型 
    bash

遞歸查詢:遞歸查詢是最多見的查詢方式,當一個客戶機發送一個查詢給本地域名服務器時,本地域名服務器必須返回一個IP地址,若是解析不到IP,域名服務器將代替提出請求的客戶機(下級DNS服務器)進行域名查詢,若域名服務器不能直接回答,則域名服務器會在域各樹中的各分支的上下進行遞歸查詢,最終將返回查詢結果給客戶機,在域名服務器查詢期間,客戶機將徹底處於等待狀態。通常客戶機和服務器之間屬遞歸查詢服務器

迭代查詢:迭代查詢又稱重指引。當服務器使用迭代查詢時可以使其餘服務器返回一個最佳的查詢點提示或主機地址,若此最佳的查詢點中包含須要查詢的主機地址,則返回主機地址信息,若此時服務器不可以直接查詢到主機地址,則是按照提示的指引依次查詢,直到服務器給出的提示中包含所須要查詢的主機地址爲止。通常DNS服務器之間屬迭代查詢網絡

注:客戶端指向dns服務器時,不能指向根服務器(根dns服務器不接受遞歸查詢),指向的必定是容許給本地主機作遞歸查詢的dns服務器 session

  • DNS的工做原理
    dom

1.客戶端提起域名解析請求,並將該請求發送給本地dns服務器;本地域名服務器收到該請求時,首先查詢本地緩存(該過程屬於遞歸查詢 )例www.itwish.cn域名解析  

2.若本地dns服務器有記錄則直接能夠返回給客戶端;若沒有記錄則去根DNS服務器請求,根dns服務器返回給本地dns服務器所請求頂級域的dns服務器ip地址。即本地dns服務器會獲得.cn域的dns服務器IP

3.而後再將請求發往cn.域的主dns服務器,若找到則返回請求域名的ip地址 ;若沒有找到,則.cn 域dns服務器則返回給本地dns服務器所請二級域的dns服務器ip地址即本地dns服務器會獲得itwish.cn域的dns服務器IP

4.最後再將請求發往itwish.cn.域的主dns服務器,找到www主機ip地址,把IP地址返回給本地dns服務器,同時本地DNS服務器也會緩存一份到本地 (2,3,4步屬於迭代查詢)

5.本地dns服務器把查詢到的ip地址返回到客戶端 。至此完成域名解析的請求 

  • 實現名稱到IP解析方式

分散式解決方案:/etc/hosts,不易管理

集中式解決方案:NIC,若是主機太多,對單一服務的壓力太大

分佈式數據庫方案:DNS,解決了上倆個方式的不足

  • DNS域名

根域:目前有13個根集羣服務器,美國10臺,日本1臺,荷蘭1臺,瑞典1臺

一級域: .com, .edu, .mil, .gov, .net, .org, cn, .ca, .hk, .tw, .in-addr.arpa等

二級域   

最多127級域名

  • DNS解析類型

正反向解析是兩個不一樣的名稱空間,是兩棵不一樣的解析樹

正向解析:FQDN --> IP ,域名解析爲ip地址

反向解析:IP ---> FQDN ,ip地址解析爲域名

  • DNS服務器的類型

主dns服務器:管理和維護所負責解析的域內解析庫的服務器,主dns服務器能夠是一個或多個區域的權威名稱服務器

輔助dns服務器:用做同一區域中主服務器的備份服務器,從主服務器或從服務器「複製"(區域傳輸)解析庫副本

緩存名稱務器

  • 主從dns服務器主服務器記錄發生變化,會同步到從服務器,(主從複製),實現容錯機制

序列號:解析庫版本號,主服務器解析庫變化時,其序列遞增

刷新時間間隔:從服務器從主服務器請求同步解析的時間間隔

重試時間間隔:從服務器請求同步失敗時,再次嘗試時間間隔

過時時長:從服務器聯繫不到主服務器時,多久後中止服務

否認答案的TTL值

  • 區域傳送 輔助DNS服務器從主DNS服務器或其餘的輔助DNS服務器請求數據傳輸過程

徹底區域傳送:傳送區域的全部數據,AXFR

增量區域傳送:傳送區域中改變的數據部分,IXFR

  • 安全控制選項

allow-query {} :容許查詢的主機;此項僅用於服務器是緩存名稱服務器時,只開放查詢功能給本地客戶端

allow-transfer {}:容許區域傳送的主機;一般都須要啓用,從服務器

allow-recursion {可使用網段}  :容許遞歸的主機,建議全局使用

allow-update {}: 容許更新區域數據庫中的內容


DNS服務管理


  • 實現:bind(Bekerley Internat Name Domain )

  • 服務名:named  

  • 進程:named   ;# chkconfig named on   開機自啓named服務  # service named start   啓動named 服務

主配置文件:/etc/named.conf ,注:語句後面的 ;  號

[root@bogon named]# vi /etc/named.conf 
options {  #全局選項
    listen-on port 53 { 127.0.0.1;|192.168.4.150; };  #默認監聽本機的53號端口,可註釋掉或調整爲指定ip ,注ip地址後加";"
    listen-on-v6 port 53 { ::1; };    #開啓ipv6 監聽,可註釋掉
    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|any; };  #受權爲指定的主機解析,默認只爲本機解析,可調整爲any或註釋掉
    recursion yes|no;         #遞歸查詢,默認開啓 
    dnssec-enable yes;         #sec功能,與安全加密傳輸相關的選項,可註釋掉
    dnssec-validation yes;    #同上一條,可註釋掉
    bindkeys-file "/etc/named.iscdlv.key";
    managed-keys-directory "/var/named/dynamic";
    pid-file "/run/named/named.pid";    #named 啓動文件pid 
    session-keyfile "/run/named/session.key";
    allow-transfer { none|ip; };  #容許區域傳送的主機;可拒絕全部、指定ip傳送,默認開啓,建議指定ip進行區域傳送
};
logging {  #日誌子系統配置
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {  #根區域定義,若要作內網根服務器,要註釋掉
    type hint;
    file "named.ca";
};

include "/etc/named.rfc1912.zones";  #加載指定區域文件
include "/etc/named.root.key";


  • 區域配置文件:/etc/named.rfc1912.zones ,區域類型:hint(根)、master(主)、slave(從)、forward(轉發)

[root@bogon ~]# vi /etc/named.rfc1912.zones 

zone "itwish.cn" IN {   #區域記錄
        type master|slave|forward|hint;   #類型,主dns服務器、輔助dns服務器、轉發dns、根dns服務器
        file "itwish.cn.zone";   #區域數據庫文件
        allow-transfer { 192.168.4.120; }; #容許區域傳送的主機
};


  • 區域文件目錄 : /var/named/  ,注:區域文件的權限爲640,屬組爲named

[root@bogon ~]# vi /var/named/itwish.cn.zone 

$TTL 1D   #默認的TTL值
@       IN SOA  ns1  admin.itwish.cn. (  #SOA記錄,記錄域中的主DNS服務器,一個區域解析庫中只能有且僅能有一個SOA記錄,必須位於解析庫的第一條記錄 
                                        2018061004      ; serial #序列號
                                        1D      ; refresh        #主從複製的時間間隔
                                        1H      ; retry          #若是主從複製失敗重試時間
                                        1W      ; expire         #失效時間
                                        3H )    ; minimum        #否認答案的TTL值
        IN      NS      ns1                    #名字服務器記錄
        IN      NS      ns2                    #針對itwish.cn區域,ns1與ns2共2臺ns服務器,實現主從複製功能
        IN      MX      10      mail           #郵件mx記錄 
ns1     IN      A       192.168.4.110          #正向解析記錄
ns2     IN      A       192.168.4.120
*       IN      A       192.168.4.110          #泛域名解析,解析未找到的主機則返回該ip地址
www     IN      CNAME   ns1                    #別名記錄
mail    IN      A       192.168.4.110
tech    IN      NS      ns3.tech               #子域名字服務器記錄
        IN      NS      ns4.tech               #針對tech.itwish.cn區域,ns3與ns4共2臺ns服務器,實現主從複製功能
ns3.tech        IN      A       192.168.4.130
ns4.tech        IN      A       192.168.4.140


  •     反向解析區域文件:區域名稱以逆向的網絡地址,並以.in-addr.arpa爲後綴 ,區域文件保存在/var/named/ 目錄,應該具備NS記錄,但不能出現MX和A記錄,較常見的爲PTR記錄

[root@bogon named]# vi /etc/named.rfc1912.zones 
zone "4.168.192.in-addr.arpa" IN {    #定義反向區域名稱
        type slave;
        masters { 192.168.4.120; };
        file "slaves/192.168.4.zone";
        allow-transfer { none; };
};

[root@bogon named]# vi /var/named/192.168.4.zone 
$TTL 3H
@       IN SOA  ns1.itwish.cn. adminns.itwish.cn. (  #第一條爲SOA記錄
                                        20180522012     ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        2W      ; expire
                                        24H )   ; minimum
        IN      NS              ns1.itwish.cn.
        IN      NS              ns2.itwish.cn.
110     IN      PTR             ns1.itwish.cn.     #PTR 記錄
120     IN      PTR             ns2.itwish.cn.


  • DNS的數據庫文件(區域數據文件):爲文本文件,只能包含資源記錄或宏定義,每行一個 

    資源記錄的格式:name① [TTL]②  IN③  Rrtype④ Value⑤     注:FQDN中最後的 . 號

    ①name:當前區域的名字,例 www.itwish.cn. 

    ②TTL (Time- To-Live):表示一條域名解析記錄在DNS服務器上緩存時間;例如$TTL 1D的意思是默認的TTL值爲1天

    ③IN:關鍵字

    ④dns資源記錄類型(Resource Record),包括SOA ,NS ,MX ,A記錄 ,AAAA,PTR ,CNAME  等 

    ⑤Value ,經過對以上記錄類型示例分析——針對不一樣的資源記錄類型,Value值也不盡相同

        SOA:有n個數值,主DNS服務器及郵箱地址;最主要的是主DNS服務器,格式可爲相對名稱或FQDN 

        NS:DNS服務器的FQDN(或相對名稱)  如 IN  NS  ns1 

        MX:包含優先級和FQDN(或相對名稱),如   IN  MX  10  mail  

        A:ip地址  ,如  ns1  IN  A  192.168.4.110 

        CNAME:FQDN(或相對名稱),如 www  IN  CNAME  ns1  

        PTR:FQDN ,如  1 IN  PTR  localhost.    


  • DNS記錄類型詳解及演示    

(1)SOA:Start of Authority  起始受權記錄,記錄域中的主DNS服務器,一個區域解析庫中只能有且僅能有一個SOA記錄,必須位於解析庫的第一條記錄

@       IN SOA  ns1  admin.itwish.cn. (  # SOA記錄
                                        2018061004      ; serial #序列號
                                        1D      ; refresh        #主從複製的時間間隔
                                        1H      ; retry          #若是主從複製失敗重試時間
                                        1W      ; expire         #失效時間
                                        3H )    ; minimum        #否認答案的TTL值
#註釋 
@:區域名稱 itwish.cn,一般可簡寫爲@ 符號
IN:關鍵字,可省略
SOA:資源記錄類型
ns1:主dns服務器的名稱,能夠是相對名稱ns1或 FQDN ns1.itwish.cn.
admin.itwish.cn. :郵箱地址,把@轉換成. ,如郵箱admin@itwish.cn 格式爲admin.itwish.cn.

  

(2)NS :Name server 域名服務器,記錄指定負責給定區域的名稱服務器 ,注:區域內包含幾條NS記錄,就需對多臺NS服務器配置相對應的A記錄 ,示例爲2臺NS服務器ns1 和ns2 ,就需配置ns1 和ns2 服務器的A記錄

        IN      NS      ns1                    #名字服務器記錄
        IN      NS      ns2                    #針對itwish.cn區域,ns1與ns2共2臺ns服務器,實現主從複製功能
ns1     IN      A       192.168.4.110          #正向解析記錄
ns2     IN      A       192.168.4.120        

#註釋 
named :可省略,表明itwish.cn 區域  
IN:關鍵字,可省略
NS:資源記錄類型 
ns1:主dns服務器的名稱,能夠是相對名稱ns1或 FQDN ns1.itwish.cn.  
ns2:針對itwish.cn區域,ns1與ns2共2臺ns服務器,實現主從複製功能

   

(3)MX :郵件交換記錄 ,記錄列出了負責接收發到域中的電子郵件的主機記錄

        IN      MX      10      mail           #郵件mx記錄 

#註釋 
named :可省略,表明itwish.cn 區域  
IN:關鍵字,可省略
MX:資源記錄類型 
mail:郵件交換記錄名稱,能夠是相對名稱mail或 FQDN mail.itwish.cn.

   

(4)A記錄 :FQDN --> IP ,列出特定主機名的 IP 地址

ns1     IN      A       192.168.4.110          #正向解析記錄
ns2     IN      A       192.168.4.120

#註釋 
ns1 :主機名,能夠是相對名稱ns1或 FQDN ns1.itwish.cn.
IN:關鍵字,可省略
A:資源記錄類型 
192.168.4.110:ip地址

   

(5)AAAA:FQDN-->ipv6

(6)PTR:指針記錄 IP --> FQDN ,只能定義在反向區域數據文件中,反向區域名稱爲逆向網絡地址加.in-addr.arpa.後綴組成,如 「0.0.127.in-addr.arpa」 反向解析區域

1               PTR     localhost.
#註釋 
1:ip地址
IN:關鍵字,可省略
PTR:資源記錄類型 
localhost. :主機名稱,能夠是相對名稱或 FQDN

  

(7)CNAME :別名記錄 ,此記錄指定標準主機名的別名

www     IN      CNAME   ns1                    #別名記錄
#註釋 
www:主機別名,能夠是相對名稱或 FQDN
IN:關鍵字,可省略
CNAME:資源記錄類型 
ns1 :主機名稱,能夠是相對名稱或 FQDN


  • dig 命令,DNS查詢使用程序

語法:dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m] [-p port#] [-q name] [-t type] [-x addr]  

    [-y [hmac:]name:key] [-4] [-6] [name] [type] [class] [queryopt...]    

經常使用選項:

    -x addr:測試反向解析

    -t type:指定查詢記錄類型

    -t axfr ZONE_NAME @SERVER :模擬區域傳送

    -t NS .  :查詢根DNS服務器

    -f filename :經過從文件 filename 讀取一系列搜索請求加以處理

    -p port#  :查詢一個非標準的端口號,標準的DNS端口號 53

    +[no]trace :[不]適用迭代

    +[no]tcp :是否使用tcp

    +[no]recurse:是否使用遞歸host

  • rndc

    reload: 重載主配置文件和區域解析庫文件

    reload zonename: 重載區域解析庫文件

    retransfer zonename: 手動啓動區域傳送,而無論序列號是否增長

    notify zonename: 從新對區域傳送發通知

    reconfig: 重載主配置文件

    querylog: 開啓或關閉查詢日誌文件/var/log/message

    trace: 遞增debug一個級別

    trace LEVEL: 指定使用的級別

    notrace:將調試級別設置爲 0

    flush:清空DNS服務器的全部緩存記錄

  • rndc:密鑰

    rndc:持有一半密鑰,保存於rndc的配置文件中

    BIND:持有通常密鑰,保存在主配置文件中

rndc的配置文件/etc/rndc.conf

# rndc-confgen -r  /dev/urandom  > /etc/rndc.conf    生成密鑰 

# named-checkconf:檢查配置文件的語法

# named-checkzone "itwish.cn" /var/named/itwish.cn.zone :查詢區域數據庫文件的語法

# service named configtest  :檢查全部區域文件的語法


DNS正向解析,反向解析,主從複製,子域委派,區域轉發,acl 及view視圖案例


  • DNS正向解析案例配置

1)安裝bind
[root@ns1 ~]# yum install bind bind-utils -y   #yum 安裝bind 
[root@ns1 ~]# chkconfig named on          
[root@ns1 ~]# service named start
Starting named: named: already running                     [  OK  ]
[root@ns1 named]# ss -tunl     #確認named 進程啓用,tcp 及 udp 53端口處於監聽狀態
Netid  State      Recv-Q Send-Q                                                                                   Local Address:Port                                                                                     Peer Address:Port 
udp    UNCONN     0      0                                                                                       192.168.23.110:53                                                                                                  *:*     
tcp    LISTEN     0      3                                                                                       192.168.23.110:53                                                                                                  *:* 

2)中止iptables 和selinux 功能
[root@ns1 ~]# service iptables stop   #中止iptables 服務
[root@ns1 ~]# chkconfig iptables off
[root@ns1 ~]# vi /etc/selinux/config   
SELINUX=disabled    #修改成disabled,其餘行註釋掉,禁用selinux功能

3)定義主配置文件
[root@ns1 ~]# vi /etc/named.conf 
options {
        listen-on port 53 { 192.168.4.110; };   #定義監聽指定ip 53端口
        directory       "/var/named";   
        allow-query     { any; };     #容許給全部客戶端請求解析
        recursion yes;                #容許遞歸
};
include "/etc/named.rfc1912.zones";

3)定義區域配置文件
[root@ns1 ~]# vi /etc/named.rfc1912.zones 
zone "itwish.cn" IN {   #區域定義
        type master;    #類型,主服務器
        file "itwish.cn.zone";    #區域數據庫文件,指向/var/named/itwish.cn.zone
};

4)新建區域解析數據庫文件 /var/named/itwish.cn.zone
[root@ns1 ~]# vi /var/named/itwish.cn.zone 
$TTL 1D
@       IN SOA  ns1  admin.itwish.cn. (              #SOA記錄
                                        2018061004      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns1             #NS記錄
        IN      MX      10      mail    #MX記錄
ns1     IN      A       192.168.4.110      #正向A解析記錄
www     IN      A       192.168.4.110

5)分配權限
[root@ns1 ~]# chown root:named /var/named/itwish.cn.zone #修改文件的權限和所屬組,保證named進程有此文件的可讀屬性
[root@ns1 ~]# chmod 640 /var/named/itwish.cn.zone
[root@ns1 ~]# ll /var/named/itwish.cn.zone
-rw-r-----. 1 root named 120 Jun  11 10:39 /var/named/itwish.cn.zone

6)測試
[root@ns1 ~]# named-checkconf     #檢查配置文件
[root@ns1 ~]# named-checkzone "itwish.cn" /var/named/itwish.cn.zone  #檢查itwish.cn 區域配置語法
[root@ns1 ~]# service named configtest    # 測試全部配置區域
[root@ns1 ~]# rndc reload    #重載配置文件
[root@ns1 ~]# dig -t A www.itwish.cn  @192.168.4.110   //使用dig命令測試,返回如下值說明成功

;; QUESTION SECTION:
;www.itwish.cn.            IN    A

;; ANSWER SECTION:
www.itwish.cn.        10800    IN    A    192.168.23.110

[root@ns1 ~]# dig -t NS itwish.cn  @192.168.4.110  

;; QUESTION SECTION:
;itwish.cn.            IN    NS

;; ANSWER SECTION:
itwish.cn.        10800    IN    NS    ns1.itwish.cn.


  • DNS反向解析案例配置

[root@ns1 ~]# vi /etc/named.rfc1912.zones  # 加入反向區域
zone "4.168.192.in-addr.arpa" IN {    #地址須要反着寫,加上.in-addr.arpa 
        type master;
        file "192.168.4.zone";
};

2)新建區域解析數據庫文件
[root@ns1 ~]]# vi /var/named/192.168.4.zone 
$TTL 3H
@       IN SOA  ns.itwish.cn. adminns.itwish.cn. (
                                        20180522012     ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        2W      ; expire
                                        24H )   ; minimum
        IN      NS              ns1.itwish.cn.
110     IN      PTR             ns1.itwish.cn.
        IN      PTR             www.itwish.cn.

3)分配權限
[root@ns1 ~]# chown root:named /var/named/192.168.4.zone #修改文件的權限和所屬組,保證named進程有此文件的可讀屬性
[root@ns1 ~]# chmod 640 /var/named/192.168.4.zone


4)測試
[root@ns1 ~]# named-checkconf     #檢查配置文件
[root@ns1 ~]# named-checkzone "192.168.4.zone" /var/named/192.168.4.zone  #檢查192.168.4.zone 區域配置語法
[root@ns1 ~]# service named configtest    # 測試全部配置區域
[root@ns1 ~]# rndc reload    #重載配置文件

[root@ns1 ~]# dig -x 192.168.4.110  @192.168.4.110   #使用dig命令測試,返回如下值說明成功

;; QUESTION SECTION:
;110.4.168.192.in-addr.arpa.    IN    PTR

;; ANSWER SECTION:
110.4.168.192.in-addr.arpa. 10800 IN    PTR    ns1.itwish.cn.
110.4.168.192.in-addr.arpa. 10800 IN    PTR    www.itwish.cn.


區域中添加從服務器的關鍵項:

    在上級得到受權,容許區域傳送:# allow-transfer {127.0.0.1;127.16.100.1}

    在上級區域數據文件中爲從服務器添加一條NS記錄和對應的A或PTR記錄


  • DNS主從複製案例配置

1)配置主dns服務器
[root@ns1 ~]# vi /etc/named.conf 
options {
        listen-on port 53 { 192.168.4.110; };   
        directory       "/var/named";   
        allow-query     { any; };      
        recursion yes;     
};
include "/etc/named.rfc1912.zones";

[root@ns1 ~]# vi /etc/named.rfc1912.zones 
zone "itwish.cn" IN {  
        type master;    
        file "itwish.cn.zone";    
        allow-transfer { 192.168.4.120; };   #容許把該區域傳送給從DNS服務器192.168.4.120
};

[root@ns1 ~]# vi /var/named/itwish.cn.zone 
$TTL 1D
@       IN SOA  ns1  admin.itwish.cn. (              
                                        2018061004      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns1   
        IN      NS      ns2             #新增一條ns記錄 ,將從DNS服務器的NS記錄添加到此
        IN      MX      10      mail   
ns1     IN      A       192.168.4.110   
www     IN      A       192.168.4.110
ns2     IN      A       192.168.23.120   #新增一條A記錄 ,將從DNS服務器的A記錄添加到此

2)配置從dns服務器
[root@ns2 ~]# vi /etc/named.conf 
options {
        listen-on port 53 { 192.168.4.120; };   
        directory       "/var/named";   
        allow-query     { any; };      
        recursion yes;     
};
[root@ns2 ~]# vim /etc/named.rfc1912.zones
zone "itwish.cn" IN {
    type slave;                      #類型爲從服務器
    masters { 192.168.4.110; };     #同步DNS服務器的IP地址
    file "slaves/itwish.cn.zone";   #數據庫文件保存到 /var/named/slaves/ 文件夾下,名字叫itwish.cn.zone
    allow-transfer { none; };    #禁止區域傳送
};
[root@ns2 ~]# service named  restart    #重啓服務
[root@ns2 ~]# ls /var/named/slaves/  #能夠看到數據庫文件則證實已經同步成功dongfei.com.zone.slave
itwish.cn.zone


BIND子域受權的實現,在父域的配置文件中添加以下項:

    受權的子區域名稱

    子區域的名稱服務器

    子區域的名稱服務器的IP地址

如 tech      IN      NS      ns3.tech.itwish.cn.   

    ns3.tech.itwish.cn.    IN        A    192.168.4.130

區域轉發類型:

    全局轉發: 對非本機所負責解析區域的請求,全轉發給指定的服務器,在/etc/named.conf 中配置

    特定區域轉發:僅轉發對特定的區域的請求,比全局轉發優先級高,在區域文件zone 中配置

轉發器類型:

    first模式:優先先轉發到目標DNS服務器,若是區域不存在,再轉發到根上去查詢

    onyl模式:只轉發到目標DNS服務器,若是目標主機沒有此查詢的信息則轉發失敗


  • DNS子域委派與區域轉發案例配置

1)配置dns父域
[root@ns1 ~]# vi /etc/named.conf 
options {
        listen-on port 53 { 192.168.4.110; };   
        directory       "/var/named";   
        allow-query     { any; };      
        recursion yes;  
         forward first;  #first模式 ,全局轉發
                forwarders { 192.168.4.110;192.168.4.120; };  #目標DNS服務器IP   
};
include "/etc/named.rfc1912.zones";

[root@ns1 ~]# vi /etc/named.rfc1912.zones 
zone "itwish.cn" IN {  
        type master;    
        file "itwish.cn.zone";    
        allow-transfer { 192.168.4.120; };   #容許把該區域傳送給從DNS服務器192.168.4.120
};

[root@ns1 ~]# vi /var/named/itwish.cn.zone   #在區域添加子域NS記錄及其A記錄
$TTL 1D
@       IN SOA  ns1  admin.itwish.cn. (              
                                        2018061004      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns1   
        IN      NS      ns2             
        IN      MX      10      mail   
ns1     IN      A       192.168.4.110   
www     IN      A       192.168.4.110
ns2     IN      A       192.168.23.120  
tech    IN      NS              ns3.tech.itwish.cn.    #將tech子域受權給ns3.tech.itwish.cn.
ns3.tech.itwish.cn.     IN      A               192.168.23.130          #添加相對應的正向解析A記錄


2)配置子域及區域轉發 
[root@ns3 ~]# vi /etc/named.conf 
options {
        listen-on port 53 { 192.168.4.130; };   
        directory       "/var/named";   
        allow-query     { any; };      
        recursion yes;     
};
include "/etc/named.rfc1912.zones"; 

[root@ns3 ~]# vi /etc/named.rfc1912.zones 
zone "tech.itwish.cn" IN {  
        type master;    
        file "tech.itwish.cn.zone";    
}; 
zone "itwish.cn" IN {     
        type forward;     #轉發區域
        forwarders { 192.168.4.110; 192.168.4.120; };   #轉發目標服務器
        forward first;      #優先先轉發到目標DNS服務器,若是區域不存在,再轉發到根上去查詢
}; 

[root@ns3 named]# vi /var/named/tech.itwish.cn.zone    #配置子域區域文件
$TTL 10800      ; 3 hours
tech.itwish.cn          IN SOA  ns3.tech.itwish.cn. adminns.tech.itwish.cn. (
                                1884700031 ; serial
                                86400      ; refresh (1 day)
                                3600       ; retry (1 hour)
                                1209600    ; expire (2 weeks)
                                86400      ; minimum (1 day)
                                )
                        NS      ns3.tech.itwish.cn.
                        MX      10 mail.tech.itwish.cn.
$ORIGIN tech.itwish.cn.
mail                    A       192.168.23.130
ns3                     A       192.168.23.130
www                     A       192.168.23.110


bind有四個內置的acl,acl——把一個或多個地址歸併爲一個集合,並經過一個統一的名稱調用;只能先定義,後使用,所以通常定義在配置文件中,處於options的前面

    none: 沒有一個主機

    any: 任意主機

    localhost: 本機

    localnet: 本機的IP同掩碼運算後獲得的網絡地址


view:視圖:實現智能DNS

    一個bind服務器可定義多個view,每一個view中可定義一個或多個zone

    每一個view用來匹配一組客戶端,全部的zone都只能定義在view中

    多個view內可能須要對同一個區域進行解析,但使用不一樣的區域解析庫文件


  • DNSview視圖配置

[root@localhost named]# vi /etc/named.rfc1912.zones 

acl uniom {   #定義acl ,注意acl的匹配順序關係,至上而下
        192.168.4.0/24 ;
};
acl telom {
        172.16.10.0/24;
};
acl othom {
        any;
};
view uninet {   #定義view 視圖 ,全部的zone都需定義在view中
match-clients { uniom; };   #匹配的acl 選項
zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};
 zone "itwish.cn" IN {
        type master;
        file "itwish.cn.zone.uniom";
 };
};

view telnet {
match-clients { telom; };
 zone "itwish.cn" IN {
        type master;
        file "itwish.cn.zone.telom";
 };
view anynet {
match-clients { othom; };
 zone "itwish.cn" IN {
        type master;
        file "itwish.cn.zone.uniom";
 };
};

[root@localhost named]# vi itwish.cn.zone.uniom 

$TTL 1D
@       IN SOA  ns1  admin.itwish.cn. (
                                        2018061004      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns1
        IN      MX      10      mail
ns1     IN      A       192.168.4.110
www     IN      A       192.168.4.120

[root@localhost named]# vi itwish.cn.zone.telom 
$TTL 1D
@       IN SOA  ns1  admin.itwish.cn. (
                                        2018061004      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns1
        IN      MX      10      mail
ns1     IN      A       172.16.10.1
www     IN      A       172.16.10.2

[root@localhost named]# dig -t A www.itwish.cn @172.16.10.1  #確認經過172.16.10.x的客戶端進行訪問,獲取的ip 爲172.16.10.2

;; QUESTION SECTION:
;www.itwish.cn.            IN    A

;; ANSWER SECTION:
www.itwish.cn.        86400    IN    A    172.16.10.2

;; AUTHORITY SECTION:
itwish.cn.        86400    IN    NS    ns1.itwish.cn.

;; ADDITIONAL SECTION:
ns1.itwish.cn.        86400    IN    A    172.16.10.1

[root@localhost named]# dig -t A www.itwish.cn @192.168.4.110  #確認經過192.168.4.x的客戶端進行訪問,獲取的ip 爲192.168.10.120

;; QUESTION SECTION:
;www.itwish.cn.            IN    A

;; ANSWER SECTION:
www.itwish.cn.        86400    IN    A    192.168.4.120

;; AUTHORITY SECTION:
itwish.cn.        86400    IN    NS    ns1.itwish.cn.

;; ADDITIONAL SECTION:
ns1.itwish.cn.        86400    IN    A    192.168.4.110


部署安裝DNS(域名解析)系統


部署實驗:

    一、部署根域名解析服務器

    二、部署一級域名.cn 域名解析服務器

    三、部署二級域名.itwish 和.goodoing 域名解析系統,ns1 與 ns2 服務器實現主從複製功能

    四、部署子域tech域名解析服務器,ns3 與 ns4 服務器實現主從複製 ,部署轉發區域itwish.cn 及goodoing.cn ,轉發服務器爲ns1 和 ns2

    五、部署緩存域名解析服務器,client用戶dns 地址指向 192.168.4.100 ,測試解析

實驗拓撲:


圖片.png


1)對全部服務器,安裝bind組件,禁用selinux功能並中止iptables功能

# yum install bind bind-utils -y   #yum安裝bind          
# service named start  
# service iptables stop   #中止iptables 服務
# chkconfig iptables off
# vi /etc/selinux/config   
SELINUX=disabled    #修改成disabled ,其餘行註釋掉 ,禁用selinux功能


2)部署根域名解析服務器

[root@PXE named]# vi /etc/named.conf
options {

        listen-on port 53 { 192.168.4.150; };
        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";
        recursion yes;
};
include "/etc/named.rfc1912.zones";

[root@PXE named]# vi /etc/named.rfc1912.zones 

zone "." IN {          #增長根域
        type master;
        file "root.zone";
        allow-transfer { none; };
};

[root@PXE named]# vi /var/named/root.zone   #定義根域數據庫文件
$TTL 1D
@       IN SOA  root. radmin. (
                                        2018061005      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      root.
root.   IN      A       192.168.4.150
cn      IN      NS      dns.cn.          #定義子域 cn
dns.cn. IN      A       192.168.4.160

[root@PXE ~]# chown root:named /var/named/*.zone #修改文件的權限和所屬組,保證named進程有此文件的可讀屬性
[root@PXE ~]# chmod 640 /var/named/*.zone
[root@PXE ~]# named-checkconf     #檢查配置文件
[root@PXE ~]# service named configtest    # 測試全部配置區域
[root@PXE ~]# rndc reload    #重載配置文件


3)部署cn域名解析服務器

[root@cn named]# vi /etc/named.conf 
options {
        listen-on port 53 { 192.168.4.160; };
        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";
        recursion yes;

};
include "/etc/named.rfc112.zones";

[root@cn named]# vi /etc/named.rfc1912.zones 

zone "cn" IN    {
        type master;
        file "cn.zone";
};

[root@cn named]# vi /var/named/cn.zone 
$TTL 1D
@       IN SOA  dns  admin.cn. (
                                        2018061004      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      dns
dns     IN      A       192.168.4.160
itwish  IN      NS      ns1.itwish
        IN      NS      ns2.itwish
ns1.itwish.cn.  IN      A       192.168.4.110
ns2.itwish.cn.  IN      A       192.168.4.120

[root@cn ~]# chown root:named /var/named/*.zone 
[root@cn ~]# chmod 640 /var/named/*.zone
[root@cn  ~]# named-checkconf     
[root@cn ~]# service named configtest   
[root@cn ~]# rndc reload


4)部署ns1域名解析服務器

[root@ns1 ~]# vi /etc/named.conf 
options {
        listen-on port 53 { 192.168.4.110; };
        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";
        recursion yes;

};
include "/etc/named.rfc1912.zones";

[root@ns1 ~]# vi /etc/named.rfc1912.zones  
zone "itwish.cn" IN {
        type master;
        file "itwish.cn.zone";
        allow-transfer { 192.168.4.120; };
};
zone "goodoing.cn" IN {
        type slave;
        masters { 192.168.4.120; };
        file "slaves/goodoing.cn.zone";
        allow-transfer { none; };
};

[root@ns1 ~]# vi /var/named/itwish.cn.zone 
$TTL 1D
@       IN SOA  ns1  admin.itwish.cn. (
                                        2018061004      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns1
        IN      NS      ns2
        IN      MX      10      mail
ns1     IN      A       192.168.4.110
ns2     IN      A       192.168.4.120
www     IN      A       192.168.4.110
mail    IN      A       192.168.4.110
tech    IN      NS      ns3.tech
        IN      NS      ns4.tech
ns3.tech        IN      A       192.168.4.130
ns4.tech        IN      A       192.168.4.140

[root@ns1 ~]# chown root:named /var/named/*.zone 
[root@ns1 ~]# chmod 640 /var/named/*.zone
[root@ns1 ~]# named-checkconf     
[root@ns1 ~]# service named configtest   
[root@ns1 ~]# rndc reload


5)部署ns2域名解析服務器

[root@ns2 ~]# vi /etc/named.conf 
options {
        listen-on port 53 { 192.168.4.120; };
        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";
        recursion yes;

};
include "/etc/named.rfc1912.zones";

[root@ns2 ~]# vi /etc/named.rfc1912.zones 
zone "goodoing.cn" IN {
        type master;
        file "goodoing.cn.zone";
        allow-transfer { 192.168.4.110; };
};
zone "itwish.cn" IN {
        type slave;
        masters { 192.168.4.110; };
        file "slaves/itwish.cn.zone";
        allow-transfer { none; };
};

[root@ns2 ~]# vi /var/named/goodoing.cn.zone 
$TTL 1D
@       IN SOA  ns2  admin.goodoing.cn. (
                                        2018061004      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      ns1
        IN      NS      ns2
        IN      MX      10      mail
ns1     IN      A       192.168.4.110
ns2     IN      A       192.168.4.120
www     IN      A       192.168.4.120
mail    IN      A       192.168.4.120
tech    IN      NS      ns3.tech
        IN      NS      ns4.tech
ns3.tech        IN      A       192.168.4.130
ns4.tech        IN      A       192.168.4.140

[root@ns2 ~]# chown root:named /var/named/*.zone 
[root@ns2 ~]# chmod 640 /var/named/*.zone
[root@ns2 ~]# named-checkconf     
[root@ns2 ~]# service named configtest   
[root@ns2 ~]# rndc reload


6)部署ns3域名解析服務器

[root@ns3 ~]# vi /etc/named.conf 
options {
        listen-on port 53 { 192.168.4.130; };
        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";
        recursion yes;

};
include "/etc/named.rfc1912.zones";

[root@ns3 ~]# vi /etc/named.rfc1912.zones 
zone "tech.itwish.cn" IN {
        type master;
        file "tech.itwish.cn.zone";
        allow-transfer { 192.168.4.140; };
};
zone "tech.goodoing.cn" IN {
        type slave;
        masters { 192.168.4.140; };
        file "slaves/tech.goodoing.cn.zone";
        allow-transfer { none; };
};
zone "itwish.cn" IN {
        type forward;
        forward first;
        forwarders { 192.168.4.110; 192.168.4.120; };
};
zone "goodoing.cn" IN {                     
        type forward;
        forward first;
        forwarders { 192.168.4.110; 192.168.4.120; };
};

[root@ns3 ~]# vi /var/named/tech.itwish.cn.zone 
$TTL 1D
@       IN SOA  ns3  admin.tech.itwish.cn. (
                                        2018061002      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                IN      NS      ns3
                IN      NS      ns4
        IN      MX      10      mail
ns3     IN      A       192.168.4.130
ns4     IN      A       192.168.4.140
www     IN      A       192.168.4.130
mail    IN      A       192.168.4.130

[root@ns3 ~]# chown root:named /var/named/*.zone 
[root@ns3 ~]# chmod 640 /var/named/*.zone
[root@ns3 ~]# named-checkconf     
[root@ns3 ~]# service named configtest   
[root@ns3 ~]# rndc reload


7)部署ns4域名解析服務器

[root@ns4 ~]# vi /etc/named.conf 
options {
        listen-on port 53 { 192.168.4.140; };
        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";
        recursion yes;

};
include "/etc/named.rfc1912.zones";

[root@ns4 ~]# vi /etc/named.rfc1912.zones 
zone "tech.goodoing.cn" IN {
        type master;
        file "tech.goodoing.cn.zone";
        allow-transfer { 192.168.4.130; };
};
zone "tech.itwish.cn" IN {
        type slave;
        masters { 192.168.4.130; };
        file "slaves/tech.itwish.cn.zone";
        allow-transfer { none; };
};
zone "itwish.cn" IN {
        type forward;
        forward first;
        forwarders { 192.168.4.110; 192.168.4.120; };
};
zone "goodoing.cn" IN {                     
        type forward;
        forward first;
        forwarders { 192.168.4.110; 192.168.4.120; };
};

[root@ns4 ~]# vi /var/named/tech.goodoing.cn.zone 
$TTL 1D
@       IN SOA  ns4  admin.tech.goodoing.cn. (
                                        2018061002      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                IN      NS      ns3
                IN      NS      ns4
        IN      MX      10      mail
ns3     IN      A       192.168.4.130
ns4     IN      A       192.168.4.140
www     IN      A       192.168.4.130
mail    IN      A       192.168.4.130

[root@ns4 ~]# chown root:named /var/named/*.zone 
[root@ns4 ~]# chmod 640 /var/named/*.zone
[root@ns4 ~]# named-checkconf     
[root@ns4 ~]# service named configtest   
[root@ns4 ~]# rndc reload


8)配置cach緩存DNS服務器,測試域名解析

[root@cach ~]# vi /etc/named.conf 
options {
        listen-on port 53 { 192.168.4.100; };
        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";
        recursion yes;

};
zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.rfc1912.zones";

[root@cach ~]# vi /var/named/named.ca  
.                        3600000      NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     192.168.4.150    #將根服務器指向咱們本身搭建的根DNS服務器

[root@cach named]# dig -t NS .

;; QUESTION SECTION:
;.                IN    NS

;; ANSWER SECTION:
.            82572    IN    NS    root.


[root@cach named]# dig -t NS cn

;; QUESTION SECTION:
;cn.                IN    NS

;; ANSWER SECTION:
cn.            86400    IN    NS    dns.cn.

[root@cach named]# dig -t NS itwish.cn

;; QUESTION SECTION:
;itwish.cn.            IN    NS

;; ANSWER SECTION:
itwish.cn.        86400    IN    NS    ns1.itwish.cn.
itwish.cn.        86400    IN    NS    ns2.itwish.cn.


[root@cach named]# dig -t NS tech.itwish.cn

;; QUESTION SECTION:
;tech.itwish.cn.            IN    NS

;; ANSWER SECTION:
tech.itwish.cn.        86400    IN    NS    ns4.tech.itwish.cn.
tech.itwish.cn.        86400    IN    NS    ns3.tech.itwish.cn.


[root@cach named]# dig -t NS tech.goodoing.cn

;; QUESTION SECTION:
;tech.goodoing.cn.        IN    NS

;; ANSWER SECTION:
tech.goodoing.cn.    86400    IN    NS    ns4.tech.goodoing.cn.
tech.goodoing.cn.    86400    IN    NS    ns3.tech.goodoing.cn.


[root@cach named]# dig -t A www.tech.goodoing.cn

;; QUESTION SECTION:
;www.tech.goodoing.cn.        IN    A

;; ANSWER SECTION:
www.tech.goodoing.cn.    86400    IN    A    192.168.4.130


至此,linux DNS系統部署並調配完成,實現了內網根域及各主機的解析。

相關文章
相關標籤/搜索