LWN Fedora的後備網域名稱解析伺服器

2021-10-22 08:03:50 字數 3149 閱讀 1246

by jonathan corbet

february 25, 2021

deepl assisted translation

fedora 33 版本中有乙個未被提及的改動,就是改用 systemd-resolved 來處理 dns 查詢了。這個改動對大多數使用者來說是不可見的,除非他們開始使用 systemd-resolved 提供的某些新功能。不過最近 fedora 專案改變了這個服務的預設預設配置,取消了後備 dns 伺服器(fallback dns server)—— 這個改動對於一些使用者來說就是可見的了,因為他們發現自己沒法進行網域名稱解析了。

systemd-resolved 延續了 systemd 的傳統,替代了此前容易出問題的低階系統元件。它帶來了許多新的功能,包括比傳統的 gethostbyname() 系列函式提供了更多資訊的 d-bus 介面(當然並未移除 gethostbyname()這些函式)、dns-over-tls、llmnr 支援、split-dns 支援、本地快取(local caching)等等。這並不是乙個完全全新的東西,因為 ubuntu 在 16.10 版本中就已經切換過來了。fedora 在 systemd-resolved 這方面雖然沒有達成它追求的 "第一名" 的目標,但它最終還是切換過來了。

可以說大多數 fedora 使用者從未注意到這裡已經發生了變化。不過到 2020 年底時,zbigniew jędrzejewski-szmek 又做了乙個改動,導致 systemd-resolved 引起了一些關注。他禁用了 fallback dns server。fallback 機制的目的是為了確保系統能有乙個可以正常工作的網域名稱解析服務設定。哪怕系統配置錯誤了,或者所設定的伺服器無法正常工作,此時作為最後手段,systemd-resolved 將使用 google 和 cloudflare 所維護的公共伺服器來進行網域名稱查詢。不過在 fedora 33 系統上,從 2020 年底發布的 systemd-246.7-2 這個更新開始,fallback 功能就已經被禁用。

在 2 月底的時候,tadej janež到 fedora-devel 郵件列表中提出應該改回去,他說。"在 f33 上,這個改動已經破壞了乙個正常工作的 vanilla cloud instance,就是因為在 systemd 的公升級過程中刪除了 fallback dns server list,導致系統沒有 dns 伺服器可用了"。大家也認為這並不是乙個合理的結果。他的話引起了一些關於討論,但可能不會導致 fedora 的政策改變。

人們可能會好奇,為什麼像 automatic fallback 這樣乙個看起來很有用的功能會被禁用掉。正如 jędrzejewski-szmek 在這個改動的描述中所說,這是為了保護隱私,以及遵守歐洲 gdpr 指示:

dns questions(當然也包括 ip 位址)是 gdpr 所定義的可以識別個人的資訊( 明確將 ip 位址列為 pii,即 personally identifying information)。將這些資料報傳送給 google 或 cloudflare 的伺服器就意味著將這些 pii 資料 "傳送" 給他們。gdpr 要求,哪怕是那些不足以識別出個人身份的資訊也仍然需要保護,因為這些資訊可能會和其他資訊結合在一起、或者今後通過改進過的技術來一起用來確認身份。所以,儘管 dns 中的資訊本身並不多,但在各種場景下也可能被解釋為需要保護的資訊。

janež建議,這可以通過其他一些方式來改善。可以不用在所有地方都關閉 fallback server,而是針對雲映象(cloud image)可以繼續啟用 fallback server,因為在這些環境裡面,dns 配置更容易出現被破壞的情況,而且這種場景裡往往都不會有對應的單個使用者被識別出來。或者 fedora 可以選擇乙個 "有信譽的 dns 解析服務(reputable dns resolver)",就是那種公認是尊重隱私的,將其作為每個人的 fallback 服務。jędrzejewski-szmek 回答說,第一種方案可能是可行的,但無法實行第二種方案,他說,很難找到乙個在全球範圍內都可以被接受的**商。

