Facebook 在台灣時間今天凌晨發生嚴重斷線事件,包含 Facebook 本身與旗下服務,如 Instagram、Whatapps、Messenger 等等,通通無法正常存取,導致全球網友同聲哀號,至今各大平台仍在修復中。
但是,這場長達 6 小時以上的「災難級」Facebook 大當機,到底是由於什麼原因所造成的呢?雖然官方還沒有給出詳細說明,但從網路上流量的變化,卻不難推導出整起事件的部分樣貌。
若是要簡單形容整起事件,那就像是祖克柏主動將 Facebook 的「營業中」看板,翻過來變成「已打烊」,而且還把門牌拆下來,不想讓全球使用者找到臉書網站一樣。
文章目錄
有人拔掉了 Facebook 的插頭?
全球 CDN 服務提供商 Cloudflare 指出,Facebook 這次的斷線災情,主要有幾個關鍵字可以探討,分別為 DNS、BGP 與 AS。
Cloudflare 在今天凌晨發現,旗下的 1.1.1.1 公共 DNS 伺服器,突然之間無法正常解析 facebook.com,以及旗下服務的各種相關域名。
大多數人都知道,DNS 伺服器的功用,是將網址轉換為實體的 IP 位置,藉此讓使用者連上正確的網站以存取服務。
Cloudflare 起初認為,域名解析失敗是由於自家的 DNS 伺服器所造成,但深入追查才發現,原來與 Facebook 相關的網站確實都無法正常存取,就好像有人在臉書的資料中心內,一瞬間拔掉了伺服器的電源插頭,並徹底中斷了 Facebook 與網際網路的連接。
但是,這怎麼可能?
邊界閘道器協定(BGP)與自治系統(AS)
邊界閘道器協定(BGP)是一種網路上的自治系統(AS)用來互相交換路由的機制,讀者不妨將 AS 簡單認定為「網路上的大型團體」,如 Facebook、Google、Amazon 等等,他們各自有自己的編號(ASN),而 BGP 則是這些大型團體共同遵守的協議,定期通知彼此內含有 IP 前輟、路由等等資訊的內容。
BGP 所攜帶的內容,其功用除了讓其他 AS 知道發出者是誰、在哪裡之外,同時還能表達某個 AS 有能力把封包帶去何處,藉此建立出一條最短路徑,讓使用者可以更快從某一個網路連線到另一個網路。
網際網路由許許多多的 AS 互相連結在一起,而每個 AS 都會對彼此「通知」BGP 內容,藉此確認雙方的存在,以及如何連線到對方的所在位置,建構路由加速並有效率的傳遞網路封包。
從網路上消失的 Facebook
但在這次的斷線事件中,Facebook 這個 AS 卻於今日凌晨,突然之間發出了好幾次的「通知」,更新頻率十分不尋常,使 Cloudflare 工程師感到非常奇怪。
更詭異的是,Facebook 在完全斷線之前,甚至主動「撤回」了 BGP 中所包含的路由資訊等等內容,導致其他 AS 完全無法給定 Facebook DNS 伺服器的實體 IP 位置。
由於 AS 之間的更新十分迅速,Facebook 撤回 BGP 中路由資訊的結果,一下子就散播開來,最終形成全世界沒有半個 DNS,有辦法建立可解析的路由,無人找得到 Facebook 實體 IP 的尷尬情況,因此造成全球性的大斷線。
Facebook 離線之後的餘波
Cloudflare 觀察到,當 Facebook 與相關域名斷線後,旗下 DNS 查詢的次數比起過往提升 30 倍,理由是全世界都想試著連上臉書,造成了類似於 DDoS 的洪水流量攻擊,更使其他與 Facebook 無關的服務,一度也無法正常解析到正確 IP,尤其地方電信商的 DNS 伺服器深受其害。
在 Facebook「與世隔絕」的這段期間,有不少人還發現,facebook.com 域名的 DNS 記錄也完全消失,就如同這個網站從來沒有存在過一樣,甚至還被放上域名交易網站,開放一般人任意購買,差點釀成大禍。
此外,其他社群平台如 Twitter、Signal 等等,其 DNS 的查詢次數也顯著增加。
恢復重新營業的 Facebook
在經歷了超過 6 小時的斷線之後,根據 Cloudflare 的最新說法,Facebook 在不久前已向 AS 通知了最新的 BGP,因此路由已重新連通。此外,Facebook DNS 也重新上線,旗下各大服務正陸續恢復。
Cloudflare 的首席技術官 John Graham-Cumming,在他自己的 Twitter 上寫道,這起事件重新警醒了世界,網路確實是一個「網」,更是非常複雜且相互依賴的系統,並由各種標準與協議構成,一旦某個地方出現問題,其他部分也會隨之受到影響。
但是,Facebook 為什麼會突然「打烊」?有 Reddit 網友爆料,可能是臉書官方升級或更改 BGP 設定時出包所造成,但也不排除是因為自動化系統出了差錯,導致一連串的問題接續發生。至於為何 Facebook 花了近 6 小時,才將系統恢復到大致可供運行的狀態,則更有賴後續的官方說法了。
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!