最もベテランのためのネットワーク。 パート12。 MPLS L2VPN

短期間でしたが、ギアが再び回転し、linkmeupがTier 2のレベルに上昇しました。また、企業のいくつかの十分なソルベンシーは、linkmeupネットワークを介してブランチ間の通信を組織することに関心を示しています。

前のリリースで確認したL3VPNは、ほとんどのお客様が必要とする膨大な数のシナリオをカバーしています。 素晴らしいですが、すべてではありません。 ネットワークレベルでのみ、1つのプロトコル(IP)のみの通信を許可します。 たとえば、テレメトリデータ、またはE1インターフェイスを介して動作する基地局からのトラフィックはどうでしょうか。 イーサネットを使用するサービスもありますが、データリンク通信も必要です。 繰り返しになりますが、データセンターはL2言語での通信を好みます。

それで、顧客を取り出してL2を入れてください。

従来、以前はすべてがシンプルでした。L2TP、PPTP、および全般です。 GREでは、イーサネットをまだ隠すことができます。 他のすべてについては、彼らは別々のネットワークを構築し、タンクの価格で専用ラインを導いた(月次)。

しかし、コンバージドネットワーク、分散データセンター、および国際企業の時代には、これは選択肢ではなく、チャネルレベルのスケーラブルなWi-Fiテクノロジーの多くが市場に波及しています。

今回は、MPLS L2VPNに焦点を当てます。



したがって、今日のプログラムでは:
  • L2VPNテクノロジーについて
  • VPWS
    • データプレーン
    • コントロールプレーン
    • 練習する
    • VPWSの種類

  • Vpls
    • データプレーン
    • コントロールプレーン
    • VPLSマティーニモード(ターゲットLDP)
      • 練習する

    • VPLSコンペラモード(BGP)
      • 近隣探索または自動発見
      • プレフィックス渡し
      • ラベル配布とラベルブロックメカニズム
      • 練習する


  • 階層VPLS(H-VPLS)
    • H-VPLSの練習

  • VPLSの問題
  • 便利なリンク



L2VPNテクノロジー


ウォームMPLSに飛び込む前に、一般的にどのタイプのL2VPNが存在するかを見てみましょう。


なぜ彼が勝者なのですか? もちろん、主な理由は、MPLSパケットを送信するルーターがコンテンツから抽象化すると同時に、異なるサービスのトラフィックを区別する能力です。

たとえば、E1フレームがPEに到着するとすぐにMPLSにカプセル化され、誰も内部の内容を疑うことはありません。時間内にラベルを変更することだけが重要です。

また、イーサネットフレームが別のポートに到達し、異なるVPNラベルが付いている場合にのみ、ネットワーク上で同じLSPを通過できます。
さらに、MPLS TEでは、ネットワークパラメータのトラフィック要件を考慮してチャネルを構築できます。

LDPおよびBGPと組み合わせることで、VPNを構成し、ネイバーを自動的に見つけることが容易になります。

MPLSのリンク層でトラフィックをカプセル化する機能は、 AToM - Any Transport over MPLSと呼ばれます。

サポートされているAToMプロトコルのリストは次のとおりです。




2つの世界のL2VPN

L2VPNを構築するには、概念的に異なる2つのアプローチがあります。




用語

従来、用語は必要に応じて入力されます。 しかし、すぐにいくつかについて。

PE- プロバイダーエッジ -クライアントデバイス(CE)が接続するプロバイダーのプロバイダーエッジMPLSネットワーク。
CE- カスタマーエッジ -プロバイダールーター(PE)に直接接続するカスタマー機器。
AC- 接続回線 -クライアントを接続するためのPE上のインターフェイス。
VC- 仮想回線 -共有ネットワークを介した仮想単方向接続。クライアントの元の環境をシミュレートします。 異なるPEのACインターフェイスを相互接続します。 一緒になって、AC→VC→ACという単一のチャネルを形成します。
PW - PseudoWire -2つのPE間の仮想双方向データチャネル-単方向VCのペアで構成されます。 これがPWとVCの違いです。





VPWS。 ポイントツーポイント


VPWS- 仮想プライベートワイヤサービス

MPLS L2VPNソリューションの中心にあるのは、PW-PseudoWire-ネットワークの一方の端からもう一方の端まで巻かれた仮想ケーブルの概念です。 しかし、VPWSの場合、このPW自体はすでにサービスです。

必要なものを不用意に転送できるL2トンネルの一種。

たとえば、コテルニキのクライアントには2Gベースステーションがあり、Mitinoにはコントローラーがあります。 また、このBSはE1を介してのみ接続できます。 古代には、ケーブル、ラジオレール、あらゆる種類のコンバーターを使用してこのE1を伸ばす必要がありました。

現在、1つの一般的なMPLSネットワークをE1とL3VPNの両方、インターネット、電話、テレビなどに使用できます。

(誰かがPWにMPLSの代わりにL2TPv3を使用できると言うでしょうが、そのスケーラビリティとトラフィックエンジニアリングの欠如で誰がそれを必要としますか?)

VPWSは、トラフィック伝送とサービスプロトコルの両方の点で比較的単純です。

VPWSデータプレーンまたはユーザートラフィック転送




トンネルラベルはトランスポートラベルと同じです。タイトルに「トランスポート」という長い単語が収まりませんでした。

0. R1とR6の間で、トランスポートLSPはLDPまたはRSVP TEプロトコルを使用してすでに構築されています。 つまり、R1はトランスポートラベルとR6への出力インターフェイスを認識しています。

1. R1は、CEインターフェイスから特定のL2フレームをCE1クライアントから受信します(イーサネット、TDM、ATMなどである可能性があります。重要ではありません)。

2.このインターフェイスは、特定のクライアントID(VC ID)に結び付けられています。つまり、ある意味では、L3VPNのVRFに類似しています。 R1はフレームにサービスタグを与えます。サービスタグは、パスの終わりまで変更されません。 VPNタグはスタックの内部にあります。

3. R1は宛先(リモートPEルーターのIPアドレス)を認識しており、R6はトランスポートラベルを見つけてMPLSラベルスタックに挿入します。 外部のトランスポートラベルになります。

4. MPLSパケットは、Pルーターを介してオペレーターのネットワークを通過します。 トランスポートラベルは各ノードで新しいものに変更され、サービスラベルは変更されません。

5.最後から2番目のルーターで、トランスポートマークが削除されます-PHPが発生します。 R6では、パケットには1つのVPNサービスタグが付いています。

6.パケットを受信したPE2は、サービスラベルを分析し、アンパックされたフレームを転送するインターフェイスを決定します。



L3VPNに関する前の問題を読んだ場合、ユーザートラフィックの送信の問題で新しいものは何も表示されません-いくつかのMPLSタグとトランスポートLSPを介した送信。 入力PEは配置するラベルと送信するインターフェイスをチェックし、Pはトランスポートラベルを変更し、出力PEはVPNラベルを決定して、受信したフレームを送信するACインターフェイスを決定します。


VPWSコントロールプレーンまたはユーティリティプロトコルの操作





トランスポートラベルは、LDP( MPLSに関するリリースを参照)、およびRSVP-TE(ウィングで待機中)として割り当てることができます。

たとえば、LDPを考えてみましょう。このプロトコルはネットワーク全体で実行され、各MPLSルーターの各ループバックアドレスに対してラベルがネットワーク全体に配布されます。

私たちの場合、LDP操作後のR1は、大まかに言って、残りの各ルーターに到達する方法を示す5つのラベルを知っています。

LSP R1→R6、およびその逆に興味があります。 VCがUP状態に移行するためには、両方のLSP(フォワードとリバース)が必要であることに注意してください。

VPWSサービスを実装するには、いくつかの異なる方法があります。 これについてはもう少し詳しく説明しますが、例として、現在最も頻繁に使用されているものを分析します。

同じ自民党がサービスラベルの分配に責任があります 、遺伝的に変更されたものだけがTargeted LDPです。 これで、リモートルーターとの接続を確立し、タグを交換できます。

この例では、クライアントはR1とR6に接続されています。 R1からLDPは、このクライアントR6のラベルを報告し、その逆も同様です。

両端で、リモートLDPセッションを手動で構成します。 VPNとは一切関係ありません。 つまり、同じセッションを使用して、任意の数のVPNとタグを交換できます。

通常のLDPはリンクローカルプロトコルであり、直接接続されたルーター間で近隣を探します。つまり、パケットのTTLは1です。ただし、tLDPには十分なIP接続があります。

同じVC-IDを持つACインターフェイスが両側に表示されるとすぐに、LDPは互いにラベルを通知するのに役立ちます。

tLDPとLDPの違いは何ですか?
LDPtTLDP
直接接続されたルーターのみがネイバーになることができますネイバーは、IP接続が可能なネットワーク上の任意のルーターです。
考えられるすべての隣人を検索する近隣は既に構成されています
ディスカバリー放送特定のネイバーへのディスカバリーメッセージのアドレス指定。
FECは通常IPアドレスです。FECは通常VC IDです

走りすぎないように、すぐに練習してください。

MPLS L2VPNのラボを構築する方法は?


テストベンチとして、多数のUnetLab + CSR1000Vが使用されました。 それと別の両方が完全に無料で合法的に受け取ることができます。
UnetLab OVA
Cisco CSR1000V IOS-XE
UNLをインストールし、CSR1000Vにイメージを追加する手順:Tyts。

したがって、さらにすべてのMPLS L2VPNコンフィギュレーションコマンドは、Cisco IOS-XE表記で提供されます。

注:各CSR1000Vノードには2.5 GBのRAMが必要です。 そうしないと、イメージが開始されないか、ポートが上昇しない、損失があるなどのさまざまな問題が発生します。


VPWSの練習


トポロジを4つのトランクノードに簡素化します。 クリックすると、ページを上下に移動するのではなく、新しいタブで開いてAlt + Tabで見ることができます。



私たちのタスクは、イーサネットをLinkmeup_R1(Gi3ポート)からLinkmeup_R4(Gi3ポート)に転送することです。

ステップ0では、 IPアドレス指定、IGPルーティング、および基本的なMPLSが既に構成されています( 方法を参照)。
初期構成ファイル。

  1. ACインターフェイス(PE-CE)の両端でxconnectを設定しますが、VC-IDは同じでなければならないことに注意してください。

    Linkmeup_R1(config)#interface Gi 3 Linkmeup_R1(config-if)#xconnect 4.4.4.4 127 encapsulation mpls 

     Linkmeup_R4(config)#interface Gi 3 Linkmeup_R4(config-if)#xconnect 1.1.1.1 127 encapsulation mpls 

    xconect 4.4.4.4 127 encapsulation mplsコマンドは、LDPに強制的に4.4.4.4ホストとのリモートセッションを発生させ、VC ID 127のMPLS PWを作成します。VCIDが2つの反対のACインターフェイスで一致することが重要です。

  2. 利益


