2021年10月4日Facebook當機的原因

banq發表於2021-10-05

今天,Facebook 及其附屬服務 WhatsApp 和 Instagram 都已關閉。他們的 DNS 名稱停止解析,他們的基礎設施 IP 無法訪問。初步分析是BGP路由配置錯誤導致!
以下是cloudflare的博文分析:
 

什麼是BGP
BGP代表邊界閘道器協議。它是一種在 Internet 上的自治系統 (AS) 之間交換路由資訊的機制。 網際網路正常運轉需要大型路由器,這些路由器擁有龐大的、不斷更新的可能路由列表,可用於將每個網路資料包傳送到其最終目的地。如果沒有 BGP,網際網路的路由器將不知道該做什麼,網際網路將無法工作。
Internet網際網路顧名思義就是一個網路的網路,它由 BGP 繫結在一起。BGP 允許一個網路(例如 Facebook)向構成 Internet 的其他網路通告其存在。在這段中斷時間內,Facebook 沒有向其他路由廣播其存在,ISP 和其他網路無法找到 Facebook 的網路,因此它變得不可用。
每個單獨的網路都有一個 ASN:自治系統編號。自治系統 (AS) 是具有統一內部路由策略的單個網路。AS 可以產生字首(比如它們控制一組 IP 地址),以及傳輸字首(比如它們知道如何到達特定的 IP 地址組)。每個 ASN 都需要使用 BGP 向 Internet 通告其字首路由;否則,沒有人會知道如何連線以及在哪裡找到它。
Facebook的BGP路由問題導致DNS解析失敗:
 

DNS 受到影響
在 UTC 時間1658,我們注意到 Facebook 已停止公佈其 DNS 字首的路由。這意味著,至少,Facebook 的 DNS 伺服器不可用。因此,Cloudflare 的 1.1.1.1 DNS 解析器無法再響應詢問 facebook.com 或 instagram.com 的 IP 地址的查詢。
其直接後果是,世界各地的 DNS 解析器停止解析其域名。
發生這種情況是因為 DNS 與 Internet 上的許多其他系統一樣,也有其路由機制。當有人在瀏覽器中鍵入https://facebook.com URL 時,DNS 解析器負責將域名轉換為要連線的實際 IP 地址,首先檢查它的快取中是否有內容並使用它。如果沒有,它會嘗試從域名伺服器中獲取答案,域名伺服器通常由擁有它的實體託管。
如果域名伺服器無法訪問或由於某些其他原因無法響應,則返回 SERVFAIL,並且瀏覽器會向使用者發出錯誤訊息。
但這還不是全部。現在,人類行為和應用程式邏輯開始發揮作用並導致另一個指數效應。隨之而來的是額外的 DNS 流量海嘯。1.1.1.1處理的查詢比平時多 30 倍,並可能導致其他平臺出現延遲和超時問題。
發生這種情況的部分原因是應用程式不會接受答案錯誤並開始重試,有時是積極的,部分原因是終端使用者也不會接受答案錯誤並開始重新載入頁面,或殺死並重新啟動他們的應用程式,有時還是很積極重試。
 

其他訊息渠道
其他人認為:Facebook、Instagram、WhatsApp 都是因 BGP 配置錯誤而關閉。
還有人認為:Facebook 當前的中斷是如何由reactjs的合成事件逃逸和堵塞網際網路管道造成的。
有人很生氣:人們拿 Facebook 服務當機開玩笑讓我感到噁心。任何當時使用 Oculus 耳機的人目前都被困在 VR虛擬現實中,他們會像在現實生活中死去。#元宇宙

相關文章