DNS 及 bind的簡單配置

bind的簡單配置

摘要:DNS  bind簡單配置


       FQDN

       http://www.www58058.com.  WWW是主機名  .178linux.COM.是私有域名  .com.是DNS一級域名 .是根域

DNS解析順序

/etc/hostsDNS緩存DNS域服務器

主機優先查找本地的hosts(/etc/hosts)文件,沒有想對應的記錄則去查找本地DNS客戶端的解析緩存庫,緩存庫沒有想對應的記錄則詢問本地配置的DNS服務器(DNS服務器配飾文件 /etc/resolv.conf)

DNS服務器同樣優先查找本地緩存數據,沒有相對應的記錄直接去找根,根會告訴你這事我委托給.com管理了這是.com的地址你去找他吧,DNS服務器找到.com得到這事我委托給178linux.com管理員ns.178linux.com來管理這事他的地址你去找他吧;繼續拜訪ns.178linux.com得到www.www58058.com的地址返回給主機。

主機得到對應的IP地址就將訪問數據報文發送給此IP

遞歸查詢:主機訪問DNS服務器,并且DNS服務器最終返回解析結果給客戶端的方式為遞歸查詢。不輪客戶端所查詢的域名是否為此DNS服務器管理它最終會個客戶端返回解析結果。

迭代查詢:DNS服務器子根向下逐級查找解析資源記錄的過程為迭代查詢,被DNS訪問的服務器只返回下級域的域管理員的地址。


DNS域服務器架構

dns樹.jpg


二、搭建一個DNS服務器

2.1 DNS服務器軟件搭建采用bind

     Bind是一款開放源碼的DNS服務器軟件,Bind由美國加州大學Berkeley分校開發和維護的,全名為Berkeley Internet Name Domain它是目前世界上使用最為廣泛的DNS服務器軟件,支持各種unix平臺和 windows平臺。

2.2 安裝bind

yum install bind -y

[root@localhost ~]# rpm -ql bind
    [root@localhost ~]# rpm -ql bind

#rpm生成的幾個重要的配置文件
/etc/named.conf           #bind的主配置文件    
/etc/named.rfc1912.zones  #bind的zone配置文件,通過主配置的include選項作為主配置文件的一部分  
/etc/rndc.conf            #rndc的主配置文件       
/etc/rndc.key             #rndc的消息完整性驗證key
/var/named/named.ca       #DNS根服務器信息
#以上文件權限模型  640 root named
/var/named/sslaves/       #    叢服務器配置文件存放目錄 權限模型 770 named named

2.3 bind的主配置文件

// 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; };        #監聽的端口和地址   {  } 前后需各有一個空格否則為語法錯誤,
                                                 #每行結束需以“;”結尾否則也為語法錯誤
        listen-on-v6 port 53 { ::1; };           #IPv6的端口和地址配置
        directory       "/var/named";            #bind工作目錄;配置文件內的相對文件路徑都是在此目錄下
        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; };          #允許那些客戶端來查詢  此內的localhost為內置acl
        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";
};

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";                   #同上

    2.4 allow白名單控制

allow-***
allow-query         #原先那些主機前來查詢DNS       
allow-transfer      #允許那些主機進行區域傳送
allow-update        #允許接收那些主機動態DNS更新  
allow-recursion     #允許為哪些主機進行遞歸查詢

    2.5 acl控制列表;定義在options內

    幾個內建的acl:none: 所有都不
                            any: 任意
                            localhost: 本機

acl 語法格式
acl ACL_NAME {
                ip;
                ip;
                network;
            };
#示例 遞歸查詢白名單
acl rec_network {
                10.10.10.0/24; #網段
                192.168.1.254; #ip
                localhost;     #可包含其他acl   
               };
recursion yes
allow-recursion { localhost;rec_network; }

2.6 named.rfc1912.zones配置文件

域分為正向域和反向域:正向域為FQDNIP地址;反向域為IP地址FQND。

正向域和反向域的域配置文件是兩份獨立的配置文件。

其中郵件地址需配置反向域否則會被認為是垃圾郵件。