これで、VPWSの構成が完了しました。
VPWS構成ファイル

プロトコルの背後で何が起こったのか見てみましょう(GE1 Linkmeup_R1インターフェースからダンプされたダンプ)。 主なマイルストーンは区別できます:

0) IGPが集まり、LDPがネイバーを識別し、セッションを上げ、トランスポートラベルを配布しました。 ご覧のとおり、Linkmeup_R4はFEC 4.4.4.4にトランスポートラベル19を割り当てました。



1)しかし、tLDPは作業を開始しました。

--A。 まず、Linkmeup_R1で設定し、tLDPは定期的にHelloを4.4.4.4に送信し始めました



ご覧のように、これはループバックインターフェイス1.1.1.1からリモートPEの同じループバックアドレス-4.4.4.4に送信されるユニキャストIPパケットです。

UDPでパックされ、1つのMPLSラベルで転送されます-トランスポート-19。優先順位に注意してください-フィールドEXP-6は、サービスプロトコルパケットであるため、最高のものの1つです。 これについては、QoSの問題で詳しく説明します。

裏面には何もないため、PW状態はまだDOWNです。



--B。 Linkmeup_R4の側でxconnectを構成した後、すぐにHelloを実行し、TCP経由で接続を確立します。



この時点で、LDP近隣が確立されます。



--B。 私はタグ交換に行きました:


一番下に、VPWSの場合のFECがxconnectコマンドで指定したVC IDであることがわかります。これは、VPN- 127の識別子です。

それに割り当てられたLinkmeup_R4マークを少し下げます-0x16または10進法で22

つまり、Linkmeup_R1はこのメッセージでLinkmeup_R4に通知し、VCID 127を使用してフレームをVPNに転送する場合はサービスタグ22を使用することを伝えました。

ここでは、他の多くのラベルマッピングメッセージを見ることができます-このLDPは、取得したすべてのものを共有します-すべてのFECに関する情報。 あまり関心がありませんが、Lilnkmeup_R1などです。

Linkmeup_R1は同じことを行います-Linkmeup_R4はそのラベルを伝えます:



その後、VCが上昇し、ラベルと現在のステータスを確認できます。





これらのコマンドは、mpls l2transport vc detailshow l2vpn atom vc detailを例で示したものとほぼ同じです。

2)次に、隣人は連絡を取り合うだけです:



3)これで、ユーザーデータを転送する準備がすべて整いました。 この時点で、pingを開始します。 すべてが予想通りシンプルです。すでに上で見た2つのラベルです。



何らかの理由で、WiresharkはMPLSの内部を解析しませんでしたが、添付ファイルの読み方を示します。



赤で強調表示されている2つのブロックはMACアドレスです。 それぞれDMACとSMAC。 黄色のブロック0800-イーサネットヘッダーのEthertypeフィールドは、内部IPを意味します。

次に、黒いブロック01-IPヘッダーのプロトコルフィールドはICMPプロトコル番号です。 そして、2つの緑色のブロック-それぞれSIPとDIP。

Wiresharkでできるようになりました!

したがって、ICMP-ReplyはVPNラベルと共にのみ返されます。これは、PHPがLinkmeup_R2で実行され、トランスポートラベルが削除されたためです。



VPWSが単なるワイヤーである場合、VLANタグ付きのフレームを静かに送信する必要がありますか? はい、このために何も再構成する必要はありません。 VLANタグのあるフレームの例を次に示します。



ここには、Ethertype 8100-802.1qおよびVLANタグ0x3F、または10進数で63が表示されます。

xconnect設定をVLANのサブインターフェイスに転送すると、このVLANが終了し、802.1qヘッダーのないフレームがPWに送信されます。




VPWSの種類


考慮される例は、EoMPLS(Ethernet over MPLS)です。 これは、VLLマティーニモードの開発の本質であるPWE3テクノロジーの一部です。 そして、これらすべてがVPWSです。 ここでの主なことは、定義を混同しないことです。 私をあなたのガイドにしましょう。

したがって、 VPWSは、L2VPNのポイントツーポイントソリューションの一般名です。

PWは、L2VPNテクノロジーの基礎となる仮想L2チャネルであり、データ送信のトンネルとして機能します。

VLL (Virtual Leased Line)は、すでにMPLSでさまざまなデータリンクレイヤープロトコルのフレームをカプセル化し、プロバイダーのネットワーク経由で送信できるようにする技術です。
次のタイプのVLLが区別されます。

VLL CCC- 回線相互接続 。 この場合、VPNラベルはなく、トランスポートラベルはスワップルールを含む各ノードで手動で割り当てられます(静的LSP)。 つまり、スタックには常に1つのラベルしかなく、そのような各LSPは1つのVCのトラフィックのみを伝送できます。 人生で彼に会ったことはありません。 その主な利点は、1つのPEに接続された2つのノードの接続を保証できることです。

VLL TCC- トランス レーショナルクロス コネクト 。 CCCと同じですが、異なるエンドから異なるデータリンクプロトコルを使用できます。

これはIPv4でのみ機能します。 受信すると、PEはリンクレイヤーヘッダーを削除し、ACインターフェイスへの送信時に新しいヘッダーを挿入します。

面白い? ここから始めてください

VLL SVC- 静的仮想回線 。 トランスポートLSPは従来のメカニズム(LDPまたはRSVP-TE)によって構築され、VPNサービスタグは手動で割り当てられます。 この場合、tLDPは必要ありません。 ローカル接続を提供できません(2つのノードが同じPEに接続されている場合)。

Martini VLLは、上記で扱ったものに関するものです。 トランスポートLSPは通常の方法で構築され、VPNラベルはtLDPによって配布されます。 美人! ローカル接続をサポートしていません。

Kompella VLL -VPNラベルを配布するための通常の方法でLSPを転送します-BGP (予想どおり、RD / RTを使用)。 わあ! ローカル接続をサポートします。 いいでしょう

PWE3- 疑似ワイヤエミュレーションエッジ ツー エッジ 。 厳密に言えば、このテクノロジーの範囲はMPLSだけよりも広いです。 しかし、現代の世界では、100%のケースでそれらは連動して機能します。 したがって、PWE3は、高度な機能を備えたMartini VLLのアナログと見なすことができます。LDP+ tLDPもシグナリングに関与しています。

簡単に言うと、Martini VLLとの違いは次のように表すことができます。


現在、PWE3は事実上の標準であり、上記の例にいたのは彼でした。

最も明白な例を示すために、私はどこでもイーサネットについて話しています。 他のチャネルプロトコルに関することはすべて、自分で行ってください。




VPLS。 ポイントツーマルチポイント


ドットマルチポイントという用語が本当に好きです。 そこには子供っぽい何か、遊び心があります。 そして、これが私たちが今話していることです。

VPLS-仮想プライベートLANサービス。 その中心はスイッチです。 プロバイダーは、複数のカスタマーポイントをネットワークの異なる端に接続し、L2接続を提供します。 そして今、正しいフレームスイッチング、つまりMACアドレスの調査を行うのは、プロバイダーのトランスポートネットワークのタスクです。

用語

VPLSドメインは、分離された仮想L2ネットワーク、つまり、大まかに言って、1つの別個のL2VPNです。 2つの異なるクライアント-2つの異なるVPLSドメイン。

VSI- 仮想スイッチングインスタンス 。 単一ノード内の仮想スイッチ。

クライアント(またはサービス)ごとに、彼は自分のものを持っています。 つまり、異なるVSIからのトラフィックは、あるVSIから別のVSIにローミングできません。

L3VPNのVRF / VPNインスタンスの類似物。

シスコから見ると、これはVFI - Virtual Forwarding Instanceです。 VPLSドメイン、VSI、およびVFIという用語を自由に使用することを許可しますが、同義語として使用することもあります。
VE - VPLS Edge -PEノード、VPLSドメインのメンバー。


VPLSデータプレーン


一般に、VPWSの場合のように、ユーザートラフィックの送信は見えますが、トラフィックの送信中にMACを調査し、MACテーブルをチェックするステップが追加されます。

  1. カスタムフレームがPEルータのACポートに到着しました。
  2. PEルータはイーサネットヘッダーを調べ、送信者のMACアドレスを確認します。
    A)このVSIのMACテーブルに既にある場合、PEはすぐにステップ3に進みます。
    B)このアドレスがまだ存在しない場合、MACポートの対応をテーブルに書き込み、手順3に進みます。
  3. PEルータはイーサネットヘッダーを調べて、宛先MACアドレスをチェックします。

    A)このVSIのMACアドレステーブルに存在する場合:
    1. PEは、指定されたMACを持つフレームの出力インターフェイスを探しています。 物理インターフェイスまたはPWにすることができます。
    2. 宛先ポート(物理インターフェース)がそのポートに単に送信する場合。
      PWの場合、対応するラベル-サービスを追加します。 このラベルは、旅行が終わるまで変更されません。
    3. PWは常に2つのIPノード間のチャネルであるため、リモートPEのIPアドレスを知っているため、ラベルテーブルからローカルPEはトランスポート1を取得し、スタックの最上部に配置します。各Pルーターで変更されます。


    B)MACアドレスが不明な場合、適切なスイッチとして、PEはこのVSIのすべてのPEでフレームをブロードキャストする必要があります。 そして彼は、悪党だ。
    1. ローカルPEは、このVSIのすべてのリモートPEのリストを作成し、このフレームのコピーを作成して、それらにサービスラベルを挿入します。それぞれに独自のラベルがあります。
    2. さらに、トランスポートラベルもフレームの各コピー(各PEに独自のもの)に掛けられます。
    3. このフレームの山はすべて、プロバイダーのネットワークを介して送信されます。
    4. また、ブロードキャストフレームのコピーは、MPLSヘッダーなしでACインターフェイスに送信されます(存在する場合)。

  4. フレームを受信して​​ラベルを削除した後(つまり、VSIが既に定義されている場合)のリモートPEは、通常のスイッチとしても機能します。

    A) 送信元 MACアドレスがまだわかっていない場合は、テーブルに入力します。 入力インターフェイスは、入力PEへのPWになります。
    B) 宛先 MACアドレスが彼に知られている場合、学習されたポートにフレームを送信します。 クリーンなイーサネットフレームは、MPLSヘッダーなしですでに送信されています。
    Q)このMACがテーブルで見つからなかった場合は? このVSIのすべてのACポートでブロードキャストします。 他のすべてのPEは入力PEからこのフレームのコピーをすでに受信しているため、 PEはこのフレームを特定のVSIのPWに送信しないことに注意してください。 これは、依然として同じスプリットホライズンルールであるため、スイッチングループとブロードキャストストームがなくなります。 (ああ、すべてがとてもシンプルだったら...)

