經過一年半的發展
新版本消除了與處理帶有 EDNS 標誌的 DNS 封包相關的所有問題。 2016 年之前的舊版 PowerDNS Recursor 的做法是忽略具有不受支援的 EDNS 標誌的資料包,而不以舊格式發送回應,從而根據規範的要求丟棄 EDNS 標誌。 以前,這種非標準行為在 BIND 中以解決方法的形式得到支持,但在以下範圍內:
在PowerDNS 中,使用EDNS 處理資料包的主要問題早在2017 年的4.1 版本中就被消除了,而在2016 年發布的4.0 分支中,在某些情況下出現的個別不相容性浮出水面,並且通常不會幹擾正常運作。手術。 在 PowerDNS Recursor 4.2 中,如下圖所示
已決定明年舉辦此活動
作為該計劃的一部分提出的更改將消除選擇 EDNS 緩衝區大小的混亂,並解決大型 UDP 訊息的碎片問題,該問題的處理通常會導致客戶端資料包遺失和逾時。 在客戶端,EDNS 緩衝區大小將保持不變,並且大幅回應將立即透過 TCP 傳送到客戶端。 避免透過 UDP 發送大訊息也將允許您阻止
PowerDNS Recursor 4.2 考慮到大型UDP 封包的問題,並切換為使用1232 位元組的EDNS 緩衝區大小(edns-outgoing-bufsize),而不是先前使用的1680 位元組限制,這將顯著降低遺失UDP 封包的可能性。 選擇值 1232 是因為它是 DNS 回應大小的最大值(考慮到 IPv6),適合最小 MTU 值 (1280)。 負責修剪對客戶端的回應的 truncation-threshold 參數的值也已減少到 1232。
PowerDNS Recursor 4.2 中的其他變更:
- 添加機制支援
XPF (X-Proxied-For),它是 X-Forwarded-For HTTP 標頭的 DNS 等效項,允許透過中間代理和負載平衡器(例如 dnsdist)轉送有關原始請求者的 IP 位址和連接埠號碼的資訊。 要啟用 XPF,有以下選項“xpf-允許-來自 “和”xpf-rr 程式碼 “; - 改進了對 EDNS 擴展的支持
客戶端子網 (ECS),它允許您在DNS 查詢中向權威DNS 伺服器傳輸有關沿著鏈傳輸的初始請求被中毒的子網路的資訊(有關客戶端來源子網的資料對於內容分發網路的有效運作是必要的) 。 新版本新增了對 EDNS 客戶端子網的使用進行選擇性控制的設定:“ecs-添加-for » 包含將在 ECS 中的傳出請求中使用 IP 的網路遮罩清單。 對於不屬於指定遮罩範圍的位址,指令中指定的通用位址“ecs 範圍零位址 」。 透過指令“使用傳入 edns 子網 » 您可以定義子網,其中填入了 ECS 值的傳入請求將不會被取代; - 對於每秒處理大量請求(超過 100 萬個)的伺服器,指令“
分配器線程 ”,它確定用於接收傳入請求並在工作線程之間分配它們的線程數(僅在使用“時才有意義”pdns-distributes-queries=是 «)。 - 新增設定
公共後綴列表文件 定義你自己的文件公共後綴列表 使用者可以在其中註冊其子網域的網域,而不是 PowerDNS Recursor 內建的清單。
PowerDNS 專案也宣布將開發週期改為六個月,預計下一個主要版本 PowerDNS Recursor 4.3 將於 2020 年 4.2 月發布。 重要版本的更新將在全年中開發,之後漏洞修復將再發布六個月。 因此,對 PowerDNS Recursor 2021 分支的支持將持續到 4.2 年 XNUMX 月。 PowerDNS 權威伺服器也進行了類似的開發週期更改,預計在不久的將來發布 XNUMX。
PowerDNS Recursor的主要特點:
- 遠端統計收集工具;
- 即時重啟;
- 內建Lua語言連線處理程序引擎;
- 完整的 DNSSEC 支援和
DNS64 ; - 支援 RPZ(回應政策區)和定義黑名單的能力;
- 反欺騙機制;
- 能夠將解析結果記錄為 BIND 區域檔案。
- 為了確保高效能,FreeBSD、Linux 和 Solaris 中使用了現代連接復用機制(kqueue、epoll、/dev/poll),以及能夠處理數萬個並行請求的高效能 DNS 封包解析器。
來源: opennet.ru