**ルートリーク事件 – 2026年1月22日**

2026/01/24 2:54

**ルートリーク事件 – 2026年1月22日**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Cloudflare の 2026 年 1 月 22 日の BGP ルートリークは、19:52 UTC に統合され 20:25 UTC に実行されたルーティングポリシー自動化変更により、マイアミデータセンターの IPv6 プレフィックスが約 25 分間公開されました。この誤設定では BOG04 プレフィックスリストが削除されましたが、許容的な「route‑type internal」マッチは残っており、結果としてすべての IBGP ルートが外部に広告されるようになりました。これにより RFC7908 に沿った Type 3 と Type 4 のルートリーク が混在し、ピアからのルートが Lumen AS3356 などのプロバイダーへまで転送されました。

影響は 20:40 UTC に始まり、マイアミ‑アトランタバックボーンでの混雑、一部顧客へのパケットロス増大、高いレイテンシ、およびファイアウォールフィルターにより約 12 Gbps のトラフィックが破棄される事態となりました。インシデントは 20:44 UTC に報告され、手動でのリバートは 20:50 UTC に実施され、コードリバージョンは 21:47 UTC で完了し、自動化は 22:40 UTC で再有効化されました。

Cloudflare は自動化障害を修正し、BGP コミュニティ保護策を追加し、空または誤った用語に対する CI/CD ポリシーを評価し、RFC9234(Only‑to‑Customer 属性)のベンダー遵守を検証し、RPKI ASPA の長期採用を促進して異常な AS パスを自動的に拒否することで問題に対処しています。同社は影響を受けたユーザー、顧客、および外部ネットワークに謝罪します。過去の関連インシデントには 2025 年 12 月 5 日の障害、1 月 14 日の DNS CNAME 問題、1 月 6 日のベネズエラ BGP 異常が含まれます。

本文

2026‑01‑23
読み時間:

2026年1月22日、私たちのマイアミデータセンターにあるルーターで自動化された経路ポリシー設定エラーが発生し、一部のBGP(Border Gateway Protocol)プレフィックスを意図せずリークしました。
このルートリークは25分間続き、Cloudflare の顧客だけでなく、誤ってマイアミ経由に流れた外部パーティーのトラフィックにも影響を与えました。その結果、マイアミとアトランタ間のバックボーンで混雑が発生し、一部 Cloudflare 顧客のトラフィックでパケットロスが増加。さらに、リンク全体でレイテンシーが高くなり、ファイアウォールフィルターにより最大12 Gbps の非下流トラフィックが破棄されました。


BGP ルートリークについて

以前にもルートリークについて書き、Cloudflare Radar にすべてのイベントを記録しています。
ルートリークとは、ネットワークが本来転送するはずのないトラフィックをインターネットに送るよう指示してしまう現象です—通常、AS パスに予期しない Autonomous System(AS)が出現したときに発生します。これは valley‑free ルーティング規則に違反します。

1月22日の事故では、RFC 7908 に定義された Type 3Type 4 の混合ルートリークを引き起こしました。これらは、エクスポートされるべきでないピアやプロバイダーからの経路を再配布した結果です。


タイムライン

時刻(UTC)イベント
2026‑01‑22 19:52経路ポリシー バグトリガーのマージ
2026‑01‑22 20:25自動化が単一のマイアミエッジルーターで実行され、転送プロバイダーやピアへ経路を広告—影響開始
2026‑01‑22 20:40ネットワークチームが意図しない広告調査を開始
2026‑01‑22 20:44統合対応のためインシデントを上げる
2026‑01‑22 20:50不正な設定変更をロールバック、オートメーション停止—影響終了
2026‑01‑22 21:47コードリポジトリで変更を戻す
2026‑01‑22 22:07マイアミルーターの自動化が正常に復帰したことを確認
2026‑01‑22 22:40自動化を再開

発生原因 – 設定エラー

20:25 UTC に、マイアミからボゴタデータセンターへの BGP アナウンスを削除する変更をプッシュしました。差分は複数のポリシー文から

prefix-list 6-BOG04-SITE-LOCAL
を削除しただけでした。一見無害に思えますが、実際にはポリシーを過度に許容的にしてしまいました。

policy-options policy-statement 6-TELIA-ACCEPT-EXPORT {
    term ADV-SITELOCAL-GRE-RECEIVER {
        from route-type internal;
        then {
            community add STATIC-ROUTE;
            community add SITE-LOCAL-ROUTE;
            community add MIA01;
            community add NORTH-AMERICA;
            accept;
        }
    }
}

from route-type internal
のマッチは、すべての非外部経路(例:iBGP)を含みます。結果として、内部で再配布された IPv6 プレフィックスがすべて受け入れられ、マイアミにある BGP 隣接者へ外部広告されるようになり、まさにルートリークの典型的な挙動でした。

