Domain-Name-System
PDNS 伺服器的正確設置程序是什麼?
我是 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