ifdown eth0 の実行時に物理リンクが存在する
Environment
- Red Hat Enterprise Linux 5
kernel 2.6.18-274.el5
- Red Hat Enterprise Linux 6.2
kernel-2.6.32-217.el6
- Intel
igb
ドライバー
Issue
-
RHEL 6.2 または RHEL 5 を実行しているサーバーの 1 つで、利用可能な Ethernet ポート (eth0) が Intel
igb
ドライバーによって稼動しています。ポートをオフ (ifconfig down
) にしても、相手側 (Ethernet スイッチ) のリンクステータスはアップのままになります。 -
ポートは管理上ダウン (フラグはアップしていて、実行は非アクティブ) しています。
$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:11:3F:CD:5E:27
inet addr:192.168.0.4 Bcast:192.168.0.255 Mask:255.255.255.0
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:40259 errors:0 dropped:0 overruns:0 frame:0
TX packets:7560 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5959823 (5.6 MiB) TX bytes:1098413 (1.0 MiB)
Memory:fbc80000-fbd00000
$ 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: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:1
Transceiver: internal
Auto-negotiation: on
MDI-X:Unknown
Supports Wake-on: pumbg
Wake-on: d
Current message level:0x00000003 (3)
Link detected: yes
- スイッチ側から見ると、ポートはアップしたまま (操作可能状態) となります。
ena/ speed/ link auto STP lrn inter max loop
port link duplex scan neg? state pause discrd ops face frame back
ge19 up 1G FD SW Yes Forward TX RX None FA SGMII 1518
- インターフェイスがシャットダウンしていると、
ping
、telnet
、ssh
などは機能していません。
Resolution
- カードが管理できるように設定されていない場合は、 以下のカーネルバージョンにアップグレードすると問題が修正されます。
- Red Hat Enterprise Linux 5: エラータ RHBA-2012-0361 で
kernel-2.6.18-308.1.1
(BZ#786168) にアップグレードします。 - Red Hat Enterprise Linux 6: エラータ RHSA-2012-0481 で
kernel-2.6.32-220.13.1
(BZ#789371) にアップグレードします。
Root Cause
- RHEL 5 のエラータ RHBA-2012-0361 からの抜粋:
* An Ethernet physical transceiver (a PHY chip) was always powered up when a
network interface card (NIC) using the igb driver was brought down.Recent
changes had modified the kernel so that the PHY chip was powered down in such a
scenario.With this PHY power saving feature, the PHY chip could unexpectedly
lose its settings on rare occasions.Consequently, the PHY chip did not recover
after the NIC had been re-attached and the NIC could not be brought up.The igb
driver has been modified so that the PHY chip is now reset when the NIC is
re-attached to the network.NICs using the igb driver are brought up as
expected.(BZ#786168)
Diagnostic Steps
- ログで、ネットワークがダウンしていることを確認してください。
Mar 2 16:23:02 localhost dhclient[3616]: receive_packet failed on eth0:Network is down
Mar 2 17:02:37 locahost kernel: igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control:RX/TX
カードが管理できるように設定されている場合:
-
さらに調査を行うと、そのカードは管理できるように設定されていることが分かりました。
したがって、ドライバーはカードをリセットするだけで、PHY の電源をオフにするわけではありません。これはethregs
出力結果で確認できます。 -
以下のコマンドを実行してください。
ethregs ethx
-
bt 18 を、150e パートの MANC レジスターに設定します。これは、PHY はリセットされるだけで電源をオフにするわけではないことを示しています。82580 データシート http://www.intel.com/content/www/us/en/ethernet-controllers/82580-eb-db-gbe-controller-datasheet.html を参照してください。
-
セクション 7.22.4 、レジスター出力の bit 17 と 18 です。bt 17 は管理接続チャンネルを有効にし、bit 18 は PHY をアップにし、トラフィックチャンネルを維持します。このデバイスは管理できるように設定されているため、PHY が自分で電源を元に戻します。詳細は bugzilla #BZ809711 (非公開) を参照してください。
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments