ethtoolでリンクアップしない原因切り分け

  • URLをコピーしました!

LinuxサーバーでNICが認識されているにも関わらず、

  • リンクアップしない
  • NO-CARRIER のまま
  • ケーブルを挿しても LOWER_UP にならない

といった状況に遭遇したことはありませんか?

本記事では ethtool を軸に、

  • リンクアップしない時の典型原因
  • 実務での切り分け順序
  • 各原因ごとの具体的対処法
  • 「正常」と判断できる状態

を体系的に整理します。

目次

リンクアップとは何が成立した状態か

リンクアップとは、NICと対向機器(スイッチ等)が物理層で正常にネゴシエーションできた状態です。

IP設定やルーティング以前の、OSI参照モデルのレイヤ1/2の問題になります。

そのため、

  • IP設定を見直す
  • pingを打つ

前に、まずリンク状態を確認する必要があります。

まず確認すべき基本状態

① インターフェース状態確認

# ip link show eth0
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff

重要なポイントは以下です。

  • state DOWN → 管理的にDOWN
  • NO-CARRIER → 物理リンク未確立

まずはUPにします。

# ip link set eth0 up

② ethtoolでリンク状態を確認

# ethtool eth0
Settings for eth0:
    Link detected: no

ここで Link detected: no の場合、物理レベルの問題が確定します。

リンクアップしない時の切り分けフロー

STEP1: ケーブル・対向ポート確認

最も多い原因です。

  • ケーブル断線
  • 誤ったポート接続
  • スイッチポートshutdown

Linux側でできる確認:

# ethtool eth0 | grep -i link

対向スイッチ側でもリンクランプを確認します。

STEP2: Speed / Duplex の不一致

オートネゴシエーション不一致は実務で非常に多いです。

# ethtool eth0
Speed: Unknown!
Duplex: Unknown!
Auto-negotiation: on

対処法:手動設定して検証

# ethtool -k eth0
# ethtool -s eth0 speed 1000 duplex full autoneg off

設定後に再確認:

# ethtool eth0 | grep -i "Link detected"

リンクが上がれば、対向機器とのネゴシエーション不整合が原因です。

STEP3: 対応していないSpeed / 媒体

以下のようなケースがあります。

  • 10G NICに1G SFPを挿している
  • DACケーブルの規格不一致
  • 光モジュールのベンダーロック

確認方法:

# ethtool -i eth0
driver: ixgbe
version: 5.1.0-k
firmware-version: 0x800003e5

NICドライバの仕様と物理モジュール仕様を必ず照合します。

STEP4: ドライバ・firmware問題

リンクアップしないが、lspci には見える場合はここを疑います。

# lspci -k | grep -A3 Ethernet

firmware missing が出ていないか確認:

# dmesg | grep -i firmware

firmware不足の場合は以下を対応:

# dnf install -y linux-firmware
# reboot

STEP5: BIOS / UEFI 側の設定

以下が原因になることがあります。

  • NIC無効化
  • SR-IOV有効化によるPF無効
  • 省電力設定

OSからは確認できないため、BIOS画面で確認します。

仮想環境特有の注意点

KVM / VMware

  • 仮想スイッチ未接続
  • MACアドレス制限
  • Promiscuous mode 制限

仮想環境では ethtool で見える情報が限定的な場合があります。

リンクアップ後に確認すべき状態

① Link detected: yes

# ethtool eth0 | grep -i link
Link detected: yes

② ip link で LOWER_UP

# ip link show eth0
state UP
LOWER_UP

③ エラーカウンタが増えていない

# ethtool -S eth0

CRCエラーやドロップが多い場合は、ケーブル品質を再確認します。

やってはいけないNG対応

  • IP設定から先に疑う
  • ドライバを闇雲に再ビルド
  • リンク未確立のまま上位レイヤを調査

リンクアップ前にアプリやFWを見るのは遠回りです。

まとめ

  • リンクアップ問題はレイヤ1/2の切り分けが最優先
  • ethtoolで「Link detected」を起点に考える
  • Speed/Duplex/firmware不整合が多発原因
  • 物理・対向機器・仮想環境の順で確認する

ethtoolを正しく使えば、リンク問題の8割は短時間で切り分け可能です。

目次