1. 程式人生 > >快取記憶體區dns

快取記憶體區dns

一、DNS是什麼

   DNS:(Domain Name System,域名系統),是網際網路上儲存域名和IP對映關係的一個分散式資料庫,他負責把域名轉換為IP地址,或IP轉換為域名,工作於OSI應用層之上,DNS運行於UDP/TCP的53埠。其中,負責提供域名解析的為UDP協議的53埠,負責DNS伺服器之間的區域傳送採用TCP的53埠。

二、BIND是什麼

     BIND(Berkeley Internet Name Domain)是DNS的開源實現,由兩部分組成:
     a、域名伺服器(Name Server):提供域名解析服務
     b、解析器(Resolver):負責發起查詢和向呼叫他的應用返回IP地址或者別名等資訊

三、DNS伺服器的分類

1)權威名稱伺服器:儲存並提供某區域的實際資料(型別包括:Master和Slave)
2)非權威/遞迴名稱伺服器:客戶端通過其查詢來自權威名稱伺服器的資料

三、DNS的安裝

step1: 
cd /etc/yum.repo/                 ##配置yum源

step2:
vim /etc/yum.repo/
[rhel7.2]
name=rhel7.2
baseurl=file:///rhel7.2           ##/rhel7.2/為已經掛載好映象的目錄
gpgcheck=0 

step3:
yum clean all                     ##清除yum快取資料
step4: yum search dns ##先查詢有關dns的安裝包資訊 step5: yum install bind.x86_64 -y ##開始安裝 step6: sysemctl start named ##開啟服務 step7: firewall-config ##改變防火牆策略,使dns可以訪問 或 systemctl stop firewalld ##關閉火牆

五、DNS中常見的縮寫

A

address,將域名解析到IPv4的地址

AAAA

將域名解析到IPv6的地址

PTR

pointer,將IP地址轉換為主機的FQDN

CNAME

Canonical name,別名

NS

Name Server ,用來指定操作DNS伺服器的名稱,需注意的是,不可以用IP地址來表示

六、DNS解析

1)靜態解析

a、正向解析:輸入域名得到相應的ip
1> vim /etc/named.conf          
##改變配置檔案,使dns可以接受訪問(listen-on port 53)和回答(allow-query)以及詢問他人(forwarders)

這裡寫圖片描述

2>  vim /etc/resolve.conf             ##指定dns伺服器,本機即可

這裡寫圖片描述

3>:檢查服務端和客戶端的防火牆是否關閉,在防火牆開著的情況下,檢查防火牆策略是否載入成功
4> vim /etc/named.rfc1912.zones     ##編輯域名檔案

這裡寫圖片描述

5> cp -p /var/named/named.localhost /var/named/westos.com.zone           
   vim /var/named/westos.com.zone  ##使用模板,編輯正向解析檔案

這裡寫圖片描述

6>:  systemctl restart named     ##重啟服務
7>:  dig +域名                    ##進行解析

正向解析結果:
這裡寫圖片描述

第一次訪問:

dig www.baidu.com           ##首次訪問所需的時間長

這裡寫圖片描述

第二次訪問:

dig www.baidu.com           ##載次訪問所需的時間明顯減短

這裡寫圖片描述

   上面dig操作得到的www.baidu.com的IP地址是通過forwarders:172.25.254.8進行的一次查詢,如果,是本地解析的話,只需要,將www.baidu.com的IP地址自定義寫在相應的檔案中即可完成一次查詢~
   下面的實驗,我們就來操作操作~
step1:將/etc/named.conf下的forwarders這一行註釋掉,或者直接刪除

這裡寫圖片描述

step2: cd /var/named/         
       cp -p named.localhost westos.com.zone   ##注意此檔案的許可權十分特殊,所以,在複製的過程中,一定要加上引數p
step3: vim westos.com.zone        ##編輯本地解析檔案

本地解析1>合法操作下:
這裡寫圖片描述

本地解析:dig www.westos.com
這裡寫圖片描述
解析的結果為:172.25.254.222,解析成功!
本地解析2>域名不合法時:
這裡寫圖片描述

systemctl restart named     ##重啟服務

這裡寫圖片描述
CNAME:將不合法的名稱(bbs.westos.com)轉化為合法的名稱(news.westos.com),從而進行查詢,其結果為:172.25.254.111,解析成功!

本地解析3>IP輪叫機制

這裡寫圖片描述

systemctl restart named     ##重啟服務
第一次解析:dig news.westos.com     ##解析結果為:172.25.254.111

這裡寫圖片描述

第二次解析:dig news.westos.com         ##解析結果為:172.25.254.123

這裡寫圖片描述

b、反向解析
1> vim /etc/named.rfc1912.zones   ##編輯域名檔案

這裡寫圖片描述

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

這裡寫圖片描述

systemctl restart named           ##重啟服務

這裡寫圖片描述
dns將172.25.254.208解析為heihei.westos.com,與原檔案相符,解析成功!

C、雙向解析
    雙向解析的插話:為了緩解外網的壓力,實現多臺伺服器公共作業,分為內網和外網,以此類推,也可以擴充套件為多向解析
1> vim /etc/named.conf     

##編輯dns的主配置檔案,實現不同的使用者看到不同的檔案,在這裡,我們使用命令view,檔案其他內容不變,在文末新增如下圖所示程式碼,第一部分的localnet為內網,這裡指定IP172.25.254.208(即本機),通過此IP訪問的使用者檢視的是:/etc/named.rfc1912.zones這個檔案;通過其他IP訪問的使用者檢視的是:/etc/named.rfc1913.zones