何が起こっているかを示すgifだけがあります。 そして、同じgifがあり、音声のみがあります。




通常のスイッチと同様に、VSI MACテーブルのエントリは定期的にフェードし、削除されます。

VPLSでMACアドレスを調査するという質問には、L3VPNとは明確に区別されるニュアンスが1つあります。 PEは、フレームの送信元の物理ポートだけを知っている必要はありません-ネイバー、より正確にはPWを仮想インターフェイスとして決定することが重要です。 実際には、クライアントフレームは、何らかの物理ポートだけでなく、正しいPW、つまり正しい隣人にも送信する必要があるということです。

この目的のために、各ネイバーには、このVPLSドメイン内のこのPEにフレームを送信する個人ラベルが与えられます。 そして将来、VPNタグでLFIBを調べることにより、PEはフレームがどのネイバーから来たかを学習します。

L3VPNはIPパケットの送信元を問わないことを思い出してください。したがって、VRFのプレフィックスについては、同じラベルがすべてのネイバーに送信されます。



ユーザートラフィックの配信スキームは簡単です。 しかし、悪名高いコントロールプレーンはどうでしょうか。 再びあなたの脳や小さな犠牲者を壊す必要がありますか?

申し訳ありませんが、スラッシュとソドミーが始まります。 すぐではありません-後でですが、そうなります。 あなたはあなた自身の責任で行動します。


VPLSコントロールプレーン


データプレーンから、VPLSにはVSIごとに完全に接続されたPEトポロジが必要であることがすでにわかっています。 さらに、すべてのプロバイダーMPLS PEネットワークがネイバーになるわけではなく、同じVSIを持つものだけがネイバーになります。

したがって、VPLSの主な問題の1つは、このVSIのクライアントが接続されているすべてのPEの検出です。 ここには、 手動チューニング自動検出の 2つのアプローチがあります。 最初のパスはもともとシスコ(ドラフトマティーニ)によって提案され、2番目のパスの父はジュニパー(ドラフトコンペル)です。

SDSMの11の問題は、エンジニアの生活を簡素化し、すべてとすべての人を自動化することを提唱しました。 そして今、あなたが教えられたすべてを忘れる必要がある時が来ました。 これは、ネイバーを手動で調整するソリューションの方が人気がある場合の最初のケースです(VTPの周りにホリバーを上げない場合)。
面白いですか?

幕を開ける前に、私は発言したい。VPNタグで何が起きても、トランスポートLSPはLDPまたはRSVP-TEで通常通りに構築される。 したがって、通過中の輸送のみに触れます。

同様に、使用されているモードに関係なく、VPLSは詳細な検査時にポイントツーポイントPWに分類されます。 つまり、特定の集中化されたスイッチングクラウドではなく、すべてのネイバー間の単なる仮想回線のセットです。 フレームを送信するかどうかの決定は、入力PEが行うか、より簡単に、目的のPWを選択します。

これら2つのアプローチにしっかりと根付いた「ドラフト」という言葉は、長い間違法であり、歴史的なinertia性によって使用されています。 提案案は6か月のみです。

現時点では、draft-martiniはPWE3のインターネット標準であるRFC 4447に縮退しており、Compellaドラフトは時代遅れで死んでいます。
VPLSについて言えば、2つの標準があります。

「自動検出とシグナリングにBGPを使用する仮想プライベートLANサービス(VPLS)。」 RFC 4761
「ラベル配布プロトコル(LDP)シグナリングを使用した仮想プライベートLANサービス(VPLS)」 RFC 4762
メソッドの歴史的背景。


VPLSマティーニモード(LDP)


2000年代の初めに、業界はL2VPNのオペレーター全体のソリューションの検索を強化しました。 基準は次のとおりです。


シスコの元従業員であるLuca Martiniは、この未宣言の競争にLDPベースのソリューションを提供しました。
MPLSネットワーク上で動作します。

すでにMPLSの一部であるLDPは、ラベル付けに使用されます。 VPLS Martini ModeはRFC4762で説明されています

世界中のほとんどのネットワークで事実上の標準となったのは、この簡潔なソリューションでした。 VPWSについては、マティーニモードがどのように機能するかを既に知っています。 ここでもまったく同じで、1つのネイバーではなく複数のVSIに対して、リモートLDPセッションのみが作成されます。

LDPは、サービスラベルの配布に使用されます。 VPLSドメイン内の各ネイバーとのリモートセッションは手動で設定されます。 このVPLSのすべての参加者は事前に知られているため、それぞれのLDPはLDPラベルマッピングメッセージで個々のラベルを割り当てます。

VPLSドメインに新しいPEを追加する場合、このVPLSのすべての既存のPEでLDPネイバーフッドを設定する必要があります。 次に、それぞれの新しいPEがタグを交換します。

常に、LDPはそのネイバーの可用性をチェックします。 ネイバーの1つがグループから脱退するか、アクセスできなくなると、セッションが切断され、PWでこのネイバーに学習されたすべてのMACがクリアされます。

VPLSドメインのいずれかのACポートの状態がダウンした場合、またはMACポートをACポートから強制的に消去する別のイベントが発生した場合、PEはLDPメッセージ内のMACアドレスの削除を要求して、そのことをすべてのネイバーに通知しますMAC Withdraw(残念ながらCSR1000Vはテストベンチでこれを行いません)。
ACポートの状態を変更する場合、PEはどのMACを指定せずにLDP MAC撤回メッセージを送信する場合があります。 これは、各ネイバーがこのVPLSドメインのMACアドレステーブル全体をクリアする必要があることを意味します。

ここで、法案が数百、おそらく数千の記録に及ぶと想像してください。 また、ネットワーク全体で、すべてのPEがMACアドレスを学習し始めています。 そして、MAC受信者が見つからない場合、彼らはフレームで何をしますか? 全員に送信。 短期間のブロードキャストストームは、スイッチングループなしで発生します。

これまでのところ、ループはありません。 皮肉なことに、このようなブロードキャストブロードキャストの爆発により、データチャネル、特にRRLなどの狭いチャネルが詰まる可能性があります。 そして、ユーザーデータが失われ始めます。 また、プロトコルパケットが送信される優先トラフィックCS6-CS7のキューがブロックされると、STPが壊れてERPSがリングを閉じ、効果が増加する実際のスイッチングループが形成されます。

VPLSドメインがネットワークの小さな部分に限定されない場合(通常はそうではありません)、すべてが横たわることがあります。 世界にはVPLS-NETの嵐ほど悲しい話はありません。 そうしないでください。

最後 、VPLSネットワークで発生する可能性のある他の不快な状況について説明します。


VPLSの練習


このスキームの手順に従って、実際のVPLSの作業を見てみましょう。 これはまだ同じネットワークですが、クライアントは2つのポイントでは不十分であると判断したため、4つを望み、それらすべてを1つのネットワークにマージします。


クリック可能
以前はVPWSサービスがあることを忘れていました-この構成はもうありません。 初期構成ファイル。

そのため、ステップ0で、必要なトランスポートLSPを準備し、それに応じてルーティングなどを準備しました。

  1. VFIの作成-仮想転送インスタンス

     Linkmeup_R1(config)#l2vpn vfi context Blue Linkmeup_R1(config-vfi)#vpn id 63 Linkmeup_R1(config-vfi)#member 3.3.3.3 encapsulation mpls Linkmeup_R1(config-vfi)#member 4.4.4.4 encapsulation mpls 

    デフォルトモードはLDPシグナリングです。 VPN ID-前の例のVCIDの類似物-一意のVPN識別子。 すべてのノードで一致する必要があります。 次の2つのコマンドは、このVPLSドメインのメンバーであるスリープによって妨害されていることネイバーに示します。 基本的に、LDPにリモートセッションを確立するように指示し、その後、設定されたネイバーにLDP Helloを送信し始めます。

    Linkmeup_R3およびLinkmeup_R4で同様のコマンドを実行します...



    Linkmeup_R3
     Linkmeup_R3(config)#l2vpn vfi context Blue Linkmeup_R3(config-vfi)#vpn id 63 Linkmeup_R3(config-vfi)#member 1.1.1.1 encapsulation mpls Linkmeup_R3(config-vfi)#member 3.3.3.3 encapsulation mpls 



    Linkmeup_R4
     Linkmeup_R4(config)#l2vpn vfi context Blue Linkmeup_R4(config-vfi)#vpn id 63 Linkmeup_R4(config-vfi)#member 1.1.1.1 encapsulation mpls Linkmeup_R4(config-vfi)#member 4.4.4.4 encapsulation mpls 




  2. ACインターフェイスでサービスインスタンスを作成します。

     Linkmeup_R1(config)#interface gigabitEthernet 3 Linkmeup_R1(config-if)#service instance 10 ethernet Linkmeup_R1(config-if-srv)#description Blue-A Linkmeup_R1(config-if-srv)#encapsulation default 

     Linkmeup_R1(config)#interface gigabitEthernet 4 Linkmeup_R1(config-if)#service instance 12 ethernet Linkmeup_R1(config-if-srv)#description Blue-C Linkmeup_R1(config-if-srv)#encapsulation default 

    インターフェイス設定モードでは、サービスインスタンスを作成します-これは、サービスへのインターフェイスのバインドです。 どれ-後で設定します。 サービスインスタンス番号は任意です。これは、インターフェイスにとってローカルで重要です(従来のサブインターフェイスなど)。

    カプセル化のデフォルトは、すべてのフレームを無差別にキャプチャすることを意味します (VLANタグによって、または2つのタグ(たとえば、QinQなど)を選択することもできます)。つまり、物理インターフェイス全体をVFIに接続します。

    サービスインスタンスについてもっと知りたい...

    Occamのカミソリの支持者からの合理的な質問-なぜいくつかのサービスインスタンス-ブリッジドメインを登録するだけでは不十分ですか?
    考え方は正しいですが、サービスインスタンスは、タグ付きトラフィックを処理する概念に対する「新しい」アプローチであり、EVC-イーサネット仮想回線と呼ばれます。
    ここでは、このアイデアの起源を理解するために、1分間イーサネットスイッチに切り替えます。

    従来、VLANタグは、トランク内のトラフィックを分離するため、およびデバイス内のスイッチングを決定するために使用されてきました。
    802.1q 10, VLAN 10 , . 4094 VLAN ( QinQ).
    EVC — 802.1q - , Service instance.
    Service-instance — VLAN .

    VLAN 10 PW , VLAN 10 VLAN 10 .
    10, xconnect . VLAN .

    Service Instance VLAN, QinQ CoS. VLAN, , , .
    : xconnect bridge-domain.

    - ( GE1/1 .1234 ) Service instance .

    , EVC, : Cisco .

  3. ここで、ACインターフェイス(サービスインスタンス)のサービスをVFIに接続する必要があります。このためには、ブリッジドメインが必要です。

     Linkmeup_R1(config)#bridge-domain 255 Linkmeup_R1(config-bdomain)# member vfi Blue Linkmeup_R1(config-bdomain)# member gigabitEthernet 3 service-instance 10 Linkmeup_R1(config-bdomain)# member gigabitEthernet 4 service-instance 12 

    数値255は一般に任意です(0〜4096)。たとえば、クライアントVLANに応じて選択できます。デバイスに対して厳密にローカルであり、どこにも送信されません。member

    コマンドを使用すると、さまざまなサービスをブリッジドメインにバインドできます。最初のコマンドは、VFI、他の2つのACインターフェースを接続します-これらはすべて同じブロードキャストドメインにあります。

    ブリッジドメインについてもっと知りたい...

    Bridge-domain - . brdige-domain , . VLAN, . , , L2- . VPLS.

    他のPEの構成...



    Linkmeup_R3
     Linkmeup_R3(config)#interface gigabitEthernet 3 Linkmeup_R3(config-if)#service instance 13 ethernet Linkmeup_R3(config-if-srv)#description Blue-D Linkmeup_R3(config-if-srv)#encapsulation default 

     Linkmeup_R3(config)#bridge-domain 255 Linkmeup_R3(config-bdomain)# member vfi Blue Linkmeup_R3(config-bdomain)# member gigabitEthernet 3 service-instance 13 



    Linkmeup_R4
     Linkmeup_R4(config)#interface gigabitEthernet 3 Linkmeup_R4(config-if)#service instance 11 ethernet Linkmeup_R4(config-if-srv)#description Blue-B Linkmeup_R4(config-if-srv)#encapsulation default 

     Linkmeup_R4(config)#bridge-domain 255 Linkmeup_R4(config-bdomain)# member vfi Blue Linkmeup_R4(config-bdomain)# member gigabitEthernet 3 service-instance 11 


