設定可能なネットワーク
設定可能なネットワークは下記の5種類です。
- NAT(vagrantのデフォルト)
- ホストオンリーアダプタ
- 内部ネットワーク
- ポートフォワーディング
- ブリッジアダプター
NAT
vagrantfileのデフォルト設定です。
NATではホストとは異なるネットワークがVMに割り当てられます。VirtualBoxがルーターの役割をし、ホストとVMをつなぐことでVMからインターネットの接続を可能にします。この設定ではVMごとに独立したネットワークが割り当てられるため、VM同士の通信はできません。
通信可否は下記表になります。
種別 | VM→ホスト | ホスト→VM | VM→外部 | 外部→VM | VM↔VM |
---|---|---|---|---|---|
NAT | ○ | × | ○ | × | × |
※外部はホスト以外のネットワークを指します。 | |||||
※「VM↔VM」は同じネットワーク内の仮想マシン同士の通信を指します。 |
ホストオンリーアダプタ
ホスト↔VM間の通信が可能になります。
また、VMから外部へのアクセスが可能となります。
通信可否は下記表になります。
種別 | VM→ホスト | ホスト→VM | VM→外部 | 外部→VM | VM↔VM |
---|---|---|---|---|---|
ホストオンリーアダプタ | ○ | ○ | ○ | × | × |
Vagrantfileの設定方法
Vagrantfile
# 固定 IP を割り当てる場合
config.vm.network "private_network", ip: "192.168.33.10"
# 動的に IP を割り当てる場合
config.vm.network "private_network", type: "dhcp"
内部ネットワーク
この設定では内部に指定したネットワークが作成されます。
同じ名前の内部ネットワークに所属するVM同士は通信可能となります。
通信可否は下記表になります。
種別 | VM→ホスト | ホスト→VM | VM→外部 | 外部→VM | VM↔VM |
---|---|---|---|---|---|
内部ネットワーク | ○ | × | ○ | × | ○ |
Vagrantfileの設定方法
Vagrantfile
# virtualbox__intnet でネットワーク名を指定
config.vm.network "private_network", ip: "192.168.33.10", virtualbox__intnet: "mynetwork"
ポートフォワーディング
ホストとVMの特定ポートを紐づけ、転送します。
ホスト 80 番ポートとVM 8080 番ポートを紐づけた場合、ホスト 80 番ポートの接続はVM 8080 番ポートへと転送されます。
通信可否は下記表になります。
種別 | VM→ホスト | ホスト→VM | VM→外部 | 外部→VM | VM↔VM |
---|---|---|---|---|---|
ポートフォワーディング | ○ | × | ○ | × | × |
Vagrantfileの設定方法
Vagrantfile
# ホストマシン 80 番ポートへの接続を仮想マシンの 8080 番ポートへ転送する
config.vm.network "forwarded_port", guest: 80, host: 8080
ブリッジアダプター
ホストが所属するネットワークのIPをVMに割り当てます。
外部からVMへの通信が可能となります。
通信可否は下記表になります。
種別 | VM→ホスト | ホスト→VM | VM→外部 | 外部→VM | VM↔VM |
---|---|---|---|---|---|
ブリッジアダプター | ○ | ○ | ○ | ○ | ○ |
Vagrantfileの設定方法
Vagrantfile
# 固定 IP を割り当てる場合
config.vm.network "public_network", ip: "192.168.0.10"
# 動的に IP を割り当てる場合
config.vm.network "public_network"
まとめ
通信可否のまとめ
種別 | VM→ホスト | ホスト→VM | VM→外部 | 外部→VM | VM↔VM |
---|---|---|---|---|---|
NAT | ○ | × | ○ | × | × |
ホストオンリーアダプタ | ○ | ○ | ○ | × | × |
内部ネットワーク | ○ | × | ○ | × | ○ |
ポートフォワーディング | ○ | × | ○ | × | × |
ブリッジアダプター | ○ | ○ | ○ | ○ | ○ |