Jump to content 日本-日本語
日本HPホーム 製品とサービス サポートとドライバ ソリューション ご購入方法
≫ お問い合わせ
製品とサービス  >  ソフトウェアとOS  >  Linux

NICドライバ毎の速度・二重化手動固定方法(ethtool編)

Open Source & Linux

導入事例

product

ハードウェア
ソフトウェア
サービス & サポート

buy now?

HPE OPEN SERVICES
保守サービス
教育プログラム

support

OS対応表
ProLiant
Workstation
システム構成図
技術文書
FAQ
ディストリ対応表
サポート & ドライバ
リンク
SDR - 設定方法
FreeBSD
日本ヒューレット・パッカードサイトマップ
HPE & Red Hat情報ポータル HPEとRed Hatが実現するオープンなイノベーション
BSD 動作確認レポート等を掲載
コンテンツに進む
20-OCT-06, revised 30-APR-08
 本ページに記載してある内容は限られた評価環境に於ける検証結果に基づいたものです。本ページの情報を利用する前に予めサイト内リンク技術情報サイト内リンク保証について、ディストリビュータが提供する WEBサイト等をご覧ください。
 本ページでは、network interface が upすると同時に ethtoolコマンドで速度・二重化を設定する方法を、ディストリ毎に設定例とあわせて説明します。

通信速度・二重化設定方法

 通信速度・二重化を設定するために ethtoolコマンドの '-s'オプションを使って設定する方法があります。これは、NICドライバが ethtool対応であれば共通に使える設定方法で、HP提供版およびディストリ標準の e100, e1000, tg3, bnx2,bcm5700ドライバは全て ethtoolに対応しています。 '-s'オプションに指定できる引数は以下の通りです。

speedの設定値*4
10 10Mbps
100 100Mbps
1000 1000Mbps

duplexの設定値
half half-duplex
full full-duplex

autonegの設定値
on オートネゴシエーション許可*1
off オートネゴシエーション禁止*2*3
*1 Broardcom系 NIC(tg3,bnx2,bcm5700)で speed 1000Mbps固定にする場合、物理層によってオートネゴシエーションの指定が異なります。
  • 1000BASE-T: オートネゴシエーション許可を指定する必要があります。
  • 1000BASE-SX: オートネゴシエーション許可/禁止のどちらでも指定可能です。
*2 speed 10/100Mbps固定にする場合、オートネゴシエーション禁止を指定する必要があります。
*3 Intel系 NIC(e1000,e100)で speed 1000Mbps固定にする場合、ethtoolのバージョンによってオートネゴシエーションの指定が異なります。
  • ethtool バージョン5未満: オートネゴシエーション禁止を指定する必要があります。
  • ethtool バージョン5以上: オートネゴシエーション許可/禁止のどちらでも指定可能です。
*4 ethtool-1.8系ではコントローラーのspeed固定が正常に動作しない場合があります。この問題は ethtool-1.8-4(RHEL4/U4)とDL320G5(BCM5714)の組み合わせで確認されましたが、ethtoolコマンドをバージョン5以上にアップデートすることで回避可能です。

Red Hat EL3, EL4

 Red Hat EL3, EL4の場合、/etc/sysconfig/network-scripts/ifcfg-ethxファイルの ETHTOOL_OPTS に 'ethtool -s' の引数を指定します。以下は bnx2ドライバの設定例で、RedHat EL3 ASで動作確認しております。
 設定例1: eth0を 1000Mbps/full-dupex固定に設定
# cat /etc/modules.conf
alias eth0 bnx2
.....
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
ETHTOOL_OPTS="autoneg on speed 1000 duplex full"
#

 設定例2: eth0を 100Mbps/half-dupex、eth1を 1000Mbps/full-dupex固定に設定
# cat /etc/modules.conf
alias eth0 bnx2
alias eth1 bnx2
.....
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
ETHTOOL_OPTS="autoneg off speed 100 duplex half"
# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
BROADCAST=192.168.2.255
IPADDR=192.168.2.1
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
ETHTOOL_OPTS="autoneg on speed 1000 duplex full"
#

NIC status確認(設定例2の場合)
# ethtool -i eth0
driver: bnx2
version: 1.4.43c
firmware-version: 1.7.6
bus-info: 11:04.0
# ethtool eth0
Settings for eth0:
  Supported ports: [ TP ]
  Supported link modes: 10baseT/Half 10baseT/Full
      100baseT/Half 100baseT/Full
      1000baseT/Full
  Supports auto-negotiation: Yes
  Advertised link modes: Not reported
  Advertised auto-negotiation: No
  Speed: 100Mb/s
  Duplex: Half
  Port: Twisted Pair
  PHYAD: 1
  Transceiver: internal
  Auto-negotiation: off
  Supports Wake-on: g
  Wake-on: d
  Link detected: yes
