社群大當機!原因是什麼?

什麼是 DNS?它跟 FB、IG 不能使用有什麼關係?

Chengcheng Hsu
7 min readOct 5, 2021
123
From screenrant.com

2021/10/4 晚上 FB、IG 等社群一夕之間當機,像是薩諾斯彈個手指,導致全球服務癱瘓,使用者沒辦法上網看網帥網美傻笑,沒辦法發無病呻吟文、炫耀文,通通都不行了,這時鄉民也才紛紛想起 PTT 的好,往 PTT 以及其他平台去討拍、說我 FB 抖音影片看到一半耶!這是蜥蜴人祖嗑伯的陰謀!但這都凸顯了我們對社群有某種程度的依賴性,甚至有點焦慮。

許多資安專家在新聞報導的推測大部分都環繞在 DNS 資料遺失,或是 FB 在更新 DNS 網域所造成的延遲,都和 DNS 扯上關係,但 DNS 到底是什麼? 它跟這些社群又有什麼關係?

DNS 是什麼?你幹什的?

中文是網域名稱系統,由不同「層級」的網域名稱伺服器 (Domain Name Server) 所組成,也可以說是由很多台電腦所組成的一個架構。

在網際網路每台伺服器的實際地址都是用 IP 來表示,當我們在電腦或是手機搜尋某個未造訪過的網址時,第一站會到 DNS 查詢 IP 並帶回給使用者瀏覽器並前往,簡單來說 DNS 它就像計程車司機,例如我告訴司機說要去「台北 101」,司機就會知道那是在「台北市信義區信義路五段7號」,你不需要知道這個地址,但它就是可以帶你到你想到的地方,這大概就是 DNS 主要的工作。

DNS 的階層關係

如果不想繼續探究 DNS 可跳到所以 DNS 跟 FB 有什麼關係?

全世界的網址這麼多,若是一台 DNS 伺服器是要怎麼應對這麼多的查詢需求,所以剛剛有提到他們利用了「階層式(hierarchy)」的架構來管理,來分擔流量,並透過「授權(delegation)」讓各層、各個網域名稱持有者自行安排「權威主機(authoritative name server)」管理,所以是由遍佈全球的名稱伺服器(Name Server)來處理各種查詢的需求。

若從網域階層來看:

  1. 根網域(Root domain):是 DNS 架構最上層的伺服器,全球共約 16 台,主要負責提供 .tw、.gov、.com 等各種「頂級網域(Top-Level Domain,簡稱 TLD)」權威主機的 IP 資訊,所以此伺服器一旦被駭客攻擊,影響範圍可能會以「國家」為單位來算。
  2. 頂層網域(Top-Level Domain):它和根網域一樣不會知道最終要查詢的 IP 為何,但它會知道要去哪裡找負責該網域的名稱伺服器,也就是提供找到 Second-level domain 伺服器的 IP。
  3. 第二層網域(Second-level domain):通常為向各國的網址註冊單位申請的網域。
  4. 再往下延伸的其他網域…

用圖來舉例說明 DNS 階層位置

以下方的範例和步驟可以得知其相關的互動:

  1. 當你從未造訪過 example.com 並在瀏覽器打上 example.com,第一站會到遞迴解析程式(Recursive Resolves)又稱 DNS Resolver 伺服器,通常為我們的網際網路服務供應商(Internet Service Provider,ISP),例如中華電信,他們會記錄根網域(Root Name Server)的 IP 地址,並幫我們發給相對應的根網域做詢問。
  2. 發給根網域詢問 example.com,他會回你他不知道 example.com 的 IP 但它知道 .com 的 domain IP 是什麼,並回傳給 DNS Resolver。
  3. 發給頂層網域詢問 example.com 的 IP,他會回你他不知道 example.com 的 IP 但它知道你如果要找 example.com 的 domain IP 可以去哪個域名伺服器找,並回傳給 DNS Resolver。
  4. 發給該網域伺服器詢問 example.com 的 IP,這時它會回正確的 IP 位置給 DNS Resolver,DNS Resolver 再回給你的瀏覽器。
  5. 瀏覽器帶著 IP 去造訪你真實想造訪的網站。
