« Wireless Network Driver for the Atheros Chipset (ath) v0.7.3 | メイン | OpenSolaris Project: Easy Tools »

VirtualBox で host interface を利用している場合の guest os と host os との通信について

host OS を Nevada や OpenSolaris (Solaris 10 は含まない)としてVirtualBox を利用し、Guest OS にて host interface (bridge)を利用する場合は、host OS 側にて、/usr/lib/vna を使い vnic0 を生成して割り当てる必要があります。
こうすれば、1 つの物理ネットワークインターフェースを介して、Host および Guest OS にそれぞれの IP address を割り当てることが可能です。

しかし、同一 network address が割り当てられているにも関わらず、この状態では物理ネットワークインターフェースが、有線にて Switch などに接続されている状態でなければ Gusto OS と Host OS が通信できず、内部でサクッと終わらせてくれないようです。

推測だけど、たとえば myk0 という物理 network interface があった場合、myk0 から生成された vnic0 は、内部的には switch に接続されていない状態となっている。
この vnic0 から myk0 へと通信するには、myk0 が switch に接続されている必要がある。
まぁ、myk0 が switch につながっていないから、当然、それから生成された vnic0 もつながっていないことになって当然なのかなと。

で、線がつながっている場合は、vnic0 から myk0 にアクセスするためには、一度、switch 経由で myk0 にたどり着くという感じ。
ということは、Virtual Interface であるとはいえ、動作は、実物同様ですか。
恐るべし Crossbow。

というわけで、何が言いたいかと言うと、network にも接続されない環境で、host OS と
guest OS 通信したい場合はどうすんの?というお話です。

答えは、簡単で、もう一つ vnic interface を作成し、VirtualBox 側の guest OS もそれと同じ network address に揃えてあげるという方法です。
どうも、vnic0 と vnic1 同士は、内部的には仮想 switch のようなものに接続された感じとなっているんじゃないかと、勝手に脳内解釈。

感覚的にこんな感じ。脳内解釈ですよ。

なので、host OS 側に vnic1 とか用意してあげれば、それ経由で host OS と通信できると。
具体的にしてみると、こんな感じ。
ようは、router だね。


vnic を使った、brdige 接続方法については、こちを参考に準備してください。


host OS 側に、[vnic1] を作成

# /usr/lib/vna myk0 0:17:f2:32:68:22 vnic1
# ifconfig vnic1 plumb
# ifconfig vnic1 192.168.10.254 netmask 255.255.255.0 broadcast + up

これで準備おk。
あとは、guest OS 側の IP addr などを host OS の vnic1 に設定したものと通信できるよう
条件を揃えて設定すれば、通信可能となります。

トラックバック

このエントリーのトラックバックURL:
http://solaris.sunfish.suginami.tokyo.jp/blog/mt/mt-tb.cgi/612

About

2008年07月18日 18:09に投稿されたエントリーのページです。

ひとつ前の投稿は「Wireless Network Driver for the Atheros Chipset (ath) v0.7.3」です。

次の投稿は「OpenSolaris Project: Easy Tools」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.34