Linux DNS服務系列之原理介紹及正反向解析配置

前言

我們在訪問一個網站的時候,只要輸入該網站的網址就會跳轉到該網站頁面,而實現這一過程就需要DNS服務器將域名解析為IP地址,進而實現數據通信。那么DNS服務器是如何工作的呢?本系列分為兩部分,本文將詳解DNS服務原理及正反向解析配置。

DNS服務原理詳解

DNS相關知識

DNS:Domain Name Service,域名解析服務

監聽端口:udp/53,tcp/53

應用程序:bind

根域:.

一級域:

            組織域:.com, .org, .net, .mil, .edu, .gov, .info, .cc, .me, .tv

            國家域:.cn, .us, .uk, .jp, .tw, .hk, .iq, .ir

            反向域:.in-addr.arpa

DNS樹狀結構

1.jpg

解析方式

正向解析:FQDN –> IP

反向解析:IP –> FQDN

FQDN:(Fully Qualified Domain Name)全稱域名

DNS查詢方式

遞歸:DNS請求被服務器接受后,如果屬于此服務器管轄范圍則請求上級服務器依次傳遞請求,并且依次傳遞結果給發出請求的主機。

2.jpg  

#客戶端指向的服務器一定給遞歸服務

迭代: DNS請求被服務器接受后,如果不是自己管轄范圍,讓客戶端訪問根域服務器,然后跟域通知客戶端去訪問下級服務器,直到最后客戶端訪問管轄請求域名的服務器為止。

3.jpg

區域解析庫

資源記錄: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,正式名稱

DNS服務器類型

主DNS服務器

從DNS服務器

緩存服務器

區域傳送

解析庫文件同步的過程,即輔助DNS服務器與主DNS服務器間的區域文件同步傳輸過程。

完全區域傳送:傳送區域的所有數據,AXFER

增量區域傳送:傳送區域中改變的數據,IXFER

DNS資源記錄格式

格式:

name 	[ttl] 	IN 	RRType    value	

SOA記錄:

name: 區域名稱,通??梢院唽憺锧
value: 主DNS服務器的FQDN,也可以當前區域的區域名稱
注意:任何解析庫文件的第一個記錄的類型必須是SOA

例如:
@    IN    SOA    ns.scholar.com.    admin.scholar.com.    (
                                     serial number ;#解析庫版本號,例如2015040701
                                     refresh time  ;#刷新時間,即同步時間
                                     retry time    ;#重試時間
                                     expire time   ;#過期時間
                                     negative answer ttl ;#否定答案的統一緩存時長
                                     )

NS記錄:

name: 區域名稱
value: DNS服務器的FQDN
注意:如果有多臺NS服務器,每一個都必須有對應的NS記錄;
      對于正向解析文件來講,每一個NS的FQDN都應該有一個A記錄;

例如:
@    IN    NS    ns.scholar.com.

MX記錄:

name: 區域名稱
value: 郵件服務器的FQDN
優先級:0-99.數字越小,越優先
注意:如果有多臺MX服務器,每一個都必須有對應的MX記錄;但各MX記錄還有優先級屬性
對于正向解析文件來講,每一個NS的FQDN都應該有一個A記錄;

例如:
@    IN    MX 10    mail.scholar.com.
@    IN    MX 20    mail2.scholar.com.

A記錄:

name: FQDN(可簡寫)
value: IP

例如:
www    IN    A    172.16.10.10
www    IN    A    172.16.10.100
pop3    IN   A    172.16.10.10
imap    IN   A    172.16.10.10

AAAA記錄:

name: FQDN(可簡寫)
value: ipv6 IP

CNAME記錄:

name: FQDN
value: FQDN

例如:
www    IN    A    172.16.10.10
ftp    IN    CNAME    www

PTR記錄:

name: 逆向的主機IP地址加后綴in-addr.arpa,例如172.16.10.10/16, 網絡地址為172.16, 
主機地址為10.10,其name為10.10.in-addr.arpa.(可簡寫)
value: FQDN

例如:
10    IN    PTR    www.scholar.com.

DNS服務配置之正反向解析

服務程序包介紹

Linux下可提供DNS服務的程序包為bind(bekerley internet name domain)

服務腳本:/etc/rc.d/init.d/named

主配置文件:/etc/named.conf, /etc/named.rfc1912.zones

區域解析庫文件:/var/named/zone_name.zone

主配置文件中通常有三個區域:根、localhost、127.0.0.1的反向區域

域類型:主域(master)、從域(slave)、緩存域(hint)、轉發域(forward)

實戰正反向解析配置

案例要求:

DNS服務器地址:172.16.10.10

www:172.16.10.10

mail:172.168.10.12

pop:mail別名,指向mail

ftp:www別名,指向www

要求可以實現正反向解析

編輯主配置文件,添加正向區域和反向區域

[root@scholar ~]# vim /etc/named.conf 


