概要
Cloudflareは、最近発生した25分間のBorder Gateway Protocol(BGP)経路リークについて詳細を公開しました。このリークはIPv6トラフィックに影響を与え、計測可能な輻輳、パケット損失、および約12Gbpsのトラフィック切断を引き起こしました。BGPシステムは、自律システム(AS)と呼ばれる異なるネットワーク間でデータをルーティングし、インターネット上の小規模ネットワークを通じて宛先に送信するのに役立ちます。今回のインシデントは、ルーター上の偶発的なポリシー誤設定によって引き起こされ、Cloudflareの顧客だけでなく外部ネットワークにも影響を及ぼしました。
インシデントの詳細
「1月22日のインシデント中、当社は同様の経路リークを引き起こしました。マイアミで一部のピアから経路を受け取り、それを一部のピアおよびプロバイダーに再配布しました」とCloudflareは発表しています。「RFC7908の経路リーク定義によれば、当社はインターネット上でタイプ3とタイプ4の混合経路リークを引き起こしました。」
BGP経路リークは、自律システム(AS)がバレーフリールーティングポリシーに違反し、あるピアまたはプロバイダーから学習した経路を別のピアまたはプロバイダーに誤って広告する際に発生します。その結果、意図しないネットワークを経由してトラフィックが送信され、多くの場合、輻輳、切断、または最適ではない経路を引き起こします。ファイアウォールフィルターが特定のプロバイダーからのトラフィックのみを受け入れるように設定されている場合、トラフィックは完全に破棄されます。
バレーフリールールは、ネットワーク間のビジネス関係に基づいて経路がどのように伝播されるべきかを記述しており、これらが破られた場合、トラフィックはより長い、または不安定な経路を介して処理できないネットワークに引き寄せられ、今回のケースのように完全に切断されます。このようなインシデントは主に信頼性の問題を引き起こしますが、BGPハイジャック事件において不正な当事者がトラフィックを傍受・分析する可能性があり、セキュリティ上の側面も持ち合わせています。
原因と対応
Cloudflareは、BGP経路リークの根本原因が、マイアミがボゴタのIPv6プレフィックスを広告するのを防ぐためのポリシー変更であったと説明しました。特定のプレフィックスリストを削除したことで、エクスポートポリシーが過度に寛容になり、ルートタイプ内部一致によってすべての内部(iBGP)IPv6ルートを受け入れ、外部にエクスポートできるようになりました。「結果として、Cloudflareがバックボーン全体で内部的に再配布するすべてのIPv6プレフィックスがこのポリシーによって受け入れられ、マイアミのすべてのBGPネイバーに広告されました」とCloudflareは説明しています。
Cloudflareは問題発生後すぐにこれを検出し、エンジニアが手動で設定を元に戻し、自動化を一時停止しました。これにより、25分以内に影響が停止しました。トリガーとなったコード変更は後に元に戻され、自動化は安全に再開されました。同社は、今回のケースが2020年7月のインシデントと非常に似ていると述べており、将来このような事態を防ぐための対策も挙げています。
今後の対策
- より厳格なコミュニティベースのエクスポート保護の追加
- ポリシーエラーに対するCI/CDチェック
- 早期検出の改善
- RFC 9234の検証
- RPKI ASPAの採用促進
