VirtualBox のホストオンリーネットワークアダプタで困った件

ここ数日、いろいろ躓いてばかりな気がしますが、今度は VirtualBox のお話です。

毎回だらだらと長い文章になってしまうので、簡潔に書いてみます。

問題:ホストオンリーアダプタのネットワークでホストマシンだけ接続できない
結論:以前の設定が悪さをしてる場合があるので、未使用のサブネットアドレスを割り当ててみると改善される事がある

以上… では説明不足ですよね、はい。

まず VirtualBox の仮想マシンでホストオンリーネットワークアダプタを使っていました。
それで、ホストマシン(VirtualBox 自体を実行してる方ですね)をスリープしてから復帰すると、ホストだけが該当のネットワークで通信できない状態になっていました。
その間もゲストマシン(仮想マシンの方です)同士では問題無く通信できていました。

このような状況でも、最近までは仮想マシンを利用しての開発が無かったので特に問題ありませんでした。
ところが、ここ数日で やれDockerだ common lisp だと仮想マシンを使い倒すようになったため、この接続不良による再起動の嵐が非常に面倒になりました。

同じ問題で悩んでいる人がいるかと思い google 先生に検索してもらって幾つか事例を見て回ったのですが、現象が微妙に違っていたり、書いてある通りに試してみても効き目が無かったりと、うまくいきませんでした。
しかも、途中から「コントロールパネルのネットワークアダプタを無効にするとアイコンが消える」という新たな問題も発生したのです。

その後紆余曲折があり、最終的にはクリーンな状態になるよう

  1. 今あるホストオンリーアダプタを全部削除
  2. 再起動
  3. 今のバージョン(Ver 5.0.x)をアンインストール
  4. 再起動
  5. 以前のバージョン(ver 4.3.x)をインストール
  6. 再起動
  7. ホストオンリーアダプタを新規追加
  8. 再起動
  9. 仮想マシンのネットワークアダプタを新しいのに変更

という作業をして、接続を試しました。
ところがやっぱり駄目で、途方に暮れかけた時にゲスト側に不自然な点を発見したのです。
この時は VirtualBox の設定で DHCP サーバを OFF にしてあったのですが、何故かゲストが DHCP で IP アドレスを取得していました。
不思議に思って別のサブネットに変更してみたところ、それが大当りだったらしく嘘のように素直に仮想マシンと通信できるようになったのです。

それまでに散々いじったので、最後のサブネット変更が決定打だと言い切ることはできませんが、これが最も有力だと思います。
思い返してみると、確かに以前ホストオンリーアダプタを作成したまま virtualbox をアンインストールしたことがありました。
その後に新バージョンを入れ直した時にも、何故かインストール直後にアダプタが有り、気になった覚えもあります。

このような点から、最初に書いた結論が導きだされた次第です。
この記事が解決事例の一つとして、どなたかの参考になればいいなと思います。

VirtualBox に CentOS 6.7 を入れた後で NAT にした時の設定

例によって忘れた時用のメモです。

タイトル通りなんですが、VirtualBox で CentOS 6.7 を使った時に困った話です。
状況としては下のようになります。

  1. ネットワーク設定で最初に NAT以外(ホストオンリー等)のネットワークアダプタを選んだ
  2. そのアダプタを後から NAT にした

この場合、VM を起動しても NAT からインターネットへのアクセスができません。
とりあえず下のように設定したら NAT を通って外へ出られました。

  • /etc/sysconfig/network ファイル
    • GATEWAY の行をコメントアウト(先頭に「#」を追加)する
  • /etc/sysconfig/network-scripts/ifcfg-eth0 を下の内容にする(NIC の数によっては eth0 の「0」を別の数字に読み替えます)
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp

ちなみに、NAT が動いた時の IP が「10.0.5.15」で、デフォルトルートは「10.0.5.2」でした。
このパラメータを利用して手動設定ができるかもしれません。どなたか試したら教えてください。

今回は短い(当社比)ですが、以上です。

virtualbox のゲスト Debian で nat ネットワークがつながらなかった件

掲題の通り、virtualbox で nat に設定したネットワークアダプタを用意してインストールすると、再起動後に外部ネットワークに接続できない状態になっていたので、開通させるまでの手順をメモ。

結論から言うと以下の 4手順で完了。

  1. ifconfig eth0 10.0.2.15 netmask 255.255.255.0
  2. route add default gw 10.0.2.2
  3. apt-get install ifupdown
  4. /etc/network/interfaces を編集
    • iface eth0 inet dhcp をコメントアウト
    • iface eth0 inet static
    • address 10.0.2.15
    • netmask 255.255.255.0
    • up route add default gw 10.0.2.2
    • down route del default gw 10.0.2.2

ここに行き着くまでに /etc/default/network をいじったり、何度も /etc/network/interfaces を書き直したり、手動で ip コマンドを叩きまくったりと大変だった…
特に /etc/network/interfaces を有効にするには ifupdown パッケージが入ってないとダメだと分かるまでに、だいぶかかってしまった。