Bring Your Own IP(BYOIP) プレフィックスのトラフィックを Cloudflare エッジから外す準備をするとき、BGP を直接撤回すると、スタックした BGP ルートのリスクがあります。この状態は、ルートがインターネットの Default-Free Zone(DFZ) ↗ に残ってしまうときに起きます。撤回アナウンスを受け取れなかったコアルーターは、すでに無効なネクストホップへトラフィックを転送し続けます(いわゆるブラックホールです)。詳細はブログ記事 BGP zombies and excessive path hunting ↗ を参照してください。
このリスクは、グローバルルーティングテーブルが、より具体的なプレフィックスからより広いプレフィックスへのフォールバックに依存している場合に特に現れます。このフォールバックはルートの不安定化を招きやすいため、Cloudflare は複数ステップのドレイン手順を推奨します。
トラフィックをドレインするときは、Cloudflare と ISP(インターネットサービスプロバイダー)で同じプレフィックス長を使ってください。プレフィックス長を揃えると、いちばん確実で予測しやすい動きになります。
クリーンなトラフィック切り替えを行い、ブラックホールを防ぐための、推奨する複数ステップのドレイン手順は次のとおりです。
-
オリジンネットワークからアドバタイズを開始する: 同じ長さのプレフィックス(例:
192.0.2.0/24)を、自社インフラから上流のインターネットサービスプロバイダー(ISP)へアナウンスし始めます。これにより、同じ長さの競合ルートがグローバルルーティングテーブルに入ります。BGP のベストパス選択は、ほかの指標(例: より短い AS パス長やローカルプリファレンス)に基づいて自社のネイティブルートを優先するため、トラフィックは Cloudflare エッジから離れ始めます。ISP がルートをどう優先するかによって、一部のトラフィックは想定どおりにルーティングされないことがあります(例: Cloudflare のルートを完全に撤回しないと、優先度の低いパスとして扱われる場合があります)。 -
グローバル BGP の収束を待つ: 新しいネイティブアドバタイズがグローバルルーティングテーブル全体に伝わり、ルートが収束するまで時間を置きます(通常は 5〜10 分)。この待機で、次のステップの前に大半のトラフィックが自社ネットワークへ移ったことを確認します。
-
Cloudflare エッジから BGP 撤回を通知する: トラフィックが正常にドレインされたことを確認したら、BGP 制御方法のいずれかを使って、Cloudflare エッジからのプレフィックスアドバタイズを停止します。
-
ドレイン手順は完了です。