CodingBox ドキュメント

ベンダーロックと「unsupported transceiver」

もっとも多いトランシーバーのトラブルです。Cisco、Intel、HPE/Aruba、Juniper、Mellanox など、スイッチや NIC のベンダーは、モジュールが EEPROM から報告する識別文字列を確認し、認識できないモジュールを拒否またはフラグ表示します。

エンジニアが苦労の末に学ぶ重要な点があります。「unsupported」は「動作しない」という意味ではありません。ほとんどのプラットフォームでは、このステータスは単なる情報表示であり、ポートをアップさせることは可能です。

症状

プラットフォーム表示される内容
Cisco IOSポートが notconnect — unsupported、ログに %C4K_TRANSCEIVERMAN-3-INCOMPATIBLE
Cisco IOS(アップグレード後)ポートが errdisable になる。理由は gbic-invalid
MellanoxEEPROM は読み取れるがリンクしない:speed and type: Not supported
Intel X520/ixgbeIntel 製以外の SFP で no carrier

有効な対策

Cisco。 すべてのポートでサードパーティ製モジュールを許可するために、次の2つのコマンドが基本設定に組み込まれるのが定番です:

service unsupported-transceiver
no errdisable detect cause gbic-invalid

プラットフォームごとの癖:一部の Catalyst 9200 のビルドでは、最初のコマンドが % Ambiguous command を返します。省略せずフルで入力してください。Nexus 9000 ではタブ補完のない隠しコマンドですが、受け付けられます。

Intel X520(Linux)。 Intel 製以外のモジュールを許可するオプションを付けてドライバーをロードします:

modprobe ixgbe allow_unsupported_sfp=1

NIC 自身の EEPROM のビットを書き換えることで恒久的に設定する方法も存在し、下記の参考資料で解説されています。NIC の EEPROM への誤った書き込みは現場で復旧できないため、慎重に扱ってください。

ASR 9000 シリーズ。 すでにアップしているポートにモジュールを挿入しても、検出されないことがあります。ポートを shut し、モジュールを挿入してから no shut してください。

根本的な解決策 — モジュールをリコーディングする。 モジュールのベンダー ID と型番を書き換え、純正モジュールとして認識させる方法です。これはまさに CodingBox が EEPROM editor で行うことで、CC_BASE/CC_EXT を再計算し、事前にバックアップを取得します。具体的な仕組みは EEPROM のリコーディングを参照してください。

誰もが繰り返す助言

各種類の純正 OEM モジュールを1つ、手元に保管しておきます。サポートチケットを起票する前にそれに差し替えれば、ベンダー側がサードパーティ製光モジュールのせいにすることができなくなります。

スイッチ側での確認

上記のいずれかを行った後は、モジュールが認識され読み取られていることを確認してください。NOS ごとのコマンドは光モジュールの検証を参照し、ベンチで CodingBox が読み取った識別情報と比較してください。

ホストが実際に比較する対象 — 名前、型番、OUI、シリアルのパターン、ベンダー署名 — と、立ち上げのどの段階で拒否するか:ベンダーフィールドホストが行うこと

ベンダーごとの検証動作とオーバーライドを1つの表にまとめたもの:各 NOS のモジュール検証方法。プラットフォームが期待する正確な型番文字列:OEM 型番。NOS ごとのコマンド構文:ポート設定のレシピ


この記事に不正確な点や誤りを見つけた場合は、該当する箇所を選択して Ctrl+Enter を押すと、できます。