Lesson23 Linux下高速緩存DNS伺服器的配置
文章目錄
-
-
-
-
- 1. 了解DNS(Domain name system)
-
- 1.1 DNS的定義
- 1.2 DNS的功能
- 1.3 DNS的分類
- 1.4 DNS的解析過程
- 1.5 DNS系統中常見的資源記錄類型
- 1.6 DNS 排錯(它顯示來自 DNS 查找的詳細資訊 , 其中包括顯示為什麼查詢失敗)
- 2. 非權威高速緩存DNS伺服器的配置
- 3. 怎樣搭建一個權威dns伺服器
- 4. 怎樣搭建一個内網中重命名的dns伺服器
- 5. 關于郵件的實驗
- 6. DNS的反向解析(通過ip找域名)
- 7. DNS的雙向解析(内網解析ip為内網的 外網解析為外網的)
- 8. 如何建立輔助dns
- 9. DNS的遠端更新
- 10. DNS的密鑰更新
- 11. dhcp+dns組成動态域名解析ddns
-
-
-
1. 了解DNS(Domain name system)
1.1 DNS的定義
域名系統,縮寫:DNS(Domain Name System)是網際網路的一項服務
作為将域名和IP位址互相映射的一個分布式資料庫,幫助人們友善的通路網際網路
DNS使用的是TCP和UDP的53端口
1.2 DNS的功能
例如:直接在浏覽器裡面輸入域名www.baidu.com,浏覽器并不知道這是什麼意思,隻有通過dns找到域名對應的ip,才可以正常的通路百度
它作為将域名和IP位址互相映射的一個分布式資料庫,能夠使人更友善地通路網際網路
DNS使用TCP和UDP端口53,對于每一級域名長度的限制是63個字元,域名總長度則不能超過253個字元
1.3 DNS的分類
權威名稱伺服器(權威dns:直接有客戶需要的答案,客戶給一個域名直接就能通路)
存儲并提供某區域 ( 整個 DNS 域或 DNS 域的一部分 ) 的實際資料
權威名稱伺服器的類型包括:
Master : 包含原始區域資料,有時稱作 “主要 ”名稱伺服器
Slave : 備份伺服器 ,通過區域傳送從 Master 伺服器獲得的區域資料的副本,有時稱作 “次要 ”名稱伺服器
非權威 / 遞歸名稱伺服器(非權威dns裡面直接沒有客戶需要的答案,但它會通過問114.114.114.114等權威DNS找到答案給使用者(相當于代購))
用戶端通過其查找來自權威名稱伺服器的資料
遞歸名稱伺服器的類型包括僅緩存名稱伺服器 : 僅用于查找 , 對于非重要資料之外的任何内容都不具有權威性。
1.4 DNS的解析過程
DNS查找用戶端上的 Stub 解析器 将查詢發送至 /etc/resolv.conf 中的名稱伺服器,如果名稱伺服器對于請求的資訊具有權威性,會将權威答案發送至用戶端
否則,如果名稱伺服器在其緩存中有請求的資訊,則會将非權威答案發送至用戶端
如果緩存中沒有資訊,名稱伺服器将搜尋權威名稱伺服器以查找資訊,從根區域開始,按照DNS層次結構向下搜尋,直至對于資訊有具有權威性的名稱伺服器, 以此為用戶端獲得答案
在此情況中,名稱伺服器将資訊傳遞至用戶端并在自己的緩存中保留一個副本 , 以備以後查找
DNS資源記錄DNS區域采用資源記錄的形式存儲資訊。每條資源記錄均具有一個類型 , 表明其保留的資料類型。
簡單來說, DNS 伺服器将域名解析出來,找到域名對應的ip位址的服務,可以高速緩存從其他 DNS 伺服器收到的 DNS 記錄。 也可以在 DNS 客戶服務中使用高速緩存,将其作為 DNS 用戶端儲存在最近的查詢過程中得到的資訊高速緩存的方法。 可以提高解析速度。
1.5 DNS系統中常見的資源記錄類型
類型 | 說明 |
---|---|
主機記錄(A記錄) | A記錄是用于名稱解析的重要記錄,它将特定的主機名映射到對應主機的IP位址上 |
别名記錄(CNAME記錄) | CNAME記錄用于将某個别名指向到某個A記錄上,這樣就不需要再為某個新名字另外建立一條新的A記錄 |
IPv4主機記錄(A記錄) | 用于将特定的主機名映射到一個主機的IPv4位址 |
Pv6主機記錄(AAAA記錄) | 與A記錄對應,用于将特定的主機名映射到一個主機的IPv6位址 |
服務位置記錄(SRV記錄) | 用于定義提供特定服務的伺服器的位置,如主機(hostname),端口(port number)等 |
NAPTR記錄 | 它提供了正規表達式方式去映射一個域名,NAPTR記錄非常著名的一個應用是用于ENUM查詢 |
PTR | IPv4/IPv6 位址至名稱 |
MX | 用于名稱的郵件交換器 ( 向何處發送其電子郵件 ) |
NS | 域名的名稱伺服器 |
SOA | ” 授權起始 “ , DNS 區域的資訊 ( 管理資訊 ) |
1.6 DNS 排錯(它顯示來自 DNS 查找的詳細資訊 , 其中包括顯示為什麼查詢失敗)
提示 | 說明 |
---|---|
NOERROR | 查詢成功 |
NXDOMAIN | DNS 伺服器提示不存在這樣的名稱 |
SERVFAIL | DNS 伺服器停機或 DNSSEC 響應驗證失敗 |
REFUSED | DNS 伺服器拒絕回答 ( 也許是出于通路控制原因 ) |
2. 非權威高速緩存DNS伺服器的配置
為什麼要搭建高速緩存dns伺服器?
當一個企業内網裡面的每一台主機都要通路114.114.114.114這個權威dns進行域名解析,但是内網通往114.114.114.114隻有一根傳輸線,此時每台的通路速率都非常慢
内網通路外網速率較慢,但内網之間進行通路速率快
現在我們想把企業内部裡面的一台伺服器搭建成高速緩存dns,其他主機不再需要問114.114.114.114,直接通路高速緩存dns伺服器即可
隻需要高速緩存dns去查詢114.114.114.114,然後把資訊記錄下來,其他的主機就可以通過查詢高速緩存DNS伺服器來解析域名,進而可以通路網站
這個高速緩存dns屬于非權威dns
實驗準備:将我們的server虛拟機reset,使用server虛拟機和真機來做實驗
給server虛拟機配置網絡。server虛拟機的ip為172.25.254.114,真機的ip為172.25.254.14
開啟真機的路由功能
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuEDN1UTMxUTM1ADOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
開啟真機防火牆的僞裝功能
在内網中搭建一台高速緩存dns伺服器,屬于非權威dns,目的是為了提高内網的通路效率
實驗方法:在server中(ip為172.25.254.114)上面搭建高速緩存dns,在
/etc/named.conf
中寫`forwarders{114.114.114.114}
#意思是讓這台高速緩存dns伺服器先在自己的記錄中查找dns,若沒有記錄,則去114.114.114.114查找dns
實驗步驟:修改高速緩存DNS的配置檔案
/etc/named.conf
的參數
将DNS安全檢測設定為no
将server主機的DNS設定為172.25.254.114(自己)
測試:
提出問題 dig www.baidu.com時間會不會更短?
測試機為主機,将主機的DNS設定為172.25.254.114
server端:dig www.baidu.com
可以看到,能夠成功找到百度的ip, 耗時361ms
真機端:dig www.baidu.com
可以看到,第一次耗時44ms
第二次耗時4ms,
第三次耗時3ms,時間縮短了很多,表明在内網查找ip可以大大縮短查找的時間
如果服務起不來,或者得到的結果不正确,那麼就先清空日志,然後重新開機服務,再檢視日志中的報錯,絕大部分的錯誤都能從日志中找到
> /var/log/messages
systemctl restart named
cat /var/log/messages 在日志裡面找解決辦法
3. 怎樣搭建一個權威dns伺服器
實驗目的:使172.25.254.114非權威dns不再向114.114.114.114權威dns詢問,而是向自己詢問,這個也屬于檔案共享,搭建一個類似114功能的dns伺服器
在server中打開/etc/named.rfc1912.zones檔案,然後複制19-24行,修改zone後的名字,修改file的内容
複制的内容:
修改後的内容:
因為要找file的内容,但是我們目前還沒有這個檔案,這裡的檔案位于/var/named的目錄中,轉到這個目錄,去複制檔案
這裡一定要注意,-p是為了改westos.com.zone這個檔案的權限,複制的時候一定要加-p,不然會出錯!!!
複制完成後,進入這個檔案編輯内容
這個檔案一旦寫錯,錯的地方就會變成紅色,要注意改正錯誤的地方,否則named.service服務無法重新開機
重新開機服務
在真機中修改nameserver 172.25.254.114,另一行nameserver注釋掉
測試:在真機中dig www.westos.com
可以看到,www.westos.com的ip為172.25.254.114
4. 怎樣搭建一個内網中重命名的dns伺服器
vim westos.com.zone
#編輯這個檔案,加入CNAME的相關參數
重新開機服務
在真機中進行測試:dig bbs.westos.com
可以看到,bbs.westos.com在内網中的名稱為linux.westos.com
5. 關于郵件的實驗
平常發送郵件都是先登陸騰訊的伺服器,再将郵件發出去
qq.com這台伺服器将[email protected]這個郵件發送
需要通過dns解析找到mx記錄163.com
二者通過smtp協定的25端口進行郵件傳送
簡單郵件傳輸協定 (Simple Mail Transfer Protocol, SMTP) 是在Internet傳輸email的事實标準
SMTP是一個相對簡單的基于文本的協定。在其之上指定了一條消息的一個或多個接收者(在大多數情況下被确認是存在的),然後消息文本會被傳輸
可以很簡單地通過telnet程式來測試一個SMTP伺服器,SMTP使用TCP端口25
要為一個給定的域名決定一個SMTP伺服器,需要使用MX (Mail eXchange) DNS
MX記錄允許設定一個優先級,當多個郵件伺服器可用時,會根據該值決定投遞郵件的伺服器
簡單郵件傳輸協定(SMTP)會根據MX記錄的值來決定郵件的路由過程
在dns伺服器上面
netstat -antlupe | grep master
檢視25端口是否開啟
vim westos.com.zone
#編輯這個檔案,加入郵件的相關參數
其中,MX是郵件交換器 1表示級别,表示一個記錄而不是位址,是以後邊有.
重新開機服務
測試:在用戶端(主機)給伺服器發送郵件,Ctrl+d退出
上述資訊表示設定是沒有問題的,問題跟25端口有關
由于我們并沒有搭建郵件伺服器,所有我們的郵件是無法發送成功的
以上所有的與dns伺服器相關的全部是正向解析,也就通過域名找ip
6. DNS的反向解析(通過ip找域名)
PTR:IPv4/IPv6位址----->名稱
正向解析和反向解析是分開的,二者沒有任何關系
将上圖作為模闆複制一段,修改成下圖所示由于是反向解析,zone後邊的前三位網絡位的ip也要反寫
cd /var/named,複制一個named.loopback檔案
vim westos.com.ptr
#編輯這個檔案
重新開機服務
在測試端測試:
可以看到,将172.25.254.116反向解析為bbs.westos.com
可以看到,将172.25.254.118反向解析為www.westos.com
7. DNS的雙向解析(内網解析ip為内網的 外網解析為外網的)
雙向解析:使特定的使用者使用特定的解析檔案,内外分開
在實驗中,将此台主機看作内網主機192.168.1網段,将除過此台主機以外的主機看作外網主機172.25.254網段
複制一個外網的dns配置檔案
vim westos.com.localnet
#編輯這個檔案,将172.25.254全部替換成192.168.0
可以看到,替換成功
vim /etc/named.rfc1912.localnet
vim /etc/named.conf
,将52-59行注釋掉,重新編寫外網和内網的dns配置檔案
重新開機服務,
在測試端改測試端主機ip(真機)nameserver 172.25.254.114
可以看到,在server裡查到的ip為192.168.0.114(内網解析)
在真機裡查到的ip為172.25.254.114(外網解析)
8. 如何建立輔助dns
建立輔助dns, 對外網通路dns伺服器來說,能夠緩解通路dns伺服器的壓力如何使多台dns 為主dns建立輔助dns?
實驗準備:将雙向DNS先注釋掉,将原來注釋的内容放開,恢複到雙向DNS解析前的狀态
再打開一個虛拟機desktop,在輔助dns裡面安裝dns
先配置yum源,再安裝DNS,
yum install bind -y
将desktop主機的ip設為172.25.254.214
在desktop主機上改主機名:hostnamectl set-hostname dns-slave.westos.com
vim /etc/named.conf 改參數(一共改兩行)
listen-on port 53{any; };
allow-query{any; };
netstat -antlupe | grep named 看53端口是否開啟
vim /etc/named.rfc1912.zones
寫入:
type slave;(輔助型)
masters {172.25.254.114;};(為114主機服務)
file "slaves/westos.com.zone";(在slaves/這個目錄下同步westos.com.zone)
systemctl restart named
cd /var/named/salves
ls
systemctl restart named
vim /etc/named.conf #改參數
vim /etc/named.rfc1912.zones
修改輔助DNS上的nameserver
給火牆加上DNS服務
發現資料已經同步過來了,此時輔助DNS上可以得到和主DNS伺服器上相同的ip,但是隻能更改一次,第二次主DNS的域名解析改變了,輔助DNS就不能及時同步,這是因為當再次更新時,主DNS裡的westos.com.zone裡的檔案沒有發生變化,删掉這個檔案,再次重新開機服務,則能看到輔助dns也能更新
生成了新的westos.com.zone檔案,更改主DNS裡的解析ip
可以看到,輔助DNS也更新了
但是這種删除的方法并不适合企業,介紹一種新的方法,同步DNS解析
在114主機中vim /etc/named.rfc1912.zones #修改參數, 寫入allow-notify{172.25.254.214;};企業7以前的版本需要再加上
allow-transfer{172.25.254.214;};通知215主機更新
修改serial的值,通常為時間加次數(最大不超過10位)
并且将www.westos.com的解析ip改為172.25.254.188
重新開機服務
此時可以看到,輔助dns也更新了主dns解析的ip(可能會有一點點延遲,多重新開機幾次)
9. DNS的遠端更新
之前每次該完配置檔案都要重新開機服務才會生效
現在即改即生效
檢視/var/named/這個目錄的權限
備份cp -p westos.com.zone /mnt/
将selinux改至permissive模式
給named組加上寫權限
vim /etc/named.rfc1912.zones
寫入: allow-update {172.25.254.114; };
systemctl restart named #重新開機服務
進行更新:
nsupdate 回車
server 172.25.254.114
update add hello.westos.com 86400 A 172.25.254.123
send 回車
打開遠端主機火牆,加上DNS
可以看到遠端主機更新在主DNS上已經同步過來了,檢視/var/named/,可以看到多了一個westos.com.zone.jnl的日志檔案
vim westos.com.zone可以看到,多了一個hello.westos.com的解析對應關系
在遠端主機上删掉這個網址,則主DNS上也dig不到ip
删掉westos.com.zone和westos.com.zone.jnl檔案
将備份的檔案恢複回來
再次檢視這個檔案
可以看到,已經看不到hello.westos.com的對應關系了,說明已經把遠端更新的檔案徹底删除幹淨了
10. DNS的密鑰更新
之前我們通過ip的方式更新dns,這樣的做法很不安全,别人也通過ip可以更新我的dns
如果給dns做一個鑰匙,有鑰匙才能更新,這樣做更安全
實驗準備:在實驗之前,轉到/var/named/目錄下,ls檢視
删掉之前更新産生的westos.com.zone和westos.com.zone.jnl檔案,
将之前備份的westos.com.zone檔案拷貝回來
生成自己的加密檔案
cp -p /etc/rndc.key /etc/westos.key
在/mnt目錄下輸入
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
生成鑰匙
ls檢視生成的對稱加密檔案
編輯自己的加密檔案:加入鑰匙名字和加密字元`cat Kwestos.+157+45843.key #檢視加密字元
vim /etc/westos.key
#在dns伺服器自己的加密檔案中寫資訊
在option語句塊外添加
include /etc/westos.key
編輯dns檔案,使其允許鑰匙加密更新
vim /etc/named.rfc1912.zones
将密鑰發送給測試機
在測試端進行更新
nsupdate -k /mnt/Kwestos.+157+63271.private
server 172.25.254.114
update add test.westos.com 86400 A 172.25.254.136
send
quit
切換到/opt/,ls檢視密鑰檔案是否成功發送過來
可以看到,無法更新成功,這是因為沒有告訴測試機使用密鑰進行更新
可以看到,能夠成功進行密鑰更新
在主DNS上dig可以看到更新的ip(172.25.254.136)
11. dhcp+dns組成動态域名解析ddns
在動态配置設定ip時,dns域名解析的ip就變了,這樣就查不到域名對應的ip了,要把域名與ip的對應關系做好,可以利用dhcp服務,dhcp将哪個ip給被通路域名,dhcp再告訴dns,這樣用戶端會利用主機名稱去通路一個域名内的主機
DDNS(Dynamic Domain Name Server)是動态域名服務的縮寫
DDNS是将使用者的動态IP位址映射到一個固定的域名解析服務上 使用者每次連接配接網絡的時候用戶端程式就會通過資訊傳遞把該主機的動态IP位址傳送給位于服務商主機上的伺服器程式
伺服器程式負責提供DNS服務并實作動态域名解析
DDNS捕獲使用者每次變化的IP位址,然後将其與域名相對應,這樣其他上網使用者就可以通過域名來進行交流 而最終客戶所要記憶的全部,就是記住動态域名商給予的域名即可,而不用去管他們是如何實作的
動态域名服務的對象是指IP是動态的,是變動的 普通的DNS都是基于靜态IP的,有可能是一對多或多對多,IP都是固定的一個或多個,但DDNS的IP是變動的、随機的
随着市場需求的變化,DDNS需求功能也越來越多,越來越要求友善,市場現在已經有了不少第三方DDNS方支援的裝置
實驗準備:server和desktop兩台虛拟機,確定兩台虛拟機的selinux的狀态為disabled
在114 server主機上面恢複原來的環境
vim westos.com.zone(删除之前所有的,隻留dns)
利用yum源安裝dhcp服務
systemctl restart named
#重新開機DNS服務
在114server主機上面安裝dhcp服務
在火牆中加入dhcp服務
按照以前的方法配置dhcp
修改域名為westos.com
修改域名伺服器為172.25.254.114
将desktop虛拟機的網絡配置檔案寫為dhcp自動擷取ip
如果dhcp無法自動配置設定ip,則檢視server虛拟機的網絡配置
server虛拟機的配置檔案如下所示
重新開機網絡和打開dhcp
重新開機dhcp服務,保證dhcp是開啟的狀态
進入dhcp的配置檔案,寫上ddns的更新方式為interim
修改配置檔案裡的子網ip,子網路遮罩,網關和自動擷取ip的範圍
寫入以下内容,設定主機ip為172.25.254.114,通過加密密鑰的方式進行dns解析
在desktop測試端,重新開機網絡
可以看到自動擷取的test.westos.com的ip為172.25.254.210
在dhcp的配置檔案裡更改自動擷取ipd的範圍為172.25.254.150到172.25.254.200
再重新開機dhcp服務,重新開機網絡
查到的test.westos.com的DNS解析ip為172.25.254.150