DNS正反解析,主從同步,事物簽名

DNS(Domain Name Server)域名服務器

1、域名(Domain Name),是由一串用點分隔的名字組成的Internet上某一臺計算機或計算機組的名稱,用於在數據傳輸時標識計算機的電子方位(有時也指地理位置)

2、域名的命名方式:    

        FQDN(Fully Qualified Domain Name)完全合格域名/全稱域名,是指主機名加上全路徑。全域名可以從邏輯上準確地表示主機在什麼地方,也可以說全域名是主機名的一種完全表示形式。從全域名中包含的信息可以看出主機在域名樹中的位置。

3、DNS分類:

    主

    從

    轉發

4、DNS的結構:(如圖)wKioL1MACECi_D0bAAGgQtGmNdk897.jpg

    (1)根域名服務器(root-servers.org):是互聯網域名解析系統(DNS)中最高級額域名服務器,全球共13臺主要服務器。目前的分佈是:主服務器(A)美國1個,設置在弗吉尼亞州的杜勒斯;輔助服務器(B至M)美國9個,瑞典、荷蘭、日本各一個。

5、DNS查詢方式:

    (1)遞歸查詢

    一般客戶機向服務器之間屬遞歸查詢,即當客戶機向DNS服務器發出請求後,若DNS服務器本身不能解析,則會向另外的DNS服務器發出查詢請求,得到後轉交給客戶機。

    主機向本地域名服務器的查詢採用遞歸查詢:

主機向本地域名服務器的查詢一般都是採用遞歸查詢。如果主機所詢問的本地域名服務器不知道被查詢域名的IP地址,那麼本地域名服務器就以DNS客戶的身份,向其它根域名服務器繼續發出查詢請求報文

    (2)迭代查詢(反覆查詢):

    一般DNS服務器之間屬迭代查詢,如:若DNS2不能相應DNS1的請求,則它會將DNS3的IP給DNS2,以便再向DNS3發出請求

    本地域名服務器向根域名服務器的查詢通常採用迭代查詢:

本地域名服務器向根域名服務器的查詢通常是採用迭代查詢。當根域名服務器收到本地域名服務器的迭代查詢請求報文時,要麼給出所查詢的IP地址,要麼告訴本地域名服務器:“你下一步應當向哪一個域名服務器進行查詢”。然後讓本地域名服務器進行後續的查詢。

查詢過程如圖:

wKioL1MADZnwoTQ0AARo2Bn5jb0469.jpg

以上,爲DNS簡單理論知識,

下面就開始具體實施

操作系統:redhat5.5

1,裝包

    DNS 軟件

            bind(Berkeley Internet Name Domain)

    # yum install bind bind-chroot caching-nameserver(樣例文件)

    *(注意標註爲“*”)

    *如果你只安裝bind,那麼/var/named 將成爲bind存放數據文件的位置,/etc/named.conf 將成爲你的配置文件

    *如果你安裝了bind-chroot,那麼/var/named/chroot/var/named 將成爲bind存放數據文件的位置,/var/named/chroot/etc/named.conf 將成爲你的配置文件。

    DNS服務器使用的服務端口是:

        tcp    53    //用戶主域和輔助域的同步

        udp    53   //用於域名查詢

2,配置

    # cd /var/named/chroot/etc/     (配置文件目錄)

    # cp -p named.caching-nameserver.conf named.conf    (複製樣例文件)

    # vim named.conf     (手動編寫主配置文件)

 

===============

options {

directory"/var/named";

}

                // /--> /var/named/chroot 

                //保存區域配置文件

include "/etc/named.rfc1912.zones";

===============

注意權限,保證“named“用戶能讀這個文件

# ls

localtime    named.caching-nameserver.confnamed.conf    named.rfc1912.zones    rndc.key

1.正向解析

 

# vim named.rfc1912.zones

=====================================

    zone "google.com" IN {

            type master;

            file "google.com.zone";

    };

======================================

# pwd

/var/named/chroot/var/named

# ls

data    localhost.zone    named.ca    named.local    slaves

localdomain.zone    named.broadcast    named.ip6.local    named.zero

