VPN が BGP で動くのか MPLS で動くのかと問うのは、二つの層を一つの判断に混ぜてしまうことです。BGP は到達性とポリシーを配布します。MPLS は設定されたラベルの状態を使ってパケットを転送します。BGP/MPLS VPN ではこの二つが協調し、どちらを外してもサービスは一切残りません。以下の確認は同じプレフィックスを両方の層に通すので、自分のプレフィックスがどこで止まったかを正確に把握できます。

確認 1:プレフィックスは正しい VRF にあるか

プロバイダーの入口エッジから始め、顧客プレフィックスがどの VRF に属するかを尋ねます。この設計では顧客アドレスの重複は正常なので、VRF は 10.0.0.0/8 を使う二人の顧客を分けておく文脈です。

そこでプレフィックスが欠けていれば、後続はどれも正しくなりえず、残りの確認は無駄な努力です。

確認 2:VPN 経路は配布され、インポートされたか

プロバイダーは MP-BGP で顧客経路を配布します。各経路は、そうでなければ同一のプレフィックスを一意にする経路識別子と、どの VRF が経路をインポートするかを決める経路ターゲットを運びます。到着してもインポートされない経路は、受信側 VRF をそのプレフィックスについて空のままにします。遠端を責める前にインポートポリシーを確認してください。

経路選択も重要です。別のプロバイダーエッジを通る優先経路が、期待していた経路を置き換えることがあります。

確認 3:入口エッジはパケットに何をするか

パケットが到着すると、入口エッジは VRF 内で IP 検索を行い、選択した経路のラベルを付けます。キャプチャに写るラベル数が違っても、スタックには二つの論理的な役割があります。

transport label toward the egress edge
VPN service label for the egress forwarding action
customer IP packet

BGP/MPLS VPN の仕様 はこの配置を説明しています。最後から二番目のホップでのラベルポップは、最終ホップの前に転送ラベルを外すことがあるため、網の途中で取った二ラベルのキャプチャは障害の証拠にはなりません。

確認 4:基盤ネットワークはそのラベルを転送しているか

通過ルーターは設定済みのラベルエントリーに従ってスイッチします。個々のパケットがどうなるかを決めるために BGP 更新を読むことはありません。だからこそ 顧客経路が存在しても転送が失敗する ことがあります。解決された次ホップや転送ラベルが独立に壊れうるからです。VPN プレフィックスを学習しても、その下の基盤ネットワークは修理されません。

経路の有無だけでなく、出口エッジ方向のラベル結合を確認してください。

確認 5:出口の動作と戻り経路

出口ではサービスラベルが転送動作を特定し、パケットはカプセルを外されて顧客の宛先へ進みます。そこから戻り経路も機能する必要があり、そのインターフェースの顧客側アクセスポリシーも含みます。

片方向だけの成功は通常、戻り経路かフィルターの問題であり、ラベルスタックではありません。

症状をこれらの確認のどれかに当てはめて読む

受信側 VRF に経路がない場合は、広告、インポートポリシー、経路選択のいずれかです。経路はあるのにパケットが失敗する場合は、解決された次ホップ、ラベルの転送、顧客側の戻り経路のいずれかです。誤った宛先にパケットが届く場合は通常、誤った VRF を見ています。これらいずれもルーティングプロトコルを変える理由にはなりません。

もう一つ率直に言っておくべきことがあります。この設計は顧客を分離し、そのトラフィックを効率的に転送します。暗号化は行わず、これを機密性サービスとして扱うのは別の誤りです。

関連記事