内容

概要

背景説明

インバンドシグナリング

このプロファイルで使用される不透明な値

MLDPコアツリー

P2MPツリー

MP2MPツリー

不透明な値

オーバーレイシグナリング

MLDP LSPタイプ

ラベルスイッチドマルチキャスト

トポロジ

コンフィギュレーション

確認

詳細な検証

コントロールプレーンの構築方法

ステップ1：これらのメッセージ交換は、コアでMLDPを設定した後に行われます。

ステップ2：コアでMLDPへのインバンドシグナリングを有効にします。

レシーバがオンラインになる

ソースがストリーミングを開始

パケットキャプチャ(PCAP)

LSPVIFの検証

結論

関連情報

概要

このドキュメントでは、Next Generation Multicast over VPN(mVPN)のプロファイル7であるインバンドシグナリンググローバルMLDPについて説明します。 動作を説明するために、Cisco IOSの例と実装を使用します。

背景説明

- コアのP2MP mLDPインバンドツリー。Cマルチキャストルーティングはありません。

- 顧客のトラフィックは、SM S、G、またはSSMです。

- PEでのグローバルテーブル(S、G)のサポート。

- コア内のPIMはmLDPには必要ありません

インバンドシグナリング

Opaque Valueは、MP LSPをIPマルチキャストフローにマッピングするために使用されます。

不透明な値の内容は、マルチキャストフローから導出されます。

このプロファイルで使用される不透明な値

IPv4 PIM-SSMトランジットを使用すると、グローバルPIM-SSMストリームをマルチプロトコルラベルスイッチ(MPLS)コア経由で伝送できます。Opaque値には、入力および出力PEルータのグローバルルートテーブルに存在する実実(S、G)が含まれています。

Opaque ValueはMP LSPを一意に識別するだけでなく、エッジIPマルチキャストネットワークから(S,G)ストリーム情報を伝送することもできます。MPラベルスイッチドパス(LSP)のPルータは、Opaque値を解析する必要はありませんが、その値をローカルMP LSPデータベースのインデックスとして使用して、マルチキャストパケットを複製するネクストホップを決定します。ただし、入力PE LSP（ソースに最も近い）は、着信(S、G)ストリームに対して正しいMP LSPを選択できるように、値をデコードします。出力PEは、値を使用して、ローカルVRFまたはグローバルmrouteテーブルに(S、G)状態をインストールできます。

1. LSMでは、ユニキャストとマルチキャストの両方のトラフィックに対して単一のMPLSフォワーディングプレーンを使用できます。

2. LSMにより、既存のMPLS保護(MPLS(TE/RSVP)やMPLS(OAM)メカニズムなど)をマルチキャストトラフィックに使用できます。

3. LSM MPLSコアネットワークでPIMが不要になるため、運用の複雑さが軽減されます。

MLDPコアツリー

P2MPツリー

MLDP P2MP FECを使用して通知されたレシーバドライバとルート。

一意に識別：

- ルートノードアドレス

- P2MP LSP -ID [32ビット]

MP2MPツリー

Configuration Drivenおよびrootは手動で設定します。

一意に識別：

- ルートノードアドレス

- MP2MP LSP -ID [32ビット]

不透明な値

ルートおよびリーフに意味を持つマルチキャストストリーム情報を伝送するために使用されます。

- (S,G)インバンドシグナリング

- LSPID（デフォルト/データ）

Type 1:MDLPによって定義され、P2MP / MP2MP LSPのID空間を管理するためのLSP-IDが含まれます。

Type 2:MP-LDPトンネルのプロビジョニング用に定義され、オーバーラップのないBGP-MVPNに使用されます。

オーバーレイシグナリング

MLDP LSPタイプ

ラベルスイッチドマルチキャスト

ラベルを使用したマルチキャストをサポートするMPLSテクノロジー拡張：

- ポイントツーマルチポイントLSP

- マルチポイント間LSP

P2MP

MP2MP

ラベル

アップストリーム割り当て