これで、VPLSマティーニモードのセットアップが完了しました。
VPLS Martini Mode構成ファイル
VPLS Martini Mode. , . l2vpn vfi context Blue l2 vfi Blue . , member neighbor , Bridge-domain bridge-domain, vfi Service instance.

a VPLS Martini Mode .

どうした

1.この直後に、LDP接続が確立され、タグが交換されます。技術的には、LDPはブリッジドメインにバインドするだけで済みます-ACインターフェイスがある必要はありません(この動作はメーカーによって異なります)。

Linkmeup_R1とLinkmeup_R3の間の交換は次のとおりです。FEC63



はVPN番号です。ラベルが強調表示された0x18(または24)。



つまり、Linkmeup_R3がLinkmeup_R1に接続されたこのVFI ACインターフェイスでフレームを送信するとき、VPNタグ24を追加する必要があります。トランスポート



1-17 後でMACアドレスを調べることは正しいことでした。

2。:あなたはブルー-Aとのpingを実行する場合は、あなたが最初にARPリクエストを見ることができます(インターフェイスはGi1 Linkmeup_R1に)ダンプである




彼が放送されるので、その後、彼の後ろのあなたが唯一の違いで正確なコピーを見ることができます- VPNおよび輸送タグ:



1フレームでしたLinkmeup_R3に送信され、もう1つはLinkmeup_R4に送信されます。

3. MACテーブルには、Blue-AホストのMACアドレス(AABB-CC00-0700)-GE3.EFP10ポート(イーサネットフローポイントおよびサービスインスタンス10)の背後にあり、IPアドレス192.168.0.2(AABB -CC00-0300)-Pseudoport Blue.100401aインターフェースの背後



残念ながら、Pseudoportとpseudowireの関係を確立できませんでした。エンジニアはどのようにしてMACアドレスがどのPWから学習されたかを判断できますか?たとえば、show l2vpn vfiは明らかな一致を示しますが、これらの名前は重複しません。



誰かがPseudoportとpseudowire間の接続のトレースに成功した場合、この記事はもう少し完全になります。

当然、これはすべて厳密にローカルです。通常のスイッチと同様に、VPLSはMACや他のPEにシグナルを送信しませんが、Data Planeのフレームワーク内でのみ調査に取り組んでいます。

繰り返しますが、構成手順は次のとおりです。

  1. すべてのPEで同じVPN IDを使用してVFIを作成し、すべてのネイバーとの接続を構成します。
  2. ACインスタンスをサービスインスタンスにバインドします。
  3. ブリッジドメインを使用してVFIとサービスインスタンスを関連付けます。

だからマティーニモードを要約するには:





VPLS Kompella Mode (BGP)


隣人を見つける問題は、ジュニパーの従業員であるKiriti Kompellaによって解決されました。彼は同じ基準に依存していましたが、L3VPNでテストされMBGPはラベル配布プロトコルとしてより適していると判断しました。

一度VPNv4ルートに拡張されたルーティング情報交換スキームは、VPLSタグの配信に使用できます。ルートターゲットメカニズムは、ネイバーの自動検出に役立ちます。また、ルートリフレクターは、完全に接続されたトポロジを実装する問題を解決します。これは、マティーニモードでは深刻です。

VPLS Kompella-modeの別名はVPLS Auto-Discoveryです。これがまさにマティーニと異なる理由です。 VPLS BGPシグナリングを聞くこともできます。

コントロールプレーンには、主に次の2つの機能があります

。-近隣検出
-ルート情報を転送し、タグを交換します。


近隣探索または自動発見


ここで発明する新しいものはありませんでした。L3VPNですでに適用されている近隣検出スキームは、ここでも正常に機能します。

拡張コミュニティであるルートターゲットは、特定のVSIに属する主な兆候です。大まかに言えば、RTが一致する場合、それは1つのVSIを意味します。

厳密に言うと、受信したアナウンスのRTがVSIで設定されたものと一致する場合、このVSIはアナウンスからの情報を知りたいと考えます。

L3VPNのように、異なるVSI間の相互作用を柔軟に整理できます。しかし、だれもそうすることはめったにありません。

もう少し

各VSIには独自のRTがあります。

VPLSのBGPセクションには、独自のアドレスファミリがあります:L2VPN AFI(25)およびVPLS SAFI(65)
。VPLSドメインに参加できるすべてのPEを含む近隣を設定します。特定のVSIに縛られることなく、ここで注意してください。

RRが使用される場合、近傍はそれらとともにのみ上昇します。

BGPが特定のVSIのすべてのPEにL2プレフィックスを伝えたい場合、ここでも、特定のプレフィックスを受信するかどうかに関係なく、ここで設定されたすべてのネイバーにBGPアップデートを送信します。ここでは、すべてがL3VPNと同じです。vpnv4プレフィックスもすべてのPEに送信されます。

リモートPEは、このBGPアップデートを受信すると、NLRIフィールドでRTをチェックし、VSIで設定されたものと比較します。

一致が見つかった場合、PEはこのプレフィックスを目的のVSIにインポートします。そうでない場合は、破棄します。
これが自動検出の実装方法です。

つまり、これはVPLSドメインのすべての参加者を識別してリストをコンパイルするための別個のフェーズではなく、アナウンスに関して友人または敵を認識するための単なるメカニズムです。


プレフィックス渡し


一般的に、L2VPNプレフィックスはかなり人工的なものです。BGPアップデートを使用したPEは、VPLSドメインへの参加の事実とこの事実のラベルを報告します。しかし、これは大きな役割を果たしません。

BGPアップデートVPLSは、NLRIフィールドにアドレス、特にMACを送信しません。MACアドレスの学習は完全なデータプレーン機能であることに注意してください

ただし、異なるVSIのアナウンスを区別する必要があるため、使い慣れたルート識別機能も存在します。通常、AS番号とVPN IDから自動的に生成されます。

ただし、NLRIには何が渡されますか?ラベルとRDのみ?そうではありません:



正式には、プレフィックスはRD + VPLSドメイン内のノードのシリアル番号+ ブロックラベルです。


ラベル配布


一度人に餌をやりたい-魚をあげたい。一生餌をやりたい-釣り竿をあげたい」というフレーズを覚えていますか?VPLS Kompellaモードは、タグブロックメカニズムを使用してタグを強調表示します。1つのPEは他のPEに正確な値を伝えません-それを計算するための情報を提供します。

私は、なぜそれが必要なのかを理解するまで何かを理解しようとすることは、消化不良への道であり、余分な時間の浪費であることを知っています。この章の終わりに、なぜこのような奇妙なスキームが必要なのかを説明しますが、今のところは、私とキリチ・コンペルを信頼する必要があります-それが必要です。

テキストの前のビデオは、よりよく理解するのに役立つと考えられています。


設定に入らない場合、それはこのように見えます:

  1. VSI RD RT — , L3VPN. CSR1000V , . RD VSI . RT - , VSI . RD RT BGP Update.

  2. BGP - L2VPN VPLS, PE.
    - . , Route-Reflector' , RR ( RR)?

  3. VSIごとに、PEルーターはラベルスペースからブロックを割り当てます。そして、ここから面白いことが始まります。BGPアップデートでは、次の情報がローカルPEからリモートに送信されます。

    • RD
    • RT
    • VPLSドメイン内のノードのシーケンス番号。
    • MPLSラベルブロック

      • VE ID
      • VEブロックオフセット
      • VEブロックサイズ
      • ラベルベース

VE - VPLS Edge -VPLSネットワークの境界-VPLSが実行されているPEルータを思い出させてください

数式と意味についての真剣なことすべてにぶつかる前に、それを理解するために多くの時間と神経を費やしたので、私はそれが一般的にどのように機能するかを指で説明する義務があると思います。
RFCは無条件の明快さの源であると心から信じていますが、ニュートンの質量とエネルギーの等価性の式である場合と同じ形式である場合もあります。

L2VPNフレームがMPLSネットワーク側からPEに到着したとき、どのネイバーからであるかを正確に知る必要があります-これは、MACアドレスを調べるために必要です。マティーニモードの場合、PEは特定のVSIの各ネイバーに対するものですフレームの作成者を確認するために一意のラベルを報告する必要があります。

このような単純な図で、詳しく見てみ



ましょう。R1をメインにしましょう。

0. Kompellaモードでは、R1はラベルを隣接するR2およびR3に明示的に渡しません。
1.代わりに、このVCを識別するためにラベルを選択する必要がある範囲を伝えます。
2.各PEには、VPLSドメインに独自のシーケンス番号nがあります。あなたを知るラベルの数と範囲、ネイバーは発信サービスラベルを計算します。最初からn番目のアカウントをカウントします。つまり、R2は2番目(2)、R3は3番目(3)を取りました。
3. R2のR3、範囲3 2との先頭から数えてあるサービスラベルの一部R2及びR3は、R1、それらの数値を報告しており、それはまた、計算
4.同様に、自分の範囲R2およびR3を定義し、お互いに報告およびR1。そして、計算のサイクルが繰り返されます。
5.最終的に、誰もがこのVPLSの発信ラベルと着信ラベルの両方を知ることになります。

