linux服務-DNS服務

什麼是DNS?

DNS:Domain Name Service 是一種應用層協議

用於ip地址和域名之間轉換

 使用(TCP/UDP) 53端口服務


DNS域名稱
    域名系統作爲一個層次結構和分佈式數據庫,是一個倒置樹形結構,包含各種類型的數據,包括主機名和域名。DNS數據庫中的名稱形成一個分層樹狀結構稱爲域命名空間。域名包含單個標籤分隔點,例如:im.qq.com。
完全限定的域名 (FQDN) 唯一地標識在 DNS 分層樹中的主機的位置,通過指定的路徑中點分隔從根引用的主機的名稱列表。 下圖顯示與主機稱爲 im 內 qq.com DNS 樹的示例。  主機的 FQDN 是 im.qq.com。
DNS 域的名稱層次結構

DNS域名稱空間的組織方式
    按其功能命名空間中用來描述 DNS 域名稱的五個類別的介紹詳見下表中,以及與每個名稱類型的示例。

DNS 和 Internet 域
    互聯網域名系統由名稱註冊機構負責維護分配由組織和國家/地區的頂級域在 Internet 上進行管理。 這些域名按照國際標準 3166。 一些很多現有縮寫,保留以供組織中,以及兩個字母和三個字母的國家/地區使用的縮寫使用下表所示。一些常見的DNS域名稱如下圖:

資源記錄
    DNS 數據庫中包含的資源記錄 (RR)。 每個 RR 標識數據庫中的特定資源。我們在建立DNS服務器時,經常會用到SOA,NS,A之類的記錄,在維護DNS服務器時,會用到MX,CNAME記錄。
常見的RR見下圖:

    DNS的工作方式:

反向解析

正向解析

 反向解析:

 反向解析即爲,將ip地址發送給DNS服務器,DNS服務器解析出匹配的域名返回。

 一般用於郵件服務器中垃圾郵件的判定,比如你用 [email protected] 這個郵箱給我的郵箱 [email protected] 發了一封信。163郵件服務器接到這封信會查看這封信的信頭文件,這封信的信頭文件會顯示這封信是由哪個IP地址發出來的。然後根據這個IP地址進行反向 解析,如果反向解析到這個IP所對應的域名是name.com 那麼就接受這封郵件,如果反向解析發現這個IP沒有對應到name.com,那麼就拒絕這封郵件。     


正向解析:

 正向解析,將域名發送給DNS服務器,DNS服務器返回匹配的IP地址(暫不考慮遞歸和迭代),主機通過返回的IP地址進行訪問。

在DNS解析的過程中有2中模式:遞歸和迭代

迭代: 按照解析規則,主機首先將域名發送給根服務器(.),跟服務器根據對應的頂級域返回相應的DNS服務器地址,主機再向得到的DNS服務器地址,進行DNS解析申請,該主機繼續判斷應交給哪個更接近的DNS服務器,這樣層層迭代,直到找到域名的對應IP地址返回給主機。


遞歸:  主機將DNS請求發送給一個代理的服務器,該服務器進行迭代處理,得到結果返回給主機。從主機的角度,僅發送了一次,而後續的迭代操作由代理服務器完成。


DNS服務的實現,BIND

相關軟件包
bind-9.8.2-0.30.rc1.e16
bind-utils-9.8.2-0.30.rc1.e1l.x89_64
bind-chrot-9.3.3-7.el6

    /var/named/ 存數據

    BIND服務器端程序
    主要執行程序: /usr/sbin/named
    服務腳本: /etc/init.d/named
    默認監聽端口:53
    主配置文件:/etc/named.conf
    保存DNS解析記錄的數據文件位於:
        /var/named/


named.conf文件配置基礎:

options{}
          listen-on {監聽ip}
          directory 工作目錄
           allow-query {允許查詢網段}
           recursion 是否允許遞歸 yes|no

wKiom1YKHsfx8sgSAAFxoFFBvMk049.jpg

logging{}
                file 日誌文件位置

wKiom1YKHujA0n_zAABAWfV5jVQ298.jpg

zone{} 區域

wKioL1YKHxvyvcM-AAC7fGSbn9w797.jpg


在Centos6下進行BIND配置

正向配置:

第一步配置/etc/named.conf
                options{                                  //函數中
                        listen-on port 53 { 192.168.1.104; };//默認端口,本機IP
                            .
                            .
                        allow-query     {192.168.1.0/24; };//允許訪問的網段和掩碼
                            }

wKioL1YKIRyhCULuAAFm7Mp8BoE096.jpg

                logging函數有關日誌,無需改動

