linux nic bonding の/proc/net/bonding の表示の謎

SL6.2: eth0, eth1 ともに1Gbpsなのに、bondingのstatusを見たらなぜか100Mbpsになっている。

# ethtool eth0
(略)
Settings for eth0:
      Speed: 1000Mb/s
      Duplex: Full
# ethtool eth1
(略)
Settings for eth1:
      Speed: 1000Mb/s
      Duplex: Full
# more /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 100 Mbps
Duplex: full

Slave Interface: eth1
MII Status: up
Speed: 100 Mbps
Duplex: full

dmseg,/var/log/messages

bonding: bond0: Warning: failed to get speed and duplex from eth0, assumed to be 100Mb/sec and Full.

良くわからないけど、BONDING_OPTS にmiimon を設定したら治った。

  • /etc/sysconfig/network-scripts/ifcfg-bond0
BONDING_OPTS="mode=0 miimon=100 updelay=1000"
# more /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full