内容

概要

背景説明

MLDPシグナリング

インバンドシグナリング

オーバーレイまたはアウトオブバンドシグナリング

Label Distribution Protocol(LDP)Typed Wildcard Forward Equivalence Class(FEC) # RFC5918

トポロジ

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

コンフィギュレーション

確認

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

P2MP MLDP

結論

関連情報

概要

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

背景説明

Multicast Label Distribution Protocol(MLDP)インバンドシグナリング：ボーダーゲートウェイプロトコル(BGP)やProtocol Independent Multicast(PIM)などのアウトオブバンドシグナリングを使用せずに、MLDPコアが(S、G)または(*、G)状態を作成できるようにします。

MLDP対応マルチキャストVPN(MVPN)により、VPNマルチキャストストリームをVPN固有のツリーで集約できます。

MLDPコアには顧客状態は作成されません。デフォルトおよびデータマルチキャスト配信ツリー(MDT)には唯一の状態があります。

特定のシナリオでは、VPNストリームに対して作成される状態は制限されており、リスクや制限要因ではないようです。これらのシナリオでは、MLDPは中継ラベルスイッチドパス(LSP)であるインバンドMDTを構築できます。

VPNスペースで使用されるツリーはMDTです。グローバルテーブルで使用されるツリーは、中継ポイントツーマルチポイント(P2MP)またはマルチポイント(MP2MP)LSPです。

いずれの場合も、単一のマルチキャストストリーム（VPNまたはVPN）は、MPLSコア内の単一のLSPに関連付けられます。ストリーム情報は、LSPのForwarding Equivalence Class（FEC；転送等価クラス）で符号化されます。これはインバンドシグナリングです。

LSMは、コア内で顧客のトラフィックを転送するために現在使用されているGREコアトンネルと比較して利点を提供し、MPLSインフラストラクチャを利用してIPマルチキャストパケットを転送し、ユニキャストとマルチキャストに共通のデータプレーンを提供します。

MLDPシグナリング

MLDPシグナリングには、次の2つの機能があります。

- MP LSPのFEC（およびそれに関連するOpaque値）を検出するには

- マルチキャストフローをMP LSPに割り当てるには

インバンドシグナリング

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

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

オーバーレイまたはアウトオブバンドシグナリング

- オーバーレイプロトコルを使用して、MP LSPをIPマルチキャストフローにマッピングします。

- Opaque値は、入力ルートPEによって割り当てることも、静的に設定することもできます。

- MP LSPはオンデマンドで作成されるか、事前設定できます。

- マルチキャストストリームを1つのMP LSPに集約できます。

ラベル配布プロトコル(LDP)タイプワイルドカード転送等価クラス(FEC) # RFC5918

[Typed Wildcard FEC Element]は、制約を満たす指定タイプのすべてのFECを参照します。  これは、「FEC要素タイプ」と、追加情報を提供するためのオプションの制約を指定します。

型指定ワイルドカードFEC要素の形式は次のとおりです。

型指定ワイルドカード：1オクテットのFECエレメントタイプ(0x05)。

LDP [RFC5036]は、転送等価クラス(FEC)のラベルを配布します。  LDPはFEC TLVをLDPメッセージで使用してFECを指定します。

LDP FEC TLVには1つ以上のFEC要素が含まれます。  FEC要素は、FEC型とオプションの型依存値とを含む。

RFC 5036では2つのFECタイプ(プレフィクスとワイルドカード)が規定されており、その他のドキュメントでは追加のFECタイプが規定されています。たとえば、[RFC4447]および[MLDP]を参照してください。

RFC 5036で規定されているとおり、ワイルドカードFEC要素は、オプションの制約に関連するすべてのFECを参照します。

唯一の制約RFC 5036は、ワイルドカードFEC要素の範囲を「特定のラベルにバインドされたすべてのFEC」に制限するものです。

ワイルドカードFEC要素のRFC 5036仕様には、そのユーティリティを制限する次の欠陥があります。

- ワイルドカードFEC要素は型指定されていません。  特定のタイプのすべてのFECを（別の制約として）参照できると便利な状況があります。

- ワイルドカードFEC要素の使用は、Label WithdrawおよびLabel Releaseメッセージのみに限定されます。  Label Requestメッセージで、型制約を持つワイルドカードFEC要素を使用すると便利な状況があります。

トポロジ

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

コンフィギュレーション

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

# mpls mldp logging

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

PE1、PE2、およびPE3

# ip multicast vrf INBAND-MLDP mpls mldp

# ip pim vrf INBAND-MLDP mpls source loopback 0

ステップ3：すべてのCEインターフェイスとPE VRFインターフェイスでPIM SMを有効にします。

CE1、CE2、CE3、およびすべてのVRFインターフェイスPE1、PE2、およびPE3上

# interface x/x

# ip pim sparse-mode

# interface loopback x/x

# ip pim sparse-mode

注：PIMモードは、プロバイダエッジルータのCE側インターフェイスでのみ有効にします。コアに必要ありません。

