Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
このページの内容
 

BIERフォワーディング

概要

BIER転送は、BIERヘッダーのビット文字列に基づいています。ビット文字列に設定された各ビットは、マルチキャストパケットを受信すべきBFER(BIER Forwarding Egress Router)を表しています。ビットは、各BFERまたはBFIRに割り当てられた一意のBFR-IDからマッピングされます。BFIRでもBFERでもないトランジットBIER転送ルーター(BFR)にはBFR-IDが割り当てられていないことに注意してください。

BFR は、着信 BIER パケットのビット文字列内のセット ビットのインデックスを使用して、BIER 転送テーブル(BIFT)を検索します。ビット文字列に設定された各ビットは特定のBFRに対応するため、転送BFRはパケットの転送先ネイバーを決定できます。

BIFTは、トポロジーなどのIGPルーティングアンダーレイで各BFERがどのように到達するかを計算することによって作成されます。トポロジーに複数のBIERサブドメインを含めることができますが、サブドメインは1つのトポロジーにのみ関連付けられます。BFRは複数のサブドメインに属しており、サブドメインごとに異なるBFR-IDを持つ場合があります。

BFERの数がBSLより大きい場合、BFERのセットごとに1つずつ、複数のコピーが送信されます。異なるコピーの同じビットが異なるBFER用であるため、各コピー(異なるBFERのセットの場合)は、異なるコピーの同じビットが異なるBFER用であるため、転送に異なるBIFTを使用します(たとえば、BitStringLengthが256ビットであることを考えると、copy-1のビット-1はBFER 1用ですが、copy-2ではBFER 257用です)。

MPLS ラベルは、MPLS データ プレーン内の BIER ヘッダーの先頭に挿入され、BIER ヘッダーが続こうとしていることを示します。

BIER header format in networking with fields: BIER Label, Traffic Class, Bottom of Stack, Time to Live, Entropy, Nibble, Version, BitString Length, Operations Administration and Maintenance, Reserved, Differentiated Services Code Point, Protocol, Bit Forwarding Ingress Router ID, BitString.

このBIERラベルは、パケットの転送に使用するBIFTも示します。

ルーティングプロトコル拡張は、BIERラベルなどのカプセル化情報を信号化し、BFRがサポートするすべての<サブドメイン、BitStringLength、セット>タプルのBIFTを計算するために使用されます。BIER情報は、BFRプレフィックス、つまりループバックアドレスのルートアドバタイズメントに添付されます。

<サブドメインのBitStringLength>タプルに対してBFERプレフィックスへのルートが計算されると、キーが(BFR-ID % BitStringLength)で、ネクストホップ情報が<ネクストホップネイバー、<サブドメインのネイバーBIERラベル、BitStringLength、set>ネイバーのF-BM>であるエントリが追加されます。ネイバーのF-BMは、このネイバーが到達したこのセット内のすべてのBFERのビットの論理ORです。

この概念を説明するために、A、B、C、D、E、Fの6つのBFRで構成されるシンプルなネットワークトポロジーの例を見てみましょう。

図1:ビット転送メカニズム Network diagram of Bit Index Explicit Replication BIER forwarding process with BFR B's Bit Index Forwarding Table BIFT and routers A-F.

このうち、ルーターA、D、E、Fはエッジルーター、すなわちBFERまたはBFIRのいずれかとして機能します。それぞれに固有のBFR-IDが割り当てられています:Dに1、Fに2、Eに3、Aに4。BSL(bitstringlength)は4ビットに設定されており、SI(Set-ID)は現在0です。すべての BFRS はサブドメイン 32 に属します。

これらの各BFR-IDは、4ビットビット文字列のビットにマッピングされます。これは、以下の割り当てに変換されます。

ルーターD:0:0001

ルーターF:0:0010

ルーターE:0:0100

ルーターA:0:1000

残りのBFR(BおよびC)はトランジットBFRであり、BFR-IDは割り当てられていません。

BFR A がビット文字列 0111 の BIER パケットを BFR B に送信すると、BFR B はパケットが BFR E、F、D 向けであると判断します。BFR B は、同じパケットの 2 つのコピーを BFR E に、もう 1 つは BFR C に送信します。BFR C へのコピーは、BFR D および F に対応する更新されたビット文字列 0011 とともに送信されます。パケットがBFR Cに到達すると、パケットのコピー1つをBFR Dに送信し、もう1つをBFR Fに送信することが決定されます。

この転送決定は、BFR B の BIFT に基づいています。

BIFT に、BFR A、D、E、F に到達できる BFR ネイバーがリストされていることを確認してください。F-BM は BFR ネイバーのプロパティであり、そのネイバーを介して到達可能なすべての BFER を表します。たとえば、BFR ネイバー C の F-BM は 0011 であり、これは BFR C が BFER D と F をカバーできることを意味します。ルーター D の F-BM は 0001、BFR F の F-BM は 0010 です。BFR C の F-BM は、このネイバー (0011) が到達したこのセット内のすべての BFER のビットの論理的な「OR」です。

BIFTルートルックアップ