#####named.rfc1912.zones配置文件內容
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "localhost.localdomain" IN {         #域名;IN為固定格式
        type master;                      #服務類型:master|slave|forward|hind
        file "named.localhost";           #區域解析庫配置文件,相對路徑在options定義的工作目錄下
        allow-update { none; };           #不接受任何動態數據更新
};
zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {        #反向域
        type master;
        file "named.loopback";
        allow-update { none; };
};
zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};

2.7 區域解析庫配置文件

區域解析庫內存放地址映射資源記錄:rr(resource record);映射信息有類型的概念:用于此記錄解析的屬性;主要類型分為以下幾種
                SOA: Start Of Authority, 起始授權記錄,一個區域文件只能有一個;
                NS:Name Server
                MX: Mail eXchange, 郵件交換器,MX記錄有優先級屬性(0-99);
                A:FQDN –> IP,專用于正向解析庫
                PTR: IP –> FQDN,專用于反向解析庫
                AAAA:FQDN –> IPv6,專用于正向解析庫
                CNAME: Canonical Name,正式名稱
    這些配置信息需要手動配置,配置前需要做好信息收集及信息注冊
        資源記錄類型書寫格式

SOA:

@      TTL      IN        SOA    FQDN        ADMIN.MAIL    ( 
                           serial number   ;解析庫的版本號,
                           refresh time    ;主叢服務器周期性同步的時間間隔;time默認單位秒,也可使用1D,1H等代替
                           retry time      ;主服務器為響應叢服務器后叢服務器的重試時間間隔
                           expire time     ;主服務器一直未響應;叢服務器解析庫失效時長
                           negative answer ttl ;無效主機名否定答案的統一緩存時長
                    )                    
# @:域名替代符
# TTL:緩存時間
# IN:固定字符
# SOA:資源記錄類型
# FQND:區域內主DNS服務器的FQDN
# ADMIN.MAIL:管理郵箱 其中郵箱的@在配置文件中有特殊意義需替換成.

NS:                    

@        TTL        IN         NS         FQDN
# @:域名替代符
# TTL:緩存時間 
# IN:固定字符
# NS:資源記錄類型
# FQND:DNS服務器的FQDN

     MX:

@        TTL        IN         NS       priority       FQDN
# @:域名替代符
# TTL:緩存時間 
# IN:固定字符
# NS:資源記錄類型
# priority:優先級 0-99 越小越優先,用于有多個郵件服務器
# FQND:郵件服務器的FQDN

    A:

FQND        TTL        IN         A|AAAA       IPADDR
# FQDN:主機完全域名
# TTL:緩存時間 
# IN:固定字符
# A:IPV4資源記錄類型
# AAAA:IPV6資源記錄類型
# IPADDR:IPV4或IPV6的主機地址

    CNAME:

FQND1        TTL        IN         CNAME       FQDN2
# FQDN1:主機完全域名
# TTL:緩存時間 
# IN:固定字符
# FQDN2:主機完全域名,必須有A記錄,訪問FQDN1時會先解析到FQDN1=FQDN2然后再去查FQDN2的A記錄

    PTR:

反序IP.in-addr.arpa        TTL        IN         PTR       FQDN
# 反序IP.in-addr.arpa:示例192.168.1.1PTR=1.1.168.192.in-addr.arpa
# TTL:緩存時間 
# IN:固定字符
# FQDN:主機完全域名

    2.8 搭建緩存bind服務器

            邏輯拓撲結構圖  bind服務器OS系統為centos 6.7  IP地址:10.10.10.3

         dns.png

        第一步:安裝bind程序前面已經做完

        第二步:配置主配置文件 /etc/named.conf

###將以下參數注釋掉        
        //listen-on port 53 { 127.0.0.1; };  #注釋后bind將監聽所有IPv4地址的53號端口
        listen-on-v6 port 53 { ::1; };       #如果你沒有IPv6的配置這項無需配置 
        //allow-query     { localhost; };    #注釋后允許所有任何地址前來查詢
        recursion yes;                       #允許為所有客戶端進行遞歸查詢 

        //dnssec-enable yes;                 #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉   
        //dnssec-validation yes;             #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉 
        //dnssec-lookaside auto;             #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉 

        /* Path to ISC DLV key */            #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉 
        //bindkeys-file "/etc/named.iscdlv.key";    #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉 

        //managed-keys-directory "/var/named/dynamic";    #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉 

