業務でサーバの構築や運用をしていると、特定の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点を紹介した。