Linux學習 DNS服務

Je_suis_Lulu發表於2017-05-08

DNS快取記憶體伺服器

一、DNS快取記憶體

(一)服務端

1.設定網路:ifconfig   eth0  172.25.254.109/24

 systemctl   start   network

2.systemctl   stop   firewalld

3.配置yum 源指向

  yuminstall   bind.x86_64 -y

4.systemctl   start named

5.修改主配置檔案

初始內容如下:

vim   /etc/named.conf   #修改主配置檔案

options {

       listen-on port 53 { any; };  #監聽任何主機的埠

       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     {any; };  #允許任何客戶端訪問

6.systemctlretart named   #一定要重啟服務

7.在伺服器端可以使用如下命令檢視服務是否開放

  netstat   antlpe  |  grep  named

 

(二)測試端配置

1.編輯/etc/resolve.conf 解析檔案,解析地址指向服務端

2.使用如下命令,檢視該伺服器是否可以解析

  dig網址   #檢視該網址的解析地址

(三)快取記憶體

圖中可以看到解析結果中顯示服務失敗,因為該伺服器中沒有該網址的A記錄,因此需要繼續修改主配置檔案,給出更高階的伺服器埠。在檔案加入命令

 forwarders {172.25.254.250;};  #查詢更高階的DNS解析伺服器

  systemctl  retart   named   #一定要重啟服務

先在一個客戶端訪問某一網址,看解析時間

再用同一網段的另一客戶端訪問同一網址,發現解析時間變短甚至為0

二、搭建權威DNS

(一)修改配置檔案

1.修改主配置檔案

 vim   /etc/named.conf

  zone"." IN {       #該域名所包含的內容

       type hint;   #型別

       file "named.ca";   #DNS域名解析表

};

include"/etc/named.rfc1912.zones";  #DNS表格位置

include "/etc/named.root.key";

 

如主配置檔案中格式,先將需要建立的DNS表格寫在字配置檔案/etc/named.rfc1912.zones中

2.vim  /etc/named.rfc1912.zones 

新增如下內容

zone "westos.com" IN {          #"westos.com"將要建立的域名

       type master;            #型別

       file  "westos.com.zone";#域名解析表在檔案/var/named/westos.com.zone中

       allow-update { none; };  #不允許更新

};

注意:為保持檔案許可權及檔案中表格格式一致,可以用如下方式新建westos.com.zone。

 cd/var/named

 ll   #可以檢視檔案許可權

cp -p name.local westos.com.zone   #新建檔案,檔案內容格式與.name.local中格式相同

3.vim  /var/named/westos.com.zone  #寫域名解析表

原內容顯示如下

$TTL 1D  #該檔案內容即該解析表格可以維持使用的有效時長是一天

@ ##該符號表示域名       IN SOA  @  rname.invalid. (     #授權起始,

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H)    ; minimum

       NS      @ 

       A       127.0.0.1

       AAAA    ::1

 

修改後內容顯示如下:

$TTL 1D    #表示該表格可以維持使用一天

@      IN SOA  dns.westos.com.rname.invalid. (

                                        0      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H)    ; minimum

       NS      dns.westos.com.

dns    A       172.25.254.109   #A記錄

www   A       172.25.254.200

其中:@ 表示westos.com

      Root.westos.com  #該檔案維護的使用者

注意:在編輯時若域名後不加. 時,系統將會在域名後自動補齊westos.com;加 . 則表示不再自動補齊。

如:dns 表示dns.westos.com

www 表示www.westos.com

dns.westos.com. 表示dns.westos.com,不再自動補齊


3.systemcl  restart   named   #重起服務

4檢測:dig www.westos.com   #在服務端或客戶端均可檢測


三、CNAME域名規範

1.vim  /var/name/westos.com.zone   #編輯域名解析表

$TTL 1D

@      IN SOA  dns.westos.com.rname.invalid. (

                                        0      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H)    ; minimum

       NS      dns.westos.com.

dns             A       172.25.254.109

www            A       172.25.254.202

edu         CNAME   edu.cn.westos.com. #edu.cn.wetos.com並不是edu.westos.com的規範域名

edu.cn        A       172.25.254.209    #edu.cn.wetos.com的A記錄檔案位置

2.systemctl  restart  named   #重啟服務

3.檢測:dig  deu.westos.com   #客戶端或服務端執行均可


四、MX郵件解析記錄