アップストリームとダウンストリーム

トラフィック

ダウンストリームフロー

アップストリームとダウンストリーム

Root

入力ルータ

エッジを提供/提供

トラフィックタイプ

コントロールルータ

制御トラフィックのみ

LSPタイプ

多くの葉に根

多くの葉に多くの根

トポロジ

コンフィギュレーション

ステップ1：コアノードでMPLS MLDPを有効にします。

PE1、PE2、およびPE3:

# mpls mldp logging

ステップ2：コアでMLDPインバンドシグナリングを有効にします。

PE1、PE2、およびPE3:

# ip multicast mpls mldp

# ip pim mpls source loopback 0

手順3：マルチキャストルーティングを有効にします。

すべてのノード：

# ip multicast-routing

ステップ4：カスタマーエッジ(CE)でProtocol Independent Multicast(PIM)SSMを有効にします。

CEノード：

# ip pim ssm default

ステップ5：すべてのCEインターフェイスとプロバイダーエッジ(PE)インターフェイスでPIM SMを有効にします。

CE1、CE2、CE3、およびすべてのCE向けPEインターフェイス：

# interface x/x

# ip pim sparse-mode

# interface loopback x/x

# ip pim sparse-mode

注：xは、PEがCEに接続したインターフェイス番号を表し、その逆も表します。

確認

タスク 1：物理的な接続の確認.

- 接続されているすべてのインターフェイスがUPであることを確認します。

タスク 2：BGPアドレスファミリIPv4ユニキャストの確認

- AF IPv4ユニキャストのすべてのルータでボーダーゲートウェイプロトコル(BGP)が有効になっており、BGPネイバーがUPであることを確認します。

- BGP IPv4テーブルにすべてのCustomerプレフィックスがあることを確認します。

タスク 3：マルチキャストトラフィックのエンドツーエンドを確認します。

- 接続されたPIMネイバーとのPIMネイバーシップをチェックします。

- マルチキャスト状態が作成されたことを確認します。

- PE1、PE2、およびPE3のPE mRIBエントリ

- (S、G)mFIBエントリがソフトウェアフォワーディングで増加することを確認します。

- ICMPパケットがCEからCEに到達することを確認します。

タスク 4：MPLS COREを確認します。

- MPLS LSPコアを確認します。

- 設計に従って、コア内のMPLS転送を確認します。

- IPv4のMPLS P2MP LSP ping。

詳細な検証

Interior Gateway Protocol(IGP)、MPLS LDP、Border Gateway Protocol(BGP)は、ネットワーク全体で正常に動作します。

このセクションでは、コア/アグリゲーションネットワークをチェックインすることを確認します。MPLSネットワーク上のトラフィックの隣接関係とコントロールプレーンとデータプレーンをチェックします。

ローカルおよびリモートのCEデバイスがマルチプロトコルラベルスイッチング(MPLS)コア経由で通信できることを確認するには、次の図に示す手順を実行します。

コントロールプレーンの構築方法

PEルータがIPヘッダーに基づいてパケットを転送し、MPLSネットワークに入る際にMPLSラベルをパケットに追加するときに、ラベルのインポジションが発生するコントロールプレーンを確認します。

ラベルインポジションの方向では、ルータはCisco Express Forwarding(CEF)テーブルルックアップに基づいてパケットをスイッチングし、ネクストホップを見つけ、宛先のFIBに保存されている適切なラベル情報を追加します。ルータがMPLSパケットのコアでラベルスワッピングを実行すると、ルータはMPLSテーブルルックアップを実行します。ルータは、CEFテーブルとラベル情報ベース(LIB)の情報からこのMPLSテーブル(LFIB)を取得します。

ラベルの廃棄は、PEルータがMPLSパケットを受信し、MPLSラベルに基づいて転送決定を行い、ラベルを削除し、IPパケットを送信すると発生します。PEルータは、この方向のパケットのパス決定にLFIBを使用します。前述したように、特別なiBGPセッションは、PEルータ間のVPNv4プレフィクスとそのラベルのアドバタイズを容易にします。アドバタイジングPEでは、BGPがローカルで学習したVPNプレフィックスにラベルを割り当て、MPLS転送テーブルであるLabel Forwarding Information Base(LFIB)にラベルをインストールします。

