So-net無料ブログ作成
スポンサードリンク

KVMでネットワークをbondingにした時の注意点 [仮想サーバ]

Redhat系OSでよく使用されている仮想サーバのKVMで、ホストでネットワークをbondingにした時の注意点。
ホストにある各ネットワーク・インターフェースをbondingで設定して、KVMのbrigdeインターフェースと繋ぐ設定にすれば構築は出来るのですが、ホストでネットワークの1本が切れた時に、ホストは他のネットワーク・インターフェースで接続されるけど、ゲストが接続されなくなる時がある。
原因はmacアドレスが片側のSWにしか登録されないため。
ホストはネットワーク・インターフェースを2つ持っているので問題は無いのですが、ゲストは一つしか持っていなため、通信している方のSWにmacアドレスが登録されているので、切断されもう片側に切り替わると通信が出来なくなってしまう。
ゲストからpingなどが送信されると通信が出来るようになるのですが、クライアントならまだしもサーバだとタイミングがあまり無い。
cronで定期的にpingを打つ方法もあるけど、arpingでarp送信する方が良さそうかも。

調べてみるとデーモンで動かす方法が有りました。
www.ibm.com/jp/linux/tech/doc/0041fca1.html
ここはリンク先が開けなかったのですが、他のサイトにも有りました。
https://gist.github.com/3856376
macrefresh.py
インターバルやNetI/Fが簡単に指定出来るのが良いです。
phytonを使っているので、phythonをインストールして使用します。
$ python -V
で、バージョンが表示されれば使用できるのかな。
$ ./macrefresh.py &
このスクリプトをバックグランドで起動するだけで、常駐はするみたいですが、
再起動したり、何らかでプロセスがダウンしたら止まるので、デーモンで動作したほうが良さそうです。
CentOS7系だとsystemdで動かすと便利でした。

この「macrefresh.py」をゲストに組み込んで、ネットワークの片側を切断してテストすると問題なく、通信が出来るようになりました。
インターバルが長いと切り替わりに時間が掛かり、通信が出来なくなる時間も出来ますが、ゲスト数が多くインターバルも短いと負担が掛かりそうなので、用途次第で設定したほうが良さそうです。

スポンサードリンク
シャンパン酵母エキス