“Right chaps – I finally have a working xen install networking :)”
Gentoo Bug 111684 – Xen network bridge support
これと同じような要領で Xen + br0 + bond0 って構成ができました。なんか、Gentoo の起動スクリプト系は他のディストリビューションとけっこう違うので、一筋縄ではいかなかったです。
とりあえず、ネットでよく紹介されているような xend-config.sxp に
(network-script 'network-bridge bridge=xenbr0 netdev=bond0')
みたいな感じで書いてみました。が、Gentoo の場合は bond0 を pbond0 に置き換えたりしている部分で止まっていそうな感じ。ブリッジデバイス xenbr0 は作られるが、そのブリッジに bond0 は接続できない。落とそうと思っても落ちない。仕方がなくリブート。何度もやりました。でも、だめでした。
で、よくよく調べてみると、Xen を Gentoo 上で動かしてブリッジ接続する場合、他のディストリビューションとは別の方法で設定する必要があるんですね。ブリッジデバイスを作るのは xen パッケージで配布されるスクリプトではなく、Gentoo 標準の net.br? とかの方がいいみたいです。
自分はこんな感じでできました。
config_eth0=( "null" )
config_eth1=( "null" )
slaves_bond0="eth0 eth1"
config_bond0=( "null" )
config_br0=( "192.168.???.???/24" )
RC_NEED_br0="net.bond0"
たぶん、こんな感じ。手元に設定したサーバがないので、間違ってたらすみません。
あと、Xen 標準とブリッジデバイスの名前が違うので
(vif-script 'vif-bridge bridge=br0')
ってのも必要でした。
で、まぁ、よく考えたら Xen のスクリプトで設定する場合と決定的な違いがありますね。Xen で設定する場合はブリッジデバイスには vif0.0 みたいのが接続され、それと見た目の eth0 が接続されている感じになります。Gentoo の起動スクリプトでブリッジデバイスを作ると br0 で直接通信をすることになります。iptables の設定は別に作り込む必要がありそうですね。
まー、仮想サーバが少ないなら NAT で設定しちゃった方がいいかもね。たくさんあったり、入れ替わりが激しいならブリッジの方がいいと思います。