前回は、MPLSを解析する際に石を裏返さないでおきました。 そして、これはおそらく良いことです。
しかし、これまでのところ、実生活でのアプリケーションのみが幽霊のように描かれています。 そしてこれは悪いです。
この記事では、状況の修正を開始します。 一般に、読者にはL3VPN、L2VPN、Traffic Engineeringという一連の3つの記事が待っています。ここでは、実際にMPLSが何のためにあるのかを完全に説明しようとします。
したがって、linkmeupはもはや大規模な、しかし唯一の会社をサポートするためのアウトソーシングではなく、プロバイダーです。 私たちの光学系は国のすべての部分に通じているので、連邦政府のプロバイダーと言うことさえできます。 そして、多くのお客様はもはや高速インターネットアクセスを望んでおらず、VPNを求めています。
今日、これらの自由な欲求を満たすために、ネットワーク(MPLSが既にセットアップされている)で何をする必要があるかを考えます。
従来のビデオ:
インターネット上の2つのリモートサイトの相互作用を整理する方法 パブリックアドレスがある場合は非常に簡単です-このためにIPが考案されました。 彼らは直接通信できます。 いずれにせよ、インターネット上の2つのポイントを接続するには、2つのパブリックアドレスが必要です-両側に1つ。 また、プライベートアドレス(10 / 8、172.16 / 20、192.168 / 16)がある場合はどうなりますか?
それから彼らは一方で「つまずく」、そして他方で「出る」。 そして、NATは大事なものです。
したがって、VPNがあります。 仮想プライベートネットワークは、外部ネットワーク、特にインターネットを介してプライベートネットワークに何かを接続できるようにする一連のテクノロジとプロトコルです。
たとえば、linkmeupのTomskブランチは、VPNの
問題で行ったように、インターネット上のVPNを使用してモスクワの本社に接続でき
ます 。
つまり、VPNを介して他のブランチが隣の部屋にあるように見え、コード、スイッチ、またはルーターを介してそれらに接続されます。 したがって、ノードはパブリックアドレスではなくプライベートアドレスで通信できます。
この場合、プライベートアドレスを持つ個人データは、パブリックアドレスを持つパケットにパッケージ化され、インターネットをトンネルで飛行します。
これは、クライアント自体がその構成と昇格を懸念するため、
クライアントVPNと呼ばれ
ます 。 その唯一の仲介者はインターネットです。
私たちは第7号でそれを作りました、そしてそれについてlinkmeupブログで私たちの読者
による巨大な
記事があります-Vadim Semenov。
別の可能なオプションは
プロバイダーVPNです。 この場合、プロバイダーはクライアントに複数の接続ポイントを提供し、ネットワーク内でそれらの間にチャネルを構築します。
その後、クライアントはプロバイダーにこのチャネルを支払うだけで済みます。
プロバイダーVPNは、クライアントVPNとは異なり、特定のサービス品質を提供できます。 通常、契約の締結時に
SLAが署名され、遅延レベル、ジッター、パケット損失の割合、サービスが利用できない最大期間などが規定されます。 また、クライアントVPNで、インターネット上ですべてが落ち着いていて、データが完全な順序で到着することを望めば、プロバイダーに尋ねる人がいます。
今回はプロバイダーVPNに焦点を当てます。
ネットワークトラフィックのルーティングを確保する必要がある場合、第3レベルのVPN-L3VPNについて話します。 L2VPNは次のリリースのトピックです。
VRF、VPNインスタンス、ルーティングインスタンス
VPNに関しては、トラフィックの分離の問題が発生します。 他の人はそれを受信してはならず、あなたのプライベートアドレスは、彼らが意図されていない場所、つまりインターネット上、私たちのプロバイダーのネットワーク内、および他のクライアントのVPN上に現れてはいけません。
インターネット(または好みに応じてOpenVPN)を介してGREトンネルを設定すると、データは自動的に分離されます-インターネット上のプライベートアドレスは誰にも見えず、トラフィックは間違った手に渡りません(標的型攻撃の問題を提起しない限り)。
つまり、2つのパブリックアドレス間に特定のトンネルがあり、プロバイダーまたは他の中継トンネルとは決して接続されていません。 2つの異なるVPN-2つの完全に異なるトンネル-およびトラフィックのみがトンネルを通過します。
質問はプロバイダーVPNでは異なります-同じバックボーンネットワークは数百のクライアントのデータを伝送する必要があります。 ここにいる方法は?
いいえ、もちろん、ここではGRE、OpenVPN、L2TPなどを使用できますが、運用エンジニアが行うことは、トンネルを設定し、数百万本の構成ラインをシャベルするだけです。
しかし、問題はより深いです-そのようなユニバーサルチャネルをすべての人のために編成するという問題は二次的な問題です。主なことは、同じルータに接続された2つのクライアントを分離する方法です。 たとえば、両方が10.0.0.0/8ネットワークを使用している場合、それらの間でトラフィックがルーティングされないようにするにはどうすればよいですか?
ここで、
VRF-仮想ルーティングおよび転送インスタンスの概念に進みます。 ここでの用語は確立されていません。シスコでは-これはVRF、Huaweiでは-VPNインスタンス、Juniperでは-ルーティングインスタンスです。 すべての名前には生命権がありますが、本質は同じです-仮想ルーター。 これは、一部のVirtualBoxの仮想マシンのようなものです。1つの物理サーバー上で実行されている仮想サーバーが多数あり、1つの物理ルーター上に多数の仮想ルーターがあります。
このような各仮想マーシャライザーは、本質的に別個のVPNです。 ルーティングテーブル、FIB、インターフェイスのリスト、およびその他のパラメーターは重複していません-厳密に個別で隔離されています。 まったく同じ方法で、物理ルーター自体から隔離されます。 ただし、仮想サーバーと同様に、仮想サーバー間で通信が可能です。
VRF-ルーターに対して厳密にローカルです-VRFは外部に存在しません。 したがって、一方のルータのVRFは、もう一方のルータのVRFとはまったく接続されていません。
シスコの機器に関するすべての例を検討しているため、それらの用語を順守します。VRF Lite
これは、MPLSなしでプロバイダーVPNを作成する名前です。
ここでは、たとえば、同じルーター内でVPNを構成できます。
ここには、TARのRoboticsとC3PO Electronicの2つのクライアントがあります。
インターフェイスFE0 / 0およびFE0 / 1はVPN C3PO Electronicに属し、インターフェイスFE1 / 0およびFE1 / 1はVPN TARのRoboticsに属します。 単一のVPN内では、ノードは互いに問題なく通信します-何も通信しません。
これは、プロバイダーのルーター上でのルーティングテーブルの外観です。
C3PO電子ルートはTARS 'Roboticsネットワークに入らず、その逆も同様です。
ここのクライアントインターフェイスは、特定のVRFに関連付けられています。
1つのインターフェイスを2つのVRFのメンバーまたはVRFとグローバルルーティングテーブルの両方のメンバーにすることはできません。
VRF Liteを使用すると、ネットワークの異なるエンド間でVPNを
簡単に転送できます。 これを行うには、すべての中間ノードで同じVRFを構成し、それらをインターフェイスに正しくバインドする必要があります。
つまり、R1とR2は、グローバルルーティングテーブルの1組のインターフェイス、VRF TARS 'Roboticsの別のペア、およびVRF C3PO Electronicの3番目のペアを介して互いに通信します。 もちろん、これらはサブインターフェイスにすることができます。
同様にR2-R3の間。
したがって、互いに交差しない2つの仮想ネットワークが取得されます。 この事実を考えると、このような各ネットワークでは、接続を確保するためにIGPプロセスを上げる必要があります。
この場合、物理ルーター、TARS 'Robotics、C3PO Electricのそれぞれに1つのプロセスがあります。 したがって、それらのそれぞれは、独自のインターフェースを介して他とは別個に通知されます。
データ転送について説明すると、入力インターフェイスR1がそのメンバーであるため、TARSのロボティクスネットワークのノードから到着したパケットは、すぐに対応するVRFに入ります。 このVRFのFIBによれば、出力インターフェイスを介してR2にルーティングされます。 R1とR2の間のセクションでは、最も一般的なIPパケットが送信されますが、これらは異なるVPNに属しているとは思われません。 唯一の違いは、異なる物理インターフェイスを通過するか、802.1qヘッダーで異なるタグを運ぶことです。 R2は、TARSのRobotics VRFのメンバーでもあるインターフェイスでこのパッケージを受け入れます。
R2は、目的のFIBでパケットをクックし、IGPに従ってさらに送信します。 そして、パケットがネットワークの反対側に到着するまで続きます。
ホストは、受信したパケットが特定のVPNに属していることをどのように判断しますか? 非常に簡単:このインターフェイスは特定のVRFに結び付けられています(「バインド」)。
既にお気づきかもしれませんが、これらのインターフェイスには、図の対応する色のリングが付いています。
少し想像力をつけてください:
バッグが灰色のリングを通過する
と、灰色の側に切り替わり、灰色に塗られます。 さらに、グレーのルーティングテーブルに対して既にチェックされます。
同様に、パケットがゴールドリングを通過するとき、高貴な金メッキで覆われ、ゴールドルーティングテーブルに対してチェックされます。
同様に、出力インターフェイスはVPNに関連付けられており、対応するルーティングテーブルはそれらの背後にあるネットワークを認識しています。
ルーティングテーブルについて説明することはすべて
FIBに適用されることに
注意してください。各VPNには独自のFIBがあります。
ルータ間ではパケットは
ペイントされません 。 さまざまなVPNのパケットは、異なる物理インターフェイスまたは一度に1つずつ送信されるため、混在しませんが、異なるVLANタグを持ちます(各VRFには独自の出力サブインターフェイスがあります)。
ここでは、シンプルで透過的なVPNです。クライアントに対して最もプライベートなネットワークが形成されています。
ただし、2〜3個のクライアントと2〜3個のルーターがある限り、この方法は便利です。 1つの新しいVPNは、各ノードの新しいVRF、新しいインターフェイス、リンクIPアドレスの新しいプール、新しいIGP / BGPプロセスを意味するため、まったくスケーリングしません。
接続ポイントが2〜3ではなく10であり、さらに冗長性が必要な場合、クライアントでIGPを上げて、各ノードでルートを提供するのはどのようなものですか。
そして、ここでMPLS VPNに行きます。
MPLS L3VPN
MPLS VPNを使用すると、次の不快な手順を取り除くことができます。
1)接続ポイント間の各ノードでVRFを構成します
2)各ノードの各VRFに個別のインターフェイスを設定します。
3)各ノードの各VRFに個別のIGPプロセスを設定します。
4)各ノードの各VRFのルーティングテーブルを維持する必要性。
どうして?
そのようなネットワークの例としてMPLS L3VPNが何であるかを検討してください。
したがって、これらは私たちのTARS 'Roboticsクライアントの3つのブランチです。モスクワの本社とノボシビルスクとクラスノヤルスクのオフィスは、ファイバーに非常に離れています。 そして、すでにチャンネルがあります。
中央のクラウドは私たち-linkmeup-L3VPNサービスを提供するプロバイダーです。
一般的に言えば、顧客としてのTARS Roboticsは、L3VPNの編成方法に違いはありません。たとえ少なくとも
SLAに適合するようにパッケージを電車で運んだとしてもです。 ただし、この記事の枠組みの中で、もちろん、MPLSはネットワーク内で機能します。
データプレーンまたはユーザーデータ転送
まず、MPLS VPN VRFでは、クライアントネットワークが接続されているルーター上でのみ作成されると言わなければなりません。 この例では、これらはR1とR3です。 中間ホストは、VPNについて何も知る必要はありません。
そして、それらの間で何らかの形で異なるVPNのパケットの分離された送信を提供する必要があります。
MPLS VPNが提供するアプローチは次のとおりです。
前の記事で説明したように、MPLSラベルに従ってバックボーンネットワーク内のスイッチングが実行され、特定のVPNに属するかどうかは別のラベル(追加ラベル)によって決まります。
詳細:
1)ここで、クライアントはネットワーク172.16.0.0/24からネットワーク172.16.1.0/24にパケットを送信します。
2)ブランチ(クライアントネットワーク)内を移動しますが、最も一般的なIPパケットであり、ソースIPは172.16.0.2、宛先IPは172.16.1.2です。
3)ブランチネットワークは、プロバイダーのネットワークを介して172.16.1.0/24に到達できることを認識しています。
これは、最も一般的なパケットです。ジャンクションは、プライベートアドレスを持つクリーンなIPを経由するためです。
4)次に、R1(プロバイダーのルーター)はこのパケットを受信し、特定のVRFに属していることを認識し(インターフェイスはVRF TARSに関連付けられています)、このVRFのルーティングテーブルを確認します(パケットの送信先のブランチ)。これをMPLSパケットにカプセル化します。
このパケットのMPLSラベルは、特定のVPNに属していることを意味します。 これは
サービスタグと呼ばれます。
5)次に、ルーターはR3にパケットを送信する必要があります。その背後には目的のクライアントオフィスがあります。 当然、MPLSによると。 これを行うには、R1を終了するときに
MPLSトランスポートラベルがハングします。 つまり、現時点では、パケットに2つのラベルがあります。
基本的なMPLSリリースで説明されるようにMPLSパケットはまさに雲を通り抜けます。 特に、トランスポートラベル-SWAPラベルはR2に置き換えられます。
6)結果として、R3はパケットを受信し、
トランスポートラベルを破棄し、
サービス上でそれがTARS 'Robotics VPNに属していることを理解します。
7)すべてのMPLSヘッダーを削除し、パケットが最初にR1に到達したときにインターフェイスに送信します。
鉄と炭素の図は、パケットがPC1からPC2への移動方向にどのように変換されるかを示しています。
MPLSの利点を覚えていますか? ラベルの下にあるものを誰も気にしないという事実。 したがって、バックボーンネットワーク内では、クライアントがどのアドレススペースを持っているか、つまり、どのIPパケットがMPLSヘッダーの下にあるかは関係ありません。
パケットはラベルによってスイッチングされ、IPアドレスによってルーティングされないため、中間ノードでVPNルーティングテーブルを維持する必要はありません。
つまり、このような便利なMPLSトンネルを取得します。これは、後で説明するように、自動的に通知されます。
そのため、R1とR3の間(つまり、MPLSクラウド内)で、VPNが何であるかを誰も理解していません。VPNパケットはラベルに沿って宛先に移動します。 これにより、各ノードでVRFを上げる必要がなくなり、それに応じて、ルーティングテーブル、FIB、インターフェイスのリストなどを維持できます。
パケットの追加のパス全体が最初のMPLSルーター(R1)で決定されることを考慮すると、各VPNに個別のルーティングプロトコルは必要ありませんが、出力ルーターを見つける方法については疑問が残ります。
トラフィックの送信方法をよりよく理解するには、パケット内のラベルの意味を調べる必要があります。
MPLSラベルの役割
VRF-Liteを使用して元のスキームに戻ると、問題はIPパケット(TARS 'Robotics VPNメンバーシップインジケーター)の灰色がホスト内にのみ存在し、別のホストに転送されると、この情報がVLANタグで転送されることです。 そして、中間ノードでsinterfaceを拒否すると、おridgeが始まります。 そして、これはすべての善のために行われなければなりません。
これがMPLSシナリオで発生するのを防ぐために、イングレスLSR
は特別なMPLSラベルをパケットに付けます-
サービス -それはVPN識別子です。 このラベルによる出力LSR(最後のルーターはR3)は、IPパケットがTARSのRobotics VPNに属していることを理解し、対応するFIBを調べます。
つまり、VLANに非常に似ていますが、最初のルーターだけがこれを処理する必要があるという違いがあります。
しかし、サービスタグに基づいて、MPLSネットワークでパケットを切り替えることはできません。パケットをどこかで変更すると、Egress LSRはどのVPNに属しているかを認識できなくなります。
そしてここにタグスタックがありますが、前回の号で非常に慎重に避けました。
サービスラベルは内部-スタックの最初のラベルであり、トランスポートラベルはまだその上にハングしています。
つまり、パケットは、2つのラベル(上部のトランスポートと下部のサービス)でMPLSネットワーク上を移動します)。
2つのタグが必要な理由、1つのサービスでできないのはなぜですか? たとえば、Ingress LSRの1つのラベルで1つのVPNを設定し、別のラベルで別のVPNを設定します。 したがって、途中でさらに切り替えられ、出力LSRはパケットを送信するVRFを正確に認識します。
一般的に言えば、そうすることは可能であり、動作しますが、各VPNのトランクネットワークでは個別のLSPになります。 また、たとえば、R1からR3までの20個のVPNのバンドルがある場合、20個のLSPを作成する必要があります。 そして、維持するのがより難しく、ラベルがあふれており、これはトランジットLSRに余分な負荷をかけます。 そして、厳密に言えば、これが我々がここから逃げようとしていることです。
さらに、同じVPNの異なるプレフィックスに対して、異なるラベルが存在する場合があります。これにより、LSPの数が大幅に増加します。
20個すべてのVPNを一度にトンネリングする1つのLSPを作成する方が簡単ですか?
輸送ラベル
したがって、トランスポートラベルが必要です。 彼女はスタックのトップです。
LSPを定義し、各ノードで変更します。
追加(PUSH)入力LSRおよび削除(POP)出力LSR(または
PHPの場合は最後から2番目のLSR)が追加されます。 すべての中間ノードで、あるノードから別のノード(SWAP)に変わります。
LDPとRSVP-TEは、トランスポートラベルの配布に関与しています。 また、前回の記事でこれについて非常によく話しましたが、今はやめません。
一般に、トランスポートラベルは、FECという1つの詳細を除いて、すべてが明確であるため、ほとんど関心がありません。
ここでのFECは、パケットの宛先ネットワーク(クライアントのプライベートアドレス)ではなく、クライアントが接続されているMPLSネットワーク内の最後のLSRのアドレスです。
これは非常に重要です。LSPはそこにあるあらゆる種類のVPNを認識していないため、プライベートルート/プレフィックスについて何も知らないからです。 しかし、彼はすべてのLSRのループバックインターフェイスアドレスをよく知っています。 したがって、このクライアントプレフィックスがどのLSRに接続されているかは、BGPから通知されます。これがトランスポートラベルのFECになります。
この例では、R1はクライアントパケットの宛先アドレスに基づいて、R3につながるLSPを選択する必要があることを理解する必要があります。
少し後でこの問題に戻ります。
サービスマーク
スタックの一番下のラベルはサービスです。 これは、特定のVPNのプレフィックスの一意の識別子です。
これはIngress LSRによって追加され、Egress LSR自体が最終的に削除するまでどこでも変更されません。
サービスタグ
のFECは、VPNのプレフィックス、または大まかに言って、元のパケットの宛先サブネットです。 次の例では、FECはVRF C3POの場合は192.168.1.0/24、VRF TARSの場合は172.16.1.0/24です。
つまり、イングレスLSRは、このVPNにどのラベルが割り当てられているかを知る必要があります。 これがどのように起こるかは、私たちのさらなる研究の主題です。
これは、異なるVPNでパケットを送信するプロセス全体がどのように見えるかです。
2つの異なるVPNの場合、サービスマークは異なることに注意してください-それらに応じて、出力ルーターはパケットを送信するVRFを見つけます。
この場合のトランスポートは、1つのLSP-R1R2R3を使用するため、両方のVRFパケットで同じです。
用語
行き過ぎるまで、用語を紹介する必要があります。
MPLS VPNに関しては、いくつかの新しい用語が登場しますが、それらは非常に明白です。
CE- カスタマーエッジルーター -プロバイダーのネットワークに接続されているクライアントエッジルーター。
PE- プロバイダーエッジルーター - プロバイダーエッジルーター。 実際、CEはそれに接続されています。 VPNはPEで始まり、PEで終わります。 その上に、VPNに関連付けられたインターフェイスが配置されます。 サービスマークの割り当てと削除を行うのはPEです。 PEは、入力LSRおよび出力LSRです。
PEは、各VPNのルーティングテーブルを知っている必要があります。これは、プロバイダーネットワーク内とクライアントインターフェイスの両方で、パケットの送信先を決定するのは彼らであるためです。
P- プロバイダールーター -接続ポイントではない中継ルーター-VPNパケットは、追加の処理なしで通過します。つまり、トランスポートラベルに従って単純に切り替わります。 P VPNルーティングテーブルやサービスラベルを知る必要はありません。 PにはVPNにバインドされたインターフェイスはありません。実際、P-PEの役割はVPNごとに異なります。 1つのVPNでR1とR3がPEであり、R2がPである場合、別のVPNでは役割を変更できます。たとえば、次の図では、青のルーターの役割は緑のクライアントと紫のクライアントで異なります。ラベルスタック -1つのパケットにハングアップしたMPLSヘッダーのセット。それぞれが何らかの役割を果たします。現実には、スタック上で6つ以上のタグをサポートしているベンダーはほとんどありません。多くの用語がありますが、それらを紹介するには時期尚早です。
一般に、データの送信方法、つまりForwading Planeの仕組みになりました。要約すると、PEルーターは2つのラベルをクライアントトラフィックに掛けます-内部サービスのラベルは、旅行の最後まで変化せず、最後のPEはパケットが属するVRFを理解し、外部トランスポートはパケットがプロバイダーのネットワークを介して送信される-このラベルは各Pルーターは、最後のPEまたは最後から2番目のPで削除されます。サービスタグとVRFの存在により、異なるVPNのトラフィックは、ルーター内とチャネルの両方で互いに分離されます。そして実際、今、私たちは多くの不穏な質問を策定することができます:1)MPLSラベルはどのように配布されますか?2)VPNごとにルーティング情報はどのように配信されますか?3)異なるVPNのルートはどのように相互に分離され、混合されていませんか?これらの質問やその他の質問に以下で回答します。コントロールプレーンまたはサービス(ルーティング)情報の送信
それらに答えて、データパケットが正常に送信される環境全体がどのように準備されているかについて説明します。ルーティングプロトコル
したがって、2種類のネットワークとそれらの間のジョイントがあります。- クライアントIPネットワーク。
- MPLSが実行されているプロバイダーバックボーンネットワーク。
これらのネットワークの境界はPE上にあります。つまり、半分はすでにクライアントであり、もう半分はプロバイダーです。民衆の知恵が存在することは何もありません。PEをどのように調整しても、それは顧客を見ます。MPLSは、トランクインターフェイスでのみ設定されます。L3VPNについて話していることを思い出してください。そして、ここでIP接続の世話をする必要があります。そして今、私たちには多くの制限があります。どの領域のどのプロトコルが有用であるかを理解します。まず、プロバイダーのバックボーンネットワーク内で基本的なIP接続を提供する必要があります。そのため、すべてのループバックアドレス、リンクネットワーク、サービスプレフィックス、および場合によっては外部のいくつかの出口が認識されます。これを行うには、IGP(ISIS、OSPF)を開始します。すでに接続されたネットワークの最上部でMPLSが上昇しています。したがって、私たちはバックボーンネットワークの有用性を確実にしました。第二に、ブランチ内のクライアントにはルーターが1つではなく、ネットワークがある場合があります。これらのネットワークは、少なくともそれら自体の内部でルーティングする必要もあります。明らかに、自分のネットワーク内で、クライアントは好きなようにルーティング情報を自由に配布できます。プロバイダーとして、これに影響を与えることはできません。これにより、顧客ネットワーク内のルートの転送が保証されます。第三に、クライアントは何らかの方法でプロバイダーにルートを伝える必要があります。 CE-PEのジャンクションでは、クライアントとプロバイダーは、使用するプロトコルについて合意する必要があります。ただし、クライアントには独自のIGPプロトコルはほとんどありません。確かにこれはOSPF / ISIS / RIPです。したがって、通常、プロバイダーは先に進み、クライアントにとって便利なものを選択します。ここでは、このクライアント対話プロトコルがVPNで機能し、プロバイダーのIGPと交差しないことを理解する必要があります。これらは異なる独立したプロセスです。多くの場合、BGPはこのジャンクションで機能します。さまざまな属性によってプレフィックスを柔軟にフィルタリングできるためです。したがって、プロバイダーは顧客ルートを受け取ります。これまでのところ、すべてが明確になっています。たとえそうでなくても
4番目、これは最も興味深い-トランクネットワークを介して1つのブランチのルートを別のブランチに転送することです。同時に、彼らは道に沿って失われてはならず、見知らぬ人と混同されず、安全で健全に届けられなければなりません。ここで、BGPプロトコルの拡張-MBGP- マルチプロトコルBGP(MP-BGPと呼ばれることが多い)が役立ちます。今から彼について話します。しかし、まず、何がどこで機能するかを確認してください。, .
, .
1) , (IGP ).
2) , (IGP/BGP ).
3) , ( ). (VPN).
4) , — (BGP), ( — PUSH Label — )
, . , — . , .
5) , . , . . ( — SWAP Label). — - .
6) (POP Label) — ( VPN).
7) (IGP/BGP ).
8) , (IGP ).
, — PE/Ingress LSR, — PE/Egress LSR, — P/Intermediate LSR.
PHP .
MBGP
ここで2つの質問に答えます。1つのPEから別のPEへのプロバイダーネットワークでのルートの送信方法と、分離の保証方法です。一般に、これまでのところ、ルートをリモートノードに転送するためにBGPほど優れたものは発明されていません。ルート自体を転送する柔軟性、ルート選択に影響を与えるツールの大規模さ、およびルートとコミュニティを送受信するためのポリシー、グループアクションを大幅に簡素化しますルート上。突然忘れてしまった場合、それは通常のBGP更新メッセージです。NLRIセクションでは、プレフィックス自体を伝達します。他のセクションでは、そのパラメータの質量。また、MPLS L3VPNを実装するときに彼の助けに頼ります。したがって、そのミドルネームはMPLS BGP VPNです。これがどのように起こるか覚えていますか? BGPは、TCP経由でポート179へのネイバーとのセッションを確立します。これにより、直接接続されたルーターではなく、いくつかの希望があるルーターをネイバーとして選択できます。これがIBGPの仕組みです。バックボーンネットワーク内で「1対1」接続が想定されます。同じネットワークにつながる複数のルートがホストに到着すると、BGPは単にそれらから最適なルートを選択し、ルーティングテーブルにインストールします。つまり、一般に、VPNルートをネットワーク経由でもう一方の端に転送するのに費用はかかりません。BGPは、1つのノード上のVRFからルートを取得し、それらを別のノードに配信し、そこで正しいVRFにエクスポートする必要があります。唯一の落とし穴は、BGPが当初、世界中で一意であると想定されているパブリックアドレスでの作業を指向していることです。そして、不正クライアントは通常、ルートをプライベートネットワーク(RFC1918)に転送したいので、運が良ければ、他のVPNのネットワークとプロバイダー自体の内部アドレススペースの両方を簡単に交差できます。つまり、たとえば、R3が10.10.10.10/32のネットワークへの2つのルート(TARSのRoboticsから、C3PO Electronicから)を受信した場合、標準で規定されているように最高のパフォーマンスで1つだけを選択します。同じネットワークに。当然、これは私たちに適していません。次の2つの条件が満たされる必要があります。1)異なるVPNのルートは一意であり、PE間の送信中に混在しませんでした。2)エンドポイントでのルートは、正しいVRFに送信する必要があります。これらの問題に対するエレガントな解決策が見つかりました。ポイント1から始めましょう-ルートの一意性。この例では、TARSのRoboticsの10.10.10.10/32は、C3PO Electronicの10.10.10.10/32とは異なるものでなければなりません。BGPは非常に柔軟なプロトコルです(正当な理由により、BGPは唯一の外部ゲートウェイプロトコルになっています)。簡単に拡張でき、いわゆるアドレスファミリの助けを借りて、IPv4だけでなく、IPv6とIPXにもルートを転送できます(ただし、必要なのはだれか)。何か新しいものを伝えたい場合は、アドレスファミリを用意してください。IETFが新しいアドレスファミリを作成しました。そして彼は彼に名前VPNv4(またはVPN-IPv4)を与えました。ルート識別子
異なるVPNルートを区別するために、通常のIPv4プレフィックスは、長さ8バイトの特別なプレフィックス-RD- Route Distinguisherによって補完されます。C3POからのルートは次のようになります:64500:100: 10.10.10.10/32、およびTARSからのルート:64500:200: 10.10.10.10/32そして今、これらは完全に異なるものであり、BGPプロセスが互いに区別することができます。RDとは何か、どのように定義するかを見てみましょう。RDには3つのタイプがあります:Inspired。最初の部分はタイプ自体(0、1、または2)です。第二部-管理者フィールドは常にパブリックパラメータです-パブリックIPアドレスまたはパブリックAS番号。 RDがネットワーク内だけでなく、惑星内でも一意になるようにする必要があります。つまり、管理部分では、IPアドレス172.16.127.2またはAS 65001が誤って表示されることはありません。これは、VPNを別のプロバイダーのネットワークに転送する必要がある場合に便利です-AS VPN)。3番目の部分 -割り当てられた番号-これはあなたが割り当てるものです。この部分により、RDはネットワーク内で一意になり、実際にはVPNを定義できます。ご覧のとおり、RDは惑星内で一意です。次に、通常のIPv4プレフィックス10.10.10.10/32をVPNv4に変換する2つの例を示します。0:64500:100:10.10.10.10/32
または
1:100.0.0.1:100:10.10.10.10/32.
ネットワーク内で両方のアプローチを同時に使用する場合でも、どちらを選択してもかまいません。 異なるルーター上の1つのVRFでも。 RDの主なタスクは、プレフィックスを分離することです。
つまり、非常に単純な言語の場合:設定する内容はまったく問題ではありません。主なことは、BGPが異なるVPNのルートを混同しないことです。
体系化は誰も気にしませんでしたが。
通常、タイプ0を使用し、管理フィールドはプロバイダーのAS番号であり、ユーザーは自分で専用の番号を選択します。 RDをセットアップするとき、最初の「0:」または「1:」(タイプRD)は短縮され、
64500:100および
100.0.0.1:100のようになり
ます 。
シスコでは、タイプ0および1の使用を許可しています。
はい、RDは手動でセットアップし、その独自性に注意する必要があります。 ただし、他のRDがすでにそのようなRDを持っているかどうかをルーター自体が追跡することはできません。 もしそうなら、それは同じVPNではありませんか?
そして、私たちは何を得ますか?
1)新しいネットワークのCEアナウンスから取得。 合意したとおり、10.10.10.10 / 32とします。 PEは、このルートを特定のVRFのルーティングテーブルに追加します。 通常のIPv4ルートはルーティングテーブルに保存されることに注意してください。VPNv4はありません。 これは必要ありません。前述したように、VRFは相互に分離されています。これは仮想ルーターではありますが、別個のものです。
2) BGPは、新しいVPNプレフィックスが現れたことに気付きました。 VRF構成から、使用するRDを確認します。 RDおよび新しいIPv4プレフィックス、VPNv4プレフィックスからコンパイルします。 次のようになります。
C3PO:64500:100:10.10.10.10/32または:
TARS:64500:200:10.10.10.10/32
3) BGPアップデートの作成時に、ルーターは受信したVPNv4プレフィックス、次ホップアドレス、およびその他のBGP属性をそこに挿入します。 しかし、とりわけ、
ラベル情報をNLRIフィールドに追加します。 このラベルはルートにバインドされます。より正確には、VPNv4プレフィックスはFECであり、このFECとラベルの束がNLRIに渡されます。
英語では、これは
ラベル付きルートと呼ばれます。ロシア語では、おそらく
ラベルでマークされた
ルートです 。 そのため、このPEは、このネットワーク上のCEからIPパケットを受信した場合、そのような
サービスラベルを割り当てる必要があることを近隣に通知します。
ネクストホップアドレスにも注意してください。これはループバックPEです。 これは非常に真実です。入力PEは、受信したデータパケットを送信するために必要な出力PEを知る必要があります。つまり、ループバックと少なくともフラッドを知る必要があります。
4)次に、VPNv4ファミリセクションで設定されたすべてのネイバーにBGPアップデートが渡されます。
5)リモートPEはこのアップデートを受信し、NLRIでこれが通常のIPv4ルートではなく、VPNv4であることを確認します。 はい、覚えておいてください。2つのルートが異なるクライアントから同じネットワークに来る場合、それらは異なるRDを持っているため混同されません。 次に、出力PEは、
このルートをエクスポートするVRFを決定し 、実際にそれを実行します。 そのため、ルートは目的のVRFのルーティングテーブルとFIBに表示され、そこからクライアントのネットワークに残ります。
現在、PEは10.10.10.10/32のネットワークに向かうデータパケットをCEから受信すると、このVPNのFIBでサービスラベル(22)とネクストホップ(1.1.1.1)を見つけます。 IPをMPLSにカプセル化してから、次のホップのトランスポートラベルを探すために既にグローバルなFIBを調べます。
トランスポートラベル自体は、以前と同様に、LDPまたはRSVP-TEプロトコルによって配信され、サービスラベルはMBGPによって配信されます。
通常のBGPとMP-BGPのNLRIフィールドを比較します。
ルートターゲット
5番目の段落で、イタリック体で
「このルートをエクスポートするVRFを決定する」というフレーズを選択したのは無駄ではありません。 この単純さの後ろにもう一つのものがあります
-RT- ルートターゲット 。
実際、RDの唯一の役割は、BGPの寿命を多様化すること、つまりルートを一意にすることです。 VRF用に設定されているという事実にもかかわらず、それは一意の識別子ではなく、すべての接続ポイントでこの値は異なる場合さえあります。 したがって、PEはどのVRFでRDベースのルートを固定するかを決定できません。
はい、それは完全にBGPの伝統ではありません-送信されたアドレスを解析するには、どこかで発表する前にそれを分析します。 これらの目的のために、ポリシーがあります。
つまり、従来のBGPでは、ルートをそれぞれ個別にVRFにエクスポートするためのポリシーを切断する必要があります。 そして、各ルートを接続する場所を手動でフィルタリングします。
簡素化への第一歩は、コミュニティの使用です。 あるPEから別のPEにルートを送信する場合、特定のコミュニティを設定できます。VRFごとに独自のコミュニティを設定し、リモートコミュニティの対応するVRFに既にエクスポートできます。 すでに快適で説得力があります。
MBGPはさらに進んでいます-コミュニティのアイデアは、ルートターゲットの概念に合わせて開発されました。 実際、これは同じコミュニティです-RTは拡張コミュニティ属性でも渡され、すべてのポリシーのみが自動的に機能します。
RT形式は、通常の拡張コミュニティとまったく同じです。 例:
64500:100つまり、RDの最初のタイプに似ています。 これは、RDとRTが頻繁に混同される理由の一部です。
VRFの片側では、RTがルートをエクスポートするように構成されています。これは、リモートPEに移動するRTです。 一方、インポートするように設定されているのは同じRT値です。 そしてその逆。
通常、タスクが1つのクライアントのVPNサービスを単純に編成することである場合、エクスポートとインポートのRTはすべての接続ポイントで一致します。
例に戻ります。
R1はR3にネットワーク10.10.10.10/32(TARS 'Robotics)へのルートを送信し、ラベルと他のすべてのパラメーターを示します。特に、RTを拡張コミュニティ属性に書き込み、このVRF:64500:200に設定されたルートをエクスポートします。
R3はこのアナウンスメントを受信し、コミュニティをチェックし、64500:200を確認し、設定から、このRTを持つルートをVRF TARSにインポートする必要があることを知っています。
きれいですか? エレガント? しかし、それだけではありません。 ここでもBGPの柔軟性が明らかです。 RTメカニズムを使用すると、同じVPN内および異なるVPN間の両方で、必要に応じてルートをインポートできます。
以下に2つのシナリオを示します。
1)クライアントは、それぞれのスタートポロジではなく、スタートポロジを整理したいと考えています。 つまり、中央ポイントはすべての接続ポイントへのルートを知っている必要がありますが、それらはセンターへのルートのみを知っている必要があります。 したがって、分割されたクライアントネットワーク間の相互作用は、セントラルノードを介して実行されます。 クライアント側で何もすることなく便利です!
解決策:各ブランチには、エクスポート用の独自のRTがあります。 ブランチでは、インポート用のRTは、セントラルノードで設定されたエクスポート用のRTです。つまり、センターからルートを受信できます。 同時に、インポートする他のブランチのRTはありません。したがって、彼らはルートを直接確認しません。 しかし、中央では、RTはすべてのブランチのインポート用に構成されています。つまり、すべてをすべて受信します。
2)2つのVPNに加えて、3番目のR2D2が登場したとします。 彼にはいくつかのタスクがありますが、C3PO Electronicに必要なマイクロプロセッサー、テンプレート、追加モジュールなどのファームウェアを備えたサーバーもサポートしています。 同時に、彼は自分のサーバーで世界に輝きたくはありませんが、クライアントがプロバイダーのネットワークを介してアクセスを提供することを望んでいます。
そして、RTを使用して、異なるVPN間の相互運用性を提供できます。 これを行うには、C3PO Electronicで、そのようなRTをインポート用に構成します。これは、VPN R2D2でエクスポート用に指定されたものです。 そして、それに応じて、逆も同様です。
確かに、この場合、使用されるサブネットが交差するかどうかを監視する必要があります。 実際、すべてのRDおよびRTにもかかわらず、BGPはVRFの各サブネットへのルートを1つだけ選択します。
以下との間でルートを転送するプロセスを確認する必要があります。
練習する
伝統的に、実際には、これまでの理論のすべてを繰り返します。
VRF-Lite
それでは、単純なものから複雑なものに移りましょう。 1つのクライアントが1つのルーターに2つの接続を持っている状況から始めましょう。
最初に、以前と同じようにすべてを設定してみましょう。
Linkmeup: Linkmeup(config)
C3PO_1: C3PO_1(config)
C3PO_2: C3PO_2(config)
ブランチ間のPingが表示されます-彼らはお互いを見ます。
ただし、同時に、たとえば、ループバックR1アドレスが表示されます。
したがって、彼らはプロバイダーのネットワーク全体を見、他のクライアントのネットワークを見ます。
したがって、VRFを設定します。
Linkmeup(config)
このVRFにクライアントを配置するには、インターフェースをVRFにバインドする必要があります。
Linkmeup(config)
ip vrf forwarding C3POコマンドを実行した後、IOSはインターフェイスからIPアドレスを削除したため、再構成する必要があることに注意してください。 これは、グローバルルーティングテーブルから指定されたサブネットを削除するために発生しました。
Linkmeup(config)
アドレスを再構成すると、これらのサブネットはすでにVRFルーティングテーブルに表示されます。
pingをもう一度確認します。
ただし、プロバイダーは内部アドレスにアクセスできなくなります。
同様の設定をTARSクライアントに対して行う必要があります。
Linkmeup(config)
いいね VRF TARSとC3POは、プロバイダーのネットワークおよび相互から完全に分離されています。
次に、linkmeupネットワークの喜びを広げます。
最初の設定
手順は、R1からR3までの各ノードで
VRFを作成することです。
Linkmeup_R1(config)
Linkmeup_R2(config)
Linkmeup_R3(config)
* VRFはサイトの厳密なローカルコンセプトであることを理解してください。 異なるルーターに異なるVRF名を設定することができます。
2番目のステップは
、すべてのノード間にリンクネットワークのチェーンを作成し、 インターフェイスの各ペアを目的のVRFにバインドすることです。
図が煩雑にならないように、リンクアドレスを図に示していません。 注文には、プロバイダーのネットワーク自体(VLAN1)に10.0 / 16プレフィックス、C3PO Electronic(Vlan 2)に192.168 / 16、TARS 'Robotics(Vlan 3)に100.0 / 16を選択します。
Linkmeup_R1 : Linkmeup_R1(config)
その他のノード構成Linkmeup_R2: Linkmeup_R2(config)
Linkmeup_R3: Linkmeup_R3(config)
3番目は
、VRFでIGPを上げることです。
Linkmeup_R1 : Linkmeup_R1(config)
その他のノード構成Linkmeup_R2 : Linkmeup_R2(config)
Linkmeup_R3 : Linkmeup_R3(config)
プロバイダーの内部ネットワーク接続用のISIS、VPN用のOSPF。
OSPFもクライアントとともに上昇するため、クライアントはルートを動的に学習します。 したがって、次のようなデザインにする必要があります。
C3PO_1(config)
実際にはすべて。 これで、各ネットワークはそのルートを認識します。
原則として、1つの物理ネットワークに基づいて、3つの完全に独立した仮想ネットワークを作成しました。その内部では、少なくとも何でもMPLSを上げることができます。
ただし、前述したように、これは非常に不活性なソリューションなので、MPLS BGP VPNに進みましょう。
MPLS L3VPN
今回は、すべてが事前に構成されている既製のネットワークを使用しないことをお勧めします。 マイルストーンだけで、詳細に入らずにこの方法でゼロから始める方がより興味深いでしょう。
そのため、同じネットワークを苦しめていますが、1つのブランチを削除することで単純化します。
1つのクライアントと2つの接続ポイントから始めましょう。
クライアントルーターの構成は非常に単純です。
C3PO_1: C3PO_1(config)
C3PO_2: C3PO_1(config)
クライアントノードでは、プロバイダーおよびループバックインターフェイスとのリンクアドレスが構成されます(以前と同様、このインターフェイスを使用して、ルーターを作成しないようにネットワークをシミュレートします)。 つまり、
C3PO_2でネットワーク192.168.255.1/32が表示される場合、これはネットワーク全体も表示されることを意味します。
OSPFは、ローカルの動的ルーティングプロトコルとして使用されます。 実際、ループバックインターフェイスのアドレスを関係者に知らせるのは彼です。
ネットワークプロバイダーについては。まず、短いセットアップ手順を示し、次に例を示します。
- トランクネットワークの基本的な接続の構成:IPアドレス、IGP。
- MPLSおよびLDPを有効にする
- VRFを作成し、インターフェイスにバインドします。
- CEでルーティングプロトコルを構成します。
- BGPとMBGPを構成する
1) IPアドレスを構成します:リンクとループバック。 クライアントにはまだ触れていません。
Linkmeup_R1 : Linkmeup_R1(config)
Linkmeup_R2 : Linkmeup_R2(config)
Linkmeup_R3 : Linkmeup_R3(config)
初期構成ファイル。2) ISISをIGPとして提起します。リンクおよびループバックアドレスに関するルーティング情報を配布することにより、linkmeupネットワーク全体を接続します。
Linkmeup_R1 : Linkmeup_R1(config)
Linkmeup_R2 : Linkmeup_R2(config)
Linkmeup_R3 : Linkmeup_R3(config)
このステップで、次のステップに必要なプラットフォームであるグローバルルーティングテーブルを取得しました。
3) MPLSおよびLDPをオンにします。
Linkmeup_R1 : Linkmeup_R1(config)
Linkmeup_R2 : Linkmeup_R2(config)
Linkmeup_R3 : Linkmeup_R3(config)
このステップでは、すべてのLSRペア間にLSPを構築しました。
* Linkmeup_R1のマーク割り当ての例。これがVPNの基礎です。 これらのLSPは、トランスポートラベルのセットです。
ここでは、構成を複雑にしないためにLDPを選択しました。 また、トラフィックエンジニアリングに関する記事でRSVP-TEを扱っています。
4) 2つのノード
Linkmeup_R1および
Linkmeup_R3で VRFを作成します。
Linkmeup_R1 : Linkmeup_R1(config)
Linkmeup_R3 : Linkmeup_R3(config)
これにより、あるクライアントのすべてのデータを、他のクライアントやプロバイダーのネットワークから分離できます。
ここでは、RDとRTを示します。 タスクは単純なので、C3PO Electronicのすべてのブランチを接続するため、RDとRTを同じにします。 さらに、インポート時のRTとエクスポート時のRTも同じになります。 これは一般的な慣行であるため、特別なディレクティブさえあります-
両方 -そして、両方のRTはすぐに同じように作成されます。
第8号では、linkmeupネットワークのAS番号64500を選択しました。これは、管理フィールドとしても使用されます。
割り当てられた番号は任意に選択されますが、すでに使用されている別の番号と一致しないように監視されます。
5)インターフェイスをVRFにバインドし、それらのIPアドレスを指定します。
Linkmeup_R1 : Linkmeup_R1(config)
Linkmeup_R3 : Linkmeup_R3(config)
VRF C3POルーティングテーブルでは、設定されたネットワークは直接接続されているように見えるはずです。
6)クライアントでルーティングプロトコルを上げる必要があります。 私たちの場合、それはOSPFになりますが、同様に成功した場合はISISまたはEBGPになります。 このプロセスはグローバルルーティングテーブルと重複しないようにするため、VRFに配置します。
Linkmeup_R1 : Linkmeup_R1(config)
Linkmeup_R3 : Linkmeup_R3(config)
OSPFクライアントが既に構成されていることを考慮すると、ルーティングテーブルにループバックインターフェイスアドレスが表示されるはずです。
ご覧のとおり、
Linkmeup_R1には192.168.255.1が表示されますが、リモートループバック
-192.168.255.2は表示されません。 同様に、
Linkmeup_R3は、一部のルートのみを認識します。 これは、クライアントのルートがまだプロバイダーのネットワークを介して送信されていないためです。
7)それで、MBGPの時が来ました。
前回のリリースで
BGP Free Coreについて話したことを覚えていますか? ここでこの手法をうまく使用できます。
Linkmeup_R2で BGPは必要ありません-そこで上げることはありません。
最初の部分は、iBGPネイバーの基本設定です。
Linkmeup_R1 : Linkmeup_R1(config)
Linkmeup_R3: Linkmeup_R3(config)
アドレスファミリVPNv4を設定する2番目の部分は、Linkmeup_R1からLinkmeup_R3へのクライアントルートを許可するものです。この属性はRTによって使用されるため、コミュニティ転送をアクティブにしていることに注意してください。Linkmeup_R1: Linkmeup_R1(config-router)
Linkmeup_R3: Linkmeup_R3(config-router)
3番目の部分は、この特定のVRFのアドレスファミリです。通常のIPv4プレフィックスで動作しますが、VRF C3PO Electronicからです。MBGPとOSPFの間でルートを転送するために必要です。Linkmeup_R1: Linkmeup_R1(config-router)
Linkmeup_R3: Linkmeup_R3(config-router)
ご覧のとおり、OSPFプロセスからのルート2のインポートはここで設定されているため、BGPからOSPFへのルートのインポートを設定する必要があります:Linkmeup_R1: Linkmeup_R1(config)
Linkmeup_R3: Linkmeup_R3(config)
そして今、すべてが回転します。PE上のルート:CE上のルート:クライアントネットワーク間のPing:プロバイダーネットワークへのPingの試行:それは良いことです。
BGPを介したクライアントの接続次に、TAR'S Roboticsクライアントを接続します。CEとPE間のルートは、BGPを介して送信されます。つまり、クライアントルーターでEBGPを上げます。ステップ4と5に違いはありません。片側のみの構成は次のとおりです。 Linkmeup_R1(config)
6) CEでは、EBGPは最も一般的な方法で構成されます。TARS_1: TARS_1(config)
TARS 'Roboticsは172.16.255.1/32ネットワークを発表すると述べています。OSPFはまだ必要かもしれませんが、このブランチ内などでのルーティングに既に使用されています。PEではすべてが同じですが、新しいOSPFプロセスはなく(クライアントがOSPFの代わりにEBGPを使用しているため)、アドレスファミリipv4 vrf TARS:Linkmeup_R1が変更されます。 Linkmeup_R1(config-router)
今Linkmeup_R1は、 BGP-隣人であるTARS_1:クライアントのネットワークは、それがCE更新メッセージから受信します。7) MBGPのすべては同じです。クライアントとの相互作用のプロトコルを変更したという事実から、その中で何も逆さまになることはありません。つまり、すべてが動作するはずです(もちろん、2番目の側が構成されている場合):コメント付きおよびコメントなしですべてのノードの構成を完了します。
私たちは何をしましたか?それでは、タグの分布を追ってみましょう。それは与えたものだLinkmeup_R1は、ノードLinkmeup_R3を。ここでは、FEC 192.168.255.1のラベル22とNext Hop 1.1.1.1のアドレスが表示されます。ルーターはどのようにそれを理解しますか?VRF C3PO TMでは、次のホップに関する情報を入力します:再帰的に利用可能な方法を計算します1.1.1.1:VRF C3POのBGPテーブルでサービスタグを確認できます:ところで、次のホップもここに表示されます。:トランスポートFEC 1.1.1.1のラベルの通常のFIBは、TMへの複数の呼び出しせずにすべての関連情報が含まれているとしてではなく、:FIBは、と袋をパックするために私たちに語っているDIP192.168.255.1をラベルスタック{17、22}に送信し、FE0 / 0インターフェイスのサイド10.0.23.2に送信します。ここにあるものはすべて非常に明確で決まっています。
一般から特定への正しい順序でL3VPNを最初から設定する手順を要約しましょう。- プロバイダーのIPアドレスを構成します:リンクとループバック。すべてのノードが構成され、忘れていました。
- プロバイダーのネットワークでIGPを構成して、内部接続を提供します。すべてのノードが構成され、忘れていました。
- MPLS + LDP(または必要に応じてRSVP TE)を構成します。すべてのノードが構成され、忘れていました。
- プロバイダーのネットワーク内でMBGPを構成します。クライアントを持つPEのみが構成され、忘れられます。
- クライアントVRFを構成し、RD、RTを割り当てます。クライアントがあるそれらのPEだけがそれぞれに個別に構成されます。
- クライアントインターフェイスをVRFに追加し、IPアドレスを構成します。クライアントがあるそれらのPEだけがそれぞれに個別に構成されます。
- 必要に応じて、クライアントとIGP / BGPを上げてルートを交換します。クライアントがあるそれらのPEだけがそれぞれに個別に構成されます。
- 完了
これらは、ベースL3VPNを構成するために必要かつ十分な手順でした。さて、実際の最後のシナリオはVPN相互運用性
そこのどこか-はるか上-C3POのいくつかのビューを持つ3番目のクライアントR2D2の存在を想定しました。具体的には、異なるVPNにいる間にルートを交換する必要があります。スキームは次のとおりです。ここでRTを使用します。VPNC3POからのルートを、BGPプロトコルを使用してR2D2に転送します。さて、そして戻る-それなしでどこに?R2D2ルーターの構成: R2D2(config)
Linkmeup_R3の VRFセットアップ: Linkmeup_R3(config)
実際、VRFでroute-targetを設定することを除いて、ここには新しいものはありません。ご覧のとおり、通常の「route-target both 64500:300」コマンドに加えて、「route-target import 64500:100」も指定しました。つまり、VRFでは、RT 645500:100のルートをインポートする必要があります。つまり、VPN C3POから必要に応じてインポートする必要があります。その直後にルートが上に表示されR2D2::その後、pingが192.168.255.2に渡し、あなたがアドレス192.168.255.1へのpingを実行する場合、それは動作しません、しかし。なんで?
楽しみのために、アドレス10.20.22.22/32 でTARS_2 Loopback 1を追加できます。これはLoopback 0 R2D2と同じで、何が起こるかを確認できます。VPN間の相互作用のシナリオのすべてのノードの完全な構成。VPNからインターネットへのアクセス
プロバイダーが同じVPNへのインターネットアクセスを提供していることが判明する場合があります。VPN内にあり、個別のケーブルでも、個別のVLANでもありません。つまり、同じ接続、同じアドレスを介したインターネットへのアクセスです。また、顧客の気まぐれかもしれません。このトピックは興味深いが、大規模なので、少し後で別のマイクロイシューで公開します。
MPLS L3VPNのトレース
約1年前、私はちょっとした質問のある小さな記事を書きました。その中だった1、私たちにとって非常に局所。それを改善する時が来ました。突然、通常のトレースがどのように機能するかを知らなかった場合は、簡単に恥を知れます。TTL値を徐々に増やして、受信者にパケットを送信します。通常はUDPですが、ICMPやTCPでもかまいません。最初は1です。パケットは、直接接続されたルーターに到達し、TTLを減らし、現在ゼロになっていることを確認して、「転送中の時間超過」メッセージを生成し、返信します。したがって、送信者のアドレスでは、最初のホップがわかります。その後、これは2です。パケットは2番目のルーターに到達します。同じことが起こるので、次のホップを認識します。...
最後に、TTLがNに到達すると、宛先ノードはパケットを受信し、それがパケットであることを確認し、(プロトコルに従って)応答を形成します。これにより、すべてが終了したことがわかり、コンソールで終了します。さらに、反復ごとに1つではなく複数のパケット(通常は3つ)を送信できます。L3VPNを介したトレースの特異性は何ですか?パケットはラベルによってスイッチングされますが、MPLSよりも深いヘッダーのフィールドの値には意味がありません。TTLを含む。ルーターは、MPLSヘッダーのTTLをターゲットにします。PEがCEからパケットを受信するとき、2つのオプションがあります:- TTL値をIPヘッダーからMPLSにコピーします(これは均一モードです)。
- TTL MPLSヘッダフィールド255(このモードへのライトパイプ又はショートパイプ)。
最初のシナリオでは、受信者に向かう途中で各ルーターを見ることができます。トレースの結果は次のようになります。メカニズムは次のとおりです。- 最初のステップでは、何も変わりません。TARS_1は、TTL = 1のICMP要求を送信します。R1はそれを受信し、TTLをゼロに減らして、TARS_1 「送信中の時間超過」に送信します。最初のホップ(R1)の準備ができました。
- TARS_1は、TTL = 2のICMP要求を送信します。
- TARS_1は、TTL = 3のICMP要求を送信します。R3に到達し、現在1に等しいMPLS TTL値を確認して0に減らし、「転送中の時間超過」を返します。
- TARS_1は、TTL = 4のICMP要求を送信します。R3はMPLS TTLを1に減らし、ラベルを削除し、MPLS TTL値をIP TTLにコピーします。そして、パケットは安全にTARS_2に到達し、正常に完了すると応答を送信します。トレースが終了しました。
しかし、クライアントが自分のトレースでネットワークトポロジを表示しないように自然な欲求がある場合はどうでしょうか。あなたは言う、禁止されている必要があります。2歳の娘の父親として、私はあなたに言います:禁止する必要はありません。トリッキーにすることは可能であり、必要です。ネットワーク内でTTL MPLSをゼロに減らすつもりはありません。このために、2番目のシナリオが使用されます-TTL MPLSを255に設定します。この場合、TARS_1でトレースすると、次のパスが表示されます:R1R3TARS_2。- TARS_1 ICMP- TTL=1. R1 , TTL TARS_1 «time exceeded in transit» . (R1) .
- TARS_1 ICMP- TTL=2.
- TARS_1 ICMP- TTL=3. TARS_2, . .
また、どのくらいの数のトランジットPルーターがあっても、TARS_1からTARS_2にトレースするときは、TTL = 3で常に十分です。デフォルトの動作はベンダーによって異なります。Tsiskaは、エンジニアが自分が何をしており、各アクションが彼を脅かすものを知っていると考えているため、最初の道を選択します。たとえば、Huaweiは安全にプレイすることを好みます-うまくいかないように、最初に禁止するほうがよいので、エンジニアは必要に応じて許可します場合によっては、モードはいつでも変更できます。この場合、グローバルコンフィギュレーションモードでは、このためにコマンド「no mpls ip propagate-ttl」を指定する必要があります。nano.orgの素晴らしい53ページのトレースドキュメント。ところで、MPLSには特別なpingおよびトレースユーティリティがあります。Q&A
すばらしい章の質問と回答。メイン記事で十分ではなかったすべてをここに置くことができるので、本当に気に入っています。Q1: Pは中間LSRであり、PEはLERであると言えますか?厳密に言えば、いいえ。少なくとも、LER、LSRの概念は基本的なMPLSであり、LSP、およびP、PE、CEに関連しているため、VPNのみです。
もちろん、通常、クライアントが接続されているノードは、MPLSのIngress / Egress LSRの役割とVPNのPEの役割の両方を実行します。
Q2:なぜMBGPはマルチプロトコルBGPであり、たとえばMPLS BGPではないのですか?マルチプロトコルとは何ですか?BGPの目標は、ルートをルーティングすることです。歴史的および古典的に、これはIPv4です。ただし、通常のプレフィックスに加えて、BGPはIPv6、IPX、マルチキャスト、VPNなどの他のホストを送信できます。各タイプのプレフィックスは、個別のアドレスファミリ、つまり同じタイプのアドレスのグループとして構成されます。実際、異なるプロトコルのルーティングデータをこのようなBGPに転送するこの機能のために、MBGPという名前を受け取りました。
Q3: MBGPで送信されるルート、RD、およびそれらの属性はどこにありますか?RDはVPNv4ルートの一部であり、NLRI-Network Layer Reachability Informationセクションで一緒に渡されます。
RTは、本質的には拡張コミュニティセクションで送信されます。
一般に、BGP更新メッセージのVPNルートの多くの属性は、特別なセクションMP_REACH_NLRIに配置されます。MP_REACH_NLRIの一部は、通常のNLRIとネクストホップです。
Q4:では、RDとRTの違いは何ですか?そのうちの1つだけでは十分ではないのはなぜですか?そして、私は正しく理解しました:RDはRTのようなVPN識別子ではありませんか?, RD, RT VPN. VPN RD/RT, RD/RT.
:
RD — Route Distinguisher — — , MBGP — VPN . RD PE, / .
RT — Route Target. VPN, VRF, . VRF VRF . Extended Community.
PEはルートを適切に管理する方法を知らないため、RDだけでは不十分です。
また、送信中にルートが混在し、1つを除くすべてが失われるため、1つのRTでは不十分です。
たとえば、RDのみを残して、そのベースに基づいてルートを転送する場所を決定することは可能ですが、これは柔軟性がなく、BGPの原則に反します。
Q5:若い男、私たちは主要なオペレーターであり、真剣に取り組んでいます。AdnvancedLTEを構築していますが、2Gをサポートしていますが、VPNを必要とするクライアントはいません。. — .
, 2G, 3G, 4G 5G, Mobile Backhaul ( MBH ) 5 VPN: . , , . Traffic Engineering…
VPN MBH — Core Network: 2G BSC, 3G — RNC, 4G — MME. .
: MVNO — Mobile Virtual Network Operator — MBH . .
, , MPLS VPN — - .
Q6:わかりません。1つのラベルのパケットを受信したEgress PE、つまりPHPが発生した場合、このVPNラベルはトランスポートラベルではないと判断し、したがって、ラベルごとにVRFに渡す必要があり、さらに何か?すべてが非常に単純です-VPN、LSP、あらゆる種類のFRRおよびCSCのラベルスペースは一般的です。VPNとLSPに同じラベルが割り当てられていることはできません。さて、作成された各ラベルには、受信時にそのロールとアクションが割り当てられます。
便利なリンク
この記事で使用されているすべての用語と略語は、lookmeup用語集で見つけることができると言って飽きることはありません。さて、私はcだ:すべてではなく、大多数のみ私の愛するジェフ・ドイル:2つの部分からなるVPN:パートI、パートII。RDとRTの違いは、Jeremy Stretchによって記述されています:Route DistinguishersとRoute Targets。
お気づきかもしれませんが、L3VPNの作成は多くの手作業です。また、VPN間のやり取りを整理する必要がある場合は、最も正確で美しい方法でさえ、1つのインターネットゲートウェイだけでなく、クライアントPEも構成する必要があります。しかし、この作業はすべて必要であり、冗長性はありません。対照的に、GREまたはVRF-Liteを使用してVPNを構成することを覚えておいてください。また、Pルーター(Linkmeup_R2)は、MPLSが最初に組み込まれてから構成のすべての段階でまったく変更されていないことに注意してください。きれいじゃない?これは、L3VPN全体をこの小さな記事でカバーしたということではありません。特に、3つのタイプのInter-AS VPNやCSC(Carrier Support Carrier)などの興味深いものが一般的な図外に残っていました。しかし、これらの2つのメカニズムについて具体的に別の記事を書きたいと思っています。L3VPNは成熟した、思慮深く、標準化されたものです。すべてのメーカーにとって、プラス/マイナスの同じ働きをします。また、AToM、VLL、PWE3、VPLSを含むL2VPNに関する記事もまだあります。その中で、この分野の発展においてシスコとジュニパーが果たした役割、CESやEoMPLSなどのサービスが私たちの生活にもたらす喜びを学びます。我慢してください-今年はペースを上げ、勢いを増し、スピンアップし、効率を上げようとします。プロジェクトイラストレーターはアナスタシアメッツラーです。JDimaに感謝します。連絡を取り合いましょう。