//include "/etc/named.root.key";    #與DNS信息完整性及安全相關,簡單那配置暫不做配置,注釋掉

        第三步:增加解析域信息至named.rfc1912.zones

zone "mylinux.com" IN {
        type master;
        file "mylinux.zone";
        allow-update { none; };
};
zone "10.10.10.in-addr.arpa" IN {         #反向區域,我選的這個地址不是太直觀,如果是172.16.1.2的話反向就是這樣寫1.16.172.in-addr.arpa
        type master;
        file "10.10.10.zone";
        allow-update { none; };
};


#####檢查配置文件是否正確 
    [root@localhost named]# named-checkconf 
    [root@localhost named]#                  ##沒有輸出就沒有錯誤

       第四步配置解析資源記錄

[root@localhost named]# vim /var/named/mylinux.zone 
################全稱拼寫格式
$TTL 7200
@       IN      SOA     ns.mylinux.com.    admin.mylinux.com.   (
                        2015101600
                        1H
                        300
                        1W
                        1D
)
        IN      NS              ns.mylinux.com.      #第一個字段如果與上一行一樣可省略不寫會自動補全
        IN      MX      10      mail.mylinux.com.
ns.mylinux.com.         IN      A       10.10.10.3   #FQDN全名后面必須加.,.代表根區域
mail.mylinux.com.       IN      A       10.10.10.4
www.mylinux.com.        IN      A       10.10.10.5
ftp.mylinux.com.        IN      A       10.10.10.6

###############  簡寫
$TTL 7200
$ORIGIN mylinux.com     #自動將此變量作為FQDN的一部分補在,如果不聲明此變量內容默認為zones文件中定義的域名
@       IN      SOA     ns         admin        (       
                        2015101600
                        1H
                        300
                        1W
                        1D
)
        IN      NS              ns    
        IN      MX      10      mail
ns      IN      A       10.10.10.3
mail    IN      A       10.10.10.4
www     IN      A       10.10.10.5
ftp     IN      A       10.10.10.6

#####反向域配置
$TTL 7200
@               IN      SOA     ns.mylinux.com.     admin.mylinux.com.     (
                                2015101600
                                1H
                                300
                                1W
                                2D)
                IN      NS      ns.mylinux.com.
3               IN      PTR     ns.mylinux.com.
4               IN      PTR     mail.mylinux.com.
5               IN      PTR     www.mylinux.com.
6               IN      PTR     ftp.mylinux.com.

 

#####檢查zone配置文件是否有錯誤
[root@localhost ~]# chown root:named /var/named/mylinux.zone  /var/named/10.10.10.zone
[root@localhost ~]# chmod 640 /var/named/mylinux.zone /var/named/10.10.10.zone
[root@localhost named]#named.checkzone "mylinux.com" /var/named/mylinux.zone   #檢查無錯誤后執行重讀配置文件
[root@localhost named]# named-checkzone "10.10.10.in-addr.arpa" /var/named/10.10.10.zone 
zone 10.10.10.in-addr.arpa/IN: loaded serial 2015101600
OK

[root@localhost named]# rndc reload   #重讀配置文件
server reload successful
[root@localhost named]# service named reload
Reloading named:                                           [  OK  ]   #重讀配置文件
[root@localhost named]# 
####如果修改過端口及監聽地址需要重啟服務
[root@localhost named]# service named restart
[root@localhost ~]# chkconfig --level 2345 named on

DNS測試

常用的DNS測試命令有

1、host -t RRType NAME [SERVER]
         例如:host -t NS mylinux.com  10.10.10.3

2、nslookup      交互式測試工具
        nslookup>
            server IP:
            set type={A|SOA|NS|MX}
            name
 3、dig
            dig -t TYPE name @server
                -t AXFR: 標示區域傳送
                -x:測試反解
                +(no)trace:是否顯示查詢過程
                +(no)recurse:是否遞歸查詢
            

