内部ネットワークとは
Virtual Box における内部ネットワークとは、仮想マシン同士の通信が可能な仮想的なネットワーク構成のひとつだ。
例えば、下図のように「Sample01」と「Sample02」という Windows 10 仮想マシンが存在する。
2台の仮想マシンのネットワークの設定を見てみる。
デフォルトの内部ネットワーク「intnet」
Sample01 のアダプター1には、仮想マシン作成時に内部ネットワークを割り当てている。
アダプタの割り当てに「内部ネットワーク」を選択すると、既定は「intnet」という名前になっている。
この名前は重要なパラメータで、Virtual Box の内部ネットワークにおいて、内部ネットワークの名前が同じでなければ通信ができない。
内部ネットワークの名前が既定で「intnet」になるのは2台目以降も同様で、内部ネットワークのアダプタを取り付けると基本的には必ず「intnet」になる。
上記のように、アダプタの割り当てを「内部ネットワーク」に設定した場合、仮想マシン Sample01 も Sample02 も同じ名前の内部ネットワークに所属することになる。
したがって、IP アドレスの設定が適切であれば、特に何も考えなくても仮想マシン間の通信は通るようになる。
内部ネットワークの「名前」を変更する
前述したが、内部ネットワークの「名前」が異なった場合、切り離された別のネットワークとして扱われる。
例えば、仮想マシン “Sample02” のアダプター1に割り当てている内部ネットワークの名前を、デフォルトの「intnet」から「intnet2」に変更する。
そうすることで、Sample01 と Sample02 のネットワークを分離することができる。
下図は最初の ping が Sample02 の内部ネットワークの名前が「intnet」だった時にもの。
2番目の ping が「intnet2」に変更した後のものだ。
2台の仮想マシンに設定されているアダプタの内部ネットワークが、同じ名前である「intnet」だった場合は疎通が可能だが、別の名前を設定すると疎通が不可能になっていることがわかる。
内部ネットワークの NW 分離のレベル
具体的にどの程度ネットワークがわかれているのかを確認する。
例えば、「arp」に対して応答がなかった場合、少なくともブロードキャストドメインは異なることになる。
実際に試してみたが、異なる名前の内部ネットワーク間の通信では arp に応答がなかった。
どうやら、ブロードキャストは同一の名前の内部ネットワーク内で完結しているようだ。
また、VirtualBox.org には以下のような記述が存在する。
Every internal network is identified simply by its name. Once there is more than one active virtual network card with the same internal network ID, the VirtualBox support driver will automatically “wire” the cards and act as a network switch.
(すべての内部ネットワークは、その名前によって識別されます。 同じ内部ネットワークIDを持つアクティブな仮想ネットワークカードが複数存在すると、VirtualBoxサポートドライバはカードを自動的に「配線」し、ネットワークスイッチとして動作します。)
結論を述べると、内部ネットワークの名前が異なる場合、別々の仮想スイッチに接続される。
つまり、下図のようになるということだ。