次に、2番目の反復:マタンがこの単純なアイデアの下にあるものをより深く掘り下げましょう。

VE IDは手動で構成されます-これはVPLSドメイン内のPEルーターの識別子(シリアル番号)です。同じVSI内で一意である必要があります。

LB - ラベルベース -この範囲の開始、使用することができる最初のラベル。
VBS - VEブロックサイズ -これは、ラベルブロックの長さ、またはより単純には、このVSIのラベルの最小数です。 Ciscoの場合、デフォルトは10です。Juniperの場合-8(2に減らすか、増やすことができます)。

ラベルセットは次のようになります:{LB、LB + 1、..、LB + VBS-1}。

一般的に、単純なスキームは:


例えばブルドーザから採取されたID 100~109 VE

場合PE:PE1に示されているこのアニメーションラベル配布プロセスでXをPE1にトラフィックを送信する場合、適切なXラベルを使用する必要があります

PE5の別の例を次に示し



ますラベルは、最小のVE-IDを持つネイバーに対して順番に(ブロックの最初の)強調表示されます。 2番目-2番目に大きいなど
すなわち、このような状況では不可能です



タグの選択数が少ない場合は、ヘルプオプションVBOは - ブロックオフセットVEブロックオフセット- 。複数のブロックを作成できます。そして、十分な数を持っていない隣人のために、ラベルは同じ原則に従って、新しいブロックから、新しいLBで配布されます。

必要なVBOは、式VBO =全体(VE-ID / VBS)* VBSによって計算されます。

VBOはラベルオフセットに関するものではなく、VEシリアル番号が含まれる範囲に関するものです。最初の範囲に含まれる場合、ラベルの最初のブロックが取得され、2番目の場合は2番目のラベルが取得されます。

したがって、複数のブロックが使用される場合、ラベルのセットは以前の{LB、LB + 1、... LB + VBS-1}と同じに見えますが、LBはVBOに依存します。つまり、束<LB、VBO、VBS>があります。



つまり、厳密な対応関係があります。VEID(VBO + n)のノードはラベル(LB + n)に対応します。

3番目の反復は、実際の例に基づいています。

10個のサイトを持つクライアントを取ります。標準のVBS-10があります。VE-IDはルーター番号に対応しています:PE1-101、PE2-102、... PE 10-110。PE1とPE5がどのように相互作用するかを検討してください。

1. PE1は次のように選択しますラベルベース1000-つまり、1000-1009-は、タグのブロックであり、近隣のタグは一度に1つを取得できます。

2. PE1はVBOを計算します。VBO =全体(101/10)* 10 = 100

3. PE1転送は、BGPアップデートのすべてのデータをそのすべてのネイバー(LB:1000、VBS:10、VBO:100、VE-ID:101)に収集します。さて、今は興味のないあらゆる種類のRD、RT。 PE1自体はまだラベルを考慮していません。近隣からの更新を待っています。

4. PE1からのBGPアップデートがPE5に到達します。彼のVE-ID:105。そして今、彼はPE1に対してこのVSI(BGPアップデートでもRTが指定されている)の発信ラベルを計算する必要があります。

5。PE5が最初に行うことは、PE1によってアナウンスされたブロックに収まるかどうかを確認することです。これはVBOが必要な場所です。不等式VBO≤PE5 VE-ID≤VBO + VBS-1を満たす必要があります。そして、100≤105≤109を実行します。説明します。PE1は、IDが100〜109の範囲(オフセット100、長さ10)であると計算しました。したがって、このセットのVE IDを持つすべてのノードは、最初のブロックからラベルを選択します。

6.したがって、PE5は発表された範囲内にあるため、さらに進んで、式(PE1 LB + PE5 VE-ID-VBO)=(1000 + 105-100)= 1005を使用して発信ラベルを計算できます。繰り返しになりますが、このすべての算術演算は、VBOからのVE-IDと同じ数だけ、LBからラベルをカウントする必要があることを意味します。そのため、PE5は、このVSIのL2フレームをPE1に送信するために、MPLSヘッダーにVPNタグ1005を挿入します。PE1は、タグ1005をまだ認識していません。このためには、彼のVE IDを知る必要があります。

7。 これで、PE5はすべてのネイバーにBGP更新も送信する必要があります(技術的には、手順7を待つ必要はありません。このシーケンスを例にとりました。PE5はすべてが設定されるとすぐにBGP更新を送信します)。


8. PE1は、(BGPアップデートから)ネイバーのVE-IDを学習すると、このネイバーとVSIの着信ラベルを計算できます。そして彼は同じことをします。


9.しかし、それだけではありません。これで、PE1はPE5への発信ラベルを計算する必要があります。そして、彼はこのためのすべてのデータを持っています。

(PE5 LB + PE1 VE-ID-VBO)=(5000 + 101-100)= 5001すなわち、PE1はPE5にVSIにフレームを送信インサートそこVPN-マーク5001

10 PE5着信計算:(LB + PE5 PE1は-ID VE - VBO)=(5000 + 101から100)= 5001

これは私が相互支援と呼んでいるものです!

残念ながら、このような複雑な言語でのみ、かなり明白で基本的に論理的なメカニズムを説明できます。
ラベルブロックメカニズムを理解するようにまだ進化していない場合は、上記の4つの画面でビデオに戻ります。

PE10の運命は興味深いものであり、他のすべてのPEの生活に影響を及ぼします。実際には、VE ID 110のブロック100-109には収まりません。彼のVBO110 =全体(110/10)* 10です。そして、LBとして彼は10,000を選びました

PE10がその計算結果をPE5に送信すると、不等式保持されません。110≤105≤119
この場合、新しいブロックを割り当てるプロセスが開始されます。

1. PE5選択新しいLB 5030VBSが既に選択されているPE10 - 10
2. PE10からのデータを既に持っている、


3. PE5はPE10に2つのプレフィックスを通知する新しいBGP更新を送信します。1つ目は古いもので、2つ目はLB:5030、VE ID:105、VBS:10、VBO:110です。
4.今回のVE-ID PE10は、新しい範囲110〜119に含まれます。


5.各PEは、PE10と通信するためにタグの2番目のブロックを割り当てる必要があります。計算は継続中です。

犯人からのラベルブロックメカニズムの綿密な説明:ジュニパー

そしてその瞬間、それは気味が悪いはずです。まず、すべてのPEで10個のタグを失いました(9個は2番目のブロックから使用されず、最初の1個のラベルはこのPE自体に使用されます)。第二に、VE-IDの割り当て方法、ラベルの合理的な使用方法に依存します。第三に、VE-IDとVE-rangeを自分の手で設定する必要があります!これらの手で、私たちはMPLSをいくつかのチームに上げました!

プロトコルがL3VPNのLDPまたはMBGPとの類推によってではなく、そのように実装される非常に良い理由がなければなりません。

あなたはこれについて何を知っているとRFC 4761は言いますか?
個別のBGPアップデートメッセージを使用して各
リモートPEにデマルチプレクサを送信するには、発信元PEが
N個のリモートPEに対してN 個のこのようなメッセージを送信する必要がありますこのドキュメントで説明するソリューションにより、
PE
は、N個の個別の
メッセージではなく、すべてのリモートPEのデマルチプレクサを含む単一の(共通の)更新メッセージを送信できます。これを行うと、
発信元PEと、
このアップデートを他のPEに配布することに関係する可能性のあるBGPルートリフレクタの両方で、コントロールプレーンの負荷が軽減されます

コントロールプレーンにかかる負荷は明確ではありません。

SDSMではいつものように、あなたは排他的に読んでください。そして今回は、おそらく、Runetレベルだけでなく、インターネット全体についても、このブロックシステムが発明された理由についての適切な説明を見つけることができませんでした。一生懸命笑うことはありませんが、周りのCCIEが誰もこの質問に答えなかったとき、私はCompelleに手紙を書きました

これはすべて、非常に望まれている自動検出機能(すでに上記で説明した)とL2の仕様、つまりMACアドレスの調査によるものです。また、ラベルブロックの割り当てについて誰も考えなかったL3VPNと比較して、すべてが明確になります。

それでは、L3VPNで自動検出はどのように機能しますか?いくつかのPEは、2つのことを全世界に伝えたいと思っています-最初に、それが知っているプレフィックスについて、そして次に、彼らが何のために意図されているかについて。そして、彼は誰にでもそれについて無差別に一度に伝えたいです-MBGPの隣人であるすべての人が彼の更新を受け取り、RTで彼らはこれらの発表が彼らにとって興味深いかどうかを理解します。いいえ-裁判所がない-は破棄されます。興味深い場合は、受信したプレフィックスとそのVPNタグがVPNルーティングテーブルに入力されます。

L2VPNについても同様です。1つを除いて:MACアドレス学習。 L3VPNのBGPはすべての人に同じラベルを伝えます-データパケットがどこから来たかは関係ありません。彼の主な関心事はそれを正しいクライアントインターフェイスに渡すことです。

しかし、それはVPLSではありません。将来特定のネイバーにデータを送信するには、まずそのネイバーに接続されているクライアントのMACアドレスを調べる必要があります。そして、これは、異なるラベルを持つフレームが異なるネイバーから来る場合にのみ実行できます。

そして、これは悪魔が横たわる場所です。BGPでは、プレフィックスのアナウンスと同時に自動検出が行われます

そして、最初に、VPLSドメイン内のすべての参加者を検索するために空の更新を最初に送信し、次に個別に同じことですが、それぞれに特定のラベルを付けた場合、BGPの場合はまったく問題になります。

そして、「第一に」(ふふふ)を受け入れても、「第二に」が表示されます。第二に、隣人の特定のラベルの発表が見つかりました。よしRRがなく、あるPEが別のUpdateにアドレス指定して送信できる場合。その後、各PEはメッセージとラベルのみを受信します。しかし、現実には、RRは(現実の)部分になり、RRのみの近傍を持つPEはUpdateをそれに送信し、それをすべての顧客に送信します。また、PEが複数の更新を送信すると、それらすべてがすべてに更新されます。彼の隣人のそれぞれは、彼のマークだけでなく、何もgiveめなかった他のすべての人も受け取ることになります。

残っているデバイスの何百ものアップデートが表示されるダンプを想像してください。

そして、ここでは、この問題に対する非常に洗練された解決策として、ラベルを自動的に計算するメカニズムが前面に出ています。ここでは、キリティ・コンペラの考えの柔軟性に敬意を表する価値があります。

このラベルブロックの概念が脳内で一貫したシナプスのセットに形成されるまで、私はそれを無視しました。彼女は不器用で時代遅れに見えた。DVMRPに少し似ています。しかし今、私はそのアイデアに触発され、どこにも明確な説明がないことに多少驚いていました。

