前回煮詰ってしまったネットワーク設定ですが、いろいろ調べるうちに幾つか解決策が見えてきました。
とりあえず分かったことと解決法を纏めておきます。
ネットワークアダプタ
仮想のCPUやHDD、メモリを割り当ててきたのと同様で、仮想のネットワークアダプタを作成することでネットワークに接続できるようになるのはなんとなく分かります。
問題は種類が多くて何が何やら分からないまま使用していたこと。というわけでまずはアダプタの種類から整理していきます。
1.NAT
ホストが属するネットワークとは別セグメントのネットワークを形成します。別セグメントのルータを仮想的に作成するイメージでしょうか。ポイントは1台の仮想マシンに1つのセグメントを形成するということか。
2.NATネットワーク
こちらも別セグメントのネットワークを形成しますが、1つの仮想ネットワークに複数の仮想マシンが所属できることが特徴のようです。以前のバージョンでは仮想マシン同士の接続ができなかったようですが、この形式を選択するとそれが可能になるようです。
3.ブリッジアダプタ
ホストマシンと同一のセグメントに仮想マシンを置くイメージとなります。LAN内のマシンが1台増えたのと同じ感覚で使えるので自分みたいな初心者にはこれが易しそう。
4.内部ネットワーク
ゲストOS間のみの通信を行うアダプタだとか。いまのところ用途が見えません。。。
5.ホストオンリーアダプタ
ゲスト-ホスト間のみの接続を形成するアダプタのようです。
という風に色んな種類があるようです。
作成できるアダプタは最大4ヶで、ネットワークの知識があればこれらの組み合わせで使い易さとセキュリティを兼ね備えたネットワークの構築が可能となるようです。
実際調べた感じだと使い方としては
- 1枚のNICでブリッジアダプタを使いネットワーク形成(同一セグメント)
- 2枚のNICを使い、1枚でNAT(ゲスト-外部)を、もう1枚でホストオンリー(ホスト-ゲスト間)
という使い方のようですが、今回はより簡単そうなブリッジアダプタを使ってみます。
使い方は簡単で
- ゲストOSの/etc/network/interfacesを編集してIPアドレス、サブネットマスク、ネットワーク、ゲートウェイ、DNSサーバを設定
- VirtualBoxマネージャーの環境設定→ネットワーク→ホストオンリーネットワークの「VirtualBox Host-Only Ethernet Adapter」をダブルクリックしてIPアドレス、サブネットマスクを設定
これだけでとりあえずapt-get updateが動いたのでゲストOSが外部ネットワークに繋がったことは確認できました。
ホストからゲストへpingを飛ばしても問題なく繋がります。これで暫くは運用してみようと思います。