Xenテスト 1
Xenの実験。
日本語のXenの情報は少なすぎる気がする。
※以下の情報はデタラメな可能性が高いので信用しないでください
まずインストール。
インストールは、最近はrpmでサクッとできてしまうので面白くない。
次にネットワーク。
これがうまくいかない。
Xenのネットワークの構築手段はブリッジとNATとルーティングがあるが、VIVER的にブロードキャストが届かないと困るので、必然的にブリッジになる。
xendの設定ファイルでブリッジを行うように設定しておくと、xendの起動時に自動的にブリッジが構築される。(/etc/xen/scripts/network-bridgeスクリプトが実行される)
ただその構築方法が非常にトリッキー。
Xenカーネルで起動すると、veth0やvif0.0といったネットワークインターフェースが現れる。
いろいろ調べると、veth0はeth0のループバックインターフェースとか言うもので、eth0のコピーとして動くのではないかと思われる。つまりeth0に入ってくるパケットはveth0にもコピーされ、eth0から出ていくパケットはveth0からも出ていく。
vif0.*は、VMのNICに繋がる。
1番めのVMのNICは、vif0.1に繋がる。
/etc/xen/scripts/network-bridgeを解析すると、動作は大まかに以下の様になっている。
ネットワークブリッジ「xenbr0」を作成 eth0のMACアドレスや、割り振られたIPアドレスをveth0に移す eth0の名前をpeth0に変更 veth0の名前をeth0に変更 xenbr0にpeth0(中身はeth0)を登録 xenbr0にvif0.0を登録
eth0という名前はブリッジを構築する前と後で同じように使え、かつpeth0(eth0)がxenbr0に登録されているので、今後起動するVMのNIC(vif0.1とかvif0.2とか)をxenbr0に登録することで、eth0のネットワークにブリッジすることができる。
…と言う狙いなのだと思う。
が、うまくいかない。
自動設定スクリプトに頼らずに、自分でブリッジした方が良さそうな気がする。
それから、veth0と言うのはどうも微妙な気がする。
ということで、以下の戦略で行こうと思う。
ネットワークブリッジ「xenbr0」を作成 eth0に割り振られているIPアドレスを記録しておく eth0の名前をpeth0に変更 xenbr0の名前をeth0に変更 eth0(中身はxenbr0)にpeth0(中身はeth0)を登録 eth0(中身はxenbr0)にvif0.0を登録 記録しておいたIPアドレスをeth0(中身はxenbr0)に割り振る
ネットワークブリッジのMACアドレスは、それに一番最初に登録したNICと同じになる、と言う記憶があるので、これでeth0という名前をブリッジする前と後で同じように使えるはず。veth0は使っていない。
ネットワークブートしたマシンでブリッジを構築すると、一瞬ネットワークが断絶するので、そこでハングアップしてしまうと思う。
VIVERのネットワークブートしたマシンをXenのDom0にするには、VIVER本体プログラムの中(正確にはpivot_rootする前)でブリッジを構築しないといけない。