DNS

簡介

    DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。DNS協議運行在UDP協議之上,使用端口號53。

一 DNS and BIND   

        DNS: Domain Name Service,協議(C/S, 53/udp, 53/tcp);應用層協議;

        BIND:Bekerley Internat Name Domain, ISC (www.isc.org)

DNS查詢類型:

        遞歸查詢

        迭代查詢

DNS資源記錄:

    DNS服務器中域名與IP地址相互轉換的映射信息以文本形式存儲在其區域解析中,每一行表示一對對應關系,稱之為資源記(RR Resource Record),每一條資源記錄都包含域名、IP地址和其它屬性信息。

    資源記錄定義的格式:

    語法:name[TTL]IN rr_type value

    name:資源記錄引用的域對象名,可以是單臺主機或者整個域,字段值: "."是根域 "@"是默認域,即當前域

     TTL: 生存時間字段,以秒為單位定義該資源記錄的信息存放在DNS緩存中的時間長度。此字段缺省采用SOA記錄中的最小TTL值(即1小時)

    IN : 固定關鍵字

    rr_type:資源記錄類型           

            (1)SOA:Start Of Authority,起始授權記錄;一個區域解析庫有且僅能有一個SOA記錄而必須為解析庫的第一條記錄;

            (2)A:internet Address,作用,A記錄,成為主機記錄,DNS名稱到IP地址的映射,用于正向解析

            (3)AAAA: FQDN –> IPv6地址主機記錄

            (4)PTR: PoinTeR,IP –> IP地址到DNS名稱的映射,用于反向解析

            (5)NS: Name Server,專用于標明當前區域的DNS服務器

            (6)CNAME:Canonical Name,別名記錄

            (7)MX: Mail eXchanger,郵件交換器,用于告知郵件服務器進程將郵件發往指定的另一臺郵件服務器

    value: 有多部分組成

            (1) 當前區域的主DNS服務器的FQDN,也可以使用當前區域的名字;

            (2) 錄前區域管理員的郵箱地址;但地址中不能使用@符號,一般用.替換,例如linuxedu.magedu.com;

            (3) (主從服務協調屬性的定義以及否定的答案的統一的TTL)

