LinuxでNICのリンクアップ/ダウンや速度を確認できる『mii-tool』と『ethtool』コマンド

業務でサーバの構築や運用をしていると、特定のNICで通信ができなくなったりすることがある。
今回は、そんな時に使える通常コマンドである『mii-tool』と『ethtool』について紹介する。

1.リンクアップ/ダウンとLANの速度を確認できるmii-tool

mii-toolは、対象のNICのリンクアップ/ダウンとLANの速度が確認できる。
実行にはroot権限が必要になるので、sudoかrootで以下のようにコマンドを実行する。

sudo mii-tool eth0

実行した結果がこちら。

$ sudo mii-tool eth0
eth0: negotiated 1000baseT-FD flow-control, link ok

より詳細な値を取得するためには、「-vv」オプションを付加すると良い。

$ sudo mii-tool -vv eth0
Using SIOCGMIIPHY=0x8947
eth0: negotiated 1000baseT-FD flow-control, link ok
  registers for MII PHY 0:
    1140 796d 0141 0c23 01e1 41e1 0007 2001
    0000 0200 7c00 0000 0000 0000 0000 3000
    0b68 ac00 0000 0000 0170 0000 0000 0000
    0000 0000 000c 0000 0000 0000 0000 0000
  product info: Yukon 88E1011 rev 3
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD

なお、OSによってはこの表示速度が遅い場合(実際には1000baseT出ているのに、100baseTになる)がある。これは、カーネルのバージョンが古い場合に起こるようだ。また、どうやらこの速度、使用しているLANケーブルのカテゴリは見ていないらしい。基本的には、リンクアップの有無についてのみ参考にするといいだろう。

その時は、「/sys/class/net/ethX/speed」の値および後述のethtoolでより詳細な情報を取得してもらいたい。

2.NICの詳細な情報を確認できるethtool

より詳細なNICの情報を取得するのであれば、ethtoolを用いるといいだろう。
CentOSやUbuntuであれば標準でインストールされているだろう。

sudo ethtool eth0

さて、それでは実際にコマンドを実行してみよう。
実際にコマンドを実行した結果がこちら。

$ sudo ethtool eth0
Settings for eth0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: off (auto)
    Supports Wake-on: d
    Wake-on: d
    Current message level: 0x00000007 (7)
                   drv probe link
    Link detected: yes

対象のNICが何baseTまで対応しているのか、現在のリンク速度がどの程度なのか、WakeOnLanに対応しているのかなど、詳細な情報を取得することができる。

以上、NICまわりのトラブルシューティングで覚えておきたいコマンド2点を紹介した。