また、RFC 6624のリリースにより、タグが失われた状況が多少修正されたことにも注意してください(ちなみに、Compellaも直接的な役割を果たしました)。
Label blocks and label values are managed by the PEs. As sites get
added and removed, labels are allocated and released. The easiest
way to manage these is to use fixed-size label blocks rather than
variable-size blocks, although the signaling described here supports
either. If an implementation uses fixed-size blocks, then allocating
a label for a new site may requiring allocating a new block;
similarly, freeing a label may require freeing a block.
If the implementation requires fixed-size blocks, there is probably a
default block size, but the implementation SHOULD allow the
administrator to choose a size. Larger label block sizes mean more
潜在的な「無駄な」ラベルであるが、シグナリングのオーバーヘッドが少ない
、管理者が制御したいトレードオフ

さらに、LDP-Signalling + BGP Auto-Discoveryモードでは、両方の方法の利点を組み合わせることができます。この非常に2段階のメカニズムがここに表示されますが、最初に近隣を調査し、次にラベルを送信します。


VPLS Kompella(BGPシグナリング)の練習


私たちは同じネットワークのままです:

以前の構成は再び初期構成にクリアされます。
初期構成ファイル。

  1. マティーニモードで行ったように、VFIを作成します。

     Linkmeup_R1(config)#l2vpn vfi context Blue Linkmeup_R1(config-vfi)#vpn id 63 Linkmeup_R1(config-vfi)#autodiscovery bgp signaling bgp Linkmeup_R1(config-vfi-autodiscovery)#ve id 101 

    VFI: Martini . BGP Autodiscovery + BGP Signalling , BGP Autodiscovery + LDP Signalling . — BGP.

    VPLS-. cisco — 10. ve range 11 100 ( ). Huawei — 10, (1-16000). Juniper — 8, (2,4,8, 16...)

    Route Distinguisher Route Target — . — VFI.

    mpls label range 1000 1999 . . , MPLS (LDP, TE, BGP) , , - - . .

     Linkmeup_R1(config)#mpls label range 1000 1999 Label range change will cause 5 labels in the old dynamic range [16-1048575] to go out of range 

    , .

  2. Service Instance:

     Linkmeup_R1(config)#interface gigabitEthernet 3 Linkmeup_R1(config-if)#service instance 10 ethernet Linkmeup_R1(config-if-srv)#description Blue-A Linkmeup_R1(config-if-srv)#encapsulation default Linkmeup_R1(config)#interface gigabitEthernet 4 Linkmeup_R1(config-if)#service instance 12 ethernet Linkmeup_R1(config-if-srv)#description Blue-C Linkmeup_R1(config-if-srv)#encapsulation default 

  3. VFI Service Instance.

     Linkmeup_R3(config)#bridge-domain 255 Linkmeup_R1(config-bdomain)#member vfi Blue Linkmeup_R1(config-bdomain)#member gigabitEthernet 3 service-instance 10 Linkmeup_R1(config-bdomain)#member gigabitEthernet 4 service-instance 12 

  4. , — BGP.

    Linkmeup_R3 Linkmeup_R4.

     Linkmeup_R1(config)#router bgp 64500 Linkmeup_R1(config-router)#neighbor 3.3.3.3 remote-as 64500 Linkmeup_R1(config-router)#neighbor 3.3.3.3 update-source Loopback 0 Linkmeup_R1(config-router)#neighbor 4.4.4.4 remote-as 64500 Linkmeup_R1(config-router)#neighbor 4.4.4.4 update-source Loopback 0 

    Address-Family L2VPN VPLS , L2VPN. , VFI Blue, .

     Linkmeup_R1(config-router)#address-family l2vpn vpls Linkmeup_R1(config-router-af)#neighbor 3.3.3.3 activate Linkmeup_R1(config-router-af)#neighbor 3.3.3.3 send-community extended Linkmeup_R1(config-router-af)#neighbor 3.3.3.3 suppress-signaling-protocol ldp Linkmeup_R1(config-router-af)#neighbor 4.4.4.4 activate Linkmeup_R1(config-router-af)#neighbor 4.4.4.4 send-community extended Linkmeup_R1(config-router-af)#neighbor 4.4.4.4 suppress-signaling-protocol ldp 

    , Route Reflector' — , Auto-Discovery . PE- MPLS — 100, VPLS- — 20, L2VPN RR — 2, PE RR. , ?

    send-community extended — L3VPN Extended Community (RT).
    suppress-signaling-protocol ldp — LDP.

    BGP VPLS, :



    — RD, : AS:VPN ID. — , .

    Linkmeup_R3 Linkmeup_R4.

    PE



    Linkmeup_R1
     Linkmeup_R1(config)#l2vpn vfi context Blue Linkmeup_R1(config-vfi)#vpn id 63 Linkmeup_R1(config-vfi)#autodiscovery bgp signaling bgp Linkmeup_R1(config-vfi-autodiscovery)#ve id 101 Linkmeup_R1(config)#mpls label range 1000 1999 Linkmeup_R1(config)#bridge-domain 255 Linkmeup_R1(config-bdomain)#member vfi Blue Linkmeup_R1(config-bdomain)#member gigabitEthernet 3 service-instance 10 Linkmeup_R1(config-bdomain)#member gigabitEthernet 4 service-instance 12 Linkmeup_R1(config)#interface gigabitEthernet 3 Linkmeup_R1(config-if)# service instance 10 ethernet Linkmeup_R1(config-if-srv)#description Blue-A Linkmeup_R1(config-if-srv)#encapsulation default Linkmeup_R1(config)#interface gigabitEthernet 4 Linkmeup_R1(config-if)# service instance 12 ethernet Linkmeup_R1(config-if-srv)#description Blue-C Linkmeup_R1(config-if-srv)#encapsulation default Linkmeup_R1(config)#router bgp 64500 Linkmeup_R1(config-router)#neighbor 3.3.3.3 remote-as 64500 Linkmeup_R1(config-router)#neighbor 3.3.3.3 update-source Loopback 0 Linkmeup_R1(config-router)#neighbor 4.4.4.4 remote-as 64500 Linkmeup_R1(config-router)#neighbor 4.4.4.4 update-source Loopback 0 Linkmeup_R1(config-router)#address-family l2vpn vpls Linkmeup_R1(config-router-af)#neighbor 3.3.3.3 activate Linkmeup_R1(config-router-af)#neighbor 3.3.3.3 send-community extended Linkmeup_R1(config-router-af)#neighbor 3.3.3.3 suppress-signaling-protocol ldp Linkmeup_R1(config-router-af)#neighbor 4.4.4.4 activate Linkmeup_R1(config-router-af)#neighbor 4.4.4.4 send-community extended Linkmeup_R1(config-router-af)#neighbor 4.4.4.4 suppress-signaling-protocol 



    Linkmeup_R3
     Linkmeup_R3(config)#l2vpn vfi context Blue Linkmeup_R3(config-vfi)#vpn id 63 Linkmeup_R3(config-vfi)#autodiscovery bgp signaling bgp Linkmeup_R3(config-vfi-autodiscovery)#ve id 103 Linkmeup_R3(config)#mpls label range 3000 3999 Linkmeup_R3(config)#bridge-domain 255 Linkmeup_R3(config-bdomain)#member vfi Blue Linkmeup_R3(config-bdomain)#member gigabitEthernet 3 service-instance 13 Linkmeup_R3(config)#interface gigabitEthernet 3 Linkmeup_R3(config-if)#service instance 13 ethernet Linkmeup_R3(config-if-srv)#description Blue-D Linkmeup_R3(config-if-srv)#encapsulation default Linkmeup_R3(config)#router bgp 64500 Linkmeup_R3(config-router)#neighbor 1.1.1.1 remote-as 64500 Linkmeup_R3(config-router)#neighbor 1.1.1.1 update-source Loopback 0 Linkmeup_R3(config-router)#neighbor 4.4.4.4 remote-as 64500 Linkmeup_R3(config-router)#neighbor 4.4.4.4 update-source Loopback 0 Linkmeup_R3(config-router)#address-family l2vpn vpls Linkmeup_R3(config-router-af)#neighbor 1.1.1.1 activate Linkmeup_R3(config-router-af)#neighbor 1.1.1.1 send-community extended Linkmeup_R3(config-router-af)#neighbor ppress-signaling-protocol ldp Linkmeup_R3(config-router-af)#neighbor 4.4.4.4 activate Linkmeup_R3(config-router-af)#neighbor 4.4.4.4 send-community extended Linkmeup_R3(config-router-af)#neighbor 4.4.4.4 suppress-signaling-protocol ldp 



    Linkmeup_R4
     Linkmeup_R4(config)#l2vpn vfi context Blue Linkmeup_R4(config-vfi)#vpn id 63 Linkmeup_R4(config-vfi)#autodiscovery bgp signaling bgp Linkmeup_R4(config-vfi-autodiscovery)#ve id 104 Linkmeup_R4(config)#mpls label range 4000 4999 Linkmeup_R4(config)#bridge-domain 255 Linkmeup_R4(config-bdomain)#member vfi Blue Linkmeup_R4(config-bdomain)#member gigabitEthernet 3 service-instance 131 Linkmeup_R4(config)#interface gigabitEthernet 3 Linkmeup_R4(config-if)#service instance 11 ethernet Linkmeup_R4(config-if-srv)#description Blue-B Linkmeup_R4(config-if-srv)#encapsulation default Linkmeup_R4(config)#router bgp 64500 Linkmeup_R4(config-router)#neighbor 1.1.1.1 remote-as 64500 Linkmeup_R4(config-router)#neighbor 1.1.1.1 update-source Loopback 0 Linkmeup_R4(config-router)#neighbor 3.3.3.3 remote-as 64500 Linkmeup_R4(config-router)#neighbor 3.3.3.3 update-source Loopback 0 Linkmeup_R4(config-router)#address-family l2vpn vpls Linkmeup_R4(config-router-af)#neighbor 1.1.1.1 activate Linkmeup_R4(config-router-af)#neighbor 1.1.1.1 send-community extended Linkmeup_R4(config-router-af)#neighbor 1.1.1 suppress-signaling-protocol ldp Linkmeup_R4(config-router-af)#neighbor 3.3.3.3 activate Linkmeup_R4(config-router-af)#neighbor 3.3.3.3 send-community extended Linkmeup_R4(config-router-af)#neighbor 3.3.3 suppress-signaling-protocol ldp 



    mpls label range, .

MPLS Kompella Mode .
VPLS Kompella Mode . , Martini .

どうした

0. CE間の一貫性はすでに現れてい



ます1. BGPはセッションを確立し、そのアップデートを送信しました。



Updateでは、NLRIに関心があります



