Как Vagrant создает частную сеть?
Что делает Vagrant за кулисами на хост и гостевой компьютер, когда он настраивает частную сеть с фиксированным IP (http://docs.vagrantup.com/v2/networking/private_network.html)?
Vagrant.configure("2") do |config|
config.vm.network "private_network", ip: "192.168.50.4"
end
Ответы
Ответ 1
На принимающей стороне Vagrant ничего не делает. Насколько я знаю, Vagrant никогда не касается конфигурации сети хоста.
На гостевой стороне текущий поставщик реализует логику конфигурации сети. Вот что делает провайдер VirtualBox:
https://github.com/mitchellh/vagrant/blob/master/plugins/providers/virtualbox/action/network.rb
В основном реализация состоит из двух последовательных шагов:
- Включите все необходимые сетевые адаптеры на виртуальной машине, используя команды гипервизора;
- Сконфигурируйте IP-адрес в гостевой ОС, используя гостевые возможности, в этом случае возможность
configure_networks
.
В качестве примера здесь является реализация для configure_networks
возможности на Debian на базе Linux.
Ответ 2
В Vagrant 1.0.x он называется Сеть только для хостов, это функция VirtualBox, которая позволяет нескольким виртуальным машинам взаимодействовать друг с другом через сети через хост-машину. Сеть, созданная сетью только для хоста, является частной для задействованных виртуальных машин и главной машины. Внешний мир не может присоединиться к этой сети.
За сценой VirtualBox создает новый виртуальный интерфейс ( "loopback" ) на хосте, который появляется рядом с существующими сетевыми интерфейсами.
VirtualBox даже предоставляет встроенный DHCP-сервер для сети только для хоста (Private Networking), если статические IP-адреса не назначены. Его можно настроить в меню "Параметры файла - Сеть".
Смотрите еще at = >