手順4:VRFでマルチキャストを有効にします。

PE1、PE2、およびPE3

# ip multicast-routing vrf inband-MLDP

ステップ5:PEルータのPE-CEインターフェイスx/xでVRFを有効にします。

# interface x/x

# ip vrf forwarding INBAND-MLDP

ステップ6:CEおよびPEノードでモードSSMを設定します（VRFのみ）。

CEノード上

# ip pim ssm default

PE1、PE2、PE3（VRF下）

# ip pim vrf inband-MLDP ssm default

ステップ7:IGMPグループSSM 232.1.1.1（レシーバ）を設定します。

レシーバ2および3

CE #interface x/x

# ip pim join-group 232.1.1.1 source 10.1.0.2

確認

IGP、MPLS LDP、BGPはネットワーク全体でエンドツーエンドで正常に動作します。

このセクションでは、コア/アグリゲーションネットワークのVPN AF隣接関係を確認するために検証を行います。CE-PE間の隣接関係がチェックされ、コントロールプレーンも、MPLSネットワーク上のVPNトラフィックのデータプレーンとともにチェックされます。

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

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

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

タスク 2：BGPアドレスファミリVPNv4ユニキャストを確認します。

- AF VPNv4ユニキャストのすべてのルータでBGPが有効になっており、BGPネイバーがUPであることを確認します。

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

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

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

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

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

- VRF(S、G)mFIBエントリ、パケットがソフトウェア転送で増加することを確認します。

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

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

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

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

- MPLS P2MP LSP pingが動作していることを確認します。

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

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

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

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

ステップ1：コアでMLDPを設定すると、これらのメッセージが交換されます。

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-MFI: Enabled MLDP MFI client on Lspvif0; status =  ok

LDP Peer 11.11.11.11:0 re-announced

MLDP-NBR: 11.11.11.11:0 UP sess_hndl: 1, (old ID: 0.0.0.0:0)

mLDP-RW: Sending RW notification message to process: mLDP Process

mLDP-RW: RW Tracking started for: 11.11.11.11

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: [id 0] Wildcard label request from: 11.11.11.11:0 label: 0 root: 8.2.0.0 Opaque_len: 0 sess_hndl: 0x1

Neighbor 11.11.11.11 request for the label request to PE1.

このデバッグを使用して、上記の確立を確認します。

# debug mpls mldp all

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

ステップ2:VRFでインバンドシグナリングを有効にします。

PE1 # Config t

# ip pim vrf MLDP-INBAND mpls source loopback 0

# ip multicast vrf MLDP-INBAND mpls mldp

MLDP: Enabled IPv4 on Lspvif0 unnumbered with Loopback0

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

MLDP: Enable pim on lsp vif: Lspvif0

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

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

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

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

PIM(1): Changing DR for Lspvif0, from 0.0.0.0 to 1.1.1.1 (this system)

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

Use this Debug to check the preceding establishment

# debug ip pim vrf LDP-INBAND6

PE1#sh interfaces 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(1): Received v2 Join/Prune on Ethernet0/2 from 10.2.0.2, to us

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

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

MLDP: Interface Lspvif1 moved from VRF (default) to VRF MLDP-INBAND

MLDP: Enabled IPv4 on Lspvif1 unnumbered with Loopback0

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

MRT(1): Add interface Lspvif1

MLDP: Enable pim on lsp vif: Lspvif1

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

MLDP: LDP root 1.1.1.1 added

mLDP-RW: Sending RW notification message to process: mLDP Process

mLDP-RW: RW Tracking started for: 1.1.1.1

MLDP:  Route watch started for 1.1.1.1 topology: base ipv4

MLDP-DB: Added [vpnv4 10.1.0.2 232.1.1.1 1:1] DB Entry

MLDP-DB: [vpnv4 10.1.0.2 232.1.1.1 1:1] Added P2MP branch for MRIBv4(1) label

%MLDP-5-ADD_BRANCH: [vpnv4 10.1.0.2 232.1.1.1 1:1] Root: 1.1.1.1, Add P2MP branch MRIBv4(1) remote label

MLDP: nhop 10.0.2.2 added

MLDP-NBR: 11.11.11.11:0 mapped to next_hop: 10.0.2.2

MLDP: Root 1.1.1.1 old paths: 0 new paths: 1

MLDP-DB: [vpnv4 10.1.0.2 232.1.1.1 1:1] Changing peer from none to 11.11.11.11:0

MLDP-DB: [vpnv4 10.1.0.2 232.1.1.1 1:1] Add accepting element nbr: 11.11.11.11:0

MLDP: [vpnv4 10.1.0.2 232.1.1.1 1:1] label mappping msg sent to 11.11.11.11:0 success

MLDP-DB: [vpnv4 10.1.0.2 232.1.1.1 1:1] path to peer: 11.11.11.11:0 changed None:0.0.0.0 to Ethernet0/3:10.0.2.2

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

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

P2MP MLDP

