在 RHEL/CentOS 7 中安裝和配置僅快取 DNS 伺服器
介紹
DNS(域名系統)在將域名轉換為 IP 地址方面起著至關重要的作用,允許使用者使用人類可讀的 URL 訪問網站。為了提高 DNS 效能並減少網路延遲,實現僅快取 DNS 伺服器可以顯著提高 DNS 查詢的速度和效率。在本文中,我們將指導您在 RHEL/CentOS 7 中安裝和配置僅快取 DNS 伺服器的過程。
先決條件
在繼續之前,請確保您具備以下條件:
執行 RHEL/CentOS 7 的伺服器。
伺服器的 root 或 sudo 訪問許可權。
Linux 命令列的基本知識。
更新系統
首先,執行以下命令將系統軟體包更新到最新版本:
sudo yum update -y
安裝 BIND DNS 伺服器
BIND(伯克利網際網路名稱域名)是最廣泛使用的 DNS 軟體。使用以下命令安裝 BIND 軟體包:
sudo yum install bind bind-utils -y
配置 BIND DNS 伺服器
接下來,我們需要配置 BIND 以僅作為快取 DNS 伺服器執行。在文字編輯器中開啟 BIND 配置檔案:
sudo vi /etc/named.conf
在檔案中,將其內容替換為以下配置:
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
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";
recursion yes;
dnssec-enable no;
dnssec-validation no;
allow-query { any; };
};
按 Esc 鍵,然後輸入 :wq 儲存並關閉檔案。
配置 DNS 轉發器
為了提高 DNS 解析速度,我們可以配置 BIND 使用 DNS 轉發器。開啟 BIND 選項檔案:
sudo vi /etc/named.rfc1912.zones
在檔案中新增以下轉發器配置:
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "example.com" IN {
type forward;
forwarders { 8.8.8.8; 8.8.4.4; };
forward only;
};
儲存並關閉檔案。
啟用並啟動 BIND 服務
要啟用 BIND 在系統啟動時自動啟動,請執行以下命令:
sudo systemctl enable named
然後,使用以下命令啟動 BIND 服務:
sudo systemctl start named
測試僅快取 DNS 伺服器
為了確保僅快取 DNS 伺服器正常執行,我們可以執行一些測試。以下是一些示例及其預期輸出:
示例 1:檢查 DNS 解析器
執行以下命令以檢查伺服器是否使用僅快取 DNS 伺服器作為解析器:
nslookup google.com
輸出
Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: Name: google.com Address: 172.217.12.14
示例 2:檢查快取的 DNS 條目
要驗證 DNS 伺服器是否正在快取 DNS 條目,請對同一域名執行兩次查詢:
nslookup example.com
輸出
Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: Name: example.com Address: 93.184.216.34
再次執行相同的命令,您應該會看到響應時間縮短,這表明 DNS 條目是從快取中提供的。
示例 3:檢查到 DNS 轉發器的轉發
為了確保 DNS 伺服器將查詢轉發到指定的 DNS 轉發器,請對未快取的域名執行查詢:
nslookup facebook.com
輸出
Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: Name: facebook.com Address: 31.13.65.36
響應應包含 DNS 轉發器提供的 IP 地址(在本例中為 Google DNS 伺服器)。
保護僅快取 DNS 伺服器
實施安全措施以保護您的僅快取 DNS 伺服器免受潛在攻擊至關重要。以下是一些建議:
防火牆配置 - 使用防火牆規則僅允許來自受信任來源的 DNS 流量。例如,要允許來自本地網路 (192.168.0.0/24) 的 DNS 查詢,請執行以下命令:
sudo firewall-cmd --zone=public --add-service=dns --permanent sudo firewall-cmd --zone=public --add-source=192.168.0.0/24 --permanent sudo firewall-cmd --reload
限制查詢速率 - 實施速率限制以防止 DNS 放大攻擊和來自單個來源的過度查詢。開啟 BIND 選項檔案 (/etc/named.conf) 並將以下配置新增到 options 塊中:
rate-limit {
responses-per-second 5;
nxdomains-per-second 5;
errors-per-second 5;
};
DNSSEC - 考慮啟用 DNSSEC(域名系統安全擴充套件)以防止 DNS 欺騙和資料完整性攻擊。開啟 BIND 選項檔案 (/etc/named.conf) 並修改 dnssec-enable 和 dnssec-validation 選項,如下所示:
dnssec-enable yes; dnssec-validation yes;
注意 - 啟用 DNSSEC 需要額外的配置,包括金鑰生成和簽名。
監控和日誌記錄
監控和記錄 DNS 活動可以提供有關伺服器效能和潛在問題的寶貴見解。以下是一些需要考慮的工具和技術:
BIND 統計資訊 - BIND 提供有關 DNS 伺服器效能和資源用量的統計資訊。透過執行以下命令訪問統計資訊:
sudo rndc stats
這會在 /var/named/data 目錄中生成一個統計檔案。
日誌檔案 - BIND 將 DNS 相關的事件和錯誤記錄到日誌檔案中。預設日誌檔案位置為 /var/log/messages。要檢視 BIND 特定的日誌,請使用以下命令:
sudo tail -f /var/log/messages | grep named
監控工具 - 考慮使用 dnstop 或 dnsmeter 等監控工具來收集詳細的 DNS 流量統計資訊並分析伺服器效能。
微調 DNS 伺服器配置
根據您的具體要求,您可能需要調整某些 DNS 伺服器引數以最佳化效能。以下是一些值得探索的配置選項:
快取大小 - 預設情況下,BIND 為 DNS 快取分配有限的記憶體。根據伺服器的可用資源和預期的查詢負載調整快取大小。開啟 BIND 選項檔案 (/etc/named.conf) 並根據需要修改 max-cache-size 選項。
TTL(生存時間) - DNS 記錄包含 TTL 值,該值指定客戶端和 DNS 伺服器可以快取多長時間。調整 TTL 值會影響從上游伺服器獲取 DNS 解析的頻率。請根據您的要求考慮修改 TTL 值。
區域傳送 - 如果你有輔助 DNS 伺服器,請配置區域傳送以使其與僅快取 DNS 伺服器保持同步。有關配置區域傳送的更多詳細資訊,請參閱 BIND 文件。
結論
透過遵循本文中概述的步驟,您已成功在 RHEL/CentOS 7 系統上安裝和配置了僅快取 DNS 伺服器。快取功能透過儲存經常訪問的域名解析來提高 DNS 查詢效能,從而減少網路延遲並增強整體瀏覽體驗。現在,您可以享受更快的 DNS 解析和更高的網路效率帶來的好處。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP