PowerDNS 區域轉發

PowerDNS 區域轉發

我繼承了 4.0.6 powerdns 部署,用於為實驗室環境中的私有區域提供服務。我正在將此環境遷移到 AWS,並且需要 powerdns 將 aws.internal.lan 轉發到一組 Route53 入站解析器。看來我應該能夠透過在遞歸器中使用“forward-zones-recurse”來做到這一點,但我似乎無法讓它與當前的設定一起工作。

pdns.conf:

daemon=no
max-tcp-connections=1000
guardian=no
setuid=pdns
setgid=pdns
launch=gpgsql
allow-recursion=127.0.0.0/8, 10.0.0.0/8
recursor=127.0.0.1:5353
local-address=0.0.0.0
local-port=53
master=no
slave=yes
slave-cycle-interval=60
gpgsql-host=127.0.0.1
gpgsql-dbname=pdns
gpgsql-user=redacted
gpgsql-password=redacted
api-key=redacted
webserver=yes
webserver-address=0.0.0.0
webserver-port=8081

遞歸.conf:

setuid=pdns-recursor
setgid=pdns-recursor
allow-from=127.0.0.0/8
local-address=127.0.0.1
local-port=5353
forward-zones-recurse=aws.internal.lan=10.162.67.202;10.162.73.199

問題是 pdns 不會將區域轉送到 Route53 解析器。我可以確認,如果我dig @127.0.0.1 -p 5353 aws.internal.lan這樣做,遞歸器會傳回正確的記錄,但我只能從本機 ns 伺服器查詢遞歸器。偵聽連接埠 53 的權威伺服器不應該將該請求轉送給偵聽連接埠 5353 的遞歸伺服器嗎?

看起來這應該可行,但也許我錯過了一些東西。我正在使用舊版本的 pdns,正如您從我的配置中看到的那樣,我似乎找不到有關此舊版本的任何文件。知道我在這裡做錯了什麼嗎?

答案1

你誤解了事情的運作方式。

解析器不會將請求轉發到遞歸器,或實際上轉發到任何地方。另一方面,應該將遞歸器配置為將解析器管理的區域的請求轉送到該遞歸器。

客戶端查詢應始終進入遞歸器,然後遞歸器會將本機區域轉送給解析器並適當地解析其他區域。 「recursor」設定對解析器沒有作用

在遞歸器上,您需要像這樣的設置

forward-zones=ponyville.eq.=127.0.0.1:5353

將請求轉送到解析器(位於連接埠 5353 上,遞歸器位於連接埠 53 上)

還有一個額外的問題,如果您有輔助伺服器,解析器會嘗試根據 NS 記錄發送 NOTIFY 封包。如果您的解析器位於連接埠 5353 上,那麼這些通知封包將進入遞歸器,並且您需要一些特殊配置(太複雜,無法放在這裡)將它們轉送到解析器。我們透過在主機上設定 2 個 IP 位址、在其中一個上設定解析器、在另一個上設定遞歸器來解決這個問題,因此無需在同一主機名稱上設定不同的連接埠。

所以,總而言之,

  • pdns 不會將請求轉發到任何地方
  • pdns-recusor 將使用您的設定轉發您的 Route53 請求
  • pdns-recursor 應配置為將本機區域轉送至解析器
  • 所有客戶端請求都應該進入解析器
  • 如果你想要這個,你將需要更多額外的魔法來處理 NOTIFY 資料包

相關內容