概要
このドキュメントでは、F2/F2e MACテーブルの完全な状態と、それを緩和する方法について説明します。
Switch on Chip(SoC)ごとに16k MAC制限を持つF2モジュールは、60 %の使用率でランダムなMACテーブルが完全なエラーメッセージを表示します。ラインカードが、使用可能な16k MACテーブル空間全体を利用できないのはなぜですか。
%L2MCAST-SLOT2-2-L2MCAST_MAC_FULL_LC: Failed to insert entry in MAC table for FE 1 swidx 271 (0x10f) with err (mac table full). To avoid possible multicast traffic loss, disable OMF. Use the con figuration CLI: "no ip igmp snooping optimise-multicast-flood"
前提条件
要件
Nexus 7000アーキテクチャに関する知識があることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- リリース 6.2.10 以降の Nexus 7000.
- F2e シリーズ ライン カード
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
背景説明
F2モジュールには、フォワーディングエンジンのSoCごとに16k MACテーブルスペースがあります。
各モジュールには12個のSoCがあり、各サービスには4個のポートがあります。
module-1# show hardware internal forwarding f2 l2 table utilization instance all
L2 Forwarding Resources
-------------------------
L2 entries: Module inst total used mcast ucast lines lines_full
------------------------------------------------------------------------------
1 0 16384 9647 265 9382 512 0
1 1 16384 7430 1 7429 512 0
1 2 16384 9654 264 9390 512 0
1 3 16384 7430 7 7423 512 0
1 4 16384 7564 8 7556 512 0
1 5 16384 7432 1 7431 512 0
1 6 16384 7418 0 7418 512 0
1 7 16384 558 0 558 512 0
1 8 16384 558 0 558 512 0
1 9 16384 558 0 558 512 0
1 10 16384 558 0 558 512 0
1 11 16384 7416 0 7416 512 0
次の出力は、SoCごとのハードウェアMACアドレステーブルの使用状況を示しています。
MACテーブルの完全なメッセージが表示される理由を理解するには、MACテーブルの分割方法を理解する必要があります。この図は、視覚的に分かりやすくするのに役立ちます。
- F2ラインカードの16kのMACテーブルは、ページに配布されます。各ページには512エントリを保持できます。合計32ページです。2ウェイハッシュを使用して、新しいMACをいずれかのページに配置できます。
- 次に、4行目をすべてのページで使用するシナリオを見てみましょう。つまり、32個の一意のMACが、各ページの同じ行に配置するハッシュ出力を生成してしまうという意味です。
- 同じハッシュ出力を持つ33 rd MACが生成された場合、それをインストールできず、前述のエラーメッセージが表示される可能性があります。
- 行全体の列は、この状態になった行数を追跡します。
この出力には、ページごとの行と、行が完全な状態に達した場合も示されます。
特定の方法でハッシュ化が終了するMACアドレスのみがこの状態に遭遇しますが、他のMACアドレスに関する問題は発生しません。
通常、マルチキャストMACアドレスはユニキャストMACほどランダム化されていないため、この情報を頻繁に参照できます。ラインカードは通常、使用率の効率を検証するために、業界標準のRFCテストでテストされます。ただし、特定の顧客環境で特定のMACの組み合わせが適切に最適化されない可能性があるため、このエラーが発生する可能性があります。
緩和手順
これらの手順は、MACテーブルの使用量を減らすのに役立ちます。
- Vlanのプルーニング
- L3分離
- その他の設計オプション(fabricpath)
- 将来的な拡張に対応するM2またはF3モジュール
オプション1. Vlanのプルーニング
注:VLAN 100および200にはSVIはありません。これは重要な前提であり、オプション2を読むと明確になります。
この簡単なセットアップでは、異なるSoC上に2つのホストがあります。
N7KA-VDC-1(config-vlan)# sh mac address-table
Note: MAC table entries displayed are getting read from software.
Use the 'hardware-age' keyword to get information related to 'Age'
Legend:
* - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC
age - seconds since last seen,+ - primary entry using vPC Peer-Link,
(T) - True, (F) - False , ~~~ - use 'hardware-age' keyword to retrieve age info
VLAN MAC Address Type age Secure NTFY Ports/SWID.SSID.LID
---------+-----------------+--------+---------+------+----+------------------
* 100 8478.ac0e.4742 dynamic ~~~ F F Eth6/4
* 200 8478.ac5b.2b42 dynamic ~~~ F F Eth6/5
N7KA-VDC-1# sh vlan internal bd-info vlan-to-bd 100
VDC Id Vlan Id BD Id
------ ------- -------
1 100 38
N7KA-VDC-1# sh vlan internal bd-info vlan-to-bd 200
VDC Id Vlan Id BD Id
------ ------- -------
1 200 39
N7KA-VDC-1(config-if-range)# sh hard mac address-table 6
FE | Valid| PI| BD | MAC | Index| Stat| SW | Modi| Age| Tmr|
| | | | | | ic | | fied|Byte| Sel|
---+------+---+------+---------------+-------+-----+-----+-----+----+----+-
0 1 1 38 8478.ac0e.4742 0x00053 0 0x081 1 138 1
0 1 0 39 8478.ac5b.2b42 0x00054 0 0x091 1 138 1
1 1 0 38 8478.ac0e.4742 0x00053 0 0x091 1 138 1
1 1 1 39 8478.ac5b.2b42 0x00054 0 0x081 1 138 1
各FE(フォワーディングエンジン= SoC)は、使用中の2つのMACアドレスを示します。
ここで、VLANをプルーニングします。設定は次の図のように表示されます。
VLANをプルーニングした後、FE(SoC)ごとに1エントリが少なくなります。 VLANをプルーニングすると、MACアドレスのFE間の同期が妨げられた。
N7KA-VDC-1(config-if-range)# sh hard mac address-table 6
FE | Valid| PI| BD | MAC | Index| Stat| SW | Modi| Age| Tmr|
| | | | | | ic | | fied|Byte| Sel|
---+------+---+------+---------------+-------+-----+-----+-----+----+----+-
0 1 1 38 8478.ac0e.4742 0x00053 0 0x081 1 138 1
1 1 1 39 8478.ac5b.2b42 0x00054 0 0x081 1 138 1
選択肢2. L3分離
ここでは、VLANがプルーニングされていますが、このVDCでVLAN 100とVLAN 200の両方に対してSwitch Virtual Interface(SVI)が設定されていると仮定しています。
MACテーブルは次のようになります。MACテーブルでは、VLANがプルーニングされている場合でも、FE間でMACアドレスが同期されます。これは、スイッチ仮想インターフェース(SVI)が有効になっているために、FEが他のVLANからのMACアドレスを認識する必要があるためです。
N7KA-VDC-1(config-if-range)# sh hard mac address-table 6
FE | Valid| PI| BD | MAC | Index| Stat| SW | Modi| Age| Tmr|
| | | | | | ic | | fied|Byte| Sel|
---+------+---+------+---------------+-------+-----+-----+-----+----+----+-
0 1 1 38 8478.ac0e.4742 0x00053 0 0x081 1 138 1
0 1 0 39 8478.ac5b.2b42 0x00054 0 0x091 1 138 1
1 1 0 38 8478.ac0e.4742 0x00053 0 0x091 1 138 1
1 1 1 39 8478.ac5b.2b42 0x00054 0 0x081 1 138 1
vlan 200 SVIを削除すると、MACテーブルにFE0のvlan 200 macの同期が表示されません。
N7KA-VDC-1(config-if-range)# sh hard mac address-table 6
FE | Valid| PI| BD | MAC | Index| Stat| SW | Modi| Age| Tmr|
| | | | | | ic | | fied|Byte| Sel|
---+------+---+------+---------------+-------+-----+-----+-----+----+----+-
0 1 1 38 8478.ac0e.4742 0x00053 0 0x081 1 138 1
1 1 0 38 8478.ac0e.4742 0x00053 0 0x091 1 138 1
1 1 1 39 8478.ac5b.2b42 0x00054 0 0x081 1 138 1
この手順の結論は、SVIを削除するのではなく、別のレイヤ3 VDCを作成してSVIを別のVDCに移動するかどうかを分析することです。これは簡単な設計手順ではなく、詳細な計画が必要です。
オプション3. Fabricpathなどの代替設計アーキテクチャ
これらは、このドキュメントでは詳しく説明する範囲を超えるより複雑な選択肢ですが、MACの使用を効率化する可能性があります。
オプション4. M2/F3カードなどの大容量ラインカードの使用
M2およびF3ラインカードのMACテーブルの容量は、はるかに大きくなります。
M2データシート==> MACテーブル(SoCあたり128 k)
F3データシート==> MACテーブル(SoCあたり64 k)