Monocle の出力で確認できます:

A|1769113609.854028|2801:14:9000::6:4112:1|64112|
2a03:2880:f077::/48|
64112 22850 174 3356 13335 32934|

AS パスには Meta(AS 32934)から受信したプレフィックスが Lumen(AS 3356)へ転送されていることが示され、横方向のリークを明らかにしています。


影響

  • マイアミ‑アトランタバックボーンで混雑
  • Cloudflare 顧客へのパケットロス増加
  • 関連リンク全体でレイテンシーが上昇
  • ファイアウォールによる最大12 Gbps の非下流トラフィック破棄

フォローアップと予防策

短期的対処

  1. 経路ポリシー自動化バグを直ちにパッチ適用
  2. プロバイダー/ピアからの経路を外部エクスポート時に拒否する BGP コミュニティベースの保護策を追加
  3. CI/CD パイプラインで自動ポリシー評価を実装し、空または誤った項目を検出
  4. 設定問題とそのネットワークへの影響を早期に検知する仕組みを強化

長期的対策

  1. RFC 9234(BGP ロールおよび Only‑to‑Customer 属性)のベンダー実装をローンチ前に検証
  2. RPKI Autonomous System Provider Authorization (ASPA) の採用を促進し、異常な AS パスを自動的に拒否

ご利用いただいているユーザー・顧客・外部ネットワークへの影響について深くお詫び申し上げます。


Cloudflare について

Cloudflare のコネクティビティクラウドは、企業ネットワークを保護し、Web アプリケーションを高速化し、DDoS 攻撃から守り、Zero‑Trust への移行をサポートします。
1.1.1.1 を訪れて、インターネットをより速く安全にする無料アプリの利用を開始してください。

ミッションやキャリア機会については、弊社ウェブサイトをご覧ください。


関連投稿

  • 2026年1月14日 – 「CNAME と A レコード、どちらが先か?」
  • 2026年1月06日 – AMA:ベネズエラでの BGP 異常を詳しく調査
  • 2025年12月19日 – Code Orange: Fail Small – 私たちのレジリエンス計画
  • 2025年12月05日 – Cloudflare 障害(2025年12月5日)

同じ日のほかのニュース

一覧に戻る →

2026/01/24 10:00

**27ブランドから325車種へ対応したオープンソース自動運転**

## Japanese Translation: 提供された要約は正確で網羅的かつ明瞭であるため、変更の必要はありません。 --- **元の要約:** Comma Four は、オープンパイロットプラットフォームを利用した高度なドライバーアシスタンス機能を車両に提供する AI 主導型アップグレードです。トヨタ・ヒュンダイ・フォードなど 27 社の 325 台以上の車に追加でき、広範なモデルでテストされ、人間の入力を最小限に抑えて数時間動作可能であることが示されています。オープンパイロットの実証済み自律走行機能を基盤とし、Comma Four は自動運転技術の業界全体への普及へ向けた一歩を表します。同社はユーザーにコミュニティ参加と将来の自律システム形成への貢献を呼びかけつつ、プロダクト開発・自律工学・運用部門での採用も積極的に行っています。広く展開されれば、このアップグレードは多ブランドのドライバーアシスト機能の導入を加速し、自動車技術分野で新たなキャリアパスを創出する可能性があります。

2026/01/19 17:03

**現代のプログラミングで実践しているC++習慣** 1. **説明的な変数名を使う** - 単一文字の識別子は避け、意図が伝わる名前を選ぶ。 2. **不変データには `const` と `static const` を優先する** - 変更されないことを保証し、コンパイラ最適化を促進する。 3. **RAII(Resource Acquisition Is Initialization)パターンを採用する** - リソースの取得と解放をオブジェクトに閉じ込めることでリークを防止。 4. **必要に応じてヘッダーオンリ―ライブラリを利用する** - コンパイル依存性が減り、ビルド時間が短縮される。 5. **型推論には `auto` を使う** - 複雑なイテレータ型を簡潔にしつつ可読性を保つ。 6. **モダンなコンテナ初期化子を活用する** - `std::vector<int> v{1, 2, 3};` は手動の `push_back` よりも明確で簡潔。 7. **Catch2 や Google Test のようなフレームワークで単体テストを書く** - コードの正しさを保証し、リファクタリングを容易にする。 8. **関数は短く、目的を絞る** - 単一責任原則を目指すことで保守性が向上する。 9. **Doxygen コメントでドキュメント化する** - クリーンで検索可能な API ドキュメントを自動生成できる。 10. **最適化はプロファイル後に行う** - ホットスポットを測定し、実際のパフォーマンスボトルネックに対処する。