wKiom1YKISWCtd32AAA_iBoT9ew017.jpg

                其後需添加zone函數
                zone "." IN {
                        type hint;
                        file "named.ca";
                };
                zone "openex27.com" IN {
                        type master;          //hint|master|slave|forward
                        file "openex27/openex27.zone";  //zone文件相對路徑
                };

wKiom1YKIazyCgwOAABUJ9aeOVc528.jpg


第二步:
                    創建存放自建zone文件的文件夾
                    在該文件夾下創建並編輯相關zone文件
                    zone格式
                            首先設定SOA(Start Of Authority,授權信息開始)記錄
                            @代表本地網絡  
 $TTL 1D    //TTL宏用於設置等待時間
@       IN      SOA    openex27.com. //區域地址     admin.openex27.com.//管理員郵件地址 (
                                                        2009021901        ;更新序列號
                                            3H            ;刷新時間
                                            15M            ;重試延時
                                            1W            ;失效時間
                                            1D           ;無效地址解析記錄的默認緩存時間 )
                            IN NS  ns1.openex27.com.
                        ns1 IN A 192.168.1.104
                        www IN A 192.168.1.104 //實現模擬負載均衡
                        www IN A 192.168.1.105 //A主機
                        web IN CNAME www   //別名

wKioL1YKKJiARJbrAACcj3k4QmY342.jpg

第三步:
                    重啓BIND服務,/etc/init.d/named restart
                                  service named restart

wKiom1YKKX7jGSARAABJpi1n_L0794.jpg


測試:
                  dig -t NS openex27.com @192.168.1.104

wKiom1YKKbyhbWPcAAHRsu7jqSg507.jpg


反向配置:

部分配置同正向配置,此處僅增量添加

第一步配置:/etc/named.conf
                    添加反向解析的zone
                    注意:zone名要使用相反取名
                    例如:
                            zone "1.168.192.in-addr.arpa" IN {     
                            type master;
                            file "openex27/1.168.192.arpa";
                            };

wKioL1YKK3TAEdF2AABAm6dYYx4331.jpg

第二步配置:創建相關的zone文件
                    文件名仍需相反取名

wKiom1YKLTryydcTAACM4XB4nvU182.jpg

            第三步:測試
                    dig -x  待解析ip @DNS服務器地址

wKioL1YKLmLztoaaAACaUyArbxU308.jpg


    主從域名服務器:

主服務器:
                編輯 /etc/named.conf
                修改需要傳遞給從服務器的zone區域
                在allow-transfer中添加從服務器地址

wKiom1YKMFKyOHj4AABHOALb5eA566.jpg


從服務器:

   編輯 /etc/named.conf
                修改或添加需要從主服務器接受的zone
                type爲 slave
                masters {主服務器IP}

wKiom1YKMNyR2YpnAABUB36CUq8165.jpg


子域授權

  子域授權,在原有的域上再劃分出一個小的區域並指定新DNS服務器。在這個小的區域中如果有客戶端請求解析,則只要找新的子DNS服務器。這樣的做的好處可以減輕主DNS的壓力,也有利於管理。這次只做正向區域的子域授權。

第一步:
    在父域服務器上,編輯對應區域的zone文件

在其中添加子域信息

ops    IN    NS    ns1.ops

ns1.ops    IN     A    192.168.1.105

wKiom1YKdUPDsL74AACwBH0NZZc095.jpg

第二步:

在子域服務器中編輯/etc/named.conf

添加該子域zone信息

wKioL1YKfIXwykmYAAA3aQ3sGmU767.jpg

創建對應的ops目錄以及ops.openex27.com.zone文件

編輯之

wKiom1YKfMrCCjoLAACKU-jtXfU679.jpg

第三步

重啓服務或重讀服務配置文件

service named restart

rndc reload

測試

dig -t A mail.ops.openex27.com @192.168.1.104

wKioL1YKfdPDu6rbAABfwKSYvMY029.jpg


注意!若dig測試沒有結果可能是/etc/named.conf中options函數下

wKiom1YKfjGAW8cEAAA3aVP1u8A790.jpg

這三個選項爲yes,改成no,取消安全認證便可以測試

分離解析

來自不同地址的客戶機請求解析同一域名時,爲其提供不同的解析結果

wKiom1YLXZySD_mrAAEk-5dexjw423.jpg

構建分離解析:

第一步:

在DNS服務器的/etc/named.conf

在其中添加view

wKioL1YLYE7DO17zAACt7WLytHE764.jpg


第二步:

創建對應的zone文件夾,在其中創建zone文件

openex27/openex27.com.zone.lan

wKiom1YLYSKRpqtzAAClj3lz4zo330.jpg

openex27/openex27.com.zone.wan

wKiom1YLYZ7Twc1pAACj9k_6428099.jpg

保存退出


第三步:

 重啓named服務


第四部測試:

在不同的網段測試www.openex27.com所返回的地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章