上記の同じ例を使用して、BFR A がビット文字列 0111 の BIER パケットを BFR B に送信すると、BFR B は、受信ビット文字列(一番右のビット)に設定されている最低ビットのインデックスを使用して BIFT を検索します。ルーティングテーブルの最初のエントリー(インデックス1)はルックアップに一致するため、BIERパケットはF-BMが0011のBFRネイバーCに転送されるべきであることを意味します。BFR B は、受信ビット文字列と BFR C の F-BM の論理「AND」である更新されたビット文字列 0011 を使用してコピーを BFR C に送信します。

次に、BFR B は BFR C の F-BM を使用して受信ビット文字列の一部のビットをクリアし、結果のビット文字列の最低セット ビットのインデックスを使用して BIFT を検索します。テーブルルックアップの結果、F-BM 0100を持つBFRネイバーEが得られます。BFR B は、受信ビット文字列と BFR ネイバー E の F-BM の論理的な「AND」演算である、更新されたビット文字列 0100 を使用してコピーを BFR E に送信します。

このプロセスは、受信ビット文字列がすべてゼロになるまで続きます。

MVPNでのBIER転送

MVPNトンネルを通過するパケットのフローを例に挙げましょう。

Network topology diagram with source, customer edge CE1-CE5, provider edge PE1-PE4, provider core P, and receiver nodes interconnected.

PE1(イングレス):

show mvpn instance vrf1 コマンドを発行して、プロバイダートンネルvrf1情報を表示します。

注:

show multicast route extensive instance vrf1 display-tunnel-nameshow mvpn instance vrf1 display-tunnel-nameを発行して、BIER トンネルの名前を表示します。

包括的トンネルには、BFR-ID 2の10.2.2.2とBFR-ID 3の10.3.3.3の2つのMVPNネイバーがあります。そのため、ビット2と3が設定されます。ネイバー10.4.4.4はトンネルをアドバタイズしていなかったため、考慮されません。

ラベル 990001 は、 set routing-instances routing-instance-name vrf-table-label static label ステートメントを発行することで静的に設定されます。

FBMでは、256バイトのbitstringlengthに対して8つの値が存在し、":"で区切り、各値は32のBFIR/BFERを表します。

show multicast route instance vrf1 extensiveコマンドを発行して、マルチキャストルート情報を表示します。

VRFに到着する(172.11.21.21、232.252.1.1)パケットは、上記のルートに一致します。ラベル990001が最初に適用されるため、エグレスPEはBIERヘッダーを削除したときに対応するVRFを見つけることができます。次に、ビット文字列 0:0:0:0:0:0:0:0:0:00000006 と BIER ラベル 16 を持つ BIER ヘッダーが課され、これはプロバイダー トンネル のサブドメインに対してこの BFIR によってアドバタイズされます。その結果は、別のBFRから受信したBIERパケットであるかのように扱われます。

ラベル16は、ローカルのmpls.0テーブルで検索されます。 show route table mpls.0 protocol bier label 16 extensive コマンドを発行して、検索された BIFT を表示します。

BFR-ID 2とBFR-ID 3は、BIFT :bier-10-0.bier.0 とそれに対応するプッシュラベルで検索され、ネクストホップが決定されます。このネクストホップ情報を表示するには、 show route table :bier-10-0.bier.0 コマンドを発行します。

F-BM とその BIER ネイバーを表示するには、 show route table :bier-10-0.bier.0 extensive コマンドを発行します。

F-BMは、 show bier neighbor コマンドを発行して表示することもできます。

出力には、パケット(pps)も表示されます。以下の出力例では、ネクストホップが10.1.2.2のBIERネイバー10.2.2.2のパケットカウンターは 141753 を示し、他のネイバーはnullを示しています。これは、マルチキャストトラフィックの現在の転送パスを示しています。ビット文字列をF-BMでマスクした後、プッシュラベル16を使用してネイバーに転送されます。

PE2について:

受信ラベルはローカルのmpls.0テーブルで検索され、対応するBIFTが決定されます。 show route table mpls.0 protocol bier label 16 extensive コマンドを発行して、ラベル 16 のテーブル情報を表示します。

ビット 2 と 3 は、BIFT :bier-10-0.bier.0で検索されます。ビット2の場合、ネクストホップはローカルmpls.0テーブルであり、ビット3の場合、ネクストホップはプッシュラベル16のPE3です。 show route table :bier-10-0.bier.0 コマンドを発行して、この情報を確認します。

ビット2では、vrfラベル 990001 がmpls.0テーブルで検索され、対応するvrfが検索されます。

show multicast route instance vrf1 extensive コマンドを発行して、ルートを表示します。

PE3の場合:

PE2 と同様に、受信ラベルはローカルの mpls.0 テーブルで検索され、対応する BIFT が決定されます。 show route table mpls.0 protocol bier label 16 extensive コマンドを発行して、ラベル 16 のテーブル情報を表示します。

show route table :bier-10-0.bier.0 コマンドを発行して、ネクストホップ情報を表示します。ビット3がBIFTで検索され、ネクストホップはローカルのmpls.0テーブルです。

mpls.0テーブルでvrfラベル 990001 を検索し、ビット3のvrfを見つけます。

show multicast route instance vrf1 extensiveコマンドを発行して、vrf内のルートを表示します。