ステップ1：これらのメッセージ交換は、コアでMLDPを設定した後に行われます。

MLDP-MFI: Enabled MLDP MFI client on Ethernet0/0; status =  ok

MLDP-MFI: Enabled MLDP MFI client on Ethernet0/1; status =  ok

MLDP: P2MP Wildcard label request sent to 11.11.11.11:0 success

MLDP: MP2MP Wildcard label request sent to 11.11.11.11:0 success

MLDP-NBR: 11.11.11.11:0 ask LDP for adjacencies

注：# debug mpls mldp allを使用して、前の確立を確認します。

PE1#sh mpls mldp neighbors

MLDP peer ID    : 11.11.11.11:0, uptime 00:02:05 Up,

Target Adj     : No

Session hndl   : 1

Upstream count : 0

Branch count   : 0

Path count     : 1

Path(s)        : 10.0.1.2          LDP Ethernet0/1

Nhop count     : 0

ステップ2：コアでMLDPへのインバンドシグナリングを有効にします。

ip pim mpls source loopback 0

ip multicast mpls mldp

MLDP: Enabled IPv4 on Lspvif0 unnumbered with Loopback0

MLDP-MFI: Enabled MLDP MFI client on Lspvif0; status =  ok

PIM(*): PIM subblock added to Lspvif0

MLDP: Enable pim on lsp vif: Lspvif0

MLDP: Add success lsp vif: Lspvif0 address: 0.0.0.0 application: MLDP vrf_id: 0

MLDP-DB: Replaying database events for opaque type value: 3

%LINEPROTO-5-UPDOWN: Line protocol on Interface Lspvif0, changed state to up

PIM(0): Check DR after interface: Lspvif0 came up!

%PIM-5-DRCHG: DR change from neighbor 0.0.0.0 to 1.1.1.1 on interface Lspvif0

注：# debug mpls mldp allを使用して、前の確立を確認します。

PE1#sh int lspvif 0

Lspvif0 is up, line protocol is up

Hardware is

Interface is unnumbered. Using address of Loopback0 (1.1.1.1)

MTU 17940 bytes, BW 8000000 Kbit/sec, DLY 5000 usec,

reliability 255/255, txload 1/255, rxload 1/255

Encapsulation LOOPBACK, loopback not set

注：レシーバがまだオンラインでないため、MPLS MLDPはまだ作成されていません。

レシーバ3がオンラインになり、PIM JOIN(S、G)メッセージをPE3に送信します。

レシーバがオンラインになる

PIM(0): Received v2 Join/Prune on Ethernet0/2 from 10.2.0.2, to us

PIM(0): Join-list: (10.1.0.2/32, 232.1.1.1), S-bit set

MRT(0): Create (*,232.1.1.1), RPF (unknown, 0.0.0.0, 2147483647/0)

MRT(0): RPF Track start on 10.1.0.2 for (10.1.0.2, 232.1.1.1)

MRT(0): Reset the z-flag for (10.1.0.2, 232.1.1.1)

MLDP: Enabled IPv4 on Lspvif1 unnumbered with Loopback0

MLDP-MFI: Enable lsd on int failed; not registered;

PIM(*): PIM subblock added to Lspvif1

MLDP: Enable pim on lsp vif: Lspvif1

MLDP: Add success lsp vif: Lspvif1 address: 1.1.1.1 application: MLDP vrf_id: 0

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) update (t=0) RPF: 0.0.0.0

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) set rpf nbr: 0.0.0.0

MLDP-MRIB-IP: wavl insert success (10.1.0.2, 232.1.1.1)

MLDP-MRIB-IP: no RPF neighbor, done!

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) update (t=1) RPF: 1.1.1.1

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) set rpf nbr: 1.1.1.1