這裡寫圖片描述

2> cp -p /etc/named.rfc1912.zones /etc/named.rfc1913.zones

   vim /etc/named.rfc1913.zones    ##將file中的westos.com.zone改成westos.com.inter

這裡寫圖片描述

3> cp -p /var/named/westos.com.zone /var/named/westos.com.inter
   vim /var/named/westos.com.inter   ##為了實驗效果更加明顯,將所有的172.25.254轉換為1.1.1%s/172.25.254/1.1.1/g  

這裡寫圖片描述

4> 在另一臺主機,設定其dns172.25.254.208,然後進行dig解析

這裡寫圖片描述
這裡寫圖片描述

5> IP172.25.254.208的機子上進行解析:dig www.westos.com

這裡寫圖片描述
通過實驗對比可以看出:172.25.254.208看的是/var/named/westos.com.zone這個檔案,而其他的外網使用者則看的是/var/named/westos.com.inter這個檔案

D、解析叢集

1)主伺服器為:Master
輔助伺服器為:Slave

step1: 在輔助伺服器端將DNS改為自己的主機IP,安裝DNS,關閉防火牆,或者在防火牆開啟的狀態下,寫防火牆策略
step2: vim /etc/named.rfc1913.westos.zones  ##編寫dns的主從複合關係

這裡寫圖片描述

step3: dig www.westos.com   ##輔助伺服器端

主伺服器/var/named/westos.com.inter:
這裡寫圖片描述

輔助伺服器解析www.westos.com:
這裡寫圖片描述
解析完全正確,說明輔助dns搭建成功!

   更改的問題:在主伺服器如果更新了資料,輔助伺服器不能及時的更新資料,從而,會出現相同的問題兩個答案的現象,為了避免這個問題的出現,必須在主伺服器資料更新後,及時地告知輔助伺服器,這樣的DNS叢集才稱的上是合法的!下面,我們就來介紹這一套操作~
1> vim /etc/named.rfc1913.zones     ##主伺服器端

這裡寫圖片描述

2> vim /var/named/westos.com.inter     ##主伺服器端

這裡寫圖片描述
將news.westos.com的IP改為1.1.1.123,並且,要改變serial的值,最多為10位
這裡寫圖片描述

3> dig news.westos.com     ##輔助伺服器端

這裡寫圖片描述

4> systemctl restart named    ##主伺服器端
5> dig news.westos.com     ##輔助伺服器端

這裡寫圖片描述
實時同步完成~

2)動態解析DDNS

    在這裡先給大家介紹一款收費軟體:花生殼(Oray)

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

   花生殼的工作機理其實就是DDNS(Dynamic Domain Name Server:動態域名服務),讓dhcp去分配IP給開啟DHCP服務的機子,然後,便可以通過DNS來找到這臺機子的域名(或IP),下面,我們就來操作一下,看看如何自己動手搭建一款"花生殼"
    首先,要有兩臺虛擬機器,其中一臺為服務端,另一臺為客戶端:

 1) 服務端需要搭建DHCP和DNS服務:
  yum intall dhcp bind -y           ##yum源配好的前提下,進行下載
  systemctl start named             ##開啟dns服務
  systemctl enable named            ##設定開機啟動

  systemctl start dhcpd             ##開啟dhcp服務
  systemctl enable dhcpd            ##設定開機啟動

 2)客戶端只需要將獲取IP的方式設定為DHCP即可:
  vim /etc/sysconfig/network-script/ifcfg-westos
  NAME=westos
  BOOTPROTO=dhcp
  ONBOOT=yes
  DEVICE=eth0
  :wq
  systemctl stop NetworkManager.service
  systemctl restart network

 3)關閉兩臺虛擬機器的防火牆 
    systemctl stop firewalld  

step1:

在服務端修改以下內容:

  vim /etc/named.conf

這裡寫圖片描述

vim /etc/named.rfc1912.zones

這裡寫圖片描述

   cd /var/named
   ls
   cp -p named.localhost westos.com.zone
   vim westos.com.zone

這裡寫圖片描述

dig dns.westos.com    ##先檢測本機dns解析是否正確

這裡寫圖片描述

本機解析成功後,再建立加密實現dns解析:

chmod g+w /var/named       
setsebool -P named_write_master_zones on
cd /mnt/
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
cp -p /etc/rndc.key /etc/westos.key
cat /etc/westos.key

這裡寫圖片描述

vim /etc/westos.key 

這裡寫圖片描述

vim /etc/named.conf

這裡寫圖片描述

step2:

nsupdate:測試key是否更新成功

nsupdate -k Kwestos.+157+57326.private
>server 172.25.254.108
>update add haha.westos.com 86400 A 172.25.254.111
>send
>quit

這裡寫圖片描述

  dns加密解析成功後,再繼續設定dhcp服務,到這裡,才有可能真正意義上實現"花生殼"的作用~

編輯dhcp的配置檔案:
這裡寫圖片描述
這裡寫圖片描述

step3:

dhcp自動分配檢視是否成功:
客戶端成功獲取到了來自dhcp的IP:172.25.254.201
這裡寫圖片描述

在服務端dig客戶端的域名可以正確解析到他的IP
這裡寫圖片描述

至此,DDNS服務搭建成功~