1.vim   /var/name/westos.com.zone   #編輯域名解析表

在解析表在中增加內容:

westos.com.    MX 1   172.25.254.109.   #westos.com郵箱解析記錄在172.25.254.109這臺主機中

其中““1”表示優先順序。

2.客戶端測試:dig   -t    mx westos.com

注意: vim   /var/named/westos.comz.zone

 westos.com.  A  172.25.254.100.   #解析地址一定要加點,否則重啟服務後該地址會自動補齊westos.com

五、DNS多方向解析--檢視方式

1.服務端新增網路卡eth1,並設定網路

vim   /etc/sysconfig/network-scripts/eyh1  #設定新增網路卡的IP地址

sytemctl   restart   network


2.修改主配置檔案先註釋掉如下解析方式

/*zone "." IN {

       type hint;

       file "named.ca";

};

 

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

include "/etc/named.root.key";

*/

新增內容如下:實現解析兩個網段

view clientnet {

                match-clients {172.25.9.0/24;};   #與172.25.9.0/24網段的主機進行匹配

              zone "." IN {

              type hint;

              file "named.ca";

                  };

       include"/etc/named.rfc1912.inter";  #該段網址的解析內容包含在/etc/name.rfc1912.inter檔案中

              };

view localnet {

                match-clients {172.25.254.0/24; };  #與該網段主機進行匹配

                zone "." IN {

                 type hint;

                file "named.ca";

                };

       include"/etc/named.rfc1912.zones";  #該段網址的解析內容包含在/etc/name.rfc1912.inter檔案中

               };

3.cp  -p   /var/named/westos.com.zone   /var/named/westos.com.inter   #使用cp -p 命令複製檔案內容,避免檔案許可權改變

 cp  -p  /etc/named.rfc1912.zones   /etc/named.rfc1912.inter  #新建檔案

4.vim   /etc/named.rfc1912.inter

 

 vim  /var/named/westos.com.inter  


5.systemctl  restart  named  #重啟服務

6.客戶端172.25.9.10   #172.25.9.0/24網段


 vim  /etc/resolve

  namesever  172.25.9.109


7.測試命令:dig  域名

 

8.在172.25.254.0/24網段的客戶端測試

 vim  /etc/resols.conf    #先修改解析檔案

 nameserver  172.25.254.109

  :wq


六、反向解析--由IP得到域名

1.vim /etc/named.rfc1912.zone

修改第43行,原內容顯示如下

43 zone "0.in-addr.arpa" IN{ 

 44        type master;

 45        file "named.empty";

 46        allow-update { none; };

 47};

修改後內容如下顯示:

43 zone "254.25.172.in-addr.arpa"IN {  #反向解析IP地址,注意書寫順序

 44        type master;

 45        file "westos.com.ptr"; #反向解析檔案型別為ptr

 46        allow-update { none; };

 47};

2.cp  -p  /var/named/named.loopback   westos.com.ptr

 

3.vim   /var/named/nwestos.com.ptr

4.systemctl  restart  named  #重啟服務

5.使用同一網段的客戶端測試  #172.25.254.0/24

 dig  -x  172.25.254.111

七、DNS更新

(一)客戶端更新解析域名

  先在伺服器端執行如下命令

1.getsebool -a | grep named  #檢視服務

 setsebool -P named_write_master_zones 1  #開啟服務

2.cp -p /var/named/westos.com.zone/mnt/westos.com.zone   #備份

 chmod  770  /var/named

3.vim /etc/named.rfc1912.zones

 zone "westos.com"IN {

              type master;

              file "westos.com.zone";

              allow-update {172.25.254.209;}; #允許指定的主機去更新DNS域名解析表

              };

4.systemctl restart named

5.客戶端測試,使用命令nsupdate

(1)新增域名解析

[root@localhost ~]# nsupdate

> server 172.25.254.109

> update add hello.westos.com 86400 A172.25.254.222

#add 表示新增;

#hello.westos.com  新增的域名

#86400 即TTL 1D, 表示該有效期保持一天

#A 172.25.254.222  A記錄檔案,解析地址是172.25.254.222

> send

在伺服器端重啟服務並檢視是否有更新

systemctl   restart   named

ll   /var/named/

cat   /var/named/westos.com.zone

(2)刪除域名解析

[root@localhost ~]# nsupdate

> update delete hello.westos.com  #刪除該域名解析

> send


在伺服器端重啟服務並檢視是否有更新

