+− THE DAILY DIFFdev & AI news
SHIP IT

一次重启让Telstra回到了2006年。九百万部手机受到影响。

墨尔本的一名工程师在凌晨2:50重新启动了一个时序机箱,到早餐时间,澳大利亚最大的移动网络竟然认为现在是2006年11月。

墨尔本的一名工程师在凌晨2:50重新启动了一个时序机箱,到早餐时间,澳大利亚最大的移动网络竟然认为现在是2006年11月。2026年7月8日:Telstra的NTP机箱中的一张GPS卡在电源维修期间重启,其固件从未进行过GPS周翻转更新,因此它选择了旧的纪元,回到了1024周之前。由于2025年10月的一个权宜之计,这张卡成为了网络中唯一的层级1(stratum-1)时间源——并且2020年切换到NTP对等(NTP peering)模式后,所有其他时间源都位于其下游——错误的日期因此获得了“投票”的胜利。从凌晨4点开始,切换节点(handover nodes)重置,45%的电话和数据会话受到影响,近900万用户无法拨打电话、发送短信或使用数据,604个Triple Zero(紧急服务电话)呼叫出错,维多利亚州的区域列车停运,大部分服务于12:12恢复。Telstra自己的警报系统在一个仅在工作时间检查的平台上运行;公司之所以发现问题,是因为客户正在谷歌搜索“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 墨尔本的一名工程师在凌晨两点五十分重新启动了一个时序机箱, 到早餐时间,澳大利亚最大的移动网络竟然认为 现在是2006年11月。 Telstra的外部报告称,这个日期是由一张GPS卡引起的,整个 网络都投票认同了它。 近900万客户无法拨打电话、发送短信或使用数据, 维多利亚州的区域列车也因此停运了一天。 这究竟是如何发生的,为什么一张卡能凌驾于国家时钟之上,

0:23 以及谁应该承担责任。 这里是The Daily Diff,事后分析。

时间线:2010年设计 → 2020年机箱 → 2025年10月GPS卡 → 02:50

0:28 2010年。设计堪称教科书。 三个国家时间源向两台服务器供电,这两台服务器再向下面的三台供电, 并且每个节点只从上方获取时间。 审计师称其符合预期用途。 2020年。新机箱。 它无法为其自身的下级服务器供电,因此悉尼和墨尔本的线路被交叉连接, 每个站点都只剩下一个参考源。 然后一切都切换到对等模式,任何服务器都可以从它找到的

0:50 任何服务器获取时间。 “时序回路”这个词没有出现在任何文档中。 2025年10月。 墨尔本总是失去悉尼的连接,它的警报显示层级五(stratum five), 这意味着它从自己的客户那里获取时间。 没有人提交工单。 相反,工程师们启用了一张闲置了五年的GPS卡。 警报停止了。

1:07 墨尔本现在是层级一(stratum one),与国家机构的级别相同, 没有人对此进行审查。 7月8日,凌晨两点五十分。 一个电源需要更换,因此机箱重启, 随之重启的还有那张GPS卡。 它的固件从未更新过,所以它选择了旧的纪元,回到了1024周 以前。 墨尔本成为了时间源的顶端,下游开始与其保持一致。

早晨:04:00 MME重置 → 04:20 警报风暴 → 12:12 恢复

1:26 凌晨四点,切换节点(handover nodes)开始重置。 四点二十分,警报风暴爆发,发生在一个仅在工作时间检查警报的平台上。 四点二十九分,Telstra注意到问题,因为客户正在谷歌搜索 “Telstra中断”。进行更改的工程师正在强制休息中, 查找日期问题花了数小时。 到十二点十二分,大多数客户恢复了服务。

机制:NTP投票基于一致性,而非合理性

1:47 为什么会这样? NTP有两种防御机制。 较低层级(Lower stratum)获胜,以及异常值被投票剔除。 这张GPS卡使这个错误的时间源成为了最高层级, 并且所有可能提出异议的时间源都位于其下游, 重复它的时间。NTP从不询问日期是否合理, 只询问其他时间源是否一致。 协议本身没有问题。

2:06 是架构出了问题。

git blame — Telstra 55 · 对等25 · 固件15 · 电源5

2:07 git blame。Telstra,百分之五十五。 没有人负责时钟管理,所以没有人审查这一变更, 关于这个确切错误的两个供应商公告也未被阅读。 对等模式(Peering mode),百分之二十五,因为它允许服务器与自己的回声进行投票。 固件,百分之十五,已发布但从未安装。 电源,百分之五,因为它选择在周三凌晨两点五十分出问题。 影响范围。当天所有电话和数据会话的百分之四十五,

影响范围:45%的会话,3万美元的盒子招致3000万美元罚款

2:30 CEO告诉参议院。 摆在桌面上的罚款是三千万美元,仅仅因为一个三万美元的盒子 缺少了一个免费更新。 这张卡在2019年的真正翻转时幸存了下来,因为没有人关掉 它。这次维修却让它出了问题。 裁决,事后分析:SHIP IT,指响应方面。

裁决 + 星期一提示:一块时钟身兼三职

2:46 Telstra聘请了外部审计师,未经编辑地发布了报告, 报告中提到,他们从未将时间视为关键因素, 并在问题出现之前将所有三个站点从旧服务器迁移。 星期一提示:运行NTP跟踪,并计算有多少个时间源是 一块时钟身兼三职。 在评论中,或通过thedailydiff.dev,把你不被允许谈论的事件 发给我。 这就是今天的差异。

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-CN · 2026年9月19日

Google Cloud 因空白字段而崩溃。历时三小时。

一个包含几个空白字段的策略行触发了一个空指针,导致 Google Cloud 所有区域同时崩溃,随后 Cloudflare 也随之瘫痪。2025 年 6 月 12 日,世界标准时间 17:49:Service Control(批准每个 Google Cloud API 请求的二进制文件)读取了一个配额策略变更,其中包含“意外的空白字段”,触发了两周前发布的代码路径(没有空检查和功能标志),并进入了

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

Facebook 从互联网上删除了自己。六小时。

Facebook 从互联网上移除了自己的地址,当其工程师赶到现场恢复服务时,门禁读卡器也失灵了,因为它们也在 Facebook 上运行。2021 年 10 月 4 日,世界标准时间 15:40:一条例行的骨干网维护命令导致 Facebook 数据中心之间的所有链接中断;用于阻止该命令的审计工具存在一个错误;Facebook 的域名服务器,由于无法访问数据中心,根据设计撤回了它们自己的 BGP 路由

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

一个正则表达式搞垮了 Cloudflare,持续 27 分钟。

2019 年 7 月 2 日,UTC 时间 13:42:Cloudflare Web 应用程序防火墙的一条新规则在大约两秒钟内在全球 180 多个城市生效。这是一条模拟模式下的 XSS 规则,因此它不会阻止任何内容,但它仍然在每个请求上运行,并且以 .*(?:.*=.*) 结尾。PCRE 回溯,每个处理 HTTP 请求的 CPU 核心都达到 100%,每个由 Cloudflare 代理的网站都在

3:00 ↗