RHEL4,5や、RHEL6,7でNetworkManagerを使ってない環境では、eth0に対して autoneg on 設定をする場合 /etc/sysconfig/network-scripts/ifcfg-eth0 に「ETHTOOL_OPTS=”-A ${DEVICE} autoneg on”」というような記述を書く。
複数の設定項目がある場合は「;」で間を区切ることができる。
しかし、NetworkManagerを利用している場合、ETHTOOL_OPTSの値は見ない仕様となっているとのこと。
では、どうやって対処するかと言えばudevによるデバイス初期化ルールに、該当デバイス追加時の命令としてethtoolを実行する処理を記述する、というもの。
この対処方法はNetworkManagerを使わない場合でも適用できる。
具体的には「/etc/udev/rules.d/50-ethtool.rules」というようなファイルを作って下記を書く。
ACTION=="add", SUBSYSTEM=="net", NAME=="eth0", RUN+="/sbin/ethtool -A eth0 autoneg off"
・・・めんどくさーーい
2024/11/07追記
RHEL9時代になっても、時々この記事に来訪があるので追記
RHEL9のNetwork Manager環境では nmcliコマンドで 802-3-ethernet.auto-negotiate オプションを指定して設定できる。 マニュアル→RHEL9 ネットワークの設定および管理「第47章 802.3 リンク設定」
現在の設定値確認は「nmcli connection show デバイス名」で行う
[root@pve40 ~]# nmcli connection show ens192|grep 802-3
connection.type: 802-3-ethernet
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: はい
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist: --
802-3-ethernet.mtu: 自動
802-3-ethernet.s390-subchannels: --
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options: --
802-3-ethernet.wake-on-lan: default
802-3-ethernet.wake-on-lan-password: --
802-3-ethernet.accept-all-mac-addresses:-1 (default)
[root@pve40 ~]#
変更は1つだけ変更するなら「nmcli connection modify デバイス名 802-3-ethernet.auto-negotiate no」といった形で実行する
[root@pve40 ~]# nmcli connection modify ens192 802-3-ethernet.auto-negotiate no
[root@pve40 ~]# nmcli connection show ens192|grep 802-3
connection.type: 802-3-ethernet
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: いいえ
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist: --
802-3-ethernet.mtu: 自動
802-3-ethernet.s390-subchannels: --
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options: --
802-3-ethernet.wake-on-lan: default
802-3-ethernet.wake-on-lan-password: --
802-3-ethernet.accept-all-mac-addresses:-1 (default)
[root@pve40 ~]#