發布 PowerDNS Recursor 4.2 和 2020 年 DNS 國旗日計劃

經過一年半的發展 提出了 釋放緩存DNS伺服器 PowerDNS 資源 4.2,負責遞歸名稱轉換。 PowerDNS Recursor 與 PowerDNS 權威伺服器建立在相同的程式碼庫上,但 PowerDNS 遞歸和權威 DNS 伺服器是透過不同的開發週期開發的,並作為單獨的產品發布。 專案程式碼 分發者 在 GPLv2 下獲得許可。

新版本消除了與處理帶有 EDNS 標誌的 DNS 封包相關的所有問題。 2016 年之前的舊版 PowerDNS Recursor 的做法是忽略具有不受支援的 EDNS 標誌的資料包,而不以舊格式發送回應,從而根據規範的要求丟棄 EDNS 標誌。 以前,這種非標準行為在 BIND 中以解決方法的形式得到支持,但在以下範圍內: 執行 二月的舉措 DNS 標誌日之後,DNS 伺服器開發人員決定放棄這種 hack。

在PowerDNS 中,使用EDNS 處理資料包的主要問題早在2017 年的4.1 版本中就被消除了,而在2016 年發布的4.0 分支中,在某些情況下出現的個別不相容性浮出水面,並且通常不會幹擾正常運作。手術。 在 PowerDNS Recursor 4.2 中,如下圖所示 綁定9.14,刪除了支援權威伺服器的解決方法,這些伺服器錯誤地回應帶有 EDNS 標誌的請求。 到目前為止,如果在發送帶有 EDNS 標誌的請求後,在一段時間後沒有回應,則 DNS 伺服器會認為不支援擴展標誌,並發送第二個不帶 EDNS 標誌的請求。 此行為現在已被停用,因為此程式碼會導致由於資料包重新傳輸而導致的延遲增加、網路負載增加以及由於網路故障而未回應時的模糊性,並阻止實施基於EDNS 的功能(例如使用於防禦DDoS 攻擊的DNS Cookie)。

已決定明年舉辦此活動 2020 年 DNS 賣旗日旨在將注意力集中在 決定 проблем 處理大型 DNS 訊息時存在 IP 碎片。 作為該倡議的一部分 計劃 將 EDNS 的建議緩衝區大小修復為 1200 字節,並且 翻譯 透過 TCP 處理請求是伺服器的必備功能。 現在需要支援透過 UDP 處理請求,並且需要 TCP,但操作不需要(該標準要求能夠停用 TCP)。 建議從標準中刪除停用 TCP 的選項,並標準化在已建立的 EDNS 緩衝區大小不足的情況下從透過 UDP 發送請求到使用 TCP 的過渡。

作為該計劃的一部分提出的更改將消除選擇 EDNS 緩衝區大小的混亂,並解決大型 UDP 訊息的碎片問題,該問題的處理通常會導致客戶端資料包遺失和逾時。 在客戶端,EDNS 緩衝區大小將保持不變,並且大幅回應將立即透過 TCP 傳送到客戶端。 避免透過 UDP 發送大訊息也將允許您阻止 攻擊 用於毒害DNS 緩存,基於對分段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

添加評論