同じ保守作業の時間帯を終えて、新しい経路が稼働していると確信しながら退出した二人の技術者が、それぞれ別の理由で間違っていることがあります。一人は LSP を構築し、サービスがそれに従うと決めてかかりました。もう一人はサービスに手を触れず、何も変わっていないと決めてかかりました。pseudowire はその時点でピアアドレスが解決されるトランスポートしか使わないので、本当の問いは、その解決が今何を生み出しているかであり、二つの設計はこれに異なる答えを出します。

一方のラベルはサービスを指し、他方はパケットを運ぶ

pseudowire ラベルは、RFC 4447 に記述されているとおりターゲット LDP でシグナリングされ、受信側プロバイダーエッジに、どのアタッチメント回路がフレームを受け取るべきかを伝えます。フレームがそこへどうやって到達したかについては何も言いません。その下のラベルはトランスポートに属し、そのスタックはピアループバックへの到達性を広告したものによって構築され、LDP であれ RSVP-TE であれ、セグメントルーティングされた経路であれ同じです。二つの層を別々のプロトコルがシグナリングするため、一方が健全でも他方は古いままということが起こります。この分離が混乱の源のすべてです。

はっきり言っておくと、pseudowire は LSP を選びません。フレームをトランスポートに渡し、トランスポートが与えられた宛先アドレスから判断します。

新しい LSP をまたいだきれいな ping がほとんど何も証明しないのも同じ理由です。LSP が稼働し、ラベルが付き、他のサービスを運んでいても、あなたの pseudowire は別のネクストホップで解決されたままかもしれません。バインディングを読むまで、その二つの事実は無関係です。

選択肢 A: pseudowire を選んだトランスポートに固定する

固定するとは、サービスのトランスポート解決を決定的にすることです。プラットフォームによって、トンネル選択ポリシー、サービス上の明示的なトランスポート端点、ピアアドレスのネクストホップを書き換えるルートポリシーという形を取ります。三つとも奥では同じことをし、一つの宛先の解決を特定の LSP に強制します。だからこそ結果を後から監査できます。

代償は範囲です。ピアアドレスに一致するポリシーは、そのピアを指すすべてのサービスに影響し、あなたが想定していた pseudowire だけにはとどまりません。

フォールバックは変更作業の前に決めておくべきもので、作業中に決めるものではありません。固定した LSP が落ちたとき、サービスを別の承認済み経路に乗せるか、停止させるかのどちらかです。遅延や非交差の制約に反する経路へ静かに戻るポリシーは、きれいな障害を、誰に説明するにもはるかに厄介なものに変えてしまいます。

選択肢 B: IGP に選ばせて何が起きるか見る

サービスに手を触れないのは正当な設計であり、しばしば優れた設計です。pseudowire はピアループバックへの他のトラフィックと同じ解決に従うので、IGP の収束、プレフィックス抑制、そしてコアがすでに提供する冗長性を引き継ぎます。ポリシーが少なければ、古い一致が隠れる場所も少なくなります。代わりに、サービスがどの経路を通るかは制御できなくなり、経路が存在することだけが保証されます。

等コストマルチパスは、一見した以上にこの取引を鋭くします。ハッシュはフロー単位なので、一つの pseudowire 内の二つの会話が別々の外側ラベルで出ていくことがあります。

どちらを信じる前に、導入済みの転送を読む

サービスではなくピアアドレスから始めます。Junos では show route 203.0.113.1 detail が選択されたネクストホップとラベル操作を表示し、show route table mpls.0 が受信ラベルをその操作にマップします。IOS XR では show mpls l2transport vc 100 detail が課されたスタックとともに pseudowire の状態を示します。

設計文書に書かれたものではなく、トランスポートが実際に使っている LSP を確認してください。IOS XR の traceroute mpls ipv4 203.0.113.1/32 はラベルスイッチ経路をたどって経路上のラベルと出力インターフェースを一覧し、これは経路を自分で見ることに最も近い手段です。次に、戻り方向は独立に解決されポリシーを部分的に展開した後は非対称がよく起こるため、遠端のプロバイダーエッジから同じ作業を繰り返します。片方向で正しく逆方向で誤っている経路は、テストの半分が通ってしまうため、一様に誤っている経路より悪いです。

証拠は、ピアアドレス、ネクストホップ、外側ラベル、確認した日付とともにサービス記録として保管してください。ルートポリシーは古びやすく、二四半期前にどれが有効だったかを覚えている人はいません。

好みではなく障害の形で選ぶ

固定は、IGP が表現できない制約を持つサービスと、変更のたびにポリシーを維持できるチームに向いています。IGP に任せるのは、人手を介さずに単一の障害を生き延びなければならないサービスに向いています。

決め手となる問いは、誤った経路があなたに何をもたらすかです。誤った LSP 上のサービスが少し性能が落ちるだけなら、IGP に決めさせ、労力は監視に注いでください。誤った経路が契約や監査指摘、非交差の要件を破るなら、それを固定し、フォールバックを書き留めてください。そして、試験していないフォールバックは計画ではなく仮定なので、フォールバックを試験してください。いずれにせよ、コアに変更を加えた後は導入済みのバインディングを読み直し、上がってきた pseudowire は、シグナリングが動くこと以外の何の証拠でもないと扱ってください。

関連記事