+− THE DAILY DIFFdev & AI news
SHIP IT

重啟令 Telstra 倒退回 2006 年。九百萬部電話。

墨爾本的一名工程師在凌晨 2 時 50 分重啟計時機箱,到早餐時,澳洲最大的流動網絡竟以為是 2006 年 11 月。

墨爾本的一名工程師在凌晨 2 時 50 分重啟計時機箱,到早餐時,澳洲最大的流動網絡竟以為是 2006 年 11 月。2026 年 7 月 8 日:Telstra NTP 機箱中的 GPS 卡在更換電源期間重啟,其韌體從未有 GPS 週數滾動更新,因此它選擇了舊的紀元,倒退了 1,024 週。由於 2025 年 10 月的變通方法使該卡成為網絡唯一的 stratum-1 來源 — 以及 2020 年轉用 NTP 對等連接已使所有其他來源都處於其下游 — 錯誤的日期贏得了投票。交換節點從凌晨 4 時開始重置,45% 的所有通話和數據會話受到影響,近 900 萬客戶無法撥打電話、發送短訊或使用數據,604 個「000」緊急電話出錯,維多利亞州的區域列車停駛,大部分服務於 12 時 12 分恢復。Telstra 自己的警報設在一個僅在辦公時間檢查的平台上;公司注意到是因為客戶在 Google 搜尋「Telstra 故障」。

閱讀書面版本(英文) ↗

本影片涵蓋的內容

  • 一張 GPS 卡在 2006 年 11 月醒來
  • 時間線:2010 年設計 → 2020 年機箱 → 2025 年 10 月 GPS 卡 → 02:50
  • 早上:04:00 MME 重置 → 04:20 警報風暴 → 12:12 恢復
  • 機制:NTP 投票基於一致性,而非合理性
  • git blame — Telstra 55 · 對等連接 25 · 韌體 15 · 電源 5

翻譯的文字記錄

從英文原文旁白翻譯。可用的音頻和字幕由 YouTube 控制。

一張 GPS 卡在 2006 年 11 月醒來

0:00 墨爾本的一名工程師在凌晨兩點五十分重啟計時機箱, 到早餐時,澳洲最大的流動網絡竟以為是 二零零六年十一月。 Telstra 的外部報告指出,那個日期來自一張 GPS 卡,而整個 網絡都投票支持它。 近九百萬客戶無法撥打電話、發送短訊或使用數據, 維多利亞州的區域列車也因此停駛了一天。 這是如何發生的?為什麼一張卡能凌駕於國家時鐘之上?

0:23 誰該為此負責? 這裡是 The Daily Diff,事後分析。

時間線:2010 年設計 → 2020 年機箱 → 2025 年 10 月 GPS 卡 → 02:50

0:28 二零一零年。設計是教科書級的。 三個國家時間來源為兩部伺服器供電,它們再為下方三個供電, 每個節點只從上方獲取時間。 審計師稱其「符合目的」。 二零二零年。新機箱。 它無法為自己的下層伺服器供電,於是雪梨和墨爾本被交叉連接, 每個站點都只剩下一個參考來源。 然後所有都切換到對等模式,任何伺服器都可以從它找到的

0:50 任何伺服器獲取時間。 「時間循環」一詞從未出現在任何文件中。 二零二五年十月。 墨爾本不斷失去雪梨的連接,其警報顯示 stratum 五, 意味著它從自己的客戶那裡獲取時間。 沒有人提交問題單。 取而代之的是,工程師們啟動了一張閒置了五年的 GPS 卡。 警報停止了。

1:07 墨爾本現在是 stratum 一,與國家級機構同級, 沒有人對此進行審查。 七月八日,凌晨兩點五十分。 需要更換電源,所以機箱重啟, GPS 卡也隨之重啟。 其韌體從未更新,所以它選擇了舊的紀元,倒退了 一千零二十四週。 墨爾本是最高層,下游開始認同。

早上:04:00 MME 重置 → 04:20 警報風暴 → 12:12 恢復

1:26 凌晨四點,交換節點開始重置。 四點二十分,警報風暴,發生在一個警報只在辦公時間閱讀的平台上。 四點二十九分,Telstra 注意到了,因為客戶正在 Google 搜尋 「Telstra 故障」。進行更改的工程師正在強制休息, 查找日期花費了數小時。 到十二點十二分,大部分客戶都恢復了服務。

機制:NTP 投票基於一致性,而非合理性