二 BIND的安裝配置

     dns服務,程序包名bind,程序名named            

    程序包:

        bind#提供服務

        bind-libs#提供庫文件

        bind-utils#測試工具

    系統安裝環境centos 6.7

    關閉SELINUX:setenforce 0 #立即生效   (實際是寬容模式)

    配置防火墻:iptables -F(清除防火墻規則)或者是關閉iptables

    域名:test.com

    主DNS的IP:192.168.1.7

    從DNS的IP:192.168.1.5

    1.bind 的安裝  

     yum -y install bind    #依賴關系會自動解決安裝

     blob.png    

    查看一下bind生成的文件和路徑信息

    rpm -ql bind

    blob.png      

    /etc/named.conf              #主配置文件

    /etc/named.rfc1912.zones        #主配置文件的輔助區域配置文件

    /etc/rc.d/init.d/named        #服務啟動腳本

    /etc/rndc.conf               #域名服務遠程控制工具

    /etc/rndc.key            #rndc的消息完整性驗證key

    /usr/sbin/named              #主運行程序

    /usr/sbin/named-checkconf       #配置文件測試工具,測試語法錯誤

    /usr/sbin/named-checkzone       #區域解析庫文件測試工具

    /usr/sbin/rndc              #域名服務遠程控制工具

    /usr/sbin/rndc-confgen         #密鑰生成工具

    /var/named                 #區域解析文件存放位置

    /var/named/slaves            #從服務器由主服務器同步過來區域文件的存放位置

    /var/run/named              #服務啟動后產生的進程

    /var/named/named.ca           #DNS根服務器信息

    注意

        (1) 一臺物理服務器可同時為多個區域提供解析;

        (2) 必須要有根區域文件;named.ca

        (3) 應該有兩個(如果包括ipv6的,應該更多)實現localhost和本地回環地址的解析庫;

    

    主配置文件格式:

            全局配置:options {}

            日志子系統配置:logging {}

            區域定義:本機能夠為哪些zone進行解析,就要定義哪些zone;

            zone "ZONE_NAME" IN {}

    注意:任何服務程序如果期望其能夠通過網絡被其它主機訪問,至少應該監聽在一個能與外部主機通信的IP地址上;

    緩存名稱服務器的配置:

            監聽外部地址即可;

    2.配置主配置文件:/etc/named.conf

    注意這里面不需要的用//注釋掉就可以了啊

        options {
            listen-on port 53 { 192.168.1.7; 127.0.0.1; };    #定義監聽的端口以及監聽ip地址
   //        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;                     #這幾行是跟DNS安全相關的,建議關閉此功能
    //      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";                      #配置文件包含這個文件的內容

    3.定義區域解析庫文件:/etc/named.rfc1912.zones   

        zone "localhost.localdomain" IN {               #域名,IN為固定格式
            type master;                       #類型,master|slave|hint|forward 這幾種
            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; };
    };
    
    zone "test.com" IN {
          type master;
          file "test.com.zone";
          allow-update { none;};
    };
    zone "1.168.192.in-addr.arpa" {
          type master;
          file "192.168.1.zone";
    };

    4.創建區域解析庫文件:/var/named/test.com.zone     

    $TTL 86400
    $ORIGIN test.com.
    @       IN      SOA  ns1.test.com.   admin.test.com (     #定義SOA記錄
                         2016030701               #序列號
                         1H                   #版本號刷新時間
                         5M                   #重試時間
                         7D                   #過期時長 
                         1D )                  #否定答案的TTL值
           IN      NS       ns1
           IN      NS       ns2
           IN      MX 10     mx1                  #MX記錄以及優先級
           IN      MX 20     mx2
    ns1     IN      A       192.168.1.7              
    ns2     IN      A       192.168.1.5
    mx1     IN      A       192.168.1.13
    mx2     IN      A       192.168.1.14
    www     IN      A       192.168.1.7
    www     IN      A       192.168.1.5
    pop     IN      CNAME    WWW                    #別名記錄

    5.創建反向區域解析庫文件:/var/named/192.168.1.zone

   $TTL 86400
    $ORIGIN 1.168.192.in-addr.arpa.
    @       IN      SOA     ns1.test.com.   admin.test.com (
                            2016030701
                            1H
                            5M
                            7D
                            1D )
            IN      NS      ns1.test.com.
            IN      NS      ns2.test.com.
    7        IN      PTR       ns1.test.com.        #將A記錄全改成PTR記錄,提供反向解析
    7        IN      PTR       www.test.com.
    13       IN      PTR       mx1.test.com.
    5        IN      PTR       ns2.test.com.
    5        IN      PTR       www.test.com.
    14       IN      PTR       mx2.test.com.

 

    6.由于默認named服務有named用戶身份運行,因此修改解析庫文件的屬組為named,權限改為640

    cd /var/named/

    chmod 640 test.com.zone

    chmod 640 1.168.192.zone  

    chown :named test.com.zone

    blob.png

    7.檢查zone配置文件是否有錯誤

    named-checkzone "test.com" /var/named/test.com.zone

    named-checkzone "1.168.192.in-addr.arpa" /var/named/1.168.192.zone

    named-checkconf 

    blob.png

    

    8.測試命令

        (1)host [-t type] name [SERVER]

            例子:host -t A www.test.com 192.168.1.7

        (2)dig [-t type] name [@SERVER] [query options]

          dig用于測試dns系統,因此,不會查詢hosts文件進行解析        

            查詢選項:

            +[no]trace:跟蹤解析過程

            +[no]recurse:進行遞歸解析

            

            測試反向解析:

            dig -x IP @SERVER

            

            模擬區域傳送:

            dig -t axfr ZONE_NAME @SERVER

            

            例如:dig -t axfr test.com @192.168.1.7                    

        (3)nslookup命令:           

          nslookup [-option] [name | -] [server]

          交互式模式:

             nslookup>

                 server IP: 指明使用哪個DNS server進行查詢;

                 set q=RR_TYPE: 指明查詢的資源記錄類型;

                 NAME: 要查詢的名稱;

    9.啟動DNS服務并進行正向解析測試

     service named start #如果你已經啟動過服務的話直接 service named reload 

     dig -t A www.test.com @192.168.1.7

     dig -t MX mail.test.com @192.168.1.7

    blob.png

    

    10.進行逆向解析測試

       dig -x 192.168.1.5 @192.168.1.7

     blob.png

