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 10:04
下一篇 2015-04-13 10:09

相關推薦

  • linux開機啟動流程

    linux開機啟動流程:   一、BIOS 加電自檢 當你按電源開關開機時,電腦會首先去啟動BIOS(基本輸入輸出系統),BIOS一般是集成在主板上的. BIOS 的工作 1.檢測連接硬件,比如顯卡,內存,磁盤等等,檢測的目的是以后把這些設備信息提供給操作系統 2.尋找啟動磁盤,每一種BIOS都會有開機啟動菜…

    Linux干貨 2016-09-14
  • Linux 任務計劃、周期性任務執行

    Linux 任務計劃、周期性任務執行 概述:      什么是任務計劃呢?就像我們每個人日常生活中都會使用到的鬧鐘一樣,按時的去提醒該去做什么事情,以免忘記。同樣,我們在工作當中也要在每天在特定的時間內安排做一些事情,這就是任務計劃,本章將學習如何制定Linux系統的任務計劃,這里主要包括兩種工具:at和crontab…

    Linux干貨 2016-09-11
  • ~~ 1;列出當前系統上所有已經登錄的用戶的用戶名,注意:同一用戶登錄多次,則只顯示 一次即可。 # who | cut -d" " -f 1 | sort -u 2;取出最后登錄到當前系統的用戶的相關信息 # id $(who | tail -1 |cut -d" " -f 1) # last | head -1 3…

    Linux干貨 2017-01-03
  • Nginx之ngx_http_fastcgi_module模塊詳解

    一、ngx_http_fastcgi_module模塊:       nginx支持FastCGI模式       CGI:Common GateWay Interface 公共網管接口,可以理解其為HTTP服務器與其他主機上運行的程序進行通信的接口。       CG…

    2017-06-25
  • Nginx 負載均衡多個nmmp主機

    設計拓撲圖 一、Memcache簡介 cache(緩存系統) 高性能分布式緩存服務器,緩存所有的“可流式化”數據:livejournal旗下Danga Interacive公司 程序=指令+數據 指令:程序 數據:IO操作 文件系統: 特征:協議簡單  基于libevent的事件處理  內置內存存儲方式  memcached 不…

    2014-09-17
  • cp復制軟鏈接失效的原因

    在學習cp命令時我們會知道復制軟鏈接時,如果要保留鏈接文件使用-d,但當我們實際操作時卻常常出現如下情況 [root@localhost ~]# ls -l /etc/redhat-release     #此文件為鏈接文件 lrwxrwxrwx. …

    Linux干貨 2016-10-25

評論列表(1條)

  • stanley
    stanley 2015-04-13 10:08

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

欧美性久久久久