- http://luna2-linux.blogspot.com/2011/08/centos-bonding-arpvalidate.html
- http://www.jp.redhat.com/magazine/jp/200904/rhel.html
- https://www.redhat.com/wapps/sso/login.html?redirect=https://access.redhat.com/kb/docs/DOC-57014
- https://bugzilla.redhat.com/show_bug.cgi?id=584872
- https://lists.linux-foundation.org/pipermail/bridge/2007-April/005376.html
bondingしているserverが直接接続しているL2 switchが障害した場合はMII監視でlink downを検出できるけど、一番上の参照元のblogのように、上位のswitchの障害を検知するにはdefaultのMII監視では出来ない。(後述するけどL2 switchのtrunk failoverを使えば可能)
arp監視
そこでarp監視を使おうと思って試してみたけど、defaultの設定では上位のswitchが落ちても、bond0のslave interface eth0、eth1ともにlink up のままになって切り替わってくれない。調べてみると、network内に他にarp監視をしているserverなどbroadcastトを投げているserverがあれば、そのpacketを受け取ってupと判断してしまうらしい。
arp_interval option
さらに調べるとarp_interval=3 (all) を指定してarp packetをcheckするようにすれば対応可能らしい。と辿りついたけど実際設定してみると、今度はswitchが全て正常に繋がっているのにeth0, eth1 ともにdownになってしまった。
- https://bugzilla.redhat.com/show_bug.cgi?id=584872
- http://www.linux-kvm.org/page/HOWTO_BONDING#Problem_with_Bridge_.2B_Bonding
どうもbonding interfaceをbridgeで設定していると、arp_validateが正常に動作しないらしい。でも、bondingさせようとしているのはkvm仮想化ホストサーバなので、bridgeは必須なんですが('A`)