一番調查讓人們對關於私有vs公共Web管理提出了嚴峻問題。
據網際網路系統聯盟(ISC)本週釋出的一份報告顯示,Cloudflare釋出的軟體存在一處bug,結果導致網際網路基礎設施的核心部分出現故障。
ISC執行所謂的F根(F root)伺服器,這是全球的13臺根DNS伺服器之一,它們被標記為A到M。這些伺服器是支撐全球網際網路的中央計算機:比如說,它們確保你在訪問yuntoutiao.com時,被定向到為我們的主頁提供服務的正確系統。
今年1月23日,ISC接到了反映.net域出故障的報告。它在調查後發現缺失了關鍵的A記錄和AAAA記錄,而這些記錄負責將.net域名與IPv4和IPv6網路地址繫結起來。
實際上,所有以.net結尾的網際網路地址從ISC的F根伺服器統統消失了,.net是網際網路上數量最多的註冊域名之一,共有1340萬個域名。最終依靠F根伺服器連線到眾多網站和服務的任何瀏覽器、應用程式、計算機或裝置都將無法通過其.net地址訪問那些系統,這是最糟糕的情況。
這個問題也不僅僅侷限於ISC的F根伺服器。報告聲稱,美國宇航局(NASA)運營的E根伺服器也遇到了類似的問題。
錯誤修正版從響應時間表來看,ISC在5分鐘內迅速搞清楚了情況:問題出在它與Cloudflare合作運營的網際網路節點上,於是將該問題上報給了這家網際網路基礎設施公司。Cloudflare也很快採取了行動,它在21分鐘內就查明了罪魁禍首是釋出的特定程式碼,該程式碼旨在修復四小時前帶入的一個bug。
不過報告話鋒一轉,提到了脆弱不堪的邊界閘道器協議(BGP):網際網路錯綜複雜的龐大網路使用BGP,自動組織管理對方,並保持彼此之間的連線。
不管怎樣,花了近兩個小時的時間才撤回了導致該問題的BGP通告(BGP announcement),ISC特別指出這項工作本應該更快地完成。該報告在“汲取的經驗教訓”部分寫道:“回想起來,一旦發現在提供不完整/不正確的資料,我們本應該立即從BGP撤回路由字首。”
報告繼續稱:“撤回路由並沒有按預期的順利進行,於是Cloudflare和ISC同意執行常規的測試以實施這項功能……測試套件已經更新,添加了針對缺失的A記錄和AAAA記錄的測試,ISC和Cloudflare將竭力設計進一步的一致性測試。”
資金當道,穩定性靠邊由於全球DNS的工作方式,資訊通過名稱伺服器、冗餘配置和快取的分散式層次結構一路向下傳輸,並且每隔幾小時到幾秒鐘全域性更新一次,對網民的影響絕對最小。由於E根伺服器和F根伺服器暫時癱瘓,眾多瀏覽器和應用程式就只好尋找另外的途徑來查詢.net地址。
然而事態很嚴重,這主要是由於公共網際網路的全球定址系統的底層基礎部分居然被一傢俬人公司一次不起眼的軟體更新搞砸了。
進行軟體更新的是Cloudflare,這家商業組織結合使用開源軟體和閉源軟體。儘管數十年來迎來了急劇發展,網際網路還是獲得了如此超長的正常執行時間,這還得歸功於它奉行的傳統:使用開源軟體,認真細緻地檢查和測試更新,維護者組織不受商業考量因素的干擾。
正如一名資深的網際網路工程師Bill Woodcock在Twitter上特別指出:“當公共網際網路的關鍵功能被徵用以牟取私人公司的利益時,會發生什麼?透明度和問責制喪失殆盡,基礎設施支出削減,系統壞掉。”
這個問題也不是學術問題。Woodcock最近就.org擬定出售給一家不知名的私募股權公司發出了警告——他公司為管理.org的網際網路註冊機構提供技術後端服務。鑑於擬議收購者出於獲利的動機,他得出結論:技術支出可能會大幅縮減,這使得這個重要域名註冊機構的穩定性令人堪憂。他就此問題寫信給DNS監管組織ICANN,建議應停止這次擬議的出售。
他也不是唯一對此表示關切的網際網路工程師。Bert Hubert的公司開發開源DNS軟體,對於這份ISC報告他特別指出:“閉源Cloudflare軟體存在的一個錯誤導致了閉源Akamai在美國一家大型有線接入提供商出現崩潰。”
斷點Hubert最近大聲疾呼,他擔心Firefox會使用Cloudflare作為其安全DNS:DNS-over-HTTPS(DoH)協議的預設提供商:最近,Mozilla已開始向美國的所有Firefox使用者啟用加密的DoH。
如果Cloudflare閉源軟體中的軟體錯誤會導致根伺服器使網際網路中整個很重要的部分銷聲匿跡,那麼某個時候類似的問題很可能會導致Firefox使用者失去安全DNS連線。而這可能會導致他們完全失去網際網路(網際網路仍會存在,但是大多數使用者根本不知道原因是什麼或如何解決問題。)
網際網路工程師常常重複一句著名的話:“網際網路把審查制度解釋為破壞,並繞過它”,這句話最初由電子前沿基金會(EFF)聯合創始人John Gilmore首次提出來。這句話具有極為廣泛的含義,常常被工程師們用來基本上表示“別為此而擔心,網際網路一直在壞掉。”網際網路每分每秒在壞掉,但幾乎立即自行修復過來。
但是隨著網際網路的商業化氣息越來越濃,以逐利為目的的私人公司日益介入網際網路基礎設施的基礎層,ISC針對該F根伺服器事件的報告很可能為今後出現的狀況敲響了警鐘。
Cloudflare發言人駁斥了關於應歸咎於其軟體是閉源性質的任何說法Cloudflare的工程師Martin Levy稱:“那是一個很極端的案例。用非此即彼的角度(即開源是好的,閉源是壞的)看待這個問題有失公允。我們為開源世界貢獻了大量的軟體。”
他稱,Cloudflare對即將部署的軟體進行了“極其嚴格的測試,但我們沒有注意到這個特殊的情況”;任何破壞是“非常區域性性的”。簡而言之,當初更改程式碼是為了替某個客戶改進字元編碼處理,卻沒想到引發了連鎖反應。
在我們看來,BGP路由故障似乎導致了根伺服器放棄其gTLD A和AAAA記錄,這可能是由於它們從再也無法訪問的另一個系統獲取那些詳細資訊。請參閱報告的最後兩頁。
此外,這影響了由F根伺服器和E根伺服器處理的所有域名,而不僅僅是.net域名,不過.net在ISC看來很顯眼,因為它是網際網路上相當龐大而重要的一部分。