In order to access the Vagrant environment created, Vagrant exposes some high-level networking options for things such as forwarded ports, connecting to a public network, or creating a private network.
The high-level networking options are meant to define an abstraction that works across multiple providers. This means that you can take your Vagrantfile you used to spin up a VirtualBox machine and you can reasonably expect that Vagrantfile to behave the same with something like VMware.
You should first read the basic usage page and then continue by reading the documentation for a specific networking primitive by following the navigation to the left.
In some cases, these options are too high-level, and you may want to more finely tune and configure the network interfaces of the underlying machine. Most providers expose provider-specific configuration to do this, so please read the documentation for your specific provider to see what options are available.
For beginners: It is strongly recommended you use only the high-level networking options until you are comfortable with the Vagrant workflow and have things working at a basic level. Provider-specific network configuration can very quickly lock you out of your guest machine if improperly done.
There is a NAT available
Vagrant assumes there is an available NAT device on eth0. This ensures that Vagrant always has a way of communicating with the guest machine. It is possible to change this manually (outside of Vagrant), however, this may lead to inconsistent behavior. Providers might have additional assumptions. For example, in VirtualBox, this assumption means that network adapter 1 is a NAT device.