MLDP-MRIB-IP: Change RPF neighbor from 0.0.0.0 to 1.1.1.1

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) update idb = Lspvif1, (f=2,c=2)

MLDP-MRIB-IP: add accepting interface: Lspvif1 root: 1.1.1.1

MLDP-MRIB-IP: change interface from NULL to Lspvif1

%LINEPROTO-5-UPDOWN: Line protocol on Interface Lspvif1, changed state to up

PIM(0): Check DR after interface: Lspvif1 came up!

PIM(0): Changing DR for Lspvif1, from 0.0.0.0 to 2.2.2.2 (this system)

%PIM-5-DRCHG: DR change from neighbor 0.0.0.0 to 2.2.2.2 on interface Lspvif1

注：# debug mpls mldp allおよび# debug ip bgp ipv4 mvpn updatesデバッグを使用して、前述の確立を確認します。

レシーバ(S,G)参加からの通信はMLDPに変換され、すべてのメッセージはLspvif 1に向けて送信されます

PIM JOIN(S,G)は、MLDPがレシーバ駆動プロトコルであるため、レシーバからソースへのMLDPデータベースを構築します。これは、P2MP MLDPのダウンストリームラベル割り当てです。

注：インバンドシグナリングでは、Label Switched Path Virtual Interfaces（LSPVIF；ラベルスイッチドパス仮想インターフェイス）が入力PEごとに作成され、strict-RPF（つまり、厳密なRPF）が実装されます。(S,G)パケットが予想されるリモートPEから着信した場合にのみ、パケットを受け入れます。これはLSPVIF1です。送信元PEは、デフォルトのLSPVIFを使用してコアに転送されます。LSPVIFインターフェイス番号の兆候がないことに注意してください。つまり、lspvif0が常にデフォルトインターフェイスであるとは限らず、lspvif1が常にPEごとのインターフェイスであるとは限りません。これらの数値は、必要に応じてオンデマンドで割り当てられます。

PE3#sh ip mroute 232.1.1.1 verbose

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

T - SPT-bit set, p - PIM Joins on route,

(10.1.0.2, 232.1.1.1), 00:19:28/00:02:42, flags: sTp

Incoming interface: Lspvif1, RPF nbr 1.1.1.1

Outgoing interface list:

Ethernet0/0, Forward/Sparse, 00:19:28/00:02:42, p

PE3#sh mpls mldp database

* For interface indicates MLDP recursive forwarding is enabled

* For RPF-ID indicates wildcard value

> Indicates it is a Primary MLDP MDT Branch

LSM ID : 1   Type: P2MP   Uptime : 00:28:02

FEC Root           : 1.1.1.1

Opaque decoded     : [ipv4 10.1.0.2 232.1.1.1]

Opaque length      : 8 bytes

Opaque value       : 03 0008 0A010002E8010101

Upstream client(s) :

11.11.11.11:0    [Active]

Expires        : Never         Path Set ID  : 1

Out Label (U)  : None          Interface    : Ethernet0/3*

Local Label (D): 24            Next Hop     : 10.0.3.2

Replication client(s):

MRIBv4(0)

Uptime         : 00:28:02      Path Set ID  : None

Interface      : Lspvif1

RR-P #sh mpls mldp database

* For interface indicates MLDP recursive forwarding is enabled

* For RPF-ID indicates wildcard value

> Indicates it is a Primary MLDP MDT Branch

LSM ID : A   Type: P2MP   Uptime : 00:40:52

FEC Root           : 1.1.1.1

Opaque decoded     : [ipv4 10.1.0.2 232.1.1.1]

Opaque length      : 8 bytes

Opaque value       : 03 0008 0A010002E8010101

Upstream client(s) :

1.1.1.1:0    [Active]

Expires        : Never         Path Set ID  : A

Out Label (U)  : None          Interface    : Ethernet0/1*

Local Label (D): 24            Next Hop     : 10.0.1.1

Replication client(s):

2.2.2.2:0