options {                                                #全局配置
        //listen-on port 53 { 127.0.0.1; };              #注釋后監聽全部IP的53端口
        //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; };          #訪問控制,注釋后允許所有IP訪問
        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";
};
zone "scholar.com" IN {                             #正向區域
        type master;
        file "scholar.com.zone";
};
zone "10.16.172.in-addr.arpa" IN {                  #反向區域
        type master;
        file "172.16.10.zone";
}; 
include "/etc/named.rfc1912.zones";                 
//include "/etc/named.root.key";

創建正向區域文件

[root@scholar named]# vim scholar.com.zone   #必須與區域文件名保持一致

$TTL 3600
@       IN      SOA     dns.scholar.com.        admin.scholar.com. (
                                                        2015040701
                                                        2H
                                                        10M
                                                        7D
                                                        1D )
@       IN      NS      dns
@       IN      MX 10   mail
dns     IN      A       172.16.10.10
mail    IN      A       172.16.10.12
www     IN      A       172.16.10.10
pop     IN      CNAME   mail
ftp     IN      CNAME   www

創建反向區域文件

[root@scholar named]# vim 172.16.10.zone    #必須與區域文件名保持一致

$TTL 3600
@       IN      SOA     dns.scholar.com.        admin.scholar.com. (
                                                        2015040701
                                                        2H
                                                        10M
                                                        7D
                                                        1D )
@       IN      NS      dns.scholar.com.
10      IN      PTR     dns.scholar.com.
12      IN      PTR     mail.scholar.com.
10      IN      PTR     www.scholar.com.

修改權限及屬組

4.jpg

檢查語法,啟動服務并設置開機自啟

5.jpg

查看tcp和upd的53端口是否開啟

6.jpg

正向解析測試

7.jpg

反向解析測試

8.jpg

The end

經過以上測試,正向反向都可以成功解析,至此DNS服務的基本服務算是完成了,測試命令除了dig還可使用nslookup等,想了解dig和其它測試命令命令想自行查手冊,這里不做詳解了。第二部分將會講解主從復制,子域授權和轉發以及view,如有興趣請關注下文。

以上僅為個人學習整理,如有錯漏,大神勿噴~~~

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

(3)
書生書生
上一篇 2015-04-13
下一篇 2015-04-13

相關推薦

  • rpm包管理與yum簡要用法

    linux程序包管理 程序包:源代碼 –> 目標二進制格式(二進制程序、庫文件、配置文件、幫助文件)–> 組織成一個或有限的幾個包文件 程序包管理器:        debian –> dpkg   以“.deb”結尾 &nb…

    Linux干貨 2016-08-22
  • Linux無人值守安裝

    前言     通常情況下,我們安裝Linux操作系統的時候需要從光盤啟動,通過系統光盤bootloader啟動安裝程序,進入交互式安裝模式,由用戶配置安裝選項,如磁盤分區、選擇安裝包等操作;安裝完畢后重啟結束安裝。在生產環境中,成百上千臺服務器需要安裝操作系統的時候如果也采用交互式安裝模式,無疑是極其低效的。本文主要介…

    Linux干貨 2015-05-18
  • 馬哥教育網絡班22期+第四周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -rf /etc/skel/ /home/tuser1 [root@localhost ~]# chmod&…

    Linux干貨 2016-09-19
  • 如何安裝VMware Workstation

    1、打開安裝包,直接點擊“下一步” 2、選擇接受條款,單擊“下一步” 3、選擇安裝路徑,單擊“下一步” 4、單擊“下一步”,也可以勾選掉兩個選項   5、單擊“下一步”   6、點擊“安裝”   7、完成安裝  

    2017-07-11
  • centos啟動流程

    linux系統啟動流程 內核的設計結構單內核:linux(線程–lwp輕量級進程)微內核:windows(支持真正意義上的多線程) 單內核:很多功能驅動都集成在一起 微內核:內核很小,功能單一。模塊化 linux為了適應眾多用戶的不同硬件需求,linux內核在設計上采用模塊化設計??梢詣討B加載模塊。核心模塊:ko 內核所獨有的。共享對象:so 紅…

    Linux干貨 2016-09-09
  • 第七周學習總結–系統啟動流程

    寫在前面 作為一個理工科的你,我相信你一定給自己或者給別人裝過windows操作系統,作為windows操作系統都圖形化了,因此我們可能很難去了解中間都發生了什么。比如使用U盤安裝的時候,網上一大堆某某某U盤制作系統工具,按照網上的教程,制作完成以后,就可以在要裝系統的電腦上點擊電源鍵狂按F12(不同的電腦可能不同)進入BIOS設置了,然后就等著使用了。作為…

    2018-01-14

評論列表(1條)

  • stanley
    stanley 2015-04-13 10:08

    非常清晰明了的思路,圖畫的非常棒,贊

欧美性久久久久