Domain-Name-System

PDNS 伺服器的正確設置程序是什麼?

  • November 15, 2013

我是 DNS 伺服器領域的新手,但作為我目前工作的一部分,我應該升級我們的辦公室網路基礎設施。

在查看了可用選項後,我決定使用 PowerDNS 解決方案 PDNS 伺服器。主要是因為通過 MySQL 後端的簡單管理選項。

我已經執行了 PDNS 伺服器,甚至可以滿足我的需要,但我發現舊 BIND9 和新 PDNS 的響應之間存在一些顯著差異:缺少附加部分,答案是“非權威”等。

基本上我們對 DNS 的要求是:

  • 如果請求的域在 MySQL 後端的記錄中(例如 intranet-domain.ourdomain.com),則響應應該是權威的。
  • 如果請求的域不在 MySQL 後端的記錄中,則應將請求轉發到外部網路以從適當的權威 DNS 獲取答案。

我們目前的設置是:

  • Debian 7
  • pdns(來自標準 repo 的 3.2)+ pdns-backend-mysql + poweradmin
  • pdns-recursor(否則它沒有解析任何外部域名)

問題

  • 我真的需要 pdns-recursor 才能解析外部地址嗎?如果有辦法將未知地址轉發到 ISP DNS,請賜教。
  • 如何使響應看起來更像 BIND9?例如,我還希望看到額外的部分告訴我有關請求地址的 NS 等。
  • 此外,如果我將我們的 DHCP PDNS 設置為主,BIND9 設置為輔助,那麼響應將始終來自 BIND9 而不是 PDNS。雖然我將所有記錄和區域從 BIND9 導入到 MySQL 後端。如何解決?

pdns.conf

allow-recursion=192.168.1.0/8,10.0.0.0/16,127.0.0.0/8 
allow-recursion-override=on 
config-dir=/etc/powerdns 
daemon=yes 
disable-axfr=yes 
guardian=yes 
lazy-recursion=yes 
local-address=192.168.1.5 
local-port=53 
master=yes 
module-dir=/usr/lib/powerdns 
recursor=127.0.0.1 
setgid=pdns 
setuid=pdns 
socket-dir=/var/run 
version-string=powerdns 
out-of-zone-additional-processing=yes 
include=/etc/powerdns/pdns.d

recursor.conf

local-address=127.0.0.1
local-port=53
quiet=yes
setgid=pdns
setuid=pdns

pdns.local.gmysql

launch=gmysql
gmysql-host=localhost
gmysql-port=
gmysql-dbname=pdns
gmysql-user=pdns
gmysql-password=pdns
gmysql-dnssec=yes

聽起來您想將遞歸解析器和權威名稱伺服器組合到一個伺服器中。

通過在配置文件中指定recursor選項,將需要遞歸處理的問題交給指定的IP地址

http://doc.powerdns.com/html/recursion.html

該文件繼續說明,NB

注意不要將遞歸指向 PowerDNS 權威伺服器本身,這會導致非常緊密的數據包循環!

看起來您已經設法通過僅將 pdns-recursor 放在 127.0.0.1 上來將兩者分開。

您可以通過向伺服器的 IP 發送 dig 或 host 命令進行測試,並觀察 dns 伺服器的所有介面上的 wireshark 或 tcpdump 會發生什麼。

關於權威標誌,請看問題3:

http://doc.powerdns.com/pdns-users-faq.html

根據評論編輯:

如果您想使用另一個名稱伺服器作為您的遞歸器,請在 pdns.conf 的遞歸器設置中設置它。例如:

資源:8.8.8.8

引用自:https://serverfault.com/questions/554951