Uptime         : 00:40:52      Path Set ID  : None

Out label (D)  : 23            Interface    : Ethernet0/3*

Local label (U): None          Next Hop     : 10.0.2.1

3.3.3.3:0

Uptime         : 00:40:52      Path Set ID  : None

Out label (D)  : 24            Interface    : Ethernet0/2*

Local label (U): None          Next Hop     : 10.0.3.1

ネクストホップのRPFルックアップに基づいて送信元PEで受信された情報。

MLDP-LDP: [ipv4 10.1.0.2 232.1.1.1] label mapping from: 11.11.11.11:0 label: 23 root: 1.1.1.1 Opaque_len: 11 sess_hndl: 0x1

MLDP: LDP root 1.1.1.1 added

MLDP-DB: Added [ipv4 10.1.0.2 232.1.1.1] DB Entry

MLDP-DB: [ipv4 10.1.0.2 232.1.1.1] Changing branch 11.11.11.11:0 from Null/0.0.0.0 to Ethernet0/1/10.0.1.2

MLDP-MFI: Could not add Path type: PKT, Label: 23, Next hop: 11.11.11.11, Interface: NULL to set: 3, error 1

MLDP-DB: [ipv4 10.1.0.2 232.1.1.1] Added P2MP branch for 11.11.11.11:0 label 23

MLDP-MRIB-IP: [ipv4 10.1.0.2 232.1.1.1] client update: We are root

MLDP-MRIB-IP: wavl insert success (10.1.0.2, 232.1.1.1)

MLDP-MRIB-IP: [ipv4 10.1.0.2 232.1.1.1] Created: Lspvif0 for: 0.0.0.0

MLDP-MRIB: Created adjacency for LSM ID 3

MLDP-MRIB-IP: [ipv4 10.1.0.2 232.1.1.1] Created adjacency on Lspvif0

MLDP: nhop 1.1.1.1 added

MRT(0): Set the T-flag for (10.1.0.2, 232.1.1.1)

MRT(0): (10.1.0.2,232.1.1.1), RPF install from  /0.0.0.0 to Ethernet0/2/10.1.0.2

PIM(0): Insert (10.1.0.2,232.1.1.1) join in nbr 10.1.0.2's queue

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) update (t=1) RPF: 10.1.0.2

MLDP-MRIB-IP: (10.1.0.2,232.1.1.1/32) set rpf nbr: 10.1.0.2

MLDP-MRIB-IP: ignoring interface Ethernet0/2, no LS

注：# debug mpls mldp allおよび# debug ip bgp ipv4 mvpn updatesを使用して、前の確立を確認してください。

PE1#sh ip mroute 232.1.1.1 verbose

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

L - Local, P - Pruned, R - RP-bit set, F - Register flag,

T - SPT-bit set, I - Received Source Specific Host Report,

(10.1.0.2, 232.1.1.1), 00:25:14/stopped, flags: sTI

Incoming interface: Ethernet0/2, RPF nbr 10.1.0.2

Outgoing interface list:

Lspvif0, LSM ID: 4, Forward/Sparse, 00:25:14/00:01:45

PE1# sh mpls mldp database

* For interface indicates MLDP recursive forwarding is enabled

* For RPF-ID indicates wildcard value

> Indicates it is a Primary MLDP MDT Branch

LSM ID : 4   Type: P2MP   Uptime : 00:25:25

FEC Root           : 1.1.1.1 (we are the root)

Opaque decoded     : [ipv4 10.1.0.2 232.1.1.1]

Opaque length      : 8 bytes

Opaque value       : 03 0008 0A010002E8010101

Upstream client(s) :

None

Expires        : N/A           Path Set ID  : 4

Replication client(s):

11.11.11.11:0

Uptime         : 00:25:25      Path Set ID  : None

Out label (D)  : 24            Interface    : Ethernet0/1*

Local label (U): None          Next Hop     : 10.0.1.2

