ネットワークが起動しなくて焦った顛末

自宅サーバを綺麗にしてしっかい稼動させようとして、NIC追加してOSクリーンインストールしたらハマった顛末記録 > <
まぁ、最初からログ見とけや的なものもありますが、業務じゃないので、結構推測でやってたのがまずかったのかも。。。

自宅サーバは、HPのML110 G6でこれにIntelのGigabit EthernetのLANカードを増設してます。
接続スイッチはGiga対応のスイッチで、LANケーブルがなかったので、100Mbpsのもの使いました。
(これがハマった。。。)

導入OSはScientific Linux 6.2 x86_64です。
いつもどおり、Basic Server選択して、追加で開発ツールいれて、
さぁ設定開始と思ったら、Networkが立ち上がっていない。。。

あぁ、ONBOOTがYESになってないのねとか思ってまずは面倒なので、以下のように設定。

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
HWADDR="XX:XX:XX:XX:78:43"
NM_CONTROLLED="yes"
ONBOOT="yes"
BOOTPROTO=dhcp

で、network restartしても、NGで返ってくる。。。orz

えぇーとか思って調査開始。

とりあえず、デバイスの情報の確認。

lspci -vvv | grep Ether
1e:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5723 Gigabit Ethernet PCIe (rev 10)
20:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

lsmod してtg3とかe1000eとかいたんで、ふむドライバは問題なさそう。
(ってかあるわけないよね。。。)

じゃあ、dmesgとsyslogみるかってことで。。。(時間あってないのは、NTP設定できてないからです。)

mesg |grep eth0
tg3 0000:1e:00.0: eth0: Tigon3 [partno(BCM95723) rev 5784100] (PCI Express) MAC address XX:XX:XX:XX:78:43
tg3 0000:1e:00.0: eth0: attached PHY is 5784 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[0])
tg3 0000:1e:00.0: eth0: RXcsums[0] LinkChgREG[0] MIirq[0] ASF[1] TSOcap[1]
tg3 0000:1e:00.0: eth0: dma_rwctrl[76180000] dma_mask[64-bit]
ADDRCONF(NETDEV_UP): eth0: link is not ready
tg3 0000:1e:00.0: eth0: Link is up at 100 Mbps, full duplex
tg3 0000:1e:00.0: eth0: Flow control is on for TX and on for RX
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present
ADDRCONF(NETDEV_UP): eth0: link is not ready
tg3 0000:1e:00.0: eth0: Link is up at 100 Mbps, full duplex
tg3 0000:1e:00.0: eth0: Flow control is on for TX and on for RX
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present
tg3 0000:1e:00.0: eth0: Link is down
ADDRCONF(NETDEV_UP): eth0: link is not ready
ADDRCONF(NETDEV_UP): eth0: link is not ready
tg3 0000:1e:00.0: eth0: Link is up at 100 Mbps, full duplex
tg3 0000:1e:00.0: eth0: Flow control is on for TX and on for RX
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present
ADDRCONF(NETDEV_UP): eth0: link is not ready
tg3 0000:1e:00.0: eth0: Link is up at 100 Mbps, full duplex
tg3 0000:1e:00.0: eth0: Flow control is on for TX and on for RX
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present
ADDRCONF(NETDEV_UP): eth0: link is not ready
tg3 0000:1e:00.0: eth0: Link is up at 100 Mbps, full duplex
tg3 0000:1e:00.0: eth0: Flow control is on for TX and on for RX
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present
tg3 0000:1e:00.0: eth0: Link is down
tg3 0000:1e:00.0: eth0: Link is up at 100 Mbps, full duplex
tg3 0000:1e:00.0: eth0: Flow control is on for TX and on for RX
ADDRCONF(NETDEV_UP): eth0: link is not ready
tg3 0000:1e:00.0: eth0: Link is up at 100 Mbps, full duplex
tg3 0000:1e:00.0: eth0: Flow control is on for TX and on for RX
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present
Jun  3 07:25:50 localhost kernel: lo: Disabled Privacy Extensions
Jun  3 07:25:50 localhost kernel: ADDRCONF(NETDEV_UP): eth0: link is not ready
Jun  3 07:25:56 localhost kernel: ADDRCONF(NETDEV_UP): eth1: link is not ready
Jun  3 07:26:04 localhost kernel: tg3 0000:1e:00.0: eth0: Link is up at 100 Mbps, full duplex
Jun  3 07:26:04 localhost kernel: tg3 0000:1e:00.0: eth0: Flow control is on for TX and on for RX
Jun  3 07:26:04 localhost kernel: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Jun  3 07:37:42 localhost kernel: tg3 0000:1e:00.0: eth0: Link is down
Jun  3 07:37:43 localhost kernel: tg3 0000:1e:00.0: eth0: Link is up at 100 Mbps, full duplex
Jun  3 07:37:43 localhost kernel: tg3 0000:1e:00.0: eth0: Flow control is on for TX and on for RX

ふーん。。。じゃあ ethtoolでNICの状態調べてみる。

Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  100baseT/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: g
        Wake-on: g
        Current message level: 0x000000ff (255)
        Link detected: yes

え??100Mbpsのケーブルですけど、1000Mb/sで動いちゃうんですか??ってことで、speed設定をする。

ethtool -s eth0 speed 100 duplex full autoneg on

んで、確認。

ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  100baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: g
        Wake-on: g
        Current message level: 0x000000ff (255)
        Link detected: yes

うんうん。設定あった。で、network restartしたら見事に起動しますよっと。という話でした。
(通常GigaのLANケーブルが無いとかがないですもんね。。。)

このままだと、再起動すると設定消えるので、このまま使い続けるなら、ifcfg-eth0に以下の設定いれないといけないという未来の自分へのメモ。

vim /etc/sysconfig/network-scripts/ifcfg-eth0

...
ETHTOOL_OPTS="speed 100 duplex full autoneg on"
...

ちゃんちゃん。