Linux中搭建DNS 域名解析伺服器(詳細版)
本文詳細介紹瞭如何在Linux中配置DNS伺服器,包括DNS工作原理、本地快取、DNS查詢過程,以及正向和反向查詢的配置。步驟包括伺服器配置、編輯BIND配置檔案、新增解析資訊和客戶端測試,同時提到了注意事項和常見問題解決方法。
————前言————
在Linux中搭建DNS伺服器涉及配置和執行一個軟體來提供DNS服務。DNS(Domain Name System)是網際網路上的一種系統,它將域名轉換為對應的IP地址,使得使用者可以透過易記的域名訪問網站,而不是記憶一長串數字。
目錄
————前言————
DNS 從哪裡獲取 IP 地址?
DNS的作用
1.伺服器配置
2.編輯配置檔案
定義正向查詢
定義反向查詢
修改正反區域檔案(重點)
加入解析資訊(正向)
加入解析資訊(反向)
3.客戶機測試
正向解析測試
反向解析測試
編輯
注意事項
DNS 從哪裡獲取 IP 地址?
-
1. 本地快取: DNS伺服器會將先前查詢過的域名和對應的IP地址儲存在本地快取中,以便在後續查詢中加快響應速度。如果之前已經查詢過某個域名,DNS伺服器會直接從本地快取中獲取對應的IP地址。 -
2. 遞迴查詢: 如果本地快取中沒有目標域名的IP地址,DNS伺服器會發起遞迴查詢。它首先向根域名伺服器傳送查詢請求,根域名伺服器會返回指向負責頂級域(如.com、.net、.org等)的權威域名伺服器的IP地址。然後,DNS伺服器會向權威域名伺服器傳送查詢請求,直到獲取到目標域名的IP地址或者查詢失敗。 -
3. 轉發查詢: DNS伺服器還可以配置為轉發查詢,即將未命中本地快取的查詢請求轉發給其他DNS伺服器處理。通常情況下,本地DNS伺服器會將這些請求傳送給ISP(Internet Service Provider,網際網路服務提供商)提供的DNS伺服器或者其他可靠的DNS伺服器進行處理。
DNS的作用
-
1. 域名解析: DNS最主要的作用是將域名解析為對應的IP地址。當用戶在瀏覽器中輸入一個域名時,DNS系統會將這個域名轉換為相應的IP地址,然後瀏覽器才能透過IP地址找到並訪問目標網站。 -
2. 負載均衡: 透過DNS解析可以實現負載均衡,即將多個伺服器的域名解析為不同的IP地址並在不同的時間將其返回給使用者。這樣可以分散流量到多臺伺服器上,提高網站的訪問速度和穩定性。 -
3. 郵箱伺服器定位: DNS也用於指定郵件伺服器的IP地址。當傳送電子郵件時,郵件伺服器透過DNS解析找到收件人域名的郵件伺服器IP地址,然後傳送郵件。 -
4. 防止DNS劫持: DNS還能夠透過各種方式來防止DNS劫持,即惡意修改DNS解析結果以實施網路攻擊或監視使用者活動的行為。例如,DNSSEC(DNS Security Extensions)可以透過數字簽名來保護DNS解析結果的完整性和真實性。 -
5. 提供其他網路服務: DNS還可以用於提供其他網路服務,如反向DNS解析(將IP地址解析為域名)、動態域名解析(將動態IP地址對映到域名)、域名註冊等。
接下來講講我們在本地搭建DNS解析
以下實驗測試均在VMware中 centos作業系統
首先伺服器的配置
1.伺服器配置
配置ip,關閉防火牆和selinux
安裝BIND包他就是dns的安裝包需要下載它
`yum install bind -y`

