本文詳細介紹了如何在Linux中配置DNS服務器,包括DNS工作原理、本地緩存、DNS查詢過程,以及正向和反向查詢的配置。步驟包括服務器配置、編輯BIND配置文件、添加解析信息和客戶端測試,同時提到了注意事項和常見問題解決方法。
前言
在Linux中搭建DNS服務器涉及配置和運行一個軟件來提供DNS服務。DNS(Domain Name System)是互聯網上的一種系統,它將域名轉換為對應的IP地址,使得用戶可以通過易記的域名訪問網站,而不是記憶一長串數字。
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 installbind-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 { typemaster; 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 { typemaster; 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.zone cp-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 PTRwww.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地址
正向解析測試
通過測試發現一切都如配置文件對應關系那樣
反向解析測試
通過測試發現一切都如配置文件對應關系那樣
注意事項
如果重啟發現
`Jobfornamed.service failed because the control process exited with error code. See"systemctl status named.service"and"journalctl -xe"fordetails.`
那就是配置文件在你編輯時候出現了錯誤
vim /etc/named.conf 編輯這個文件 仔細的去觀察你編輯的信息
如果解析發現解析失敗 那就是正反解析文件中的問題
還有就是.記得加上去
鏈接:https://blog.csdn.net/jxjdhdnd/article/details/136699043?spm=1001.2014.3001.5502
-
Linux
+關注
關注
87文章
11432瀏覽量
212448 -
服務器
+關注
關注
12文章
9618瀏覽量
87065 -
DNS
+關注
關注
0文章
222瀏覽量
20215
原文標題:Linux中搭建DNS 域名解析服務器(詳細版)
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
評論