Domain-Name-System

PowerDNS 水平分割解析器

  • April 19, 2021

我在網上四處尋找解決方案,並發現了許多帶有不同建議的執行緒。我發現的大部分都在解析器上使用 LUA 來返回記錄。其他文章建議使用 GEO-IP 或 Pipe 後端。我讀過的所有內容都用過

我很想知道是否有可能通過 LUA 根據網路範圍更改轉發器,而不是使用 LUA 來儲存區域資訊。

如果我能得到類似於以下的邏輯來工作,我應該已經準備好了:

if sourceip comes from (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) {
    forwarder = 192.168.0.1;
}else{
    forwarder = 8.8.8.8;
}

我沒有看到任何來自 pdns 的 LUA 範例可以證明更改 PDNS 本身內的任何設置,並且我很好奇這是否可能。

PowerDNS Server 和 Recursor 都不支持像 BIND 那樣的水平分割設置。

例如,您可以通過在您的遞歸器中執行 Lua 程式碼來解決它,該程式碼直接提供您希望為特定子網提供的答案,但是您已經發現您無法操縱查詢將從 Lua 轉發到的位置。

PowerDNS 程式碼系列中一個相對較新的補充是 DNS 負載均衡器,它在 Lua 中是可程式的,它使您能夠根據 DNS 協議允許的任何內容髮送查詢來執行不同的名稱伺服器。請參閱http://dnsdist.org/>和<https://github.com/PowerDNS/pdns/blob/master/pdns/README-dnsdist.md。拆分水平線範例拆分遞歸和非遞歸查詢,但您也可以根據源地址拆分它,例如通過 addPoolRule(netmask, pool) 函式。

順便提一句。當你把它全部大寫時,Lua 人不喜歡它。見http://www.lua.org/about.html “名字裡有什麼” ;-)

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