2.編輯配置檔案
/etc/named.conf 是DNS的配置檔案
`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"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; };

以下是詳細配置解釋:
大家瞭解即可 主要還是圖中紅色框中的字母
-
1. options: 這個部分包含了DNS伺服器的一般選項設定。 -
2. listen-on port 53 { any; }: 指定DNS伺服器監聽的埠。在這個示例中,DNS伺服器監聽在53埠,允許任何IP地址連線到該埠。這意味著DNS伺服器會接受來自任何IP地址的DNS查詢請求。 -
3. listen-on-v6 port 53 { ::1; }: 指定IPv6地址的監聽埠。在這個示例中,DNS伺服器監聽IPv6地址的53埠,只允許本地IPv6地址(::1)連線到該埠。 -
4. directory "/var/named";: 指定儲存DNS伺服器相關資料檔案的目錄路徑。在這個示例中,資料檔案儲存在/var/named目錄下。 -
5. dump-file "/var/named/data/cache_dump.db";: 指定DNS伺服器在關閉時將快取內容寫入的檔案路徑。這個檔案通常用於除錯和故障排除。 -
6. statistics-file "/var/named/data/named_stats.txt";: 指定DNS伺服器的統計資訊輸出檔案路徑,用於記錄DNS伺服器的執行統計資料。 -
7. memstatistics-file "/var/named/data/named_mem_stats.txt";: 指定DNS伺服器的記憶體使用統計輸出檔案路徑,用於記錄DNS伺服器的記憶體使用情況。 -
8. recursing-file "/var/named/data/named.recursing";: 指定DNS伺服器遞迴查詢的記錄檔案路徑。 -
9. secroots-file "/var/named/data/named.secroots";: 指定DNS伺服器的安全根檔案路徑。 -
10. allow-query { any; };: 指定允許查詢的IP地址範圍。在這個示例中,允許任何IP地址進行DNS查詢。
定義正向查詢
正向查詢是最常見的DNS查詢方式之一。
正向查詢用於將域名解析為IP地址,這樣使用者就可以使用易記的域名來訪問網際網路上的各種網路資源,而不需要記憶IP地址。
在dns配置檔案中加入如下資訊:
zone "example.com" IN {type master; file "example.com.zone"; allow-update { none; };};
紅色框框裡邊的就是

以下是配置詳解:
需要強調的是file指定的是檔案路徑
type master;
: 表明這是主 DNS 伺服器,負責提供 "example.com" 區域的資料。file "example.com.zone";
: 指定了包含 "example.com" 區域資料的檔案的路徑。allow-update { none; };
: 指定了允許對區域進行動態更新的許可權。在這種情況下,none
表示不允許任何動態更新,因此區域資料只能透過手動編輯區域檔案來更新。
定義反向查詢
反向查詢是一種從IP地址到域名的查詢方式。
反向查詢主要用於安全審計、網路管理和驗證IP地址歸屬等方面。例如,當收到來自某個IP地址的網路流量時,可以透過反向查詢確認該IP地址對應的域名,從而瞭解到流量的來源。
zone "180.168.192.in-addr.arpa" IN {type master; file "example.com.arpa"; allow-update { none; };};
如圖紅色框框

檢測是否語法錯誤
`named-checkconf /etc/named.conf`
編輯完成之後儲存退出並且重啟
`systemctl restart named`
修改正反區域檔案(重點)
進入到DNS伺服器相關檔案儲存目錄
/var/named/
`cd /var/named/`
觀察這兩個檔案 其實是一個例項檔案接下來我們複製兩份用(找任意一個都可以)

如下
cp -p named.empty example.com.zonecp -p named.empty example.com.arpa
如下就是我複製的檔案
example.com.zone 當做正向查詢解析來用
example.com.arpa 當做反向查詢來使用

加入解析資訊(正向)
`vim example.com.zone`
觀看如下配置
格式就是這樣的 請大家按照這樣寫
紅色框框裡邊可以修改

-
1. example.com.
: 指定了主域名為example.com
。 -
2. root.example.com.
: 這個欄位指定了負責管理該域名的DNS伺服器的郵箱地址,形式為[email protected]
。root
是指定了這個域名的管理員(或者叫根管理員),而example.com
是該管理員的郵箱地址的域名部分。 -
3. @ IN NS dns.example.com.
:這行指定了域名example.com
的DNS伺服器是dns.example.com
。NS記錄(Name Server)指定了管理特定區域的DNS伺服器。 -
4. dns IN A 192.168.180.188
:這行指定了主機名dns
對應的IP地址是192.168.180.188
。A記錄(Address Record)用於將域名解析為IPv4地址。 -
5. www IN A 192.168.180.189
:這行指定了主機名www
對應的IP地址是192.168.180.189
。 -
6. exam IN A 192.168.180.190
:這行指定了主機名exam
對應的IP地址是192.168.180.190
。 -
7. ftp IN A 192.168.180.191
:這行指定了主機名ftp
對應的IP地址是192.168.180.191
。 -
8. sun IN A 192.168.180.44
:這行指定了主機名sun
對應的IP地址是192.168.180.44
。
加入解析資訊(反向)
`vim example.com.arpa`
觀看如下配置
格式就是這樣的 請大家按照這樣寫
紅色框框裡邊可以修改

PTR 記錄將 IP 地址對映到相應的域名。
@ IN NS dns.example.com.:這行指定了該反向區域的DNS伺服器是 dns.example.com。NS記錄(Name Server)指定了管理特定區域的DNS伺服器。
188 IN PTR dns.example.com.:這行指定了IP地址以 188 結尾的主機對應的域名是 dns.example.com。PTR記錄(Pointer Record)用於將IP地址解析為域名。
189 IN PTR www.example.com.:這行指定了IP地址以 189 結尾的主機對應的域名是 www.example.com。
190 IN PTR exam.example.com.:這行指定了IP地址以 190 結尾的主機對應的域名是 exam.example.com。
191 IN PTR ftp.example.com.:這行指定了IP地址以 191 結尾的主機對應的域名是 ftp.example.com。
44 IN PTR sun.example.com.:這行指定了IP地址以 44 結尾的主機對應的域名是 sun.example.com。
此刻已經寫完了所有的配置資訊 重啟服務
3.客戶機測試
配置ip,關閉防火牆和selinux
`[root@localhost ~] vim /etc/resolv.conf`
/etc/resolv.conf
是一個用於配置 DNS 解析的重要檔案將它指向dns伺服器IP地址

正向解析測試
透過測試發現一切都如配置檔案對應關係那樣

反向解析測試
透過測試發現一切都如配置檔案對應關係那樣

注意事項
如果重啟發現
`Job for named.service failed because the control process exited with error code. See "systemctl status named.service" and "journalctl -xe"for details.`

那就是配置檔案在你編輯時候出現了錯誤
vim /etc/named.conf 編輯這個檔案 仔細的去觀察你編輯的資訊
如果解析發現解析失敗 那就是正反解析檔案中的問題
還有就是.記得加上去

連結:https://blog.csdn.net/jxjdhdnd/article/details/136699043?spm=1001.2014.3001.5502
(版權歸原作者所有,侵刪)
文末福利
就目前來說,傳統運維衝擊年薪30W+的轉型方向就是SRE&DevOps崗位。
為了幫助大家早日擺脫繁瑣的基層運維工作,給大家整理了一套高階運維工程師必備技能資料包,內容有多詳實豐富看下圖!
共有 20 個模組





······



以上所有資料獲取請掃碼
備註:最新運維資料

100%免費領取
(後臺不再回復,掃碼一鍵領取)