快取記憶體區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為內網,這裡指定IP為172.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> 在另一臺主機,設定其dns為172.25.254.208,然後進行dig解析
5> 在IP為172.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