重村法克です。 On Fri, 10 Oct 2008 18:42:36 +0900 Harumitsu Shimazaki <[メールアドレス保護]> wrote: > ネットで調べたところ、リンクステータスを通知してくれるかどうかの部分が > ドライバ依存になっているようで、ifconfig でステータスを見に行くとそれ > によりリンクステータスが更新され、フェイルオーバーするようです。
MIIPHY まわりでよく見られる現象ですね。大丈夫だとは思いますが, Broadcom な PHY かどうか確認させてください(下記の 3 つのコマンドの実行)。 $ devinfo -v | fgrep -A2 bce $ fgrep bce /var/run/dmesg.boot $ ifconfig 例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ devinfo -v | fgrep -A2 bce bce0 pnpinfo vendor=0x14e4 device=0x164c subvendor=0x103c subdevice=0x7038 class=0x020000 at slot=0 function=0 miibus0 brgphy0 pnpinfo oui=0x818 model=0x36 rev=0x6 at phyno=1 -- bce1 pnpinfo vendor=0x14e4 device=0x164c subvendor=0x103c subdevice=0x7038 class=0x020000 at slot=0 function=0 miibus1 brgphy1 pnpinfo oui=0x818 model=0x36 rev=0x6 at phyno=1 $ fgrep bce /var/run/dmesg.boot bce0: <Broadcom NetXtreme II BCM5708 1000Base-T (B2)> mem 0xf8000000-0xf9ffffff irq 18 at device 0.0 on pci3 miibus0: <MII bus> on bce0 bce0: Ethernet address: 00:1e:0b:XX:XX:XX bce0: [ITHREAD] bce0: ASIC (0x57081020); Rev (B2); Bus (PCI-X, 64-bit, 133MHz); F/W (0x01090605); Flags( SPLT MFW MSI ) bce1: <Broadcom NetXtreme II BCM5708 1000Base-T (B2)> mem 0xfa000000-0xfbffffff irq 19 at device 0.0 on pci5 miibus1: <MII bus> on bce1 bce1: Ethernet address: 00:1e:0b:XX:XX:XX bce1: [ITHREAD] bce1: ASIC (0x57081020); Rev (B2); Bus (PCI-X, 64-bit, 133MHz); F/W (0x01090605); Flags( SPLT MFW MSI ) bce0: link state changed to UP bce1: link state changed to UP $ ifconfig bce0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=1bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4> ether 00:1e:0b:XX:XX:XX inet XXX.XXX.XXX.XXX netmask 0xffffff00 broadcast XXX.XXX.XXX.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active bce1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=1bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4> ether 00:1e:0b:XX:XX:XX inet XXX.XXX.XXX.XXX netmask 0xffffff00 broadcast XXX.XXX.XXX.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - miibus にぶら下がってる PHY が brgphy でなく ukphy が選択されてると 大問題です。もっとも ukphy が選択されてたら, ろくすぽ通信できないとは思い ますが…。あと brgphy 属だけど, リビジョン違いで, 微妙にチューニングが違 う可能性もあります。 あと経験的には 1 秒以内程度にはリンクステータスって反映される気がしないで もないのですが。。。はてさて。 今回に関係あるかどうかわかりませんが, bce(4)/bge(4) にはかなり先進的な 機能がある(TSO - TCP Segmentation Offloading 等)関係で悪さする話が あります。最悪 Checksum Offloading みたいな広範にサポートされて, 枯れ てる機能すら無効にしないといけないかもしれません。 実行例: # ifconfig bce0 -tso # ifconfig bce0 -rxcsum -txcsum > ちなみに lagpgroto で lacp を選択して 802.3ad で束ねているときはリンク > が落ちると80秒ぐらい黙ってしまいますが切り替わってくれたりします。 対向のスイッチは LACP サポートしていますか? LACP って確か 1 秒に 1 回 パケットを交換して死活監視してたような記憶がありますが。。ちょいとテスト できる環境がないので, 可能なら tcpdump 等で監視してみるのも手かもしれ ませんね。 以上よろしくお願いいたします。