前回xenのインストールをしてドメインUからドメイン0のネットワークがつながるところまでいったが、ドメイン0からインターネットに接続できないっていうかゲートウェイまでたどり着けないという状況に陥ったところで終わった。
それからごちゃごちゃ試行錯誤したり、調べたりしていたんだが、ついに外部ネットワークに接続できた。
結論からいうと、xenの設定は前回のでOKだった。
なにがだめだったのかというと、iptablesの設定だった。
xenのネットワークはいままで、peth — eth — xenbr — vif という形でつながっていた。
pethは本物の物理インターフェイスで、ethはホストの仮想インターフェイス、xenbrは仮想ブリッジ、vifがゲストドメインの仮想インターフェイスだ。
ところが、今回いれたxenはバージョン3.2になるが、このバージョンではxenbrとethが統合されたようだ。
そのため、前書いた通りxenbrが生まれない状態となる。
つまり、前回の状態は正しい状態だった。
xenをアップグレードしたらネットワークにつながらなくなったとかいう人は、ドメインUのvifが使うブリッジにxenbr0とか指定していたらeth0とかに変えてみるとつながるかと思う。
そのため、brlctlをたたくとこんな感じに表示される。
# brctl show bridge name bridge id STP enabled interfaces eth0 8000.000e0cb58317 no peth0 vif8.0
xenのブリッジ生成を行うスクリプトは、/etc/xen/scripts/network-bridgeで、この子がその辺の作業をする。
ドメインUが持つ仮想インターフェイスの生成とブリッジへの接続はvif-bridgeが行う。
で、最初に書いたがiptablesの何が問題だったかというと、FOWARDチェインをDROPしていたのが原因だった。
うちのサーバでルーティングするという予定はなかったので、FOWARDをDROPしていたんだけども、xenによる仮想ネットワークではブリッジによるFOWARDが行われるからだ。
原因を突き止めるのにxenのネットワークの仕組みを勉強しまくって、カスタムネットワーク構築も出きるようになっちゃったよ。。。

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 
[...] Xenを使って仮想化しているマシンではネットワークも仮想化される。 そのあたりはこちら参照。 [...]