三 主從復制(根據以上繼續配置從服務器)

    1.配置從服務器的主配置文件:/etc/named.conf

    blob.png

    2.啟動named服務

    service named start

    netstat -nlp | grep :53

    blob.png

    3.定義區域解析庫文件:/etc/named.rfc1912.zones 

    在文件最后的部分添加這幾行

    blob.png

    4.重載主配置文件和區域解析庫文件并查看從主服務器同步過來的文件

    rndc reload

    blob.png

    

    主從復制:

        1、應該為一臺獨立的名稱服務器;

        2、主服務器的區域解析庫文件中必須有一條NS記錄是指向從服務器;

        3、從服務器只需要定義區域,而無須提供解析庫文件;解析庫文件應該放置于/var/named/slaves/目錄中;

        4、主服務器得允許從服務器作區域傳送;

        5、主從服務器時間應該同步,可通過ntp進行;

        6、bind程序的版本應該保持一致;否則,應該從高,主低;

  

DNS 子域授權和高級應用

http://www.www58058.com/12542

原創文章,作者:liangkai,如若轉載,請注明出處:http://www.www58058.com/12395

(0)
liangkailiangkai
上一篇 2016-11-15 10:12
下一篇 2016-11-15 10:20

相關推薦

  • YUM LNMP 安裝 wordpress

    1配置防火墻 Iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT #允許80端口通過防火墻 iptables-A&…

    Linux干貨 2016-06-22
  • 推薦-Corosync + Pacemaker 搭建高可用Httpd服務

    Corosync + Pacemaker 搭建高可用Httpd服務 實驗描述 1.兩個測試節點,分別為node5.redhat.com和node6.redhat.com地址分別為172.16.100.5和172.16.100.62.集群服務為httpd,利用nfs做共享存儲,NFS地址為172.16.0.254,NFS已經共享出了一個/www/htdocs目…

    系統運維 2016-04-05
  • 億級用戶下的新浪微博平臺架構

    序言     新浪微博在2014年3月公布的月活躍用戶(MAU)已經達到1.43億,2014年新年第一分鐘發送的微博達808298條,如此巨大的用戶規模和業務量,需要高可用(HA)、高并發訪問、低延時的強大后臺系統支撐。 微博平臺第一代架構為LAMP架構,數據庫使用的是MyIsam,后臺用的是php,緩存為Memcache。 隨著應用規?!?/p>

    2015-03-16
  • Linux權限管理練習

    1、當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作? 無法cd切換進入此目錄,無法創建文件,無法刪除文件,無法查看里面文件的內容,只能ls列出目錄下的內容 2、當用戶xiaoqiang對/testdir 目錄無讀權限時,意味著無法做哪些操作? 無法ls查看目錄下的內容 3、當用戶wangcai 對/testdir 目錄無寫權…

    Linux干貨 2016-08-05
  • socket阻塞與非阻塞,同步與異步、I/O模型

    1. 概念理解      在進行網絡編程時,我們常常見到同步(Sync)/異步(Async),阻塞(Block)/非阻塞(Unblock)四種調用方式:同步:      所謂同步,就是在發出一個功能調用時,在沒有得到結果之前,該調用就不返回。也就是必須一件一件事做,等前…

    Linux干貨 2015-04-10
  • iptables基礎概念

    iptables基本概念梳理 前言 netfilter/Iptables (其中包括netfilter和Iptables兩個組件)組 成了Linux平臺下的包過濾防火墻,它與大多數的Linux自帶軟 件一樣,這個防火墻是免費提供的,它可以代替昂貴的企業級 防火墻來解決實際問題與實際方案,完成封包過濾,封包重定 向和網絡地址轉換等功能。 一、工作原理 數據包從…

    Linux干貨 2016-12-19
欧美性久久久久