除了隱私問題外,在討論中還提到另乙個原因:它們可能會隱藏 dns 配置錯誤。如果沒有 fallback 功能,出錯的 dns 配置幾乎必定會引起使用者的注意(儘管使用者可能會非常不喜歡這種事件),從而會被修復。有了 fallback 之後,一切看起來都是正常的,使用者可能永遠不會知道這裡有配置問題。所以也就不會得到修復,從而可能會導致出現更壞的問題。

不過 lennart poettering 批評這種觀點,認為這是乙個 "模糊的說法,並且對使用者非常不友好"。他認為,比起讓系統完全沒有網域名稱服務來說,更好的做法是大聲抱怨出來、並退回到之前可以正常工作的配置下。很多使用者不知道如何來自己修復 dns,如果 dns 無法正常工作了,他們甚至無法通過網路尋求幫助了。

poettering 還提出了另乙個問題:保護隱私這個說法並不總是合理的,因為有時候使用公共 dns 伺服器很可能是更尊重隱私的選擇。

我們甚至可以更進一步地判定:在很多情況下,使用那些公共 dns 伺服器的場景,可能會比使用 dhcp 服務所提供的那些 dns 伺服器擁有更好的隱私保護,因為我們可以在這些公共 dns 伺服器上使用 dot (dns over tls)(雖然這還不是 resolved 的預設設定,但是很可能很快就會變成預設配置了),但 dhcp 裡提供的 dns 伺服器基本上都無法使用 dot。而且更糟糕的是,後者通常是由一些不那麼可靠的網路服務所提供的,比如網咖之類的,在那裡如果我們傳送的內容沒有加密的話,會是很可怕的。

jędrzejewski-szmek 也承認了這一點,並額外指出 isp 提供的 dns 伺服器可能也沒有以使用者的最大利益為優先考慮。他仍然認為,更好的選擇還是使用這些 dns 伺服器,因為 "它們對使用者來說更明顯,也更適合政策的規定"。無論如何,無人提出應該優先使用谷歌或者 cloudflare 的伺服器,而不去使用本地網路所使用的 dns server。

fedora 的配置會如何改動,目前還遠未明確。儘管實際的隱私和法律風險似乎很小,但啟用 fallback server 似乎確實有一些真實阻力。大多數 fedora 使用者可能永遠不會注意到,但有一部分人可能不得不先學習使用 resolvectl 命令來手工建立乙個可以正常工作的 dns 配置了。需要再次強調,他們很可能會對這種情況提出很多抱怨的。

全文完lwn 文章遵循 cc by-sa 4.0 許可協議。

window裡dig命令跟蹤網域名稱DNS解析

window裡dig命令跟蹤網域名稱dns解析 dig命令是跟蹤網域名稱dns解析的常用命令行工具,但windows並沒有預裝dig命令。window自帶的跟蹤dns解析的是nslookup。nslookup使用是執行,cms,nslookup 網域名稱 結果比較簡單。在mac和linux下,dig...

Oracle資料庫的後備和恢復

當我們使用乙個資料庫時,總希望資料庫的內容是可靠的 正確的,但由於計算機系統的故障 硬體故障 軟體故障 網路故障 程序故障和系統故障 影響資料庫系統的操作,影響資料庫中資料的正確性,甚至破壞資料庫,使資料庫中全部或部分資料丟失。因此當發生上述故障後,希望能重新建立乙個完整的資料庫,該處理稱為資料庫恢...

網域名稱的解析

網域名稱解析 網域名稱解析是把網域名稱指向 空間ip,讓人們通過註冊的網域名稱可以方便地訪問到 的一種服務。ip位址是網路上標識站點的數字位址,為了方便記憶,採用網域名稱來代替ip位址標識站點位址。網域名稱解析就是網域名稱到ip位址的轉換過程。網域名稱的解析工作由dns伺服器完成。網域名稱解析也叫網...