サマリ
VirtualBoxで2つ以上のゲストOS同士(今回はCentOS7)で疎通をとれるように設定を行いました。
背景
基本的に勉強や遊びではVirtualBoxでやることが多いのですが、ゲストOS間でPing打ったり、通信を行いたいときに設定方法がいまいちわかっていなかったので今回対応することにしました。
ゴール
VirtualBoxで作成した二つのゲストOS(CentOS7)でPingが通るようにする。
対象読者
- 自分自身(備忘のため)
- VirtualBox初心者の方
前提
- VirtualBoxのインストールが完了している
- ゲストOSのインストールが完了している
- 基本的なコマンドラインの操作が可能
環境
- ホストOS:Window10 Home
- VirtualBox:バージョン6.1.14 r140239(Qt5.6.2)
- VirtualBox内のCentOS:CentOS7
手順
基本的には二つの記事を参考にさせていただきました。
ありがとうございました。
考え方としては、
デフォルトだとNAT設定になっており、ゲストOS-インターネットのみ通信可能でゲストOS同士やゲストOS-ホストOSでの通信は不可の状態になっているため、
内部ネットワーク用の設定を行い、各ゲストに固定IPを振ります。
(理解が不十分なのでざっくりイメージですが…)
大きな流れは以下です。
- VirtualBox側で各ゲストに内部ネットワーク用のアダプターを作成する。
- それぞれのゲストで内部ネットワーク用のNICを作成、固定IPを振る(固定出なくていいのかもしれませんが今回はただPingをうつだけでなく、別用途での通信も考えており固定にしました。)
VirtualBoxの設定
まずは上記の記事を参考に、VirtualBoxの設定を行います。
①対象となるゲストOSを選択します。
②「設定」ボタンをクリックします。
①「ネットワーク」をクリックする
②「アダプター2」をクリックする
③「ネットワークアダプターを有効化」にチェックして、「割り当て」に「内部ネットワーク」を選択する
④「OK」ボタンをクリックする
ここで地味に忘れがちなのが、対象のゲストOSの電源を落とすことです。
電源を落としておかないとアダプター2が選択できませんのでご注意ください。
ゲストOS内の設定
まずは、以下の通りコマンドを打ち設定ファイル/etc/sysconfig/network-scripts/ifcfg-enp0s8
を作成します。
# nmcli connection add type ethernet con-name enp0s8 ifname enp0s8
調べたサイトによってはテキストエディタで直接設定ファイルを作成する内容のものもありました。
試しにやってみましたが、設定内容が不適切だったのかうまく疎通が取れなかったので、このやり方がシンプルでいいかと思いました。
続いて、IPアドレスを設定します。
# nmcli connection modify enp0s9 ipv4.method manual ipv4.addresses xxx.xxx.xxx.xxx/xx
最後に、ネットワーク設定を有効にします。
# systemctl restart network.service
これをもう1ゲストでも行います。
結果
学び
- NAT用の設定と内部ネットワーク用の設定は共存できる(あたまり前ですかね)
- 固定IP設定もnmcliコマンドでできる
まとめ
- なんだかんだで長らく(1年近く)対処しないまま来ていたので(おい)、改めて今回対処できてよかったです。
- まだPingが通っただけなので、L7レベルでの疎通まで通るのかはなんとも言えないですが、問題が出た際はまた対処・記事にしたいと思います。
- nmcliコマンドもそうですし、まだVirtualBox自体やネットワークの理解も浅いため、今後もいろいろ触りながら勉強していきたいです。
参考
nmcli関連のコマンドはこちらを参考にさせていただきました。
VirtualBoxののネットワーク設定周りはこちらの記事が非常にイメージつかみやすかったです。