1:47 為什麼這會成為可能? NTP 有兩種防禦機制。 較低的 stratum 獲勝,離群值會被投票排除。 GPS 卡使錯誤的來源成為最高級別, 所有可能不同意的來源都處於下游, 重複這個錯誤。NTP 從不詢問日期是否合理, 只問其他來源是否同意。 協議運作了。

2:06 架構沒有。

git blame — Telstra 55 · 對等連接 25 · 韌體 15 · 電源 5

2:07 git blame。Telstra,百分之五十五。 沒有人負責時鐘,所以沒有人審查更改, 兩份關於這個確切錯誤的供應商公告都沒人讀過。 對等模式,百分之二十五,因為它讓伺服器用自己的回音投票。 韌體,百分之十五,已發佈但從未安裝。 百分之五歸咎於電源,因為它選擇了星期三的兩點五十分。 影響範圍。當天所有通話和數據會話的百分之四十五,

影響範圍:45% 的會話,3 萬美元的盒子換來 3000 萬美元的罰款

2:30 行政總裁告訴參議院。 擺在檯面上的罰款是三千萬美元,只因一個三十萬美元的盒子缺少 一個免費的更新。 這張卡在二零一九年的實際週數滾動中倖存下來,因為沒有人關閉 它。維修殺死了它。 判決,事後分析:SHIP IT,關於回應。

判決 + 星期一熱線:一個時鐘身兼三職

2:46 Telstra 聘請外部審計師,未經編輯地發布報告, 並聲明它從未將時間視為關鍵, 並在報告發布之前將所有三個站點從舊伺服器遷移。 星期一熱線:執行 NTP 追蹤並計算你的時間來源中有多少個是 一個時鐘身兼三職。 將你仍然不被允許談論的事件傳送給我, 在評論中,或發送至 thedailydiff.dev。 這就是今天的 The Daily Diff。

3:10 我是來自 Axrisi 的 Niko。 負責任地合併。

來源

  1. Technology Audit Partners, "Findings Report on the July 8th Telstra Outage" (published by Telstra, Sep 2, 2026)www.telstra.com.au
  2. Vicki Brady (Telstra CEO), "What we've learned from the external investigation of our July outage" (Sep 2, 2026)www.telstra.com.au
  3. Netnod, Sven-Christian Ebenhag, "Telstra outage: The night a network decided the year was 2006" (Sep 17, 2026)www.netnod.se
  4. Hacker News on the Netnod post (93 points)news.ycombinator.com
  5. The Guardian, Senate inquiry: 45 % of sessions, ~9M customers, 604 Triple Zero errors (Jul 17, 2026)www.theguardian.com
  6. ABC News, "Telstra recently warned about timing issue linked to national outage" (Jul 10, 2026)www.abc.net.au
  7. The Register, the day itself (Jul 8, 2026)www.theregister.com
  8. ACS Information Age, the $30,000 box and the $30M fine (Jul 14, 2026)ia.acs.org.au

相關影片

postmortem · zh-HK · 2026年9月19日

Google Cloud 在空白欄位當機。三小時。

一個帶有幾個空白欄位的策略行觸發了空指標,Google Cloud 立即在所有區域當機 — 然後 Cloudflare 也隨之故障。2025 年 6 月 12 日,世界標準時間 17:49:Service Control,一個批准所有 Google Cloud API 請求的二進位檔案,讀取了一個帶有「非預期空白欄位」的配額策略變更,觸發了兩週前發布但沒有空值檢查和功能旗標的程式碼路徑,並在所有區

2:57 ↗
postmortem · zh-HK · 2026年9月16日

Facebook從互聯網上刪除了自己。長達六小時。

Facebook將自己的地址從互聯網上移除,當其工程師趕來恢復時,門禁讀取器也失靈了,因為它們也依賴Facebook運作。2021年10月4日,UTC時間15:40:一個例行的骨幹網絡維護指令導致Facebook所有數據中心之間的連接中斷;旨在阻止此類操作的審核工具存在錯誤;Facebook的名稱伺服器由於無法連接數據中心,依設計撤回了自己的BGP路由——於是facebook.com、Instag

3:01 ↗
postmortem · zh-HK · 2026年9月12日

一個正規表達式擊潰了Cloudflare。持續27分鐘。

2019年7月2日,世界標準時間13:42:一條針對Cloudflare網絡應用程式防火牆的新規則在約兩秒鐘內於180多個城市上線。這是一條模擬模式下的XSS規則,因此它不會阻擋任何東西,但它仍然會在每個請求上運行,並且以.*(?:.*=.*)結尾。PCRE回溯,每個服務HTTP的CPU核心達到100%,每個透過Cloudflare代理的網站都會在27分鐘內返回502;流量下降82%。終止開關位於

3:00 ↗