このLinkmeup_R1は、RT65400を使用したVPLS宛てのトラフィックのVPNタグを計算する方法をLinkmeup_R3に指示します:63。 CE-ID(別名VE ID)= 101、VBO = 100、VBS = 10、LB = 1000。



これはLinkmeup_R1を報告Linkmeup_R3ある:CE-ID = 103、VBO = 100、VBS = 10、LB = 3000



そしてLinkmeup_R4がLinkmeup_R1報告:CE-ID = 104、VBO = 100 = 10 VBS、LB = 4000

利きLinkmeup_R4にLinkmeup_R1をLinkmeup_R3と同じです

PEのラベルテーブルを見ずに、どのラベルが割り当てられるかを計算しましょう。

Linkmeup_R3→Linkmeup_R1
VBO ≤ Local VE ID ≤ VBO+VBS-1 : 100≤103≤109.
: LB + Local VE ID — VBO = 1000+103-100=1003.
1003 Linkmeup_R3 , Linkmeup_R1 VFI.

Linkmeup_R1→Linkmeup_R3
VBO ≤ Local VE ID ≤ VBO+VBS-1 : 100≤101≤109.
: LB + Local VE ID — VBO = 3000+101-100=3001.
3001 Linkmeup_R1 , Linkmeup_R3 VFI.

Linkmeup_R1→Linkmeup_R4
VBO ≤ Local VE ID ≤ VBO+VBS-1 : 100≤101≤109.
: LB + Local VE ID — VBO = 4000+101-100=4001.

Linkmeup_R4→Linkmeup_R1
VBO ≤ Local VE ID ≤ VBO+VBS-1 : 100≤104≤109.
: LB + Local VE ID — VBO = 1000+104-100=1004.

Linkmeup_R4→Linkmeup_R3 Linkmeup_R3→Linkmeup_R4.
Linkmeup_R4→Linkmeup_R3
VBO ≤ Local VE ID ≤ VBO+VBS-1 : 100≤104≤109.
: LB + Local VE ID — VBO = 3000+104-100=3004.

Linkmeup_R3→Linkmeup_R4
VBO ≤ Local VE ID ≤ VBO+VBS-1 : 100≤103≤109.
: LB + Local VE ID — VBO = 4000+103-100=4003.

2. PEで状況を確認します。





まあ、すべてが正しいようです。残念ながら、実際の生活ではそのような美しい数字は見られないでしょう。しかし、一方で、それらを特に読む必要はありません-通常、マークが強調表示されている場合は、どちらが重要ではありません。

3.したがって、Blue-AからBlue-Dにpingを送信すると、ICMP-RequestにVPNタグ3001、ICMP-Replyに1003が表示されます。



今回は、何らかの理由でWiresharkがMPLSでICMPを認識しました。



それでもshow mpls l2transport vc detailおよびshow l2vpan atom vc detailコマンドを使用して詳細を表示できますshow bgp l2vpn vpls rd X ve-id Y block-offset Z





コマンドを使用すると、このネイバーからのラベルブロックに関するすべての情報を表示できます。ラベルブロックの使用率を確認してください。









セットアップコマンドの複雑さと数はマティーニモードの場合よりも多く見えますが、次の点に注意する必要があります

。1)これは1回限りのセットアップです。VPLSドメインに新しいPEを追加するときは、それを設定するだけです(RRを使用する場合)。Martiniは、このVPLSドメインの既存のすべてのPEを通過する必要があります。
2)ほとんどの場合、構成は同じです-VE IDのみが変更されます。BGPセクションは通常、コピーと貼り付けによって取得されます(RRを使用する場合)。

もう一度、構成手順を繰り返します。

  1. VFIを構成し、VPN ID、プロトコル、VE IDを示します。
  2. ACインターフェイスでサービスインスタンスを作成します。
  3. ブリッジドメインを介してVFIとサービスインスタンスを接続します。
  4. BGPセクションでは、アドレスファミリL2VPN VPLSのRRでネイバーフッドを上げます。

ジュニパーの例でのVPLS Kompellaモードの理論と実践:ロシア語のロシア語ラベル計算の構成と例:cisco自体




マティーニvsコンペラ


その結果、マティーニモードよりもBGPコンペラモードを使用する利点は何ですか?


しかし、すべてがとても明白ですか?より深く掘ります。

ドメイン間(Inter-AS)VPNは、Martiniが階層VPLSを編成するのにそれほど難しくありません -VPLSドメインでPEデバイスの完全に接続されたトポロジを作成する必要はありません。 H-VPLSについては後で詳しく説明します。これを弱点から削除できます。

その積極的活用についてはKompellaで自動検出:、その後、2つの観測がある

まず、外部のコンフィギュレーションツールを実装するのに長い時間のために使用されているが。また、これらの外部ツールは、構成を分析することにより、黒人エンジニアの手作業なしで、近隣を見つけてノードのスクリプトを準備できます。
多くの独自の制御システムがこの機能をサポートしています。そして、これが本当に必要とされるネットワークは、通常、単一ベンダーであり、そのようなNMSによって管理されます。

第二にRFC 4762はマティーニモードに自動検出を導入します。 RADIUSまたは同じBGPを介して実装できます。

たとえば、cisco機器を使用するとl2vpn vfiセクションautodiscovery LDPシグナリングBGPコマンドLDP + BGP自動検出モードを設定できます。一方では、ラベル配布の単純で冗長な方法があり、他方では、自動的にネイバーを検索するメカニズムがあります(ただし、BGPセクションは残す必要があります)。それはともかく、マティーニには隣人を見つけるという課題に対する解決策があり、グリフィンドールには別のポイントが与えられています。



タグへの慎重な姿勢、設定とデバッグの容易さとともに、マティーニモードは部外者のように見えないだけでなく、実際にはオペレーターから長い間求められてきました。そして今日、それは圧倒的な市場シェアを占めています。



最後に、もう1つのVPLS最適化により、生活が少し楽になります。


階層VPLS(H-VPLS)


当初、VPLSはフラットテクノロジーです。すべてのネイバーは同じランクです。 KompellaモードRRが完全に接続されたトポロジの問題を再び効果的に解決する場合、キャリアネットワークのMartiniモードは労働力の危機を引き起こす可能性があります。すべてのエンジニアはリモートLDPセッションのみを構成します。 O(n ^ 2)問題の複雑さを思い出させてください:n *(n-1)/ 2-nはノードの数です。



また、このトポロジでは、イーサネットブロードキャストフレームという別の問題も隠されます。各PEパケットは、このPEのネイバーと同じ回数だけ繰り返されます。

しかし、ここでBGP-shnyルートリフレクターのようなものを適用できますか?

できます。救いへの道はH-VPLS(階層VPLS)であり、RFC 4762で説明されています

H-VPLSは、VPLSドメインルーターをPE-rsとMTU-sの2つのランクに分割します。

PE-rs - PE-ルーティングとスイッチング。これは、VPLSネットワークのコアです。これらは、通常のPEのように機能する大きな生産腺です。他の名前PE-rs:PE-POPn-PE

S-MTU - マルチテナントユニット-スイッチング。これらは、片側でPE-rsに接続するより弱いデバイスである場合があります。そしてもう一方には、CEが接続されています。他の名前MTU-s:u-PEPE-CLE



MTU-sには通常、2つのPE-rsへのアップストリームインターフェイスがあります-フォールトトレランスのため。しかし、あるかもしれません。 MTU-sをPE-rsに接続するためのメカニズム:MPLS PWまたはQinQ。ここではMPLSについて説明しているため、最初の方法のみを検討します。

PE-rsは通常のPEのように相互に作用し、完全に接続されたトポロジを形成し、水平分割ルールを使用します。

PE-rsとMTU-sが相互作用すると、PE-rsはMTU-sからのPWをACインターフェイス、つまり通常のクライアントとして認識します。つまり:

-PE-rsがすべての隣接PE-rsおよびすべての接続されたMTU-sに送信するMTU-sから受信したすべて-PE-rsは、接続されたすべてのMTU-sに送信する隣接PE-rsから
何を受信しますか?他のPE-rsは送信しません。

したがって、各MTU-sは2つ(または1つ)のネイバーとのみ通信を維持する必要があり、PE-rsの数は、それらの間に完全に接続されたトポロジを編成するのに十分小さいです。新しいノードを追加するときは、そのノードとアップストリームPE-rsのみを構成する必要があります。

Inter-AS VPNの組織では、H-VPLSも機能します。たとえば、互いに接続された2つのASBRは、より高い階層レベルのPE-rsである場合があります。

したがって、H-VPLSは3つの問題の解決策です。


だから!PE-rsのMACテーブルはどうですか?通常のVPLSではPでしたが、H-VPLSではPEになったため、クライアントデータを処理する必要があります-MACアドレスを調べます。そして、それに接続されているすべてのMTUから。そして同時に、クライアントフレームの配布と複製に従事します。

コントロールプレーンに階層を導入することで、データプレーンにも階層を強制的に作成したことがわかりました。1つのスケーラビリティの問題に対処して、H-VPLSは新しい問題を作成しました。この場合のMACアドレスカウントは数千から数十万に達する可能性があり、フラッディングの問題は新しいレベルに上昇し、CPUの負荷は大幅に増加する可能性があります。しかし、H-VPLSはこの状況に対するソリューションを提供していません。

ただし、低価格のアクセスレベルのデバイスは、明らかに、この簡単な不快感を完全に払ってくれます。

さて、設定してみましょうか?


H-VPLSの練習


留保やデュアルホーミングで生活を複雑にすることはありません。代わりに、独自のトポロジ内に残りますが、Linkmeup_R1はMTU-sになり、Linkmeup_R2はPE-rsになります。



構成全体を再度破棄します。
初期構成ファイル。