## Japanese Translation: 作者は主にC#とPythonで作業していますが、バインディングやニッチなタスクのために依然としてC(またはC++)を使用します。これは細粒度の制御を提供するからです。Cには公式のスタイルガイドラインがないため、ブログ、Rust、および完璧主義的マインドセットから引き出した個人的な習慣を構築しています。 新しいプロジェクトでは、GCC/Clang/MSVCサポート付き**C23**を好み、`#if CHAR_BIT != 8 #error` を強制して8ビットの `char` を保証します。彼らは簡潔な typedef のセット(`u8`, `i8`, `i16`, `u16`, `i32`, `u32`, `u64`, `f32`, `f64`, `uptr`, `isize`, `usize`)を採用し、<stdbool.h> からの C23 の `bool` をブール値に使用します。 ヌル終端文字列を避けるために、彼らは **長さ+データ構造**(`String` に `u8 *data; isize len`)を使用します。「parse, don’t validate」に触発されてオープックタイプと信頼できるコンストラクタ(Lelenthran のブログ参照)を作成しています。C23 のタグ互換性により、マクロ (`Tuple2(T1,T2)`) を使って単純なタプルを定義できますが、名前付き構造体は必要です。 エラーハンドリングは **sum types** でモデル化されています:列挙型とそれに伴う構造体(`ErrorCode`, `SafeBuffer`, `MaybeBuffer`)が戻り値に成功または失敗を符号化します。作者は純粋な C では動的メモリ割り当てを意図的に避け、ヒープ重視のコードには Rust または C# を好みます;アレーナアロケータも言及されますが使用されません。 標準ライブラリの使用は最小限です。文字列関数はほとんど使わず、代わりに生の `mem*` 呼び出しを優先します。また、OS API はエルゴノミクスが悪いため再実装されることがよくあります。作者は外部関数のドキュメントを注意深く読むことを強調し、将来的により安全なメモリ取り扱いのために **「slice」タイプ** を追加することを検討しています。 全体として、この記事は読者が自分自身の C スタイルガイドラインを作成するよう奨励しつつ、言語の強みと挫折の両方を認めています。

2026/01/20 0:06

**Go言語が1万5000行を削減** --- ### 概要 Goプログラミング言語は、最近の更新で約 **150万行(LOC)** のコードを削除し、コードベースの大幅な縮小を実現しました。これはコミュニティが言語をシンプルに保ち、保守性を向上させるために継続的に取り組んでいる結果です。 ### 主なポイント - **削減規模** - コアパッケージとツール全体で約1,500,000行が削除されました。 - **動機** - 現在の使用状況に合わなくなった重複コードやレガシーコードを排除する。 - 保守性を簡素化し、コンパイル時間を短縮し、可読性を向上させる。 - **開発者への影響** - 廃止予定の機能に対してわずかなAPI変更が加えられました。 - よりシンプルになったコードベースを反映したドキュメントが更新されました。 - **今後の展望** - ミニマリズムとパフォーマンスへの継続的な注力。 - 言語をさらに洗練させるため、コミュニティからの貢献を奨励しています。 ### 結論 Goプロジェクトが半百万行に及ぶ削減を意図的に実施したことは、世界中の開発者に対して明瞭性・効率性・長期的持続可能性へのコミットメントを示すものです。

## Japanese Translation: ``` ## Summary 著者はQuaminaにUnicode文字プロパティ正規表現の堅牢なサポートを構築し、`[~p{L}~p{Zs}~p{Nd}]`という構文を使用しました。 Goの標準ライブラリが最新のUnicodeバージョン(15.0対17.0)に追いついていないため、Quaminaは独自のデータを維持する必要がありました。著者は `UnicodeData.txt` を取得し、フィールド1と3を解析してすべての37カテゴリとそれらの補集合の範囲をリスト化したコードを生成しました—結果として従来の775K行アプローチに比べ5,122行のGoコードのみで済みました。 初期は、すべてのオートマタを事前計算しコードへ直列化すると約12Mのデータが生成され、起動時に長時間停止したりIDEがクラッシュする問題が発生しました。実行時キャッシュ戦略に切り替えることで、Quaminaは初回使用時にUnicodeプロパティオートマタを計算し保持できるようになりました。この変更で追加速度が135/秒から4,330/秒へ(30倍)向上しました。マッチング性能も高いままであり、UTF‑8の短さと浅いオートマタのおかげで数十万〜百万メッセージ/秒を処理できます。 著者は日常的な作業にGenAIツールを使用することを検討しましたが、ツール不足・時間制約・そのようなサービスのビジネス実現性への懐疑心から控えています。次の主要機能は数値量指定子サポート(例:`a{2-5}`)であり、これによりQuaminaの正規表現機能が完結します。この成功を受けてQuamina 2.0の安定リリースが計画されています。生活上の誘惑が勢いを鈍らせましたが、不確実性があるものの今後の開発は奨励されます。 ```