ボンディング(bonding) interfaceをブリッジ(bridge)で動かすとARP監視が正常に動かないのでL2のトランクフェイルオーバ(trunk failover)で解決した

これ linuxのbondingのarp 監視のarp_validate option の続き。

linuxNIC bonding with bridgeな状況だとARP監視が出来ないようなので、BONDING_OPTSはMII監視で設定して、switchでtrunk failoverを設定した。

trunk failover (link state track)

catalyst だとlink state trackと言うらしい。
特定のportをupstream(上位router, switchなどに接続)とdownstream(serverなどに接続)でgroupに設定しておくと、upsteram portのlink downを検出すると、同groupのdownstream portをdisableにする機能。

このciscoの図でいうと

  • 上位スイッチ - 分散スイッチ1, 2
  • ホストサーバ用スイッチ - スイッチA,B
  • 仮想化ホストサーバ - ホストサーバ 1 ~ 4

あとはスイッチAの設定で

  • ポート5, 6 をlink state group 1のupstream
  • ポート1 ~ 4 をlink state group 1 のdownstream

と設定すれば良い。(スイッチBも同様)
この状態で分散スイッチ1が障害になると、ポート5,6がshutdown => link state trackの機能でポート1 ~ 4が自動的にshutdownされる。
linuxのサーバ1はeth0 (to: スイッチA ポート1)のlink downを検知するとbonding のactive-slaveをeth1 (スイッチB ポート1)に切り替えるのでnetworkの疎通は維持される、と。