技術的には、H-VPLSはKompellaモードに基づいて実装することもできますが、そのような必要性はないため、マティーニモードから始めています。

  1. まずは明確なPE-rsから始めましょう。これで、Linkmeup_R2、Linkmeup_R3、およびLinkmeup_R4がPE-rsとして機能します。VFIで完全に接続されたトポロジがそれらの間で構成されます。

     Linkmeup_R2(config)#l2vpn vfi context Blue Linkmeup_R2(config-vfi)# vpn id 63 Linkmeup_R2(config-vfi)# member 3.3.3.3 encapsulation mpls Linkmeup_R2(config-vfi)# member 4.4.4.4 encapsulation mpls 

    Linkmeup_R2にはインターフェイスがないため、ブリッジドメインは必要ありません。

    Linkmeup_R3およびLinkmeup_R4の構成



    Linkmeup_R3
     Linkmeup_R3(config)#l2vpn vfi context Blue Linkmeup_R3(config-vfi)# vpn id 63 Linkmeup_R3(config-vfi)# member 2.2.2.2 encapsulation mpls Linkmeup_R3(config-vfi)# member 4.4.4.4 encapsulation mpls Linkmeup_R3(config-vfi)#bridge-domain 255 Linkmeup_R3(config-bdomain)# member vfi Blue Linkmeup_R3(config-bdomain)# member gigabitEthernet 3 service-instance 13 Linkmeup_R3(config-bdomain)#interface GigabitEthernet3 Linkmeup_R3(config-if)# service instance 13 ethernet Linkmeup_R3(config-if-srv)# description Blue-D Linkmeup_R3(config-if-srv)# encapsulation default 



    Linkmeup_R4
     Linkmeup_R4(config)#l2vpn vfi context Blue Linkmeup_R4(config-vfi)# vpn id 63 Linkmeup_R4(config-vfi)# member 2.2.2.2 encapsulation mpls Linkmeup_R4(config-vfi)# member 3.3.3.3 encapsulation mpls Linkmeup_R4(config-vfi)#bridge-domain 255 Linkmeup_R4(config-bdomain)# member vfi Blue Linkmeup_R4(config-bdomain)# member gigabitEthernet 3 service-instance 11 Linkmeup_R4(config-bdomain)#interface GigabitEthernet3 Linkmeup_R4(config-if)# service instance 13 ethernet Linkmeup_R4(config-if-srv)# description Blue-D Linkmeup_R4(config-if-srv)# encapsulation default 




  2. Linkmeup_R1では、Linkmeup_R2の前にPWを作成します。

     Linkmeup_R1(config)#l2vpn xconnect context Blue_10 Linkmeup_R1(config-xconnect)# member GigabitEthernet3 service-instance 10 Linkmeup_R1(config-xconnect)# member 2.2.2.2 6310 encapsulation mpls 

    最初のコマンドはxconnect構成モードに入り、次の2つはACインターフェイスとVCチャネルを接続します。

    ID 6310は任意ですが、PE-rsで設定するIDと一致する必要があります。ここで、VPN IDのインジケータとして63、およびこのMTU-sのVCシリアル番号を選択しました。

    インターフェイス構成は同じままです。

     Linkmeup_R1(config-xconnect)#interface GigabitEthernet3 Linkmeup_R1(config-if)# service instance 10 ethernet Linkmeup_R1(config-if-srv)#encapsulation default 

    Gi4インターフェースについても同じことを行います

     Linkmeup_R1(config)#l2vpn xconnect context Blue_10 Linkmeup_R1(config-xconnect)# member GigabitEthernet4 service-instance 12 Linkmeup_R1(config-xconnect)# member 2.2.2.2 6320 encapsulation mpls Linkmeup_R1(config-xconnect)#interface GigabitEthernet4 Linkmeup_R1(config-if)# service instance 12 ethernet Linkmeup_R1(config-if-srv)#encapsulation default 


  3. Linkmeup_R2側でこれらのPWを終了することは残ります:

     Linkmeup_R2(config)#bridge-domain 255 Linkmeup_R2(config-bdomain)# member vfi Blue Linkmeup_R2(config-bdomain)# member 1.1.1.1 6310 encapsulation mpls Linkmeup_R2(config-bdomain)# member 1.1.1.1 6320 encapsulation mpls 

これで、H-VPLSマティーニモードの基本セットアップが完了しました。
H-VPLS構成ファイル



どうした PWは上昇しました:



Linkmeup_R2のVFIはそれらについて知っています:



MACはよく勉強しています:



H-VPLSでは、すでにこの記事の範囲を超えている多くの質問が表示されます:

  1. ご予約 2つのPE-rsへのデュアルホーミングMTU-s。非常に一般的なデザイン。
  2. MPLS PWの代わりに、アクセス時にQinQを使用したH-VPLS。
  3. ヒンジ保護技術とVPLSネットワーク経由のSTP BPDU転送。

次の2つのドキュメントは、これらの質問のカーテンをわずかに開きます。H-VPLSPE-rs QinQアクセスの冗長性JuniperチュートリアルルーターでのVPLSマルチホーミングの構成



そして今、陰湿なL2ブロードキャストメカニズムについてのいくつかの物語。

ケースA


一般的には、ケースでさえありませんが、通常どのように機能するかです。

素晴らしい顧客、大量のトラフィック。そして、ひどいことが起こり、MACアドレステーブルがクリアされます。そして、何百もの悪臭を放つメガビットがVPLSドメインのすべての端に急ぎます。また、以前はこのクライアントのブランチのトラフィックのみが通過していた路線では、すべてすべてすべてが飛ぶようになりました。

この状況の潜行性は、これらがQoSのキューを瞬時に詰まらせる短いバーストであり、チャネル幅に関係なく損失を引き起こすという事実にあります。また、機器にはこれらを修正する時間がなかったので、インターフェースの統計にこれらの急増すら表示されません。

ケースB


実際、それはすでに説明されており、ケースAのように見えます。今回は、詳細を説明します。このようなネットワークは次の



とおりです。ご覧のとおり、大きなクライアントのブランチは、帯域幅が100 Mb / sの狭い専用チャネルを介して接続されています。そして、彼らの目で彼のように。

しかし、何かひどいことが起こり、MACアドレステーブルはクリアされます。また、このVSIのすべてのトラフィックは、宛先MACアドレスが現在調査されていないため、ブロードキャストされます。また、たとえば、このクライアントの総トラフィックが400 Mb / sであった場合、これはネットワーク全体で400 Mb / sのフラッディングであり、これはリースされたチャネルの100 Mb / sに留まります。その後、MACの再学習中に短期間のトラフィック損失が発生します。また、大規模なネットワークの場合、これには数分かかる場合があります。

ケースB


ケースBを展開しましょう。1つのクライアントだけでなく、スイッチのリングにもアクセスできるようになりました。そして、それらの間の1行がRRLスパンの形式で作成されます。私たちの広大な距離のスケールを考えると、状況はそれほどまれではありませんが、むしろ典型的です。


一般に、すべてはケースBの場合と同じですが、同時に、ループから保護するための何らかの種類のソリューション(STPまたは何らかの独自のプロトコル)があります。その本質は同じです-余分なポートをブロックします。また、メッセージの有無によって判断する接続に問題がある場合は、ロックを解除します。

今、私たちの考えの次のステップは洪水です。それは狭い線をあふれさせ、パケット損失につながります。このトラフィックに多数の高優先度CS6 / CS7パケットがある場合、プロトコルフレームは失われます。そしてサーカスが始まります-それはカーンのトポロジーを考えているので、プロトコルはリンクを復元します、そして何が起こりますか?100 Mb / sのトラフィックが開いているポートに突入し、状況が悪化しています。

これはすべて、ネットワークのより大きなセクションに固執し、さらに進んでいくことができます。

ケースD


この手紙は少しでも話しています。そのような場合はそのようには起こりえないからです。これがそのようなネットワークです。



この場合の設計では、2つのPE間に追加のPWがスローされ、ループ保護プロトコルを通知することを想定しています(ケースBのように)。より正確には、直接リンクを経由するものと、MPLSネットワークを経由するラウンドアバウトの2つがあります。

つまり、1つのブロックされたポートで区切られたスイッチの物理的なリングを取得します。
はい、著者はこれがネットワークの構築方法ではないことを知っています。はい、著者は結果を認識しています。いいえ、作者はデザインの開発に参加していません。

そしてもう1つの詳細-異なるリングには、それぞれ同じクライアントの接続ポイントがあり、同じVSIがそれらに送信されます。

次に、このような巨大なトラクターが到着し、バケットが2か所で一度に光学部品を破損するまで、そのバケットを一点ずつ地面に沈め始めた状況を想像してください。実際、平らなリングについて覚えておけば十分であり、状況はもはや不可能ではないようです。

そのため、同じリングの2つの端が一度に切断されると、PEが分離されるため、ループ保護プロトコルのサービス1を含むすべてのPWがダウン状態になります。プロトコルは、リングが現在開いている(実際に開いている)と見なし、両方のリングでブロックされたインターフェイスを復元します。もう待ち伏せを感じますか?2つのPEで終わる2つのスイッチチェーンがあり、同じVSIに関連付けられたインターフェイスに接続されています。2つの開いた物理リングは、1つの閉じた論理リングに融合されます。また、1つのPEが隔離されてネットワークの残りの部分に害を及ぼさない場合、2番目のPEは完全に戦い、ブロードキャストトラフィックの悪意のある送信を開始します。



ケースD


2つの中央PEを持つVPLSネットワークがあります。たとえば、これはDCIネットワークです。 DC1は2つのPE(いわゆるデュアルホーミング-アクティブ/アクティブモード)に接続されています。つまり、両方のアームがトラフィックを送受信できます。同時に、スイッチングは内部では発生しません。したがって、ループは除外されます。


両方の方向のトラフィックが同じ肩を通り抜ける限り、すべては問題ありません。非対称パスの場合、興味深いことが始まります。たとえば、DC1へのトラフィックは左肩から来て、右に出ます。

一般に、状況は正常です。しかし、L2ではありません。 PE1は他のDCのMACアドレスを調査します。これは非常にすばらしいことですが、DC1からのトラフィックはPE2に到達しますが、これはMACアドレスの夢ではありません。したがって、受信したトラフィックとハローシチュエーションABをブロードキャストします。



はい、これらの問題の一部は不適切な設計です。はい、問題の可能性と重大度を減らすことができる特定の「解決策」がありますが、イーサネットは-水のように-どこでも漏れます。そして主な問題-放送メカニズム-は、世界が征服した素晴らしいプロトコルの残りの部分のアキレス腱です。

さて、おそらく、あなたは世界のすべてのトラブルがネパールの昨年の地震を含むL2によるものであり、L3VPNを提供することでそれから逃れる必要があると思うでしょう。まあ、どこかあなたが正しい。上記のすべての状況を経験した私のように、誰も彼を取り除きたくありません。

しかし、これは逃げ道のないものです。そして、イーサネットのブロードキャストメカニズムの形で問題の根本を取り除くことができない場合、それを処理する方法を考えることができます。

次回は彼についてお話します-EVPN。MACアドレスを学習する機能をコントロールプレーンに転送し、これにBGPを使用する革新的なソリューション。




便利なリンク


記事で使用されているすべての資料を1か所に蓄積します。優しく:高度な知識の集中。


コンセプトは

リュック・ド・ゲイン。MPLSの基礎1版イナ・ミネイ、ジュリアン・ルセック。MPLS対応アプリケーション:新興開発および新技術第3版

また、ネットワークに関する最高の本のリストがここにあることを思い出させてください

この記事で使用されているすべての略語は、linkmeup用語集に記載されています。

謝辞

»Dmitry Figol、Alexander Clipper、Dmitry JDimaによる校正資料とコメント。
»ラボを組織するためのアントン・クロチコフ。
「イラストのダリア・コルマノバ。
»私が出張に行かせてくれる妻と子供たち。

Source: https://habr.com/ru/post/J315028/


All Articles