レイヤー 3 VPN のロード バランシング
VPN パケット単位のロードバランシング
デフォルトでは、アクティブ ルートの同じ宛先へのイコール コスト パスが複数存在する場合、Junos OS ソフトウェアはハッシュ アルゴリズムを使用してネクストホップ アドレスの 1 つを選択し、転送テーブルにインストールします。宛先のネクストホップのセットが変更されるたびに、(同じハッシュアルゴリズムを使用して)この選択プロセスが繰り返され、同じハッシュアルゴリズムを使用して最適な単一のネクストホップアドレスが選択されます。
または、Junos OS ソフトウェアを設定して、PE デバイス間の複数の有効なパスに VPN トラフィックを分散させることもできます。この機能は、パケット単位のロードバランシングと呼ばれます。VPN トラフィックのロードバランシングは、複数の有効なパスが利用可能な場合にのみ可能です。Junos OS を設定して、アクティブ ルートの場合、宛先のすべてのネクストホップ アドレスが転送テーブルにインストールされるようにすることができます。VPN デバイス間で送信できるトラフィックの量を増やすことに加えて、パケットごとのロードバランシングを設定して、複数のパスにわたるトラフィック フローを最適化できます。
MPLSラベルや宛先アドレスなど、ルートのさまざまな要素に対してハッシュアルゴリズムを実行することで、トラフィックを複数の有効なパスに分散させます。次の表は、ロードバランシングハッシュアルゴリズムが、ingressルーター、トランジットルーター、およびエグレスルーターのルートでどのように実行されるかを示しています。ハッシュ アルゴリズムで使用されるルート要素は、VPN アプリケーションによって異なります。Junos OSが1に設定されたSビット(スタックの最下部を示す)を検出すると、それ以上ハッシュアルゴリズムは適用されません。
アプリケーション |
イングレス 論理インターフェース |
MPLS ラベル |
送信元と宛先のMACアドレス |
並べ替えとフロー分離のリスク |
コントロールワードを無効にする |
IP(送信元/宛先アドレスとポート、プロトコル) |
|---|---|---|---|---|---|---|
CCCで設定されたレイヤー2VPNおよびレイヤー2回線 |
はい |
はい |
いいえ |
○ (データが可変 (ATM など) の場合) |
はい |
該当なし |
TCCで設定されたレイヤー2 VPNおよびレイヤー2回線 |
はい |
はい |
いいえ |
○ (データが可変 (ATM など) の場合) |
はい |
該当なし |
レイヤー 3 VPN および IPv4 または IPv6 RIB |
はい |
いいえ |
いいえ |
いいえ |
いいえ |
はい |
VPLS |
はい |
いいえ |
はい |
いいえ |
いいえ |
はい |
アプリケーション |
イングレス論理インターフェース |
MPLSラベル(最大3枚、Sビットは1に設定) |
並べ替えとフロー分離のリスク |
IP(送信元/宛先アドレスとポート、プロトコル) |
|---|---|---|---|---|
CCCで設定されたレイヤー2VPNおよびレイヤー2回線 |
はい |
はい |
いいえ |
いいえ |
TCCで設定されたレイヤー2 VPNおよびレイヤー2回線 |
はい |
はい |
いいえ |
はい |
レイヤー 3 VPN および IPv4 または IPv6 RIB |
はい |
はい |
いいえ |
はい |
VPLS |
はい |
既知のユニキャスト トラフィックの場合は ○ ブロードキャスト、不明なユニキャスト、マルチキャストトラフィックの場合はいいえ |
いいえ |
いいえ |
レイヤー 3 VPN の負荷分散と IP ヘッダー フィルタリング
内部と外部の両方のBGPパスにわたるトラフィックのロードバランシングと、IPヘッダーに基づくトラフィックのフィルタリングの両方を同時に有効にできるようになりました。これにより、内部と外部の両方のBGPパスで同時にロードバランシングされるトラフィックに対して、エグレスPEルーターでフィルターとポリサーを構成することができます。この機能は、M120ルーター、M320ルーター、MXシリーズルーター、T Seriesルーターでのみ使用できます。
レイヤー3 VPNルーティング インスタンスでこれらの機能を有効にするには、[edit routing-instances routing-instance-name routing-options multipath]階層レベルでvpn-unequal-cost equal-external-internalステートメントを、[edit routing-instances routing-instance-name]階層レベルでvrf-table-labelステートメントを含めます。
show route detailコマンドを発行すると、ルートがロードバランシングされているかどうか(equal-external-internal)、およびそのインターフェイスインデックスを確認できます。
高速再ルートも設定している場合は、以下の動作に注意してください。
IBGP パスがダウンした場合、アクティブな EBGP パスまたはアクティブな IBGP パスのいずれかに置き換えられる可能性があります。
EBGP パスがダウンした場合、別のアクティブな EBGP パスに置き換えるしかありません。これにより、コアに面したインターフェイス トラフィックの IBGP 宛先への転送が防止されます。
vpn-unequal-cost equal-external-internal ステートメントと l3vpn ステートメントを[edit routing-options forwarding-options chained-composite-next-hop ingress]階層レベルで同時に含めることができます。しかし、これを行うと、EBGPは機能しません。つまり、EBGP ECMP(等価コストマルチパス)の候補として、連鎖されたネクストホップを持つパスと連鎖されていないネクストホップを持つパスの両方がある場合、連鎖されたネクストホップを使用するパスは除外されます。一般的なケースでは、除外されるパスは内部パスです。
レイヤー 3 VPN ロード バランシングの概要
ロードバランシング機能を使用すると、デバイスは着信トラフィックと発信トラフィックを複数のパスで分割して、ネットワークの輻輳を軽減できます。ロードバランシングにより、さまざまなネットワークパスの利用率が向上し、より効率的なネットワーク帯域幅が提供されます。
複数のプロトコルが使用されている場合、デバイスは ルート優先 値( アドミニストレーティブディスタンス 値とも呼ばれる)を使用してルートを選択します。ルーターは、単一のルーティング プロトコルを使用する場合、宛先へのコスト(またはメトリック)が最も低いパスを選択します。デバイスが、同じルート優先度と同じコストで宛先に複数のパスを受信してインストールする場合は、ロードバランシングを設定する必要があります。
異なる自律システム内のデバイス間に、内部と外部の両方のBGPパスが設置されているネットワークでは、BGPはデフォルトで単一の最適なパスのみを選択し、ロードバランシングは実行しません。内部および外部BGPパスを持つレイヤー3 VPNは、プロトコルに依存しないロードバランシングに multipath ステートメントを使用します。ルーティング インスタンスに multipath ステートメントを含めると、プロトコル非依存ロードバランシングがそのルーティング インスタンスのデフォルトルーティングテーブルに適用されます。 vpn-unequal-cost ステートメントを使用することで、プロトコル非依存型のロードバランシングがVPNルートに適用されます。 equal-external-internal ステートメントを使用することで、プロトコル非依存ロードバランシングが内部と外部の両方のBGPパスに適用され、IPヘッダーフィルタリング( vrf-table-label ステートメントで有効)と組み合わせて設定できます。
例:レイヤー 3 VPN トラフィックのロード バランシングと IP ヘッダー フィルタリングの同時使用
この例は、当社のコンテンツテスト チームが検証し、更新したものです。
この例では、レイヤー 3 VPN(内部および外部の BGP パスを持つ)で、IP ヘッダー フィルタリングを同時に使用しながら、ロードバランシングを設定する方法を示します。
必要条件
この例では、以下のハードウェアとソフトウェアのコンポーネントが必要です。
-
M Seriesマルチサービスエッジルーター(M120およびM320のみ)、MXシリーズ5Gユニバーサルルーティングプラットフォーム、T Seriesコアルーター、またはPTXシリーズトランスポートルーター。
-
Junos OS リリース 12.1 以降
-
Junos OS リリース 20.1R1でMXシリーズルーター向けに再検証
-
概要
次の例は、レイヤー 3 VPN で IP ヘッダー フィルタリングを同時に使用しながら、ロードバランシングを構成する方法を示しています。
この例では、ロードバランシングと IP ヘッダー フィルタリングがどのように連携するかを示しています。IP ヘッダー フィルタリングのテストは、この例の範囲外です。
Junos OS BGPは、同一または異なる自律システム(AS)内のピア間でのロードバランシングを可能にするマルチパス機能を提供します。この例では、[edit routing-instances instance-name routing-options multipath vpn-unequal-cost]階層レベルでequal-external-internalステートメントを使用してロードバランシングを実行します。vrf-table-label ステートメントは、IP ヘッダー フィルタリングを有効にするために、[edit routing-instances instance-name] 階層レベルで設定されます。
[edit]
routing-instances {
instance-name {
vrf-table-label;
routing-options {
multipath {
vpn-unequal-cost {
equal-external-internal;
}
}
}
}
}
これらのステートメントは、ルーティング インスタンスのコンテキストでのみ使用できます。
この例では、デバイスCE1はAS1にあり、デバイスPE1に接続されています。デバイスPE1、PE2、PE3、およびPはAS2にあります。デバイスCE2は、デバイスPE2およびPE3に接続されており、AS3にあります。デバイスCE3はデバイスPE3に接続され、AS4にあります。BGPとMPLSはネットワークを通じて設定されます。OSPFは、このネットワークで使用される内部ゲートウェイプロトコル(IGP)です。
デバイスPE1、PE2、およびPE3の設定には、ネットワークでロードバランシングを有効にするための[edit routing-instances instance-name routing-options multipath vpn-unequal-cost]階層レベルでequal-external-internalステートメントが含まれています。IP ヘッダー フィルタリングは、PE デバイスの [edit routing-instances instance-name] 階層レベルで vrf-table-label ステートメントが設定されている場合に有効になります。
図 1 は、この例で使用されているトポロジーを示しています。
位相幾何学
を使用したレイヤー 3 VPN ロード バランシング
表 3 は、クイックリファレンス用にこの例で使用されている IP アドレスのリストを示しています。
| デバイス |
として |
デバイスID |
インターフェイス |
インターフェイス IP アドレス |
|---|---|---|---|---|
| CE1の |
65001 |
192.0.2.1/32 |
ge-0/0/0.0 |
10.1.1.1/30 |
| PE1 |
65000 |
192.0.2.2/32 |
ge-0/0/2.0 |
10.1.1.2/30 |
| ge-0/0/0.0 |
10.1.2.5/30 |
|||
| ge-0/0/1.0 |
10.1.3.9/30 |
|||
| PE2の |
65000 |
192.0.2.3/32 |
ge-0/0/0.0 |
10.1.2.6/30 |
| ge-0/0/1.0 |
10.1.4.13/30 |
|||
| ge-0/0/2.0 |
10.1.6.21/30 |
|||
| PE3の |
65000 |
192.0.2.4/32 |
ge-0/0/1.0 |
10.1.3.10/30 |
| ge-0/0/0.0 |
10.1.5.18/30 |
|||
| ge-0/0/2.0 |
10.1.7.25/30 |
|||
| ge-0/0/3.0 |
10.1.8.29/30 |
|||
| P |
65000 |
192.0.2.5/32 |
ge-0/0/1.0 |
10.1.4.14/30 |
| ge-0/0/0.0 |
10.1.5.17/30 |
|||
| CE2の |
65002 |
192.0.2.6/32 |
ge-0/0/1.0 |
10.1.6.22/30 |
| ge-0/0/2.0 |
10.1.7.26/30 |
|||
| CE3の |
65003 |
192.0.2.7/32 |
ge-0/0/3.0 |
10.1.8.30/30 |
この例は、論理システム(論理ルーター)を使用してテストされました。したがって、この例の物理インターフェイスはすべて同じであり、設定は個別の論理インターフェイスで行われます。テスト以外のネットワークでは、他のデバイスへの接続に個別の物理ルーターと個別の物理インターフェイスを使用します。
構成
プロシージャ
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、 [edit] 階層レベルのCLIにコマンドをコピー&ペーストしてください。
Device CE1
set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/30
set interfaces ge-0/0/0 unit 0 family mpls
set interfaces ge-0/0/0 unit 0 description toPE1
set interfaces lo0 unit 0 family inet address 192.0.2.1/32
set routing-options router-id 192.0.2.1
set routing-options autonomous-system 65001
set protocols bgp group toPE1 type external
set protocols bgp group toPE1 export send-direct
set protocols bgp group toPE1 peer-as 65000
set protocols bgp group toPE1 neighbor 10.1.1.2
set policy-options policy-statement send-direct from protocol direct
set policy-options policy-statement send-direct then accept
Device PE1
set interfaces ge-0/0/2 unit 0 family inet address 10.1.1.2/30
set interfaces ge-0/0/2 unit 0 family mpls
set interfaces ge-0/0/2 unit 0 description toCE1
set interfaces ge-0/0/0 unit 0 family inet address 10.1.2.5/30
set interfaces ge-0/0/0 unit 0 family mpls
set interfaces ge-0/0/0 unit 0 description toPE2
set interfaces ge-0/0/1 unit 0 family inet address 10.1.3.9/30
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 description toPE3
set interfaces lo0 unit 0 family inet address 192.0.2.2/32
set protocols mpls interface all
set protocols ldp interface all
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 metric 10
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 metric 10
set protocols bgp group toInternal type internal
set protocols bgp group toInternal family inet-vpn unicast
set protocols bgp group toInternal local-address 192.0.2.2
set protocols bgp group toInternal neighbor 192.0.2.3
set protocols bgp group toInternal neighbor 192.0.2.4
set routing-options router-id 192.0.2.2
set routing-options autonomous-system 65000
set routing-options forwarding-table export lb
set routing-instances toCE1 instance-type vrf
set routing-instances toCE1 interface ge-0/0/2.0
set routing-instances toCE1 route-distinguisher 65000:1
set routing-instances toCE1 vrf-target target:65000:1
set routing-instances toCE1 vrf-table-label
set routing-instances toCE1 protocols bgp group toCE1 type external
set routing-instances toCE1 protocols bgp group toCE1 peer-as 65001
set routing-instances toCE1 protocols bgp group toCE1 neighbor 10.1.1.1
set routing-instances toCE1 routing-options multipath vpn-unequal-cost equal-external-internal
set policy-options policy-statement lb then load-balance per-packet
Device PE2
set interfaces ge-0/0/0 unit 0 family inet address 10.1.2.6/30
set interfaces ge-0/0/0 unit 0 family mpls
set interfaces ge-0/0/0 unit 0 description toPE1
set interfaces ge-0/0/1 unit 0 family inet address 10.1.4.13/30
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 description toP
set interfaces ge-0/0/2 unit 0 family inet address 10.1.6.21/30
set interfaces ge-0/0/2 unit 0 family mpls
set interfaces ge-0/0/2 unit 0 description toCE2
set interfaces lo0 unit 0 family inet address 192.0.2.3/32
set protocols mpls interface all
set protocols ldp interface all
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 metric 10
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 metric 5
set protocols bgp group toInternal type internal
set protocols bgp group toInternal family inet-vpn unicast
set protocols bgp group toInternal local-address 192.0.2.3
set protocols bgp group toInternal neighbor 192.0.2.2
set protocols bgp group toInternal neighbor 192.0.2.4
set routing-options router-id 192.0.2.3
set routing-options autonomous-system 65000
set routing-options forwarding-table export lb
set routing-instances toCE2 instance-type vrf
set routing-instances toCE2 interface ge-0/0/2.0
set routing-instances toCE2 route-distinguisher 65000:1
set routing-instances toCE2 vrf-target target:65000:1
set routing-instances toCE2 vrf-table-label
set routing-instances toCE2 protocols bgp group toCE2 type external
set routing-instances toCE2 protocols bgp group toCE2 peer-as 65002
set routing-instances toCE2 protocols bgp group toCE2 neighbor 10.1.6.22
set routing-instances toCE2 routing-options multipath vpn-unequal-cost equal-external-internal
set policy-options policy-statement lb then load-balance per-packet
Device PE3
set interfaces ge-0/0/1 unit 0 family inet address 10.1.3.10/30
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 description toPE1
set interfaces ge-0/0/0 unit 0 family inet address 10.1.5.18/30
set interfaces ge-0/0/0 unit 0 family mpls
set interfaces ge-0/0/0 unit 0 description toP
set interfaces ge-0/0/2 unit 0 family inet address 10.1.7.25/30
set interfaces ge-0/0/2 unit 0 family mpls
set interfaces ge-0/0/2 unit 0 description toCE2
set interfaces ge-0/0/3 unit 0 family inet address 10.1.8.29/30
set interfaces ge-0/0/3 unit 0 family mpls
set interfaces ge-0/0/3 unit 0 description toCE3
set interfaces lo0 unit 0 family inet address 192.0.2.4/32
set protocols mpls interface all
set protocols ldp interface all
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 metric 10
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 metric 5
set protocols bgp group toInternal type internal
set protocols bgp group toInternal local-address 192.0.2.4
set protocols bgp group toInternal family inet-vpn unicast
set protocols bgp group toInternal family route-target
set protocols bgp group toInternal neighbor 192.0.2.2
set protocols bgp group toInternal neighbor 192.0.2.3
set routing-options router-id 192.0.2.4
set routing-options autonomous-system 65000
set routing-options forwarding-table export lb
set routing-instances toCE2_3 instance-type vrf
set routing-instances toCE2_3 interface ge-0/0/2.0
set routing-instances toCE2_3 interface ge-0/0/3.0
set routing-instances toCE2_3 route-distinguisher 65000:1
set routing-instances toCE2_3 vrf-target target:65000:1
set routing-instances toCE2_3 vrf-table-label
set routing-instances toCE2_3 protocols bgp group toCE2 type external
set routing-instances toCE2_3 protocols bgp group toCE2 peer-as 65002
set routing-instances toCE2_3 protocols bgp group toCE2 neighbor 10.1.7.26
set routing-instances toCE2_3 protocols bgp group toCE3 type external
set routing-instances toCE2_3 protocols bgp group toCE3 peer-as 65003
set routing-instances toCE2_3 protocols bgp group toCE3 neighbor 10.1.8.30
set routing-instances toCE2_3 routing-options multipath vpn-unequal-cost equal-external-internal
set policy-options policy-statement lb then load-balance per-packet
Device P
set interfaces ge-0/0/1 unit 0 family inet address 10.1.4.14/30
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 description toPE2
set interfaces ge-0/0/0 unit 0 family inet address 10.1.5.17/30
set interfaces ge-0/0/0 unit 0 family mpls
set interfaces ge-0/0/0 unit 0 description toPE3
set interfaces lo0 unit 0 family inet address 192.0.2.5/32
set protocols mpls interface all
set protocols ldp interface all
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 metric 5
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 metric 5
set routing-options router-id 192.0.2.5
set routing-options autonomous-system 65000
Device CE2
set interfaces ge-0/0/1 unit 0 family inet address 10.1.6.22/30
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 description toPE2
set interfaces ge-0/0/2 unit 0 family inet address 10.1.7.26/30
set interfaces ge-0/0/2 unit 0 family mpls
set interfaces ge-0/0/2 unit 0 description toPE3
set interfaces lo0 unit 0 family inet address 192.0.2.6/32
set routing-options router-id 192.0.2.6
set routing-options autonomous-system 65002
set protocols bgp group toPE2PE3 type external
set protocols bgp group toPE2PE3 export send-direct
set protocols bgp group toPE2PE3 peer-as 65000
set protocols bgp group toPE2PE3 neighbor 10.1.6.21
set protocols bgp group toPE2PE3 neighbor 10.1.7.25
set policy-options policy-statement send-direct from protocol direct
set policy-options policy-statement send-direct then accept
Device CE3
set interfaces ge-0/0/3 unit 0 family inet address 10.1.8.30/30
set interfaces ge-0/0/3 unit 0 family mpls
set interfaces ge-0/0/3 unit 0 description toPE3
set interfaces lo0 unit 0 family inet address 192.0.2.7/32
set routing-options router-id 192.0.2.7
set routing-options autonomous-system 65003
set protocols bgp group toPE3 type external
set protocols bgp group toPE3 export send-direct
set protocols bgp group toPE3 peer-as 65000
set protocols bgp group toPE3 neighbor 10.1.8.29
set policy-options policy-statement send-direct from protocol direct
set policy-options policy-statement send-direct then accept
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、CLIユーザー・ガイド の コンフィギュレーション・モードでのCLIエディタの使用を参照してください。
VPN セットアップ全体で不等コストのロードバランシングを構成するには:
-
デバイスCE1でルーターIDを設定し、デバイスをその自律システムに割り当てます。
[edit routing-options] user@CE1# set router-id 192.0.2.1 user@CE1# set autonomous-system 65001同様に、他のすべてのデバイスを設定します。
-
ネットワーク全体のトラフィックに対してBGPグループを設定します。
-
MPLS ネットワーク (CE デバイス) を行き来するトラフィックの BGP グループを設定します。
[edit protocols bgp group toPE1] user@CE1# set type external user@CE1# set peer-as 65000 user@CE1# set neighbor 10.1.1.2 -
デバイスCE2とCE3に、
peer-asとneighborステートメントを適宜変更して、同様のBGPグループ(to AS 65000とtoPE3)を設定します。 -
MPLS ネットワーク(PE デバイス)を経由するトラフィックの BGP グループを設定します。
[edit protocols bgp group toInternal] user@PE1# set type internal user@PE1# set family inet-vpn unicast user@PE1# set local-address 192.0.2.2 user@PE1# set neighbor 192.0.2.3 user@PE1# set neighbor 192.0.2.4 -
デバイス PE2 と PE3 で、
local-addressステートメントとneighborステートメントを適宜変更して、同じ BGP グループ(toInternal)を設定します。
-
-
MPLSネットワークとの間でルートをエクスポートするためのルーティングポリシー(
send-directポリシー)と、MPLSネットワーク全体でトラフィックネットワークロードバランシングためのポリシー(lbポリシー)を設定します。-
ルーティングテーブルからデバイスCE1のBGPにルートをエクスポートするためのポリシー(
send-direct)を設定します。[edit policy-options policy-statement send-direct] user@CE1# set from protocol direct user@CE1# set then accept[edit protocols bgp group toPE1] user@CE1# set export send-direct同様に、デバイスCE2およびCE3で
send-directポリシーを設定します。 -
ルーティングテーブルからデバイスPE1の転送テーブルにルートをエクスポートするためのポリシー(
lb)を設定します。lbポリシーは、宛先のすべてのネクストホップ アドレスが転送テーブルにインストールされるように、パケットごとのロードバランシングを設定します。[edit policy-options policy-statement lb] user@PE1# set then load-balance per-packet[edit routing-options] user@PE1# set forwarding-table export lb同様に、デバイスPE2、PE3で
lbポリシーを設定します。
-
-
以下を設定します。
-
自律システムを介してルートをエクスポートするために、PEデバイスでルーティング インスタンスを設定します。
-
ネットワークでロードバランシングを有効にするには、
[edit routing-instances instance-name routing-options multipath vpn-unequal-cost]階層レベルでequal-external-internalステートメントを含めます。 -
エグレスデバイス(デバイスCE3)を出る前にトラフィックをフィルタリングするために、
[edit routing-instances instance-name]階層レベルにvrf-table-labelステートメントを含めます。
Device PE1
[edit routing-instances toCE1] user@PE1# set instance-type vrf user@PE1# set interface ge-0/0/2.0 user@PE1# set route-distinguisher 65000:1 user@PE1# set vrf-target target:65000:1 user@PE1# set vrf-table-label user@PE1# set protocols bgp group toCE1 type external user@PE1# set protocols bgp group toCE1 peer-as 65001 user@PE1# set protocols bgp group toCE1 neighbor 10.1.1.1 user@PE1# set routing-options multipath vpn-unequal-cost equal-external-internalDevice PE2
[edit routing-instances toCE1] user@PE2# set instance-type vrf user@PE2# set interface ge-0/0/2.0 user@PE2# set route-distinguisher 65000:1 user@PE2# set vrf-target target:65000:1 user@PE2# set vrf-table-label user@PE2# set protocols bgp group toCE2 type external user@PE2# set protocols bgp group toCE2 peer-as 65002 user@PE2# set protocols bgp group toCE2 neighbor 10.1.6.22 user@PE2# set routing-options multipath vpn-unequal-cost equal-external-internalDevice PE3
[edit routing-instances toCE2_3] user@PE3# set instance-type vrf user@PE3# set interface ge-0/0/2.0 user@PE3# set interface ge-0/0/3.0 user@PE3# set route-distinguisher 65000:1 user@PE3# set vrf-target target:65000:1 user@PE3# set vrf-table-label user@PE3# set protocols bgp group toCE2 type external user@PE3# set protocols bgp group toCE2 peer-as 65002 user@PE3# set protocols bgp group toCE2 neighbor 10.1.7.26 user@PE3# set protocols bgp group toCE3 type external user@PE3# set protocols bgp group toCE3 peer-as 65003 user@PE3# set protocols bgp group toCE3 neighbor 10.1.8.30 user@PE3# set routing-options multipath vpn-unequal-cost equal-external-internal -
業績
設定モードから、 show configuration コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。以下は、PE3の show configuration 出力からの抜粋です。
user@PE3#
show configuration
interfaces {
ge-0/0/0 {
unit 0 {
description toP;
family inet {
address 10.1.5.18/30;
}
family mpls;
}
}
ge-0/0/1 {
unit 0 {
description toPE1;
family inet {
address 10.1.3.10/30;
}
family mpls;
}
}
ge-0/0/2 {
unit 0 {
description toCE2;
family inet {
address 10.1.7.25/30;
}
family mpls;
}
}
ge-0/0/3 {
unit 0 {
description toCE3;
family inet {
address 10.1.8.29/30;
}
family mpls;
}
}
lo0 {
unit 0 {
family inet {
address 192.0.2.4/32;
}
}
}
}
policy-options {
policy-statement lb {
then {
load-balance per-packet;
}
}
}
routing-instances {
toCE2_3 {
routing-options {
multipath {
vpn-unequal-cost equal-external-internal;
}
}
protocols {
bgp {
group toCE2 {
type external;
peer-as 65002;
neighbor 10.1.7.26;
}
group toCE3 {
type external;
peer-as 65003;
neighbor 10.1.8.30;
}
}
}
instance-type vrf;
interface ge-0/0/2.0;
interface ge-0/0/3.0;
route-distinguisher 65000:1;
vrf-target target:65000:1;
vrf-table-label;
}
}
routing-options {
forwarding-table {
export lb;
}
router-id 192.0.2.4;
autonomous-system 65000;
}
protocols {
ospf {
area 0.0.0.0 {
interface lo0.0 {
passive;
}
interface ge-0/0/1.0 {
metric 10;
}
interface ge-0/0/0.0 {
metric 5;
}
}
}
bgp {
group toInternal {
type internal;
local-address 192.0.2.4;
family inet-vpn {
unicast;
}
family route-target;
neighbor 192.0.2.2;
neighbor 192.0.2.3;
}
}
ldp {
interface all;
}
mpls {
interface all;
}
}
デバイスの設定が完了したら、設定モードから commit を入力します。
検証
設定が正常に機能していることを確認します。
BGPの検証
目的
BGP が動作していることを確認します。
アクション
運用モードから、 show route protocol bgp コマンドを実行します。
user@PE3> show route protocol bgp
inet.0: 19 destinations, 19 routes (19 active, 0 holddown, 0 hidden)
inet.3: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
toCE2_3.inet.0: 9 destinations, 14 routes (9 active, 0 holddown, 0 hidden)
@ = Routing Use Only, # = Forwarding Use Only
+ = Active Route, - = Last Active, * = Both
10.1.1.0/30 *[BGP/170] 6d 19:24:16, localpref 100, from 192.0.2.2
AS path: I, validation-state: unverified
> to 10.1.3.9 via ge-0/0/1.0, Push 16
10.1.6.20/30 *[BGP/170] 6d 19:24:12, localpref 100, from 192.0.2.3
AS path: I, validation-state: unverified
> to 10.1.5.17 via ge-0/0/0.0, Push 16, Push 299808(top)
[BGP/170] 6d 17:53:50, localpref 100
AS path: 65002 I, validation-state: unverified
> to 10.1.7.26 via ge-0/0/2.0
10.1.7.24/30 [BGP/170] 6d 17:53:50, localpref 100
AS path: 65002 I, validation-state: unverified
> to 10.1.7.26 via ge-0/0/2.0
10.1.8.28/30 [BGP/170] 6d 17:55:03, localpref 100
AS path: 65003 I, validation-state: unverified
> to 10.1.8.30 via ge-0/0/3.0
192.0.2.1/32 *[BGP/170] 6d 19:24:16, localpref 100, from 192.0.2.2
AS path: 65001 I, validation-state: unverified
> to 10.1.3.9 via ge-0/0/1.0, Push 16
192.0.2.6/32 @[BGP/170] 6d 17:53:50, localpref 100
AS path: 65002 I, validation-state: unverified
> to 10.1.7.26 via ge-0/0/2.0
[BGP/170] 6d 17:53:50, localpref 100, from 192.0.2.3
AS path: 65002 I, validation-state: unverified
> to 10.1.5.17 via ge-0/0/0.0, Push 16, Push 299808(top)
192.0.2.7/32 *[BGP/170] 6d 17:55:03, localpref 100
AS path: 65003 I, validation-state: unverified
> to 10.1.8.30 via ge-0/0/3.0
mpls.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden)
bgp.l3vpn.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
65000:1:10.1.1.0/30
*[BGP/170] 6d 19:24:16, localpref 100, from 192.0.2.2
AS path: I, validation-state: unverified
> to 10.1.3.9 via ge-0/0/1.0, Push 16
65000:1:10.1.6.20/30
*[BGP/170] 6d 19:24:12, localpref 100, from 192.0.2.3
AS path: I, validation-state: unverified
> to 10.1.5.17 via ge-0/0/0.0, Push 16, Push 299808(top)
65000:1:192.0.2.1/32
*[BGP/170] 6d 19:24:16, localpref 100, from 192.0.2.2
AS path: 65001 I, validation-state: unverified
> to 10.1.3.9 via ge-0/0/1.0, Push 16
65000:1:192.0.2.6/32
*[BGP/170] 6d 17:53:50, localpref 100, from 192.0.2.3
AS path: 65002 I, validation-state: unverified
> to 10.1.5.17 via ge-0/0/0.0, Push 16, Push 299808(top)
inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
toCE2_3.inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
bgp.rtarget.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
出力には、ルーティングテーブルにインストールされたBGPルートが一覧表示されます。 192.0.2.1/32、 10.1.1.0/30、および 65000:1:192.0.2.1/32 で始まる出力行は、AS65001にあるデバイスCE1へのBGPルートを示しています。 192.0.2.6/32、 65000:1:192.0.2.6/32、および 65000:1:10.1.6.20/30 で始まる出力行は、AS65002にあるデバイスCE2へのBGPルートを示しています。 192.0.2.7/32 で始まる出力行は、AS 65003にあるデバイスCE3へのBGPルートを示しています。
意味
BGPはネットワークで機能しています。
ロードバランシングの検証
目的
以下を確認して、転送が双方向で行われていることを確認します。
-
両方のネクストホップがルートの転送テーブルにインストールされている場合。
-
外部BGPルートがルートの転送テーブルにインストールされている場合。
アクション
運用モードから、 show route forwarding-table コマンドと show route forwarding-table destination <destination IP> コマンドを実行します。
user@PE3> show route forwarding-table
Routing table: default.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 1 rjct 36 2
0.0.0.0/32 perm 0 dscd 34 1
10.1.2.4/30 user 0 ulst 1048576 2
10.1.5.17 ucst 625 12 ge-0/0/0.0
10.1.3.9 ucst 617 8 ge-0/0/1.0
10.1.3.8/30 intf 0 rslv 604 1 ge-0/0/1.0
10.1.3.8/32 dest 0 10.1.3.8 recv 602 1 ge-0/0/1.0
10.1.3.9/32 dest 0 0:50:56:93:63:e7 ucst 617 8 ge-0/0/1.0
10.1.3.10/32 intf 0 10.1.3.10 locl 603 2
10.1.3.10/32 dest 0 10.1.3.10 locl 603 2
10.1.3.11/32 dest 0 10.1.3.11 bcst 601 1 ge-0/0/1.0
10.1.4.12/30 user 0 10.1.5.17 ucst 625 12 ge-0/0/0.0
10.1.5.16/30 intf 0 rslv 600 1 ge-0/0/0.0
10.1.5.16/32 dest 0 10.1.5.16 recv 598 1 ge-0/0/0.0
10.1.5.17/32 dest 0 0:50:56:93:f8:ff ucst 625 12 ge-0/0/0.0
10.1.5.18/32 intf 0 10.1.5.18 locl 599 2
10.1.5.18/32 dest 0 10.1.5.18 locl 599 2
10.1.5.19/32 dest 0 10.1.5.19 bcst 597 1 ge-0/0/0.0
192.0.2.2/32 user 1 10.1.3.9 ucst 617 8 ge-0/0/1.0
192.0.2.3/32 user 1 10.1.5.17 ucst 625 12 ge-0/0/0.0
192.0.2.4/32 intf 0 192.0.2.4 locl 607 1
192.0.2.5/32 user 1 10.1.5.17 ucst 625 12 ge-0/0/0.0
224.0.0.0/4 perm 1 mdsc 35 1
224.0.0.1/32 perm 0 224.0.0.1 mcst 31 5
224.0.0.2/32 user 1 224.0.0.2 mcst 31 5
224.0.0.5/32 user 1 224.0.0.5 mcst 31 5
255.255.255.255/32 perm 0 bcst 32 1
Routing table: __master.anon__.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 0 rjct 524 1
0.0.0.0/32 perm 0 dscd 522 1
224.0.0.0/4 perm 0 mdsc 523 1
224.0.0.1/32 perm 0 224.0.0.1 mcst 526 1
255.255.255.255/32 perm 0 bcst 527 1
Routing table: toCE2_3.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 0 rjct 566 1
0.0.0.0/32 perm 0 dscd 564 1
10.1.1.0/30 user 0 indr 1048574 3
10.1.3.9 Push 16 623 2 ge-0/0/1.0
10.1.6.20/30 user 0 indr 1048575 3
10.1.5.17 Push 16, Push 299808(top) 629 2 ge-0/0/0.0
10.1.7.24/30 intf 0 rslv 616 1 ge-0/0/2.0
10.1.7.24/32 dest 0 10.1.7.24 recv 614 1 ge-0/0/2.0
10.1.7.25/32 intf 0 10.1.7.25 locl 615 2
10.1.7.25/32 dest 0 10.1.7.25 locl 615 2
10.1.7.26/32 dest 1 0:50:56:93:86:18 ucst 618 4 ge-0/0/2.0
10.1.7.27/32 dest 0 10.1.7.27 bcst 613 1 ge-0/0/2.0
10.1.8.28/30 intf 0 rslv 612 1 ge-0/0/3.0
10.1.8.28/32 dest 0 10.1.8.28 recv 610 1 ge-0/0/3.0
10.1.8.29/32 intf 0 10.1.8.29 locl 611 2
10.1.8.29/32 dest 0 10.1.8.29 locl 611 2
10.1.8.30/32 dest 1 0:50:56:93:bb:ed ucst 622 4 ge-0/0/3.0
10.1.8.31/32 dest 0 10.1.8.31 bcst 609 1 ge-0/0/3.0
192.0.2.1/32 user 0 indr 1048574 3
10.1.3.9 Push 16 623 2 ge-0/0/1.0
192.0.2.6/32 user 0 ulst 1048577 2
10.1.7.26 ucst 618 4 ge-0/0/2.0
indr 1048575 3
10.1.5.17 Push 16, Push 299808(top) 629 2 ge-0/0/0.0
192.0.2.7/32 user 0 10.1.8.30 ucst 622 4 ge-0/0/3.0
224.0.0.0/4 perm 0 mdsc 565 1
224.0.0.1/32 perm 0 224.0.0.1 mcst 568 1
255.255.255.255/32 perm 0 bcst 569 1
...
default.inetルーティングテーブル(転送テーブル)では、10.1.2.4/30で始まる出力行が、同じAS内のデバイスPE2へのルートに対して、2つのネクストホップ(10.1.3.9と10.1.5.17)がテーブルにインストールされていることを示しています。
外部ルーティングテーブルである toCE2_3.inet ルーティングテーブルでは、 192.0.2.6/32 で始まる出力行が、AS 65002のデバイスCE2へのルートに対して、 10.1.5.17 の内部ネクストホップと 10.1.7.26 の外部ネクストホップがテーブルにインストールされていることを示しています。これは、内部と外部の両方のBGPルートがネットワークで動作していることを示しています。
user@PE3> show route forwarding-table destination 10.1.2.6
Routing table: default.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
10.1.2.4/30 user 0 ulst 1048576 2
10.1.5.17 ucst 625 12 ge-0/0/0.0
10.1.3.9 ucst 617 8 ge-0/0/1.0
Routing table: __pfe_private__.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 0 dscd 513 2
Routing table: __master.anon__.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 0 rjct 524 1
Routing table: __juniper_services__.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 0 dscd 546 2
Routing table: toCE2_3.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 0 rjct 630 1
10.1.2.4/30で始まる出力行は、同じAS内のデバイスPE3からデバイスPE2へのルートについて、2つのネクストホップ(ge-0/0/1.0インターフェイスを介した10.1.3.9、およびge-2/1/10.18インターフェイスを介した10.1.5.17)がテーブルにインストールされていることを示しています。
意味
転送テーブルには、外部BGPルートを含む、ルートの複数のネクストホップがインストールされています。
レイヤー 3 VPN におけるプロトコル非依存ロード バランシングの設定
レイヤー 3 VPN のプロトコルに依存しないロードバランシングにより、アクティブなルートと代替パスの両方の転送ネクストホップをロードバランシングに使用できます。プロトコルに依存しないロードバランシングは、レイヤー3VPNと連携して機能します。割り当てられたルート識別とは無関係に、VPNルートのロードバランシングをサポートします。プロトコル依存ロードバランシングが有効な場合、他のPEルーターへのルートと直接接続されたCEルーターへのルートの両方がロードバランシングされます。
特定のルートに対してロードバランシング情報が作成されると、show route tableコマンドの出力でアクティブなパスがRouting Use Onlyとしてマークされます。
次のセクションでは、プロトコル非依存型ロードバランシングの設定方法と、この設定がルーティングポリシーに与える影響について説明します。
レイヤー 3 VPN の負荷分散の設定
レイヤー3VPNのプロトコル非依存型ロードバランシングの構成は、IPv4とIPv6では若干異なります。
IPv4—
[edit routing-instances routing-instance-name routing-options]階層レベルまたは[edit routing-instances routing-instance-name routing-options rib routing-table-name]階層レベルのいずれかでmultipathステートメントを設定するだけで済みます。IPv6-
[edit routing-instances routing-instance-name routing-options]階層レベルと[edit routing-instances routing-instance-name routing-options rib routing-table-name]階層レベルの両方でmultipathステートメントを設定する必要があります。
l3vpn ステートメントの設定と同時に、multipath ステートメントとサブステートメントを設定することはできません。
レイヤー3VPNにプロトコル非依存ロードバランシングを設定するには、 multipath ステートメントを含めます。
multipath { vpn-unequal-cost equal-external-internal; }
以下の階層レベルで multipath ステートメントを含めると、プロトコル非依存型ロードバランシングがそのルーティング インスタンスのデフォルトルーティングテーブル(routing-instance-name.inet.0)に適用されます。
[edit routing-instances routing-instance-name routing-options][edit logical-systems logical-system-name routing-instances routing-instance-name routing-options]
[edit logical-systems]階層レベルは、ACXシリーズルーターには適用されません。
以下の階層レベルで multipath ステートメントを含めると、指定されたルーティングテーブルにプロトコル非依存ロードバランシングが適用されます。
[edit routing-instances routing-instance-name routing-options rib routing-table-name][edit logical-systems logical-system-name routing-instances routing-instance-name routing-options rib routing-table-name]
[edit logical-systems]階層レベルは、ACXシリーズルーターには適用されません。
vpn-unequal-cost ステートメントはオプションです。
これを含めると、プロトコルに依存しないロードバランシングが、ルート選択に関するIGPメトリックまで等しいVPNルートに適用されます。
これを含めない場合、プロトコル非依存のロードバランシングは、ルート選択に関するルーター識別子まで等しいVPNルートに適用されます。
vpn-unequal-costステートメントは、ACXシリーズルーターには適用されません。
equal-external-internal ステートメントもオプションです。これを含めると、プロトコルに依存しないロードバランシングが内部と外部の両方のBGPパスに適用されます。これは、エグレスIPヘッダーフィルタリング(vrf-table-labelステートメントで有効)と組み合わせて設定できます。詳細については、「レイヤー 3 VPN の負荷分散と IP ヘッダー フィルタリング」を参照してください。
vpn-unequal-cost equal-external-internal ステートメントと l3vpn ステートメントは、[edit routing-options forwarding-options chained-composite-next-hop ingress]階層レベルで同時に含めることができます。しかし、これを行うと、EBGPは機能しません。つまり、EBGP ECMP(等価コストマルチパス)の候補として、連鎖されたネクストホップを持つパスと連鎖されていないネクストホップを持つパスの両方がある場合、連鎖されたネクストホップを使用するパスは除外されます。一般的なケースでは、除外されるパスは内部パスです。
負荷分散とルーティングポリシーの設定
multipath ステートメントを含めることでレイヤー 3 VPN のプロトコル非依存ロードバランシングを有効にし、ルーティングポリシー設定に load-balance per-packet ステートメントも含めると、パケットはロード バランシングされません。
例えば、PE ルーターには以下の VRF ルーティング インスタンスが設定されています。
[edit routing-instances]
load-balance-example {
instance-type vrf;
interface fe-0/1/1.0;
interface fe-0/1/1.1;
route-distinguisher 2222:2;
vrf-target target:2222:2;
routing-options {
multipath;
}
protocols {
bgp {
group group-example {
import import-policy;
family inet {
unicast;
}
export export-policy;
peer-as 4444;
local-as 3333;
multipath;
as-override;
neighbor 10.12.33.22;
}
}
}
}
また、PEルーターには、以下のポリシーステートメントが設定されています。
[edit policy-options policy-statement export-policy]
from protocol bgp;
then {
load-balance per-packet;
}
VRF ルーティング インスタンス設定に multipath ステートメントを含めると、パスは BGP パスとしてマークされなくなり、代わりにマルチパス パスとしてマークされます。PE ルーターからのパケットはロードバランシングされません。
VPNロードバランシングが期待通りに機能するように、ポリシーステートメントの設定に from protocol ステートメントを含めないでください。ポリシーステートメントは、以下のように設定する必要があります。
[edit policy-options policy-statement export-policy]
then {
load-balance per-packet;
}
パケット単位のロードバランシングを設定する方法についての詳細は、 ルーティングポリシー、ファイアウォールフィルター、およびトラフィックポリサーユーザーガイドを参照してください。
例:次世代マルチキャスト VPN での PIM Join ロード バランシングの設定
この例では、次世代マルチキャストVPN(MVPN)を実行するプロバイダーエッジ(PE)ルーターで、等しくない内部ゲートウェイプロトコル(IGP)メトリックとプロトコル独立マルチキャスト(PIM)ジョインロードバランシングを使用して、外部および内部仮想プライベートネットワーク(VPN)ルートのマルチパスルーティングを設定する方法を示しています。この機能により、顧客 PIM(C-PIM)ジョイン メッセージは、外部 BGP(EBGP)パスが存在しない場合は利用可能な内部 BGP(IBGP)アップストリーム パス間で、また外部および内部 BGP(EIBGP)パスが送信元または RP(ランデブー ポイント)に向かって存在する場合は利用可能な EBGP アップストリーム パス間で負荷分散することができます。
必要条件
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
M Series、MXシリーズ、または T Series ルーターの組み合わせが可能な 3 台のルーター。
すべてのデバイスでJunos OS リリース 12.1 が実行されています。
開始する前に、以下を実行します。
デバイスインターフェイスを設定します。
すべての PE ルーターで以下のルーティング プロトコルを設定します。
OSPF
MPLS
自民党
PIM
BGP
マルチキャスト VPN を構成します。
概要とトポロジー
Junos OS リリース 12.1 以降では、PIM の参加ロードバランシングとともにマルチパス設定がサポートされています。これにより、IBGP パスのみが存在する場合は利用可能なすべての IBGP パスで、送信元(または RP)に向けて EIBGP パスが存在する場合は、利用可能なすべてのアップストリーム EBGP パスで、C-PIM ジョイン メッセージをロード バランシングできます。Draft-Rosen MVPN とは異なり、次世代 MVPN は、C-PIM join メッセージの送信に不等な EIBGP パスを使用しません。この機能は、IPv4 C-PIM ジョイン メッセージに適用されます。
デフォルトでは、1 つのアクティブな IBGP パスのみが、送信元(または RP)への IBGP パスのみを持つ PE ルーターの C-PIM ジョイン メッセージの送信に使用されます。EIBGP アップストリーム パスが存在する場合、1 つのアクティブな EBGP パスのみがジョイン メッセージの送信に使用されます。
次世代 MVPN では、C-PIM ジョイン メッセージは BGP カスタマー マルチキャスト(C マルチキャスト)MVPN ルートに変換(またはエンコード)され、BGP MCAST-VPN アドレス ファミリーを使用して送信側 PE ルーターに向けてアドバタイズされます。PE ルーターは、PE ルーターからカスタマー エッジ(CE)ルーター インターフェイスを介した C-PIM ジョイン メッセージの受信に応答して、C マルチキャスト MVPN ルートを発信します。C-マルチキャスト MVPN ルートには、次の 2 種類があります。
共有ツリー参加ルート(C-*、C-G)
受信側 PE ルーターから発信されます。
PE ルーターが PE-CE ルーター インターフェイスを介して共有ツリー C-PIM join メッセージを受信したときに発生します。
ソース ツリー参加ルート(C-S、C-G)
受信側 PE ルーターから発信されます。
PE ルーターが送信元ツリーの C-PIM 参加メッセージ(C-S、C-G)を受信したときに発信されるか、またはすでに共有ツリーの参加ルートを持ち、送信元のアクティブなオートディスカバリー ルートを受信した PE ルーターから発信されます。
次世代 MVPN のアップストリーム パスは、インターネット ドラフト draft-ietf-l3vpn-2547bis-mcast( Multicast in MPLS/BGP IP VPNs)で指定されている Bytewise-XOR ハッシュ アルゴリズムを使用して選択されます。ハッシュアルゴリズムは、以下のように実行されます。
候補セット内の PE ルーターには、IP アドレスの小さいものから高いものへと 0 から始まる番号が付けられています。
すべてのバイトのバイト単位の排他ORが、Cルート(ソース)アドレスとC-G(グループ)アドレスに対して実行されます。
結果はモジュロ nで、 n は候補セット内のPEルーターの数です。結果は N です。
N は、ステップ 1 で番号が付けられたアップストリーム PE ルーターの IP アドレスを表します。
ロードバランシング中に、送信元(または RP)に向かう 1 つ以上のアップストリーム IBGP パスを持つ PE ルーターが、同じ送信元(または RP)に向かう新しい IBGP パスを発見した場合、候補 PE ルーター セットの変更により、以前から存在する IBGP パスに分散された C-PIM ジョイン メッセージが再配布されます。
この例では、PE1、PE2、および PE3 は、マルチパス PIM 参加ロードバランシング機能が設定された PE ルーターです。ルーターPE1には2つのEBGPパスと1つのIBGPアップストリームパスがあり、PE2には1つのEBGPパスと1つのIBGPアップストリームパスがあり、PE3にはソースへの2つのIBGPアップストリームパスがあります。ルーターCE4は、PE3に接続されたカスタマーエッジ(CE)ルーターです。Source と Receiver は Free BSD のホストです。
PE1 や PE2 など、送信元(または RP)への EIBGP パスを持つ PE ルーターでは、PIM join ロードバランシングは次のように実行されます。
C-PIM ジョイン メッセージは、EBGP パスのみを使用して送信されます。IBGP パスは、ジョイン メッセージの伝播には使用されません。
図 2 では、PE1 ルーターが CE1 ルーターへの 2 つの EBGP パス間のジョイン メッセージを配信し、PE2 は CE1 への EBGP パスを使用してジョイン メッセージを送信します。
PE ルーターが送信元(または RP)への 1 つ以上の EBGP パスを失った場合、マルチキャスト トンネル インターフェイス上の RPF ネイバーがハッシュ メカニズムに基づいて選択されます。
最初の EBGP パスを検出すると、新しいジョイン メッセージだけが利用可能な EBGP パスにロード バランシングされ、マルチキャスト トンネル インターフェイス上の既存のジョイン メッセージは再配布されません。
PE2ルーターからCE1ルーターへのEBGPパスがダウンした場合、PE2はIBGPパスを使用してPE1にジョインメッセージを送信します。CE1 への EBGP パスが復元されると、PE2 に到着した新しいジョイン メッセージのみが復元された EBGP パスを使用しますが、IBGP パスで既に送信されたジョイン メッセージは再配布されません。
PE3 ルーターなど、送信元(または RP)への IBGP パスのみを持つ PE ルーターでは、PIM join ロードバランシングは次のように実行されます。
CE ルータからの C-PIM ジョイン メッセージは、IBGP パス間の BGP C マルチキャスト データ メッセージとしてのみロード バランシングされます。
図 2 では、CE4 ホストが送信元からのトラフィックの受信に関心を持ち、CE4 が異なるグループ(グループ 1 [C-S,C-G1] およびグループ 2 [C-S,C-G2])の送信元ジョイン メッセージを開始すると仮定すると、送信元ジョイン メッセージは PE3 ルータに到着します。
次に、ルーターPE3は、Bytewise-XORハッシュアルゴリズムを使用して、各グループのCマルチキャストデータを送信するアップストリームPEルーターを選択します。このアルゴリズムは、まず、アップストリームの PE ルーターを 0 から始まる低いIPアドレスから高いIPアドレスに番号を付けます。
ルーター PE1 ルーターの番号が 0 、ルーター PE2 が 1 で、グループ 1 とグループ 2 のジョイン メッセージのハッシュ結果がそれぞれ 0 と 1 であると仮定すると、PE3 ルーターは、グループ 1 ジョイン メッセージを送信するアップストリーム PE ルーターとして PE1 を選択し、グループ 2 ジョイン メッセージを送信元に送信するアップストリーム PE ルーターとして PE2 を選択します。
異なるグループ[C-*,C-G]の共有参加メッセージも、宛先に到達するために同様の方法で処理されます。
での PIM 参加ロード バランシング
構成
CLIクイック構成
この例を迅速に設定するには、以下のコマンドをコピーして、テキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit] 階層レベルで CLI にコピー アンド ペーストして、設定モードから commit を入力します。
PE1
set routing-instances vpn1 instance-type vrf set routing-instances vpn1 interface ge-3/0/1.0 set routing-instances vpn1 interface ge-3/3/2.0 set routing-instances vpn1 interface lo0.1 set routing-instances vpn1 route-distinguisher 1:1 set routing-instances vpn1 provider-tunnel rsvp-te label-switched-path-template default-template set routing-instances vpn1 vrf-target target:1:1 set routing-instances vpn1 vrf-table-label set routing-instances vpn1 routing-options multipath vpn-unequal-cost equal-external-internal set routing-instances vpn1 protocols bgp export direct set routing-instances vpn1 protocols bgp group bgp type external set routing-instances vpn1 protocols bgp group bgp local-address 10.40.10.1 set routing-instances vpn1 protocols bgp group bgp family inet unicast set routing-instances vpn1 protocols bgp group bgp neighbor 10.40.10.2 peer-as 3 set routing-instances vpn1 protocols bgp group bgp1 type external set routing-instances vpn1 protocols bgp group bgp1 local-address 10.10.10.1 set routing-instances vpn1 protocols bgp group bgp1 family inet unicast set routing-instances vpn1 protocols bgp group bgp1 neighbor 10.10.10.2 peer-as 3 set routing-instances vpn1 protocols pim rp static address 10.255.10.119 set routing-instances vpn1 protocols pim interface all set routing-instances vpn1 protocols pim join-load-balance set routing-instances vpn1 protocols mvpn mvpn-mode rpt-spt set routing-instances vpn1 protocols mvpn mvpn-join-load-balance bytewise-xor-hash
PE2の
set routing-instances vpn1 instance-type vrf set routing-instances vpn1 interface ge-1/0/9.0 set routing-instances vpn1 interface lo0.1 set routing-instances vpn1 route-distinguisher 2:2 set routing-instances vpn1 provider-tunnel rsvp-te label-switched-path-template default-template set routing-instances vpn1 vrf-target target:1:1 set routing-instances vpn1 vrf-table-label set routing-instances vpn1 routing-options multipath vpn-unequal-cost equal-external-internal set routing-instances vpn1 protocols bgp export direct set routing-instances vpn1 protocols bgp group bgp local-address 10.50.10.2 set routing-instances vpn1 protocols bgp group bgp family inet unicast set routing-instances vpn1 protocols bgp group bgp neighbor 10.50.10.1 peer-as 3 set routing-instances vpn1 protocols pim rp static address 10.255.10.119 set routing-instances vpn1 protocols pim interface all set routing-instances vpn1 protocols mvpn mvpn-mode rpt-spt set routing-instances vpn1 protocols mvpn mvpn-join-load-balance bytewise-xor-hash
PE3の
set routing-instances vpn1 instance-type vrf set routing-instances vpn1 interface ge-0/0/8.0 set routing-instances vpn1 interface lo0.1 set routing-instances vpn1 route-distinguisher 3:3 set routing-instances vpn1 provider-tunnel rsvp-te label-switched-path-template default-template set routing-instances vpn1 vrf-target target:1:1 set routing-instances vpn1 vrf-table-label set routing-instances vpn1 routing-options multipath vpn-unequal-cost equal-external-internal set routing-instances vpn1 routing-options autonomous-system 1 set routing-instances vpn1 protocols bgp export direct set routing-instances vpn1 protocols bgp group bgp type external set routing-instances vpn1 protocols bgp group bgp local-address 10.80.10.1 set routing-instances vpn1 protocols bgp group bgp family inet unicast set routing-instances vpn1 protocols bgp group bgp neighbor 10.80.10.2 peer-as 2 set routing-instances vpn1 protocols pim rp static address 10.255.10.119 set routing-instances vpn1 protocols pim interface all set routing-instances vpn1 protocols mvpn mvpn-mode rpt-spt set routing-instances vpn1 protocols mvpn mvpn-join-load-balance bytewise-xor-hash
プロシージャ
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLIのナビゲーションについては、「 1 コンフィグレーション・モードでのCLIエディタの使用」を参照してください。PE1ルーターを設定するには:
各ルーターの適切なインターフェイス名、アドレス、およびその他のパラメーターを変更した後、MVPN ドメイン内のすべてのジュニパーネットワークス ルーターについて、この手順を繰り返します。
VPNルーティング転送(VRF)ルーティング インスタンスを設定します。
[edit routing-instances vpn1] user@PE1# set instance-type vrf user@PE1# set interface ge-3/0/1.0 user@PE1# set interface ge-3/3/2.0 user@PE1# set interface lo0.1 user@PE1# set route-distinguisher 1:1 user@PE1# set provider-tunnel rsvp-te label-switched-path-template default-template user@PE1# set vrf-target target:1:1 user@PE1# set vrf-table-labelVRF インスタンスのプロトコルに依存しないロードバランシングを有効にします。
[edit routing-instances vpn1] user@PE1# set routing-options multipath vpn-unequal-cost equal-external-internalBGP グループとネイバーを設定して、PE から CE へのルーティングを有効にします。
[edit routing-instances vpn1 protocols] user@PE1# set bgp export direct user@PE1# set bgp group bgp type external user@PE1# set bgp group bgp local-address 10.40.10.1 user@PE1# set bgp group bgp family inet unicast user@PE1# set bgp group bgp neighbor 10.40.10.2 peer-as 3 user@PE1# set bgp group bgp1 type external user@PE1# set bgp group bgp1 local-address 10.10.10.1 user@PE1# set bgp group bgp1 family inet unicast user@PE1# set bgp group bgp1 neighbor 10.10.10.2 peer-as 3PE から CE へのマルチキャスト ルーティングを有効にするように PIM を設定します。
[edit routing-instances vpn1 protocols] user@PE1# set pim rp static address 10.255.10.119すべてのネットワーク インターフェイスで PIM を有効にします。
[edit routing-instances vpn1 protocols] user@PE1# set pim interface allVRF インスタンスの PIM 参加ロードバランシングを有効にします。
[edit routing-instances vpn1 protocols] user@PE1# set pim join-load-balanceC-PIM ジョイン メッセージがランデブーポイント ツリーを使用するようモードを設定し、送信元が判明した後に最短パス ツリーに切り替えます。
[edit routing-instances vpn1 protocols] user@PE1# set mvpn mvpn-mode rpt-sptBytewise-XOR ハッシュ アルゴリズムを使用するように VRF インスタンスを設定します。
[edit routing-instances vpn1 protocols] user@PE1# set mvpn mvpn-join-load-balance bytewise-xor-hash
業績
設定モードから、 コマンドを入力して設定を show routing-instances 確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@PE1# show routing-instances
routing-instances {
vpn1 {
instance-type vrf;
interface ge-3/0/1.0;
interface ge-3/3/2.0;
interface lo0.1;
route-distinguisher 1:1;
provider-tunnel {
rsvp-te {
label-switched-path-template {
default-template;
}
}
}
vrf-target target:1:1;
vrf-table-label;
routing-options {
multipath {
vpn-unequal-cost equal-external-internal;
}
}
protocols {
bgp {
export direct;
group bgp {
type external;
local-address 10.40.10.1;
family inet {
unicast;
}
neighbor 10.40.10.2 {
peer-as 3;
}
}
group bgp1 {
type external;
local-address 10.10.10.1;
family inet {
unicast;
}
neighbor 10.10.10.2 {
peer-as 3;
}
}
}
pim {
rp {
static {
address 10.255.10.119;
}
}
interface all;
join-load-balance;
}
mvpn {
mvpn-mode {
rpt-spt;
}
mvpn-join-load-balance {
bytewise-xor-hash;
}
}
}
}
デバイスの設定が完了したら、設定モードから コミット を入力します。
検証
設定が正常に機能していることを確認します。
ジョイン メッセージの異なるグループの MVPN C マルチキャスト ルート情報の検証
目的
PE3 ルータで受信したジョイン メッセージの異なるグループの MVPN C マルチキャスト ルート情報を検証します。
アクション
動作モードから、 コマンドを show mvpn c-multicast 実行します 。
user@PE3>
MVPN instance:
Legend for provider tunnel
I-P-tnl -- inclusive provider tunnel S-P-tnl -- selective provider tunnel
Legend for c-multicast routes properties (Pr)
DS -- derived from (*, c-g) RM -- remote VPN route
Family : INET
Instance : vpn1
MVPN Mode : RPT-SPT
C-mcast IPv4 (S:G) Ptnl St
0.0.0.0/0:203.0.113.1/24 RSVP-TE P2MP:10.255.10.2, 5834,10.255.10.2
192.0.2.2/24:203.0.113.1/24 RSVP-TE P2MP:10.255.10.2, 5834,10.255.10.2
0.0.0.0/0:203.0.113.2/24 RSVP-TE P2MP:10.255.10.14, 47575,10.255.10.14
192.0.2.2/24:203.0.113.2/24 RSVP-TE P2MP:10.255.10.14, 47575,10.255.10.14
意味
出力は、PE3ルーターが異なるグループのCマルチキャストデータをロードバランシングした方法を示しています。
送信元ジョイン メッセージ(S,G)の場合:
192.0.2.2/24:203.0.113.1/24 (S,G1) PE1ルーターに向けて(10.255.10.2はルーターPE1のループバックアドレスです)。
192.0.2.2/24:203.0.113.2/24(S,G2)をPE2ルーターに向けて(10.255.10.14はルーターPE2のループバックアドレスです)。
共有参加メッセージ (*,G) の場合:
0.0.0.0/0:203.0.113.1/24(*,G1)をPE1ルーターに向けて(10.255.10.2はルーターPE1のループバックアドレスです)。
0.0.0.0/0:203.0.113.2/24(*,G2)をPE2ルーターに向けて(10.255.10.14はルーターPE2のループバックアドレスです)。