# ethtool -i eth1
driver: bnx2
version: 1.4.43c
firmware-version: 1.7.6
bus-info: 12:05.0
# ethtool eth1
Settings for eth1:
  Supported ports: [ TP ]
  Supported link modes: 10baseT/Half 10baseT/Full
      100baseT/Half 100baseT/Full
      1000baseT/Full
  Supports auto-negotiation: Yes
  Advertised link modes: 10baseT/Half 10baseT/Full
      100baseT/Half 100baseT/Full
      1000baseT/Full
  Advertised auto-negotiation: Yes
  Speed: 1000Mb/s
  Duplex: Full
  Port: Twisted Pair
  PHYAD: 1
  Transceiver: internal
  Auto-negotiation: on
  Supports Wake-on: g
  Wake-on: d
  Link detected: yes
#

SLES9

 SLES9の場合、RedHatでの ETHTOOL_OPTS相当の変数がありませんので、/etc/sysconfig/network/ifcfg-ethx-xx:xx:xx:xx:xx:xxファイルの POST_UP_SCRIPT変数(ifupスクリプト実行時に指定したスクリプトを実行する)に ethtoolコマンドを実行するスクリプト名を指定します。以下は tg3ドライバの設定例で、SLES9/SP3で動作確認しております。
 設定例1: eth0 を 100Mbps/half-duplex固定に変更

# cat /etc/sysconfig/network/ifcfg-eth-id-xx\:xx\:xx\:xx\:xx\:xx
BOOTPROTO='static'
BROADCAST='192.168.1.255'
IPADDR='192.168.1.15'
MTU=''
NETMASK='255.255.255.0'
NETWORK='192.168.1.0'
REMOTE_IPADDR=''
STARTMODE='onboot'
UNIQUE='LHB6.RfYI5sfd_88'
_nm_name='bus-pci-0000:02:02.0'
POST_UP_SCRIPT='ifcfg-eth0-ethtool'
#
# ls -al /etc/sysconfig/network/scripts/ifcfg-eth0-ethtool
-rwxr-xr-x 1 root root 63 Nov 10 14:03 ifcfg-eth0-ethtool
 ⇒⇒ 実行権が必要です
#
# cat /etc/sysconfig/network/scripts/ifcfg-eth0-ethtool
#!/bin/bash

ethtool -s eth0 speed 100 duplex half autoneg off
#


 NIC status確認
# ethtool -i eth0
driver: tg3
version: 3.58c
firmware-version: 5704-v3.27b
bus-info: 0000:02:02.0
# ethtool eth0
Settings for eth0:
    Supported ports: [ MII ]
    Supported link modes: 10baseT/Half 10baseT/Full
        100baseT/Half 100baseT/Full
         1000baseT/Half 1000baseT/Full
    Supports auto-negotiation: Yes
    Advertised link modes: Not reported
    Advertised auto-negotiation: No
    Speed: 100Mb/s
    Duplex: Half
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: off
    Supports Wake-on: g
    Wake-on: d
    Current message level: 0x000000ff (255)
    Link detected: yes
#

SLES10

 SLES10の場合、RedHatでの ETHTOOL_OPTS相当の変数として ETHTOOL_OPTIONSがあります。ifcfg-ethx-xx:xx:xx:xx:xx:xxファイルの ETHTOOL_OPTIONS変数に 'ethtool -s' の引数を指定します。以下は tg3ドライバの設定例で、SLES10/baseで動作確認しております。
 設定例1: eth0 を 100Mbps/half-duplex固定に変更

# cat /etc/sysconfig/network/ifcfg-eth-id-00\:15\:60\:46\:52\:8f
BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='192.168.1.17'
MTU=''
NAME='Hewlett-Packard Company NC320i PCIe Gigabit Server Adapter'
NETMASK='255.255.255.0'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'

UNIQUE='rBUF.yNohdbl7nJA' USERCONTROL='no'
_nm_name='bus-pci-0000:05:00.0'
PREFIXLEN=''
ETHTOOL_OPTIONS="speed 100 duplex half autoneg off"
#


 NIC status確認
# ethtool -i eth0
driver: tg3
version: 3.49
firmware-version:
bus-info: 0000:05:00.0
# ethtool eth0
Settings for eth0:
   Supported ports: [ MII ]
   Supported link modes: 10baseT/Half 10baseT/Full
         100baseT/Half 100baseT/Full
         1000baseT/Half 1000baseT/Full
   Supports auto-negotiation: Yes
   Advertised link modes: Not reported
   Advertised auto-negotiation: No
   Speed: 100Mb/s
   Duplex: Half
   Port: Twisted Pair
   PHYAD: 1
   Transceiver: internal
   Auto-negotiation: off
   Supports Wake-on: g
   Wake-on: d
   Current message level: 0x000000ff (255)
   Link detected: yes
#

動作確認環境

 本書は下記の構成で動作確認を行いましたが、kernel version、CPUアーキテクチャによる違いはありません。
  • e100.o/.ko v3.5.14c-1
  • e1000.o/.ko v7.0.38d-1
  • tg3.o/.ko v3.58c-1
  • bnx2.o/.ko v1.4.43c-1
  • bcm5700 v8.3.17c-1

 但し、上記のネットワークドライバ以外は、ethtoolに対応していないものもありますのでご注意ください。

印刷用画面へ印刷用画面へ
プライバシー ご利用条件・免責事項 ウェブマスターに連絡