島崎です。

もうすこしネットで調べてみたところ
freebsd-stable ML でも同様の質問が出ているのを見つけました。
http://www.mail-archive.com/[メールアドレス保護]/msg97759.html

こちらでは sys/dev/mii/brgphy.c に当てるパッチが示されており、一応実験
してみたところこのパッチを当てると期待するフェイルオーバーの動作をして
くれました。

ただ、副作用がないのかまでは確認できていないので、まだ本番投入はできて
いませんが…。


From: Norikatsu Shigemura 
<[&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;]>
Subject: [FreeBSD-users-jp 91857] Re: lagg(4) failover function does not work 
on bce
Date: Sat, 11 Oct 2008 16:29:33 +0900

>       MIIPHY まわりでよく見られる現象ですね。大丈夫だとは思いますが, Broadcom
>       な PHY かどうか確認させてください(下記の 3 つのコマンドの実行)。
> 
> $ devinfo -v | fgrep -A2 bce
> $ fgrep bce /var/run/dmesg.boot
> $ ifconfig

こちらは末尾に付けたとおりで問題なく brgphy のようです。


> > ちなみに lagpgroto で lacp を選択して 802.3ad で束ねているときはリンク
> > が落ちると80秒ぐらい黙ってしまいますが切り替わってくれたりします。
> 
>       対向のスイッチは LACP サポートしていますか? LACP って確か 1 秒に 1 回
>       パケットを交換して死活監視してたような記憶がありますが。。ちょいとテスト
>       できる環境がないので, 可能なら tcpdump 等で監視してみるのも手かもしれ
>       ませんね。

対抗のスイッチは summit X450a-48t でちゃんと LACP で sharing している
のですが、気になって tcpdump してみたら LACP パケットの間隔がやたら長
く、ドキュメントに当たってみたらそもそもデフォルトだと 90秒に一回送る
設定なのだそうです。

こちらは 3秒にできるようなので、どこかで実験してみようかと思います。


以下にコマンドの実行結果を付けます。

> 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 16 at device 0.0 on pci3
miibus0: <MII bus> on bce0
bce0: Ethernet address: 00:1e:0b:**:**:**
bce0: ASIC (0x57081020); Rev (B2); Bus (PCI-X, 64-bit, 133MHz); F/W 
(0x01090605); Flags( MFW )
bce1: <Broadcom NetXtreme II BCM5708 1000Base-T (B2)> mem 0xfa000000-0xfbffffff 
irq 17 at device 0.0 on pci5
miibus1: <MII bus> on bce1
bce1: Ethernet address: 00:1e:0b:**:**:**
bce1: ASIC (0x57081020); Rev (B2); Bus (PCI-X, 64-bit, 133MHz); F/W 
(0x01090605); Flags( MFW )
bce0: link state changed to UP
bce1: link state changed to UP

> ifconfig
bce0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=3b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU>
        ether 00:1e:0b:**:**:**
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
        lagg: laggdev lagg0
bce1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=3b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU>
        ether 00:1e:0b:**:**:**
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
        lagg: laggdev lagg0
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=3b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU>
        inet XXX.XXX.XXX.XXX netmask 0xffffff00 broadcast XXX.XXX.XXX.XXX
        ether 00:1e:0b:**:**:**
        media: Ethernet autoselect
        status: active
        laggproto failover
        laggport: bce1 flags=0<>
        laggport: bce0 flags=5<MASTER,ACTIVE>

メールによる返信