NIC のツールと診断:サーバー側からモジュールを読む
サーバーには show interface transceiver はありませんが、1つ下の層に同じ情報があります。NIC ドライバーがモジュールの EEPROM を読み取り、ethtool、ベンダー製ユーティリティ、そして Windows と ESXi では専用コマンドを通じて公開します。このページでは、OS とベンダーごとのツール、それぞれが示す内容(識別情報、DDM、FEC カウンター、リンク状態、PCIe)、そしてリンクがダウンしたときやエラーが蓄積したときの出力の読み方をまとめます。
| コマンド | 内容 |
|---|
ethtool eth0 | リンク状態、速度、デュプレックス、オートネゴシエーション、対応モード/アドバタイズされたモード、ポートタイプ(FIBRE/DA) |
ethtool -m eth0(--module-info) | デコードされた EEPROM:識別子、ベンダー、PN、SN、日付、準拠、波長、伝送距離;モジュールが対応していれば DDM(温度、Vcc、バイアス、Tx/Rx パワー、しきい値、アラームフラグ) |
ethtool -m eth0 raw on hex on | バイト単位で比較するための A0h(および A2h)の生ダンプ(メモリマップ) |
ethtool -m eth0 page 0x11 …(新しいバージョン) | 400G 以上のモジュールにおける CMIS ページ |
ethtool -i eth0 | ドライバー、バージョン、ファームウェア/NVM バージョン、バスアドレス |
ethtool -S eth0 | 統計情報(CRC エラー、一部のドライバーでは FEC の訂正/未訂正を含む) |
ethtool --show-fec eth0 / --set-fec eth0 encoding rs | 設定されている FEC モードと有効なモード |
ethtool -s eth0 speed 25000 duplex full autoneg off | 速度を強制設定 |
ethtool -p eth0 5 | ポートを識別するために LED を点滅させる |
ethtool --show-priv-flags eth0 | ドライバー固有のフラグ(例:link-down-on-close) |
その他の Linux 上の情報源:sfp、module、link で絞り込んだ dmesg(モジュールの認定に関するドライバーメッセージ)、lspci -vv -s <addr>(LnkSta 配下の PCIe リンク幅/速度)、ip -s link show eth0(カウンター)、/sys/class/net/eth0/(キャリア、速度)。
ベンダーのツール
| ベンダー | ツール | 主な用途 |
|---|
| Nvidia / Mellanox | mlxlink -d <pci> -m -e -c | モジュール情報と DDM(-m)、アイパターン/BER と FEC(-e、-c)、リンクパートナー;mlxlink … --fec_override、--speeds |
| Nvidia / Mellanox | mlxconfig -d <pci> q / set | ポートタイプ(IB/ETH)、リンクタイプ、KEEP_ETH_LINK_UP、FEC オーバーライド、ブレークアウト |
| Nvidia / Mellanox | mst status、mlxfwmanager | デバイス一覧、ファームウェア |
| Nvidia / Mellanox | ibstat、ibportstate、iblinkinfo | InfiniBand のポート状態、幅、速度(IB ファブリック) |
| Intel | ethtool -m | 主要な手段;Intel には専用のモジュールダンプツールがない |
| Intel | nvmupdate64e、epct64e | NVM ファームウェア更新;ポート構成(E810 のポートオプション、例:2×100G または 4×25G) |
| Intel | dmesg | ixgbe/i40e/ice: unsupported module というメッセージ(光モジュールの互換性) |
| Broadcom | bnxtnvm、niccli | NVM、ポート設定、FEC/AN、トランシーバー情報 |
| Marvell | qedctl | — |
| AMD Solarflare | sfupdate、sfboot | ファームウェア、ポートモード |
| Chelsio | cxgbtool | — |
Windows
| コマンド | 内容 |
|---|
Get-NetAdapter | リンク状態、速度 |
Get-NetAdapterAdvancedProperty -Name "Ethernet 2" | 速度/デュプレックス、FEC モード、ジャンボフレーム — Set-NetAdapterAdvancedProperty で設定可能 |
Get-NetAdapterHardwareInfo | PCIe スロット、リンク幅/速度 |
Get-NetAdapterStatistics | カウンター |
Intel PROSet:Get-IntelNetAdapter、Get-IntelNetAdapterSetting | Intel 固有の設定;デバイスマネージャーの Link Speed タブにあるモジュール情報 |
Nvidia WinOF-2:mlx5cmd -Stat、mlxlink(Windows 版) | モジュール情報とリンク診断 |
| イベントビューアー → システム | 非対応モジュールに関するドライバーメッセージ |
Windows のドライバーが DDM を公開することはほとんどありません。ベンダーのツールを使うか、ベンチでモジュールを読み取ってください。
VMware ESXi
| コマンド | 内容 |
|---|
esxcli network nic list / get -n vmnic0 | リンク、速度、ドライバー、ファームウェア |
esxcli network nic stats get -n vmnic0 | カウンター |
esxcli system module parameters list -m ixgben / set -m ixgben -p "…" | 対応している場合のドライバーパラメーター |
esxcli intnet …(Intel プラグイン)、esxcli mellanox … / mlxlink(Nvidia プラグイン) | モジュール情報を含むベンダー診断 |
vmkernel.log | 「unsupported module」、リンクフラップ |
esxcli hardware pci list | PCIe リンクステータス |
出力の読み方
| 観測結果 | 意味 | 次の対応 |
|---|
ethtool -m:「Cannot get module EEPROM information: Operation not supported」 | ドライバーが情報を公開していない、ポートにモジュールが挿入されていない、またはモジュールの I²C が応答していない | dmesg を確認し、挿し直すか別のポートを試す(読み取り/書き込みエラー) |
識別情報は読み取れるが Link detected: no、Rx パワーは正常 | 速度/FEC/AN の不一致 | ethtool --show-fec で確認し、スイッチ側と比較(FEC と AN) |
| Rx パワーが −40 dBm または「-inf」 | 光が届いていない | 光ファイバー、対向側、極性(リンクなし) |
| バイアスと Tx パワーは正常、Rx が際どい | コネクターの汚れ、長いリンク | 清掃、バジェット確認(Rx パワーとバジェット) |
| FEC の訂正不能カウンターが増加している | リンクが限界に近い | DDM の値、ケーブルクラス、温度(VDM と FEC の指標) |
| 1U サーバーで温度 > 70 °C | 気流 | 配置変更、OCP スロット(ポートと PCIe) |
2×100G カードで LnkSta: Speed 8GT/s, Width x8 | PCIe のボトルネック | スロット/ビフルケーション |
dmesg:unsupported module | ドライバーのホワイトリスト | NIC における光モジュールの互換性 |
サーバー側からの監視
ethtool -m の出力はパース可能です。cron ジョブや ethtool コレクターを備えた node exporter を使えば、DDM を Prometheus 形式の監視系にエクスポートできます(監視)。- Nvidia
mlxlink の JSON 出力(--json)と Intel ethtool -S の FEC カウンターは、故障予兆の信号として有効です(リンクの信頼性と監視)。 - ポーリング間隔は 30–60 秒で十分です。DDM 自体もどれだけ速くても1秒ごとにしか更新されません。
CodingBox では
ethtool -m raw on hex on と CodingBox は同じバイトを読み取ります。モジュールが NIC 上とベンチ上で異なる挙動を示す場合は、2つのダンプをフィールドごとに比較してください。何も書き換えないドライバーであれば同じデータが表示されるはずで、差異があればモジュール自身の動的ページか読み取りエラーのどちらかが原因です(Check transceiver、ツールで DDM を読み取る)。