PVLAN による機能のブリッジング
このトピックでは、PVLAN ブリッジング手順の実装に関連する独自の拡張機能を理解するのに役立つ、MXシリーズルーターでのブリッジングの実装方法について説明します。ブリッジングドメインに2つのポートがあり、それぞれのポートが異なるFPCと異なるパケット転送エンジンにあるとします。パケットがポートに入ると、タグ付きパケットと仮定すると、次のようなフローになります。
-
開始プロセスとして、VLANルックアップが実行され、パケットがどのブリッジングドメインを形成するかが特定されます。ルックアップの結果、ブリッジングドメインID(bd_id)、メッシュグループID(mg_id)が特定されます。これらのパラメーターを使用して、このブリッジングドメインに設定された他の関連情報が検出されます。
-
送信元 MACアドレス(SMAC)ルックアップを実行して、この MAC アドレスが学習されているかどうかを確認します。学習済みアドレスでない場合、MLPパケット(MAC学習チップにトラフィックをフラッディングするためのルート)が、このブリッジングドメインでマッピングされている他のすべてのパケット転送エンジンに送信されます。さらに、MLPパケットもホストに送信されます。
-
タプル(ブリッジ MACアドレス、VLAN、宛先 MAC アドレス)を使用した宛先 MAC アドレス(MACアドレス)ルックアップ。
-
MACアドレスに一致が観察された場合、ルックアップの結果はエグレスのネクストホップを指します。パケットの転送には、エグレスパケット転送エンジンが使用されます。
-
ルックアップ中にミスが発生した場合、メッシュグループIDを使用してフラッドネクストホップが決定され、パケットがフラッディングされます。
PVLAN ブリッジングでは、次の 2 つの重要な条件が考慮されます。 特定のポートから別のポートへの転送のみが許可されます。パケットドロップは、ファブリック帯域幅を通過して消費した後、egressインターフェイスで発生します。トラフィックのドロップを回避するために、パケットをドロップする必要があるかどうかの決定はファブリックを通過する前に行われるため、DoS攻撃時のファブリック帯域幅が節約されます。重複するブリッジドメインが複数存在するため、同じポート(プロミスキャスまたはインタースイッチリンク)が複数のブリッジドメインにメンバーとして表示されるため、1つのポートで学習したMACアドレスは、別のブリッジドメインのポートから見える必要があります。例えば、プロミスキャスポートで学習されたMACアドレスは、さまざまなコミュニティブリッジドメイン上の分離ポート(分離ブリッジドメイン)とコミュニティポート(コミュニティブリッジドメイン)の両方に見えるようにする必要があります。
この問題を解決するために、PVLAN ブリッジングに共有 VLAN が使用されます。共有VLANモデルでは、すべてのポートで学習したすべてのMACが、同じブリッジドメイン(プライマリVLAN BD)と同じVLAN(プライマリVLAN)に格納されます。パケットのVLANルックアップが実行されると、PVLANポート、PVLANブリッジドメイン、およびPVLANタグまたはIDも使用されます。共有VLAN方式では、以下のプロセスが発生します。
-
送信元MACアドレス(SMAC)ルックアップを実行して、このMACアドレスが学習されているかどうかを確認します。学習済みアドレスでない場合、MLPパケット(MAC学習チップにトラフィックをフラッディングするためのルート)が、このブリッジングドメインでマッピングされている他のすべてのパケット転送エンジンに送信されます。さらに、MLPパケットもホストに送信されます。
-
タプル(ブリッジ MACアドレス、VLAN、宛先 MAC アドレス)を使用した宛先 MAC アドレス(MACアドレス)ルックアップ。
-
MACアドレスに一致が観察された場合、ルックアップの結果はエグレスのネクストホップを指します。パケットの転送には、エグレスパケット転送エンジンが使用されます。
-
ルックアップ中にミスが発生した場合、メッシュグループIDを使用してフラッドネクストホップが決定され、パケットがフラッディングされます。
-
一致が発生した場合、VLANルックアップテーブルからグループIDが導き出され、プライマリVLAN転送を強制するために以下の検証が実行されます。
Steps Source Destination Action
Step 1 0 {*} Permit
Step 2 {*} 0 Permit
Step 3 1 1 Drop
Step 4 X <-> Y (X > 1 and Y > 1 and X ≠ Y Drop
ここで、{*}は任意の値を参照する正規表現表記のワイルドカードです。ステップ1では、プロミスキャスポートまたはスイッチ間リンクポートから他のポートへのすべての転送が許可されていることを確認します。ステップ2では、任意のポートからプロミスキャスポートまたはスイッチ間リンクポートへのすべての転送が許可されていることを確認します。ステップ3では、別の分離ポートへの分離ポートが確実にドロップされます。ステップ4では、コミュニティポートフォワーディングが同じコミュニティ内でのみ許可され(X == Y)、コミュニティ間(X ≠ Y)の場合はドロップされます。