# cp -p localhost.zone google.com.zone

=================

$TTL        86400

@            IN SOA    dns.google.com.        root.mail.google.com. (

                                42        ; serial (d. adams)

                                3H        ; refresh

                                15M       ; retry

                                1W        ; expiry

                                1D )      ; minimum

 

            IN NS            dns.google.com.

dns         IN A             192.168.0.153

www         IN A             192.168.0.153

mail        IN A             192.168.0.153

* 區域配置文件也要要求named用戶能讀。

 

$TTL        86400            數據緩存時間,單位是秒,當有外部DNS服務器對你的DNS的這個區域進行查詢時,這個記錄會放置在對方DNS服務器內幾秒鐘

@                                    在主配置文件裏定義的區名“google.com”

IN                                     internet

SOA                                start of Authority其實授權記錄,表示區域數據的開始

dns.google.com.            MasterDNS服務器主機名,表示這個區域主要由哪個DNS作爲master的意思,注意後面的小數點

root.mail.google.com     錯誤郵件的接收者,本來應該是root@mail.google.com,不過因爲@已經被作爲特殊代碼(zone),所以就用小數點來取代了。

42                                    序列號,用於主從更新,該序列號作爲slave與master更新的依據,一般利用日期來設定

3H                                    從服務器多長時間和主服務器聯繫一次,進行數據更新

15M                                 重試時間,如果從服務器和主服務器聯繫不上,多長時間重試一次

1W                                   過期時間,如果從服務器一週都沒和主聯繫上,則命令從服務器不在連接主服務器了。

1D)                                如果得到的信息是否定的,保存多長時間(沒有指定生存期的數據,可以保存在數據庫中的時間,即TTL.)

NS            name server 的縮寫,後面接的一定是主機名,代表:這個zone的查詢請向後面這部主機要求,如果你這個zone有兩部以上的DNS服務器負責時,就必須寫兩個NS,而NS後面接的主機名稱必須要有IP的對應,這是就需要A這個標記了。

A                正向解析的標識(域名 --> IP)參數格式:[hostname] IN A [IP]

本區域配置文件未出現的標識:

(!)AAAA        ipv6

(2)PTR            反向解析的標識(IP -->域名)參數格式:[IP] IN PTR [hostname] PTR爲Pointer的簡寫。後面主機儘量使用完整FQDN,亦即加上小數點“.”。

(3)MX:Mail Exchanger的簡寫,參數是:[hostname] IN MX [順序] [主機名稱]

MX 與MAIL SERVER 有關,其用途是郵件轉發,MX後面的數值越小越優先,而接的主機名稱必須有A記錄纔可以。

(4)CNAME:主機別名。參數是:[hostname] IN CNAME [主機名稱]

 

*注意事項:如果有錯誤,用語法檢查命令:

第一個檢查命令:named-checkconf  //檢查主配置文件

# named-checkconf /var/named/chroot/etc/named.conf

第二個檢查命令:named-checkzone // 檢查zone文件

# name-checkzone google.con google.com.zone

zone google.com/IN: loaded serial 42

OK

 

啓動服務

# service named start (或者:#/etc/init.d/named start)

# vim /etc/resolv.conf //編輯/etc/resolv.conf,指定dns服務器

===========

nameserver 192.168.0.153

===========

# pingwww.google. com //測試命令

 

2、反向解析

正向解析配置完成,就來配置反向解析。

#vi /var/named/chroot/etc/named.rfc1912.zones

zone "0.168.192.in-addr.arpa" IN {

        type master;

        file "192.168.0.local";

};

#cd /var/named/chroot/var/named

#cp -p named.local 192.168.0.local

#vi /var/named/chroot/var/named/192.168.0.local

$TTL        86400

@           IN    SOA    dns.google.com. root.google.com.(

                                    1997022700 ; Serial

                                    28800; Refresh

                                    14400; Retry

                                    3600000; Expire

                                    86400 ); Minimum

            IN    NS       dns.google.com.

153         IN    PTR      dns.google.com.

153         IN    PTR      www.google.com.

153         IN   PTR      google.com.

