- Настройка локальной сети между компьютером и виртуальной машиной virtualbox
- ssh-доступ к виртуальной машине в virtualbox
- Настройка сети VirtualBox
- Виды сетевых адаптеров VirtualBox
- Настройка сети Virtualbox
- 1. Настройка сети NAT
- 2. Настройка сети NAT
- 3. Настройка адаптера виртуального хоста
- 4. Настройка сетевого моста VirtualBox
- 5. Внутренняя сеть VirtualBox
- Выводы
- Для системного администратора
- Виртуальные машины и сети
- Работа с виртуальными сетями
- Переходим к виртуальным машинам…
- А как же хост?
- Масло масляное, или виртуальная сеть внутри виртуальной сети
- One Comment
Настройка локальной сети между компьютером и виртуальной машиной virtualbox
Настройка локальной сети между компьютером и виртуальной машиной virtualbox является довольно легкой, просто нужно знать некоторые ньюансы, о которых я и расскажу в этой статье.
Первый шаг — настройка сети в virtualbox. Виртуальная машина должна быть выключена. Идем в «Настройки -> Сеть», выбираем неиспользуемый адаптер, включаем его и выбираем тип подключения — «виртуальный адаптер хоста»:
Далее загружаем виртуальную машину и проверяем сеть.
В windows сеть можно проверить командой «ipconfig»:
На ОС Linux из терминала сеть можно проверить так:
В ответ вы должны увидеть работающие сетевые интерфейсы:
По ip можно догадаться, какой интерфейс отвечает за организацию локальной сети между компьютером и виртуальной машиной, по умолчанию (если вы сами не настраивали ip в virtualbox) такой ip должен выглядеть так: 192.168.56.* (вместо * обычно бывает 101 или 102 и т. д.).
Этот ip и нужно использовать для доступа к виртуальной машине.
По умолчанию ip выдается dhcp сервером virtualbox. Для удобства можно задать статический ip адрес в самой виртуальной машине. Например в windows это делается редактированием свойств сети. В интерфейсе linux все аналогично, а вот как это сделать в терминале, без графической оболочки, будет показано ниже, на примере добавления нового сетевого интерфейса в ubuntu server.
В linux бывает, что интерфейс локальной сети между компьютером и виртуальной машиной по умолчанию не задействован, и как следствие, отсутствует локальная сеть. В этом случае необходимо поднять интерфейс локальной сети между компьютером и виртуальной машиной вручную. Далее будет описан процесс задействования сетевого интерфейса в ubuntu server.
Сначала нужно найти название сетевого интерфейса, который нам нужен. В терминале набираем:
В результате вы получите список всех сетевых интерфейсов.
Находим нужный интерфейс, он чаще всего последний. Возможно скорее всего это либо eth1 (для ubuntu server 14.04), либо enp0s8 (для ubuntu server 16.04), все зависит от количества подключенных сетевых адаптеров к виртуальной машине.
Далее редактируем файл /etc/network/interfaces
Файл /etc/network/interfaces для ubuntu server 14.04:
В конец файла добавляем строку (для ip, задаваемого динамически):
Для статического ip:
Вместо eth1 может быть другое название интерфейса, в зависимости от вашей конфигурации.
После этого нужно перезагрузить виртуальную машину и снова набрать команду:
В списке должен появиться интерфейс eth1, или тот, который прописали вы.
Настройка файла /etc/network/interfaces для ubuntu server 16.04:
Здесь интерфейс называется enp0s3 вместо eth0. Согласно данным, полученным командой «ip a», в моем случае в конец файла нужно добавить:
После внесения изменений так же необходимо перезапустить виртуальную машину, либо можно перезапустить только службу networking:
На ubuntu server 14.04 у меня она не всегда перезапускается, просто продолжает работать, с ubuntu 16.04 в этом плане все впорядке, но для полной уверенности я считаю что лучше все таки перезапустить виртуальную машину.
После перезапуска машины и набора в терминале команды ifconfig в полученном списке сетевых интерфейсов должен появится интерфейс enp0s8.
Что делать, если сетевой интерфейс так и не заработал?
Тут два основных варианта: либо вы указали неправильный интерфейс в файле /etc/network/interfaces — в таком случае еще раз внимательно посмотрите список всех доступных сетевых интерфейсов командой «ip a» и выберите нужный. Либо виртуальная ОС вообще не видит сетевой адаптер. В этом случае скорее всего в ОС нет подходящих драйверов для этого адаптера. Эту проблему можно решить сменой типа адаптера, например на «паравиртуальная сеть (virtio-net)»:
Можете поэксперементировать с типом адаптера для достижения нужного результата.
ssh-доступ к виртуальной машине в virtualbox
После успешной настройки локальной сети между компьютером и виртуальной машиной можно к ней подключиться, например по ssh. Для этого набираем ip адрес, про который я писал вначале статьи, в ssh клиенте и радуемся успешному подключению)
Настройка сети VirtualBox
Виртуальные машины VirtualBox очень часто используются для тестирования различного программного обеспечения и его взаимодействия между собой. Обычно, таким программам необходим доступ к интернету. Время от времени возникает необходимость протестировать работу программ по сети или даже создать небольшую тестовую лабораторию из виртуальных машин.
В этой инструкции мы рассмотрим как выполняется настройка сети VirtualBox различными способами. Вы узнаете как объединить машины в одну локальную сеть, как дать им доступ к интернету и как связать их с основной системой. Но сначала поговорим о том, как может работать сеть.
Виды сетевых адаптеров VirtualBox
Существует несколько способов как настроить сеть в virtualbox, и каждый из них подходит для лучше для решения одной задачи и меньше для другой. Рассмотрим основные:
- NAT — этот способ используется по умолчанию. Для каждой машины создается отдельная внутренняя локальная сеть, в которой машина получает ip 10.10.0.1. Машина может связаться с интернетом, используя технологию NAT, и вы можете обратиться к машине, используя проброс портов VirtualBox, но если у вас будет две виртуальные машины, то вы уже не сможете между ними так взаимодействовать. И если из основной системы к гостевой можно обратиться, то к основной ни гостевой уже никак не получится;
- Виртуальный адаптер хоста — создается виртуальный сетевой адаптер, к которому можно подключить несколько виртуальных машин, тем самым объединив их в локальную сеть. Доступа к интернету нет, но зато машины находятся в одной сети и каждая имеет свой ip адрес, теперь они могут взаимодействовать между собой. Основная система тоже доступна по ip 192.168.56.1. Машины доступны не только между собой, но и из основной системы;
- Сетевой мост — при таком подключении виртуальная машина становится полноценным членом локальной сети, к которой подключена основная система. Машина использует сетевой интерфейс чтобы получить адрес у роутера и становится доступна для других устройств, как и основной компьютер по своему ip адресу.
- Внутренняя сеть — почти то же самое, что и виртуальный адаптер хоста, только без возможности доступа к виртуальной сети из основной системы, доступа к интернету нет.
- Универсальный драйвер — позволяет использовать драйвер из расширений VirtualBox для связи между машинами, расположенными на разных физических хостах.
Теперь рассмотрим каждый вариант настройки более подробно.
Настройка сети Virtualbox
1. Настройка сети NAT
Здесь почти нет о чем говорить. Получение доступа к сети через NAT включено по умолчанию. Проброс портов я рассматривал в отдельной статье. Но если вы раньше отключали сетевые адаптеры, то чтобы включить NAT обратно достаточно открыть настройки нужной машины:
Перейти на вкладку «Сеть»:
Выбрать один из адаптеров. К виртуальной машине можно подключить несколько адаптеров и это очень удобно, так как вы можете комбинировать вместе адаптер виртуального хоста и NAT чтобы получить преимущества обоих режимов. Дальше вам нужно выбрать пункт «NAT» в списке «Тип подключения».
На вкладке «Дополнительно» вы можете настроить марку устройства адаптера и MAC адрес:
Если вы собираетесь устанавливать туда в Windows, то лучше будет работать Intel PRO/1000 MT Desktop, а для Linux можно оставить AMD PCNet FAST III, так как он поддерживается всеми операционными системами.
2. Настройка сети NAT
В версии Virtualbox, начиная с 4.3 была добавлена поддержка сетей NAT, это работает очень похоже на виртуальный адаптер хоста, все машины, подключенные к одной сети могут получить доступ друг к другу, а доступ в интернет выполняется через NAT, но основная система доступа к гостевым не имеет. Чтобы настроить такое подключение нужно сначала создать сеть NAT. Для этого откройте «Файл» -> «Настройки», «Сеть». Здесь перейдите на вкладку «Сети NAT». Дальше нажмите кнопку с зеленым плюсом, чтобы создать новую сеть:
Нажмите «Ok» и закройте это окно. Дальше откройте настройки для виртуальной машины, перейдите на вкладку «Сеть» -> «Адаптер 1»:
Выберите «Тип подключения» — «Сеть NAT», а «Имя» — только что созданную сеть.
Теперь все машины, подключенные к этой сети, будут доступны друг другу, как в VMWare.
3. Настройка адаптера виртуального хоста
Теперь задача немного интереснее — нам нужна локальная сеть virtualbox между несколькими виртуальными машинами и хостом. Для того чтобы все это заработало в Linux, нам нужно чтобы были загружены модули ядра vboxnetadp и vboxnetflt:
lsmod | grep vbox
Возможно, для их правильной работы вам придется установить пакет net-tools. Дальше нужно создать сам виртуальный адаптер. Для этого откройте меню «Файл», затем «Настройки» -> «Сеть». Затем нажмите кнопку с зеленым значком плюс, а затем «Ok», все параметры можно оставить по умолчанию. В VirtualBox 5.2 и выше интерфейс был изменен. Теперь вам нужно открыть меню «Инструменты» -> «Менеджер сетей хоста»:
Нажмите кнопку «Создать», затем, в появившемся адаптере, напротив пункта DHCP установите галочку «Включен».
Теперь вернитесь к списку виртуальных машин, зайдите в настройки машины, «Сеть»:
Выберите «Тип подключения» — «Виртуальный адаптер хоста», а имя vboxnet0, тот, который вы создали раньше.
Для всех машин, которые вы хотите объединить в одну сеть нужно выбирать один и тот же адаптер хоста. Если вы захотите добавить машинам также доступ в интернет, просто перейдите на вкладку «Адаптер 2», включите его и настройте NAT, как описано в первом пункте.
4. Настройка сетевого моста VirtualBox
Режим сетевого моста позволяет виртуальной машине выступать в роли реального сетевого устройства с отдельным ip адресом. Чтобы это настроить откройте это же меню — настойки виртуальной машины, затем «Сеть». Здесь выберите «Тип подключения» — «Сетевой мост»:
В поле «Имя» вам необходимо выбрать сетевой интерфейс, который будет использоваться для связи с внешним миром. Минус такого способа в том, что внешние компьютеры смогут получить доступ к виртуальной машине, а это не очень хорошо с точки зрения безопасности.
5. Внутренняя сеть VirtualBox
Режим внутренняя сеть Virtualbox похож на «Виртуальный адаптер хоста», за тем лишь исключением, что из хостовой системы доступа к гостевым не будет, и настроить все немного проще. Достаточно выбрать «Тип подключения» — «внутренняя сеть», а затем просто выбрать нужную сеть в поле «Имя», или создать новую, просто изменив имя текущей.
Как видите, существует тип подключения NAT — где только интернет, Мост — где машина становится членом внешней сети, а все остальные — это настройка виртуальной сети virtualbox, где машины могут видеть друг друга.
Выводы
В этой небольшой статье мы рассмотрели как выполняется настройка сети VirtualBox, как видите, это не так уж сложно, как может показаться на первый взгляд, несмотря на операционную систему, которую вы используете. В большинстве случаев достаточно сети NAT, но иногда может понадобиться виртуальный адаптер хоста, все же остальные режимы используются намного реже.
Для системного администратора
Виртуальные машины и сети
Для грамотного управления виртуальной инфраструктурой необходимо иметь представление о том, как организуется сетевое взаимодействие виртуальных машин между собой, с хостовой ОС (parent partition в терминологии MS), и с самой локальной сетью. В этой статье я постараюсь объяснить в меру своих возможностей тонкости работы виртуальных машин с сетью. Тем, кто уже работал с другими платформами виртуализации (VMWare, Virtual Server, etc.) все, о чем я буду писать, скорее всего, уже известно, тем не менее, на уровне терминологии вполне возможны некие различия.
Работа с виртуальными сетями
Все сетевое взаимодействие в среде Microsoft Hyper-V осуществляется через виртуальные сети (Virtual Networks). Де-факто виртуальная сеть — это виртуальный коммутатор, работающий на 2м уровне модели OSI. К этому виртуальному коммутатору в дальнейшем могут подсоединяться сетевые адаптеры: как виртуальные, так и физические. Тем не менее, надо отметить, что взаимодействовать между собой виртуальные сети не могут. Для такого взаимодействия необходимо некое внешнее устройство. Я все же надеюсь, что в одной из следующих версий появятся полноценные виртуальные сети с виртуальными коммутаторами — например такие, как в VMWare ESX.
В Hyper-V существует три типа виртуальных сетей:
- External — эта виртуальная сеть имеет выход «наружу». Это означает, что к виртуальному коммутатору будет подключен порт физического сетевого адаптера, и виртуальные машины, подключенные к сети смогут работать с сетью точно так же, как обычные физические машины, подключенные к сети.
- Internal — внутренняя сеть. Виртуальные машины, подключенные к такой сети, могут взаимодействовать только между собой и с хостовой ОС. Во «внешний мир» они выходить не смогут.
- Private — «еще более внутренняя сеть». Виртуальные машины могут взаимодействовать только между собой, к хостовой ОС и к общей сети доступа нет.
Создание новых виртуальных сетей, а так же изменение параметров уже созданных осуществляется через Virtual Network Manager (в правой колонке консоли Hyper-V Manager). Чтобы создать новую сеть — нужно выбрать New virtual network, затем выбрать тип сети и нажать Add.
Окно Virtual Network Manager
После нажатия Add в списке виртуальных сетей появляется новая, с дефолтным именем «New Virtual Network». Выбрав ее, можно задать новое имя сети (рекомендуется давать понятные имена — например External, Internal и т.д.). Здесь же можно поменять тип сети на другой или включить идентификацию VLAN (подробнее о VLAN — далее). Если выбран тип сети External — то здесь же можно выбрать физический сетевой адаптер, к которому эта сеть будет подсоединена. Это может быть важно, если сервер имеет несколько физических сетевых адаптеров.
Переходим к виртуальным машинам…
Логично, что для того, чтобы работать с сетью, виртуальная машина должна иметь как минимум один виртуальный сетевой адаптер. Все создаваемые виртуальные машины по умолчанию комплектуются одним сетевым адаптером. При создании виртуальной машины можно выбрать, к какой из созданных виртуальных сетей он будет подключен. Если виртуальная машина должна иметь несколько сетевых адаптеров — их необходимо добавить вручную в свойствах виртуальной машины. Разумеется, виртуальная машина должна быть в выключенном состоянии (Off), чтобы иметь возможность добавления новых «виртуальных железок». В Hyper-V есть два типа сетевых адаптеров: Network Adapter и Legacy Network Adapter. Network Adapter — работает на скорости 1Гбит/с, и требует для своей работы установленных Integration Services. Legacy Network Adapter эмулирует работу 100Мбит/с сетевого адаптера Intel 21140-based PCI Fast Ethernet Adapter. Рекомендуется использовать Network Adapter, так как он работает намного быстрее. Использовать Legacy Network Adapter имеет смысл в двух случаях:
- Если версия ОС, установленная на виртуальной машине, не позволяет установить Integration Services.
- Если на виртуальной машине будет использоваться удаленная загрузка ОС (к примеру — установка Windows c сервера RIS/WDS).
У любого виртуального сетевого адаптера, независимо от его типа, есть некотрые настройки.
Свойства виртуального сетевого адаптера
Самое, пожалуй, главное здесь — выбор виртуальной сети, к которой наш адаптер будет подключен. Так же здесь можно задать адаптеру определенный MAC-адрес (мне еще ни разу не пригодилось) и присвоить адаптеру определенный VLAN ID.
А как же хост?
Как уже писалось, в некоторых случаях виртуальные сети могут взаимодействовать так же и с хостовой ОС, установленной на физическом сервере. Как это происходит? Очень просто. Допустим, у нас создана одна виртуальная сеть типа External (Ext), одна — типа Internal (Int), и одна — типа Private (Pvt). Заглянем в управление сетевыми адаптерами (Control Panel — Network and Sharing Center — Manage Network Connections).
Сетевые адаптеры на хосте
В нашем случае — у сервера появилось три сетевых адаптера. Слева — направо:
- «Железный» сетевой адаптер, установленный в сервер. Играет исключительно роль «моста» между гипервизором и сетью, если открыть его свойства — все протоколы 3го уровня и выше на нем отключены, включен только Microsoft Virtual Network Switching Protocol (думаю, понятно и без перевода).
- Виртуальный адаптер для External-сети (именно на нем прописаны IP-адрес, под которым наш сервер присутствует в сети, DNS, etc.). Взаимодействует хостовая ОС с сетью именно через этот виртуальный адаптер, и уже с него пакеты переправляются в сеть через физический адаптер.
- Виртуальный адаптер для Internal-сети. Используется для связи виртуальной сети и хостовой ОС, с физическими сетевыми адаптерами не связан.
Для виртуальной сети типа Private никакие виртуальные сетевые адаптеры, естественно, не создаются. В Private-сети виртуальные машины взаимодействуют исключительно между собой.
Недавно понадобилось накрутить счетчики посещений на одном из сайтов в определенный период. Я решил не морочиться, и просто прикупил дешевый трафик. Стоимость клика просто смехотворна.
Масло масляное, или виртуальная сеть внутри виртуальной сети
Аббревиатура VLAN расшифровывается как Virtual Local Area Network. К сожалению, понятие «виртуальная сеть» мы уже использовали, так что прошу не путать «виртуальную сеть» и VLAN. Итак, что же такое VLAN? VLAN — это расширение 2 уровня OSI, заключающееся в пометке пакетов специальным номером (VLAN ID). Каждому сетевому адаптеру, входящему в VLAN, присваивается одинаковый VLAN ID. Адаптер, отправляющий пакет, помечает его своим VLAN ID. Коммутаторы (виртуальные сети, и физические коммутаторы, поддерживающие VLAN) хранят таблицу соответствия МАС-адресов сетевых адаптеров и VLAN ID, и благодаря этому к адаптерам, имеющим VLAN ID, попадают только те пакеты, которые помечены соответствующим номером, то есть, даже будучи подключенными к одному и тому же коммутатору, сетевые адаптеры могут быть разнесены по разным VLANам и таким образом находится в разных широковещательных доменах. То есть фактически — это «сеть внутри сети». В нашем случае получается еще смешнее: виртуальная сеть внутри виртуальной сети.
Проиллюстрировать принцип работы VLANов можно следующей картинкой:
Иллюстрация работы VLAN’ов
На рисунке мы видим 3 виртуальные машины внутри одного хоста. Физически они соединены с одним виртуальным коммутатором. Тем не мене, логически — только адаптеры внутри одного VLAN могут обмениваться пакетами друг с другом.
Разное
Гребаный Яндекс ввел новый алгоритм ранжирования, который явно недоработанный и слабый, и пока во всю тестируется на нас с вами.
Отличные деревянные бытовки для рабочих. Лучшие цены, лучшее качество – строительная компания “Строй Маркет”
Этот пост April 18, 2009 at 3:55 pm опубликовал molse в категории Виртуализация, Продукты Microsoft. Желающие могут оформить RSS подписку на комменты. Both comments and trackbacks are currently closed.
One Comment
Здраствуйте, интересует вопрос – можно ли в среде hyper-v поставить несколько гостевых ОС так, чтобы между ними была локальная сеть с адресами из диапазона, в котором находится сам сервер с hyper-v. И чтоб при этом каждая из гостевых ОС могла заходить на расшаренные ресурсы других гостевых ОС этого же hyper-v, на расшаренные ресурсы локальной сети в которой находится сервер. И можно ли этим гостевым ОС разрешить удаленный доступ каждой в отдельности а не целиком серверу с hyper-v? проще говоря, можно ли в рамках hyper-v настроить полноценную локальную сеть?