ところで、VirtualBoxを使うときに1つだけちゃんと設定してあげないといけないことがあって、それが何かというとネットワーク周りの設定。́д`)ホゲェ〜ってなったことがあったので、解説も含めメモっておく。*2ちなみに、解決方法は簡単。仮想マシンをローカルマシン上で使用する場合、大体の人が実現したいネットワークの構成としては、GuestOSは外部ネットワークに対してアクセスできてほしい。GuestOSは基本的に外部ネットワークからは遮断しておきたい。HostOSに限り、外部からアクセスできてほしい。いう構成かな、と勝手に思っていたりする。それを手軽に実現するには、VirtualBoxではNATとHost-Onlyという2つのネットワーク構成を組み合わせて使う、という方法で解決する。予備知識として、VirtualBoxで扱える仮想化ネットワークの種類が知りたい人は、以下のサイトが分かりやすく図解していてよい。同じ名称でもVMwareとは扱いが違うことがあるので注意。Host-Onlyというのは設定項目ではなくテクニックの話。説明するのはこれの件。(めんどくさい理屈の話をしてるので、ごたくはいいから解決しろ!という人は「解決方法」まで飛ばしちゃって。)補足として、いろいろな所で「NAT+ポートフォワーディングという方法で解決できる」という話も上がっているが、これはいちいちポートのことを気にしなければならず厄介なので、ウザくてお勧めしない。ネットワークのレイヤ的にはできるだけ下の方で仮想化/抽象化を済ませておくべきで、レイヤ3ぐらいまでであれば、ほとんどの場合実マシンと同等に扱えるのでそこまでで済ます努力をするべき。TCP/IPさまさま。Host-Onlyについては同僚がまとめておいてくれたのがあるのでここではURLのみで割愛。アシアルブログMacの話だけど、Windでもなんら変わらない。GuestOS側の注意点と設定で、話はこれだけでは済まなくて、GuestOS側でも少し気をつけておかなければいけない点がある。Host-Onlyって方法は、要するにNICを2枚使用して、片方を内部仮想ネットワーク用、もう片方をHostOSとの直接リンク用に使おう、っていう方法。それで問題になってくるのが何かというと、GuestOS側のネットワーク設定。この方法を紹介しているほとんどのところでは「VirualBoxでこれ設定すればおk!」とか言ってるけど、これやるとeth0とeth1両方がDHCP扱いになってしまったりする。Gateway(以下DGと略)まで設定してしまうこと。2つのネットワーク設定が両方ともDHCPとして作成してあると、それぞれが別々にルーティングテーブルに対してDGを設定しようとする。そのため、DGが2つになってしまって、GuestOS側のアプリケーションがどっちのゲートウェイを使えばいいのかわからなくなってしまい、結果としてまともに外に出れなくなる。eth0という感じになっているのだが、これのdefaultという行が2行あったりすると、混乱が発生している状態といえる。それぞれのIPについて簡単に解説をしておくと、(ifconfigを見た方がよりわかりやすいが)このときの10.0.2.x系ネットワークがVirtualBoxがNATとして使っているネットワーク帯域で、192.168.56.xというのが、Host-Onlyのネットワーク。*4そして、VirtualBoxから外部ネットワークに対してアクセスするために利用するGWは、NAT側の方。混乱を解消するためには、上記のようにNATのネットワークである10.0.2.x系のDGである10.0.2.2のみが単一のゲートウェイとして存在している状態になっている必要がある。eth1みたいな行があると、うまく外に出れない。解決方法ここまで理屈を並べておいてなんだが、解決策は簡単に2通りあって、Host-Onlyで使っているNIC(この場合はeth1に割り当てられているNIC)のIP設定を、DHCPを使わずにstaticに取得するようにし、gatewayの指定を行わなない。起動時にダメな方のDG設定を自動的に削除するようにする。