P2MPパケット転送は、Resource Reservation Protocol(RSVP)P2MP - Traffic Engineering(P2MP-TE)を使用して実装され、M2Mパケット転送は、マルチキャストラベル配布プロトコル(MLDP)を使用してIPv4マルチキャストVPNをでで実行されます。

パケットは、次の3種類のルータ経由で転送されます。

・ヘッドエンドルータ：1つ以上のラベルでIPパケットをカプセル化します。

・ミッドポイントルータ：in-labelをout-labelに置き換えます。

・テールエンドルータ：パケットからラベルを削除します。

MLDPベースのMVPNネットワークでのパケットフロー着信パケットごとに、MPLSは複数の出力ラベルを作成します。送信元ネットワークからのパケットは、受信側ネットワークへのパスに沿って複製されます。CE1ルータはネイティブIPマルチキャストトラフィックを送信します。PE1ルータは、着信マルチキャストパケットにラベルを付け、ラベル付きパケットをMPLSコアネットワークに複製します。パケットがコアルータ(P)に到達すると、パケットはMP2MPデフォルトMDTまたはP2MPデータMDTに適切なラベルで複製され、すべての出力PEに転送されます。パケットが出力PEに到達すると、ラベルが削除され、IPマルチキャストパケットがVRFインターフェイスに複製されます

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 : 1   Type: P2MP   Uptime : 00:23:11

FEC Root           : 1.1.1.1 (we are the root)

Opaque decoded     : [vpnv4 10.1.0.2 232.1.1.1 1:1]

Opaque length      : 16 bytes

Opaque value       : FA 0010 0A010002E80101010000000100000001

Upstream client(s) :

None

Expires        : N/A           Path Set ID  : 1

Replication client(s):

11.11.11.11:0

Uptime         : 00:23:11      Path Set ID  : None

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

Local label (U): None          Next Hop     : 10.0.1.2

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 : 2   Type: P2MP   Uptime : 00:28:12

FEC Root           : 1.1.1.1

Opaque decoded     : [vpnv4 10.1.0.2 232.1.1.1 1:1]

Opaque length      : 16 bytes

Opaque value       : FA 0010 0A010002E80101010000000100000001

Upstream client(s) :

1.1.1.1:0    [Active]

Expires        : Never         Path Set ID  : 2

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

Local Label (D): 21            Next Hop     : 10.0.1.1

Replication client(s):

3.3.3.3:0

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

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

Local label (U): None          Next Hop     : 10.0.3.1

2.2.2.2:0

Uptime         : 00:24:41      Path Set ID  : None

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

Local label (U): None          Next Hop     : 10.0.2.1

RR-P#sh mpls forwarding-table labels 21

Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop

Label      Label      or Tunnel Id     Switched      interface

21         26         [vpnv4 10.1.0.2 232.1.1.1 1:1]   \

0             Et0/2      10.0.3.1

25         [vpnv4 10.1.0.2 232.1.1.1 1:1]   \

0             Et0/3      10.0.2.1

PEデバイスで作成されたMRIB:

PE1#sh ip mroute vrf MLDP-INBAND 232.1.1.1 verbose

IP Multicast Routing Table

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

T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,

U - URD, I - Received Source Specific Host Report,

(10.1.0.2, 232.1.1.1), 00:00:17/00:02:42, flags: sTI

Incoming interface: Ethernet0/2, RPF nbr 10.1.0.2

Outgoing interface list:

Lspvif0, LSM ID: 1, Forward/Sparse, 00:00:17/00:02:42

Sourceがストリーミングを開始するとき：

マルチキャストソースがトラフィックの送信を開始すると、[10.1.0.2, 232.1.1.1]が次の図のように発生します。

送信元10.1.0.2からのトラフィックが232.1.1.1からストリーミングされます。ethernet0/2から入ります。

パケットは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

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

受信側：

受信側では、パケットは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

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

次の図は、LSPVIFインターフェイスの確認を示しています。

着信パケットごとに、MPLSは複数の出力ラベルを作成します。送信元ネットワークからのパケットは、受信側ネットワークへのパスに沿って複製されます。CE1ルータはネイティブIPマルチキャストトラフィックを送信します。PE1ルータは、着信マルチキャストパケットにラベルを付け、ラベル付きパケットをMPLSコアネットワークに複製します。

パケットがコアルータ(P)に到達すると、パケットはMP2MPデフォルトMDTまたはP2MPデータMDTに適切なラベルで複製され、すべての出力PEに転送されます。パケットが出力PEに到達すると、ラベルが削除され、IPマルチキャストパケットがVRFインターフェイスに複製されます。

結論

MLDP MVPN設定により、MPLSを使用したIPv4マルチキャストパケット配信が可能になります。この設定では、MPLSラベルを使用して、デフォルトおよびデータのマルチキャスト配信ツリー(MDT)を構築します。

MPLSレプリケーションは、コアネットワークの転送メカニズムとして使用されます。MLDP MVPN設定が機能するには、グローバルMPLS MLDP設定が有効になっていることを確認します。

関連情報

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

- 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.pdf

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