Domain-Name-System

PowerDNS 作為內部解析器和封閉式遞歸器

  • February 8, 2018

我有兩個新配置的 PowerDNS 伺服器。一個充當主人,第二個充當奴隸。它們各自執行著兩個守護程序:powerdns 和 powerdns-recursor。第一個綁定到 5300 tcp 埠,第二個綁定到 53。我在 recursor.conf 中添加了以下規則(1.2.3.4 是伺服器的 IP 地址):

forward-zones=.=1.2.3.4:5300
forward-zones-recurse=.=1.2.3.4:5300;8.8.8.8

多虧了他們,我的伺服器解析了內部添加的域以及 google.com 等外部域。唯一的問題是,如果我只允許我的本地 IP 地址發送遞歸查詢,則內部添加的域將無法從世界訪問。另一方面,如果我allow-from在 recursor.conf 中將參數設置為 0.0.0.0/0,我的伺服器將容易受到 DNS 放大攻擊。我該怎麼辦?我想允許所有 IP 向我的伺服器查詢他們有權訪問的域,但不允許遞歸查詢。

對於您在問題中描述的場景,客戶端期望遞歸和其他客戶端期望權威答案,pdns-rec 不是您首先應該向世界公開的。

在字裡行間稍作閱讀,我認為問題實際上是關於如何在單個 IP 地址上同時執行 pdns-auth 和 pdns-rec ,因為 pdns-auth 不再具有使用中存在的遞歸配置選項過去的。

為此,您可能應該好好看看PowerDNS 指南,了解從在權威伺服器上使用遞歸遷移到使用 Recursor

該指南針對您的場景歸結為,首先,最簡單且可以說是最好的方法是簡單地將這些服務放在不同的 IP 上,但建議的替代解決方案是將dnsdist粘貼在您的 pdns-auth 和 pdns 前面-rec 實例(dnsdist 將在埠 53 上偵聽),讓 dnsdist 將來自客戶端的查詢傳遞給具有您的 pdns-rec 實例的池,並將所有其他查詢傳遞給具有您的 pdns-auth 實例的池。

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