systemctl restart  named

ll  /var/named/

cat  /var/named/westos.com.zone

(二)在服務端恢復更新

1.rm   -fr   /var/named/westos.*  #刪除更新後所生成的檔案

2.cp   -p    /mnt/westos.com.zone    /var/named/westos.com.zone

3.systemctl   restart    named 

八、加密更新

1.增加key,可以先檢視系統預設生成的key檔案格式,根據該格式來生成key檔案

cat    /etc/rndc.key   #檢視系統預設生成的key檔案

其中 -a    #加密型別,系統預設型別是hmac-md5

        -b    #密碼長度

        -n    #使用者

cd  /mnt

dnssec-keygen  -a  HMAC-MD5 -b  256  -n  HOST  westoskey   #鑰匙名

ls  #檢視生成的鑰匙及加密字元檔案


注:在執行生成westoskey這條命令時,若westoskey 不能及時生成,則可以任意敲鍵盤或移動滑鼠來完成命令。

3.編輯key 的配置檔案

cp   -p   /etc/rndc.key    /etc/westos.key   #以系統生成的預設加密格式生活曾加密檔案

vim    /etc/westos.key

[root@localhost ~]# cat  /etc/westos.key

key "westoskey" {     # "key名稱"

       algorithm   hmac-md5;  #加密型別是hmac-md5

       secret    "加密字串";  #生成的加密字元,即公鑰

        };


4.設定DNS更新許可權

(1)vim   /etc/named.conf

    42行以下的位置新增如下命令:

include  "/etc/westos.key"


(2)vim   /etc/named.rfc1912.zones

修改域名解析內容,顯示如下

  zone "westos.com" IN {

       type master;

       file "westos.com.zone";

       allow-update {key westoskey;};  #指定有公鑰檔案的主機可以更新

       };

(3)重啟服務

4.客戶端無公鑰時測試,更新失敗

5.服務端分配鑰匙

ls /mnt

scp   /mnt/Kwestoskey.*    root@客戶端ip:/mnt/

如:scp   /mnt/Kwestoskey.*  root@172.25.254.209:/mnt/

6.有公鑰檔案的客戶端測試,命令格如下:

nsupdate   -k   /mnt/Kwestos.private

九、DNS動態解析

  當域名的解析地址是動態IP時,應允許dhcpd伺服器去更新

(一)服務端

1.yum install  dhcp  -y

2.[root@localhost ~]# cp  -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcp.conf

  #生成配置檔案,系統會提醒是否覆蓋原配置檔案,輸入y

3.vim /etc/dhcp/dhcp.conf

刪除36之後的內容以及27、28行的內容,修改後檔案內容顯示如下:

[root@localhost ~]# cat/etc/dhcp/dhcpd.conf -n

    7    option domain-name"westos.com";  #域名westos.com

    8    option domain-name-servers172.25.254.109;  #dhcpd伺服器主機IP

    10    default-lease-time 600;

   11    max-lease-time 7200;

   14    ddns-update-styleinterim;  #DNS動態更新格式

   22    log-facility local7;

   30    subnet 172.25.254.0 netmask255.255.255.0 {   #dhcp動態分配的IP地址的網段、子網掩碼、

   31      range 172.25.254.30 172.25.254.40;     #分配的IP地址的範圍

   32      option routers 172.25.254.250;     #分配的IP地址的閘道器

   33      }

   34           key westoskey {

   35             algorithm hmac-md5;

   36             secretYlWN2shjPdRIG98QBySfHLKncCnxHW+u88riAhIotpM=;

   37           };

   38

   39           zone westos.com. {    #指定更新的IP

   40             primary 127.0.0.1;  #迴環介面:實現高效且安全地更新 

   41             key westoskey;      #westoskey更新127.0.0.1中的westos.com的域

42           }

4.重啟dhcpd服務

systemctl start dhcpd

5.為實現更新westos.com域,則在/var/named/westos.com中一定不能有westos.com的域名解析

  設定完域名解析檔案後,一定要重啟named服務

 systemctl restart named

(二)客戶端

1.更改主機名,格式:xxx.westos.com

2.vim  /etc/systconfig/network-scripts/eth0

 DEVICE=eth0

 BOOTPROT=dhcp

 ONBOOT=yes

3.systemctl  restart network

4.dig xxx.westos.com  #測試是否可以解析出主機名及該主機IP

 

 

 

相關文章