MLDP-LDP: [id 0] Wildcard label request from: 11.11.11.11:0 label: 0 root: 6.2.0.0 Opaque_len: 0 sess_hndl: 0x1

MLDP-LDP: [ipv4 10.1.0.2 232.1.1.1] label mapping from: 11.11.11.11:0 label: 23 root: 1.1.1.1 Opaque_len: 11 sess_hndl: 0x1

Neighbor 11.11.11.11 request for the label request to PE1.

注：プレフィックスのラベルデータベースを再生して、ピアから受信したTyped Wildcard Label Requestsに応答します。ピアに対してTyped Wildcard Label Requestsを使用して、プレフィックスのピアラベルデータベースのリプレイを要求します。

MLDP-LDP: [ipv4 10.1.0.2 232.1.1.1] label mapping from: 11.11.11.11:0 label: 24 root: 1.1.1.1 Opaque_len: 11 sess_hndl: 0x1

MLDP: LDP root 1.1.1.1 added

MLDP-DB: Added [ipv4 10.1.0.2 232.1.1.1] DB Entry

MLDP-DB: [ipv4 10.1.0.2 232.1.1.1] Changing branch 11.11.11.11:0 from Null/0.0.0.0 to Ethernet0/1/10.0.1.2

%MLDP-5-ADD_BRANCH: [ipv4 10.1.0.2 232.1.1.1] Root: 1.1.1.1, Add P2MP branch 11.11.11.11:0 remote label 24

debug ip mfib pak

debug ip mfib mrib

ソースがストリーミングを開始

Traffic from Source 10.1.0.2 streaming from 232.1.1.1. Enters through ethernet0/2.

The packet got forwarded via Lspvif 0.

PIM(0): Insert (10.1.0.2,232.1.1.1) join in nbr 10.1.0.2's queue

PIM(0): Building Join/Prune packet for nbr 10.1.0.2

PIM(0):  Adding v2 (10.1.0.2/32, 232.1.1.1), S-bit Join

PIM(0): Send v2 join/prune to 10.1.0.2 (Ethernet0/2)

MFIBv4(0x0): Pkt (10.1.0.2,232.1.1.1) from Ethernet0/2 (FS) accepted for forwarding

MFIBv4(0x0): Pkt (10.1.0.2,232.1.1.1) from Ethernet0/2 (FS) sent on Lspvif0, LSM NBMA/4

パケットキャプチャ(PCAP)

このパケットはLspvif 0にトンネリングされます。

At the receiver Side:

At the receiver side the packet reach at the Lspvif 1.

MFIBv4(0x0): Pkt (10.1.0.2,232.1.1.1) from Lspvif1 (FS) accepted for forwarding

MFIBv4(0x0): Pkt (10.1.0.2,232.1.1.1) from Lspvif1 (FS) sent on Ethernet0/0

PIM(0): Received v2 Join/Prune on Ethernet0/0 from 10.3.0.2, to us

PIM(0): Join-list: (10.1.0.2/32, 232.1.1.1), S-bit set

PIM(0): Update Ethernet0/0/10.3.0.2 to (10.1.0.2, 232.1.1.1), Forward state, by PIM SG Join

LSPVIFの検証

パケットがPE1に到達すると、LSM IDをチェックしてトラフィックを転送し、マルチキャストパケットに割り当てるラベルを確認します。

結論

マルチポイントLDP(M-LDP)インバンドシグナリングにより、プロバイダーコアでのPIMの使用を回避しながら、既存のIP/MPLSバックボーンを介してマルチキャストトラフィックを伝送できます。

ラベルエッジルータ(LER)で、LERがPIMアップストリームネイバーを検出しない場合に、PIMがアップストリームネイバーにM-LDPインバンドシグナリングを使用できるようにします。

関連情報

- https://tools.ietf.org/html/rfc4760

- https://tools.ietf.org/html/rfc4447

- https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipmulti_lsm/configuration/15-sy/imc-lsm-15-sy-book.. にアクセスしてください。

- テクニカル サポートとドキュメント – Cisco Systems