[mylinux@www ~]$ dig -t AXFR mylinux.com @10.10.10.3     #做區域傳輸測試,查看DNS服務器所有記錄

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -t AXFR mylinux.com @10.10.10.3
;; global options: +cmd
mylinux.com.        7200    IN    SOA    ns.mylinux.com. admin.mylinux.com. 2015101600 1800 300 604800 86400
mylinux.com.        7200    IN    NS    ns.mylinux.com.
mylinux.com.        7200    IN    MX    10 mail.mylinux.com.
ftp.mylinux.com.    7200    IN    A    10.10.10.6
mail.mylinux.com.    7200    IN    A    10.10.10.4
ns.mylinux.com.        7200    IN    A    10.10.10.3
www.mylinux.com.    7200    IN    A    10.10.10.5
mylinux.com.        7200    IN    SOA    ns.mylinux.com. admin.mylinux.com. 2015101600 1800 300 604800 86400
;; Query time: 0 msec
;; SERVER: 10.10.10.3#53(10.10.10.3)
;; WHEN: Thu Oct 15 21:09:36 2015
;; XFR size: 8 records (messages 1, bytes 217)

[mylinux@www ~]$ dig -x 10.10.10.5 @10.10.10.3
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.4 <<>> -x 10.10.10.5 @10.10.10.3
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50444
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

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

;; ANSWER SECTION:
5.10.10.10.in-addr.arpa. 7200    IN    PTR    www.mylinux.com.

;; AUTHORITY SECTION:
10.10.10.in-addr.arpa.    7200    IN    NS    ns.mylinux.com.

;; ADDITIONAL SECTION:
ns.mylinux.com.        7200    IN    A    10.10.10.3

;; Query time: 2 msec
;; SERVER: 10.10.10.3#53(10.10.10.3)
;; WHEN: Thu Oct 15 23:18:54 2015
;; MSG SIZE  rcvd: 103


windows下測試

win.jpg

原創文章,作者:東郭先生,如若轉載,請注明出處:http://www.www58058.com/8746

(0)
東郭先生東郭先生
上一篇 2015-10-18
下一篇 2015-10-18

相關推薦

  • 數組詳解

    數組 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合          數組名:整個數組只有一個名字     數組索引:編號從0開始,屬于數值索引     &n…

    Linux干貨 2016-08-24
  • Corosync + Pacemaker 搭建高可用MariaDB服務

    Corosync + Pacemaker 搭建高可用MariaDB服務 實驗描述 1.本實驗的目的是為了通過手動配置corosync配置文件,實現MariaDB服務的高可用,集群心跳傳遞使用組播方式。2.三個節點的主機名分別為:node5.redhat.com、node6.redhat.com、node7.redhat.com。地址為172.16.100.5…

    Linux干貨 2016-04-06
  • Linux基本命令

    前言 今天學習了Linux下的一些基本命令,在此歸納總結一下這些命令的基本用法。 Linux命令幫助的獲取     在拿到一個命令后不知道其用法,我們可以通過命令幫助來查看它的用法,但linux下內部命令和外部命令獲取幫助的方法是有差別的。     內部命令:help command &n…

    Linux干貨 2016-10-14
  • N26-博客作業-week2

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。   cp:copy 復制文件和路徑 cp [OPTION]… [-T] SOURCE DEST cp [OPTION]… SOURCE… DIRECTORY cp [OPTION]… -t DIRECTORY SOURCE&…

    Linux干貨 2017-02-12
  • 08-vim文本編輯器

    簡介: vi: Visual Interface,文本編輯器 文本:ASCII, Unicode 文本編輯種類: 行編輯器: sed 全屏編輯器:nano, vi vim – Vi Improved 其他編輯器: gedit 一個簡單的圖形編輯器 gvim 一個Vim編輯器的圖形版本 打開文件: # vim [OPTION]… FIL…

    2017-03-16
  • 文件元數據信息的含義、查看方法,和文件時間戳信息的修改方法

    文件數據分成兩類 元數據,英文叫metadata,是數據的屬性; 數據,英文叫data,是數據本身; 使用stat命令查看元數據信息 [0][root@localhost mylinux]# stat /etc/passwd File: ‘/etc/passwd’ Size: 889 Blocks: 8 IO Block: 4096 regular file…

    Linux干貨 2018-03-01

評論列表(1條)

  • stanley
    stanley 2015-10-18 20:09

    內容豐滿,有原理有實驗,樣式奪目,非常贊,已置頂

欧美性久久久久