以上為了加速查詢的效率,各個名稱伺服器,甚至我們的瀏覽器,都有實作快取(cache)機制,來保存先前查詢過的域名及 IP 地址。

所以 DNS 跟 FB 有什麼關係?

通常 DNS 是交給別人管的,FB 也有可能自己管 DNS ,所以他們可能是同個伺服器,導致這次事件的發生,不過他們是緊密連結在一起的,像是供應鏈上下游的關係, DNS 有的它的資料庫,有能力可以將你輸入在瀏覽器的 facebook.com 轉化成 IP,再把 IP 丟還給你的瀏覽器,告訴它應該要造訪哪個 IP,這時瀏覽器才會發請求給 facebook,facebook 再把內容丟還給你,所以你在網址打上 facebook.com 或是其他網域名稱時你不是直接造訪那個網站,而是中間會有 DNS 幫你解析網域並回傳 IP,因此當 DNS 出問題或是 FB 自己管的 DNS 出問題就代表沒辦法解析網域成 IP ,造成瀏覽器找不到網站的呈現當機的情況,就像跟心儀的對象講話一樣腦袋一片空白,因為可能頻率對不上,或是找不到連結性 。

結論

後來從 Cloudflare 的文章指出更深層的問題是 BGP/DNS 問題,裡面講到 FB 的 DNS 沒運作了,因此 FB 沒辦法透過 BGP 協定向 Cloudflare 提供正確的 IP,導致 Cloudflare 沒辦法解析 faceobook.com ,不曉得 FB、IG 等等的正確位置為何,詳細可參考 Understanding How Facebook Disappeared from the Internet,也可以看 FB 對外的正式公告: Update about the October 4th outage

Understanding How Facebook Disappeared from the Internet

畢竟筆者對系統架構、或是 BGP/ autonomous systems (AS) 沒有那麼熟悉,但我們可以知道 FB 那邊因為某些原因,可能是資安攻擊、或是人員設定錯誤讓 FB 的 IP 不見了,因為地址被 FB 自己收起來了,所以上游的 DNS,也就是全球的 DNS 都一頭霧水,郵差找不到地址的情況下只好回報錯誤,進而導致後續一連串的蝴蝶效應。

Understanding How Facebook Disappeared from the Internet

其他心情結語

我們對於社群當機這樣突發性的事件也見怪不怪,這不會是第一次也可能不是最後一次,但當它發生時心情上卻有某種程度的焦慮,因為我們習慣沒事就滑滑社群,填滿生活一些無聊的片段,不過今天 FB、IG 當機後我們也轉向其他的社群,這也代表 FOMO 並未消失,但今天如果是整個網路都癱瘓了呢,心情的寄託該何去何從,或許我們會回過頭來想不應該這麼仰賴社群,不過我認為大家有因為如《黑鏡》、《智能社會進退兩難》等影集去省思說生活不應該把社群看得這麼重要,因為它像是合法的毒品,讓你不想用都難,因此我們可以嘗試去調配生活的節奏,讓部分留些空白,讓自己嘗試去享受平靜,保有心情上的彈性,若遭遇下一次事件時也能優雅的處理。

參考文章:

Why Facebook Is Down: Everything We Know About The Outage

Update about the October 4th outage

FB與旗下應用程式大範圍中斷服務 暫未透露原因

DNS 伺服器是什麼?如何運用?

域名系統(DNS)101 — 網址的小旅行

根域名伺服器的重要性、現況與爭議

--

--

Chengcheng Hsu

Frontend developer | Quality over time spent | Slowly but surely | contact me: ychsu.wk@gmail.com