Article Number: 000140418
ログ エントリーの例:
May 20 19:12:20: %EX8PB:2 %MACAGT-2-HASH_COLLISION_LOG: Mac:00:02:e8:d6:58:20/Vlan:203 could not be added to L2 CAM on portpipe 2 linecard 2 due to hash collision.Total number of hash collisions: 30211
May 20 19:12:20: %EX8PB:2 %MACAGT-2-HASH_COLLISION_LOG: Mac:00:02:e8:d6:58:20/Vlan:203 could not be added to L2 CAM on portpipe 3 linecard 2 due to hash collision.Total number of hash collisions: 31979
機能のしくみ:
スイッチCAMテーブルには、/32ネットワーク上のARP用の部分と他のすべてのエントリー用の特定の量を保持する「ホスト テーブル」用に割り当てられたエントリーの特定の数があります。
たとえば、8個のメモリー位置の配列を示す1024個のインデックス値がある場合、各インデックス値には8個の値を格納できます。配列内の8個すべてがARPになることができますが、合計で、すべての位置にわたって、ARPエントリーはこの機能専用の部分を超えることはできません。スイッチによって値が異なります。
IPアドレスのARPエントリーをスイッチのCAMに追加すると、スイッチング チップはIPアドレスを使用してインデックス値(0~1023)を計算し、ARPエントリーはこのハッシュ アルゴリズムが指す場所に保存されます。
場合によっては、ハッシュ アルゴリズムが、すべてのメモリー位置が使用されている場所にインデックスを格納し、ハッシュ衝突が発生することがあります。
IPアドレスでハッシュ衝突が発生すると、そのARPエントリーはCAMに追加されません。 代わりに、CPUはソフトウェア テーブルにそれをロードする必要があります。そのIPへのトラフィックを転送する必要がある場合、スイッチはそのトラフィックをハードウェアで処理できません。 そのトラフィックはCPUに転送され、ソフト転送されます。 これにより、CPUに追加の負荷がかかり、 指定されたパスの遅延が発生する傾向があります。場合によっては、ソフト転送の量がCPUの処理能力を超えてパケット損失につながることがあります。
ハッシュ エラーの回避策:
二重ハッシュを可能にするソフトウェアにアップグレードする:リリース9.3以降の特定のプラットフォームには、二重ハッシュを実行する機能があります。L2テーブルとL3テーブルの両方に対して二重ハッシュをサポートできます。この機能は、9.3を実行しているすべてのプラットフォームでデフォルトで有効になっています。スイッチは、ハッシュ衝突が発生するたびにテーブルの再ハッシュと再順序付けを試行して新しいエントリーに対応します。
ルーティング レイヤーを追加する: コア スイッチのハッシュ エラーの場合。 この制限を克服する最善の方法は、トップオブ ラック(TOR)設計を使用して、TORとコアスイッチ間のルーティングを有効にすることです。 これにより、コア上のARPテーブルのサイズを削減できます。 このルーティング レイヤーを個々のホストとコアの間に追加すると、コアは個々のホストのARPエントリーをすべて学習する必要がなくなります。
ARPタイムアウトを削減する:デフォルトは4時間です。ARPが保持される時間を短縮することで、新しいARPエントリーをより頻繁に導入できます。これにより、すべてのエントリーのサイクルが高速化され、接続されたネットワークのARPトラフィックが増加します。
接続されているL3ネットワークでIPアドレスを配布する: 重要なサブネット内の可能性のあるすべてのIPアドレスと対応するハッシュ値のマッピングは作成可能ですが、生成するのは非常に面倒です。その後、ハッシュの失敗を回避するためにIPを再配布できます。これは、効果が最も低い、短期的な修正です。
C7008/C300 Aggregation Core chassis Switch, PowerSwitch S4810P, Force10 S60-44T
21 Feb 2021
3
Solution