74 lines
2.4 KiB
Plaintext

---
layout: docs
page_title: Networking - VirtualBox Provider
description: |-
The Vagrant VirtualBox provider supports using the private network as a
VirtualBox internal network. By default, private networks are host-only
networks, because those are the easiest to work with.
---
# Networking
## VirtualBox Host-Only Networks
By default, private networks are [host-only networks](https://www.virtualbox.org/manual/ch06.html#network_hostonly),
because those are the easiest to work with. In VirtualBox, since you can
create multiple host-only networks, it is also possible to specify which
host-only network you want the Vagrant VirtualBox provider to use for
a given interface. To do this, use the `name` argument with the name of
the host-only interface to use.
```ruby
Vagrant.configure("2") do |config|
config.vm.network "private_network", type: "dhcp",
name: "vboxnet3"
end
```
## VirtualBox Internal Network
The Vagrant VirtualBox provider supports using the private network as a
VirtualBox [internal network](https://www.virtualbox.org/manual/ch06.html#network_internal).
By default, private networks are host-only networks, because those are the
easiest to work with. However, internal networks can be enabled as well.
To specify a private network as an internal network for VirtualBox
use the `virtualbox__intnet` option with the network. The `virtualbox__`
(double underscore) prefix tells Vagrant that this option is only for the
VirtualBox provider.
```ruby
Vagrant.configure("2") do |config|
config.vm.network "private_network", ip: "192.168.50.4",
virtualbox__intnet: true
end
```
Additionally, if you want to specify that the VirtualBox provider join
a specific internal network, specify the name of the internal network:
```ruby
Vagrant.configure("2") do |config|
config.vm.network "private_network", ip: "192.168.50.4",
virtualbox__intnet: "mynetwork"
end
```
## VirtualBox NIC Type
You can specify a specific NIC type for the created network interface
by using the `nic_type` parameter. This is not prefixed by `virtualbox__`
for legacy reasons, but is VirtualBox-specific.
This is an advanced option and should only be used if you know what
you are using, since it can cause the network device to not work at all.
Example:
```ruby
Vagrant.configure("2") do |config|
config.vm.network "private_network", ip: "192.168.50.4",
nic_type: "virtio"
end
```