#service named restart

#dig -x 192.168.0.153 //測試

 

主從同步

原理:

(1)當主服務器做好配置之後,會通知從服務器

(2)從服務器收到通知之後,查詢SOA記錄,查看序列號

(3)從服務器去和主服務器比對序列號,如果從的序列號比主的小,那麼從就要去和主進行數據同步。因此,主服務器修改完配置文件之後,都要把序列號調大,建議使用日期格式

 AXFR 完全區域傳輸

 IXFR 增量區域傳輸

(4)從服務器向主服務器發起數據請求;主服務器收到請求之後,開始傳輸數據

優點:

(1)從服務器可以分擔主服務器的查詢請求

(2)有了從服務器之後,額可以快速的相應client的請求

(3)即使主服務器出現問題,從服務器依然可以提供查詢服務

======

Master//主服務器

======

# vim named.rfc1912.zones

=====================================

zone "google.com" IN {

        type master;

        file "google.com.zone";

 allow-transfer { 192.168.0.152; };    這句指令指定只有授權的從服務器才能從主服務上獲取區域數據信息。如果想實現多個從服務器,可以在{ }裏填寫,用“;”結束。

};

 ===================================

======

Slave//從服務器

======

# yum install -y bind bind-chroot//安裝bind

# cd /var/named/chroot/etc/

 

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

===========

options {

directory "/var/named/slaves";

//這個目錄要保證“named”用戶能寫

};

include "/etc/named.rfc1912.zones";

 ==========

#vim /var/named/chroot/etc/named.rfc1912.zones

===========

zone "google.com" {

    type slave;類型是從

    file "google.com.slave";文件名任意

    masters { 192.168.0.153; };指定哪臺機器是我的master

};

============

#service named restart

------------------------------

在主服務器上 加上also-notify可以在主服務器上重新加載配置文件時做到向從服務器的“主動推”動作

注意事項:當修改/var/named/chroot/var/named/zone 文件內的參數後,需要增加序列號

zone "google.com" IN {

        type master;

        file "google.com.zone";

        allow-update { none; };

        also-notify { 192.168.0.152; };主動推

};

使用密鑰進行數據傳輸 - - 事物簽名

master        //主服務器

命令的用法:

# dnssec-keygen

Usage:

dnssec-keygen -a alg -b bits -n type [options] name

 

Version: 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2

Required options:

    -a algorithm: RSA | RSAMD5 | DH | DSA | RSASHA1 | HMAC-MD5

    -b key size, in bits:

    RSAMD5:[512..4096]

    RSASHA1:[512..4096]

    DH:[128..4096]

    DSA:[512..1024] and divisible by 64

    HMAC-MD5:[1..512]

    -n nametype: ZONE | HOST | ENTITY | USER | OTHER

    name: owner of the key

 

[root@t1 etc]# dnssec-keygen -a hmac-md5 -b 128 -n host 3key

K3key.+157+62471

[root@t1 etc]# ls

K3key.+157+62471.key

K3key.+157+62471.private

 

[root@t1 etc]# cat K3key.+157+62471.key 

3key. IN KEY 512 3 157 reyVufo4DOsiKSLUZ173RA==

 

要:reyVufo4DOsiKSLUZ173RA==

 

# vim /var/named/chroot/etc/named.conf 

添加

key 3key {

algorithm hmac-md5;

secret "reyVufo4DOsiKSLUZ173RA==";

};

 

#vim /var/named/chroot/etc/named.rfc1912.zones

zone "google.com" IN {

type master;

file "google.com.zone";

allow-transfer { key 3key; };

};

 

Slave //從服務器

# vim /var/named/chroot/etc/named.conf 

添加

key 3key {

algorithm hmac-md5;

secret "reyVufo4DOsiKSLUZ173RA==";

};

 

#vim /var/named/chroot/etc/named.rfc1912.zones

zone "google.com" {

type slave;類型是從

file "google.com.slave";

masters { 192.168.0.153 key 3key ; };

};

 

 

主 從 啓動服務

在主上面看日誌:

[root@t1 etc]# tail -0f /var/log/messages

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