headermask image

Виртуальные машины и сети

 Данная статья написана Александром Косивченко на сайте ITband.ru

Для грамотного управления виртуальной инфраструктурой необходимо иметь представление о том, как организуется сетевое взаимодействие виртуальных машин между собой, с хостовой ОС (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.

vn-1.png

Окно 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).

У любого виртуального сетевого адаптера, независимо от его типа, есть некотрые настройки.

vn-2.png

Свойства виртуального сетевого адаптера

Самое, пожалуй, главное здесь — выбор виртуальной сети, к которой наш адаптер будет подключен. Так же здесь можно задать адаптеру определенный MAC-адрес (мне еще ни разу не пригодилось) и присвоить адаптеру определенный VLAN ID.

А как же хост?

Как уже писалось, в некоторых случаях виртуальные сети могут взаимодействовать так же и с хостовой ОС, установленной на физическом сервере. Как это происходит? Очень просто. Допустим, у нас создана одна виртуальная сеть типа External (Ext), одна — типа Internal (Int), и одна — типа Private (Pvt). Заглянем в управление сетевыми адаптерами (Control Panel — Network and  Sharing Center — Manage Network Connections).

vn-3.png

Сетевые адаптеры на хосте

В нашем случае — у сервера появилось три сетевых адаптера. Слева — направо:

  • «Железный» сетевой адаптер, установленный в сервер. Играет исключительно роль «моста» между гипервизором и сетью, если открыть его свойства — все протоколы 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ов можно следующей картинкой:

vn-4.png

Иллюстрация работы VLAN’ов

На рисунке мы видим 3 виртуальные машины внутри одного хоста. Физически они соединены с одним виртуальным коммутатором. Тем не мене, логически — только адаптеры внутри одного VLAN могут обмениваться пакетами друг с другом.

Автор: Косивченко Александр

Разное

Гребаный Яндекс ввел новый алгоритм ранжирования, который явно недоработанный и слабый, и пока во всю тестируется на нас с вами.

Отличные деревянные бытовки для рабочих. Лучшие цены, лучшее качество – строительная компания “Строй Маркет”

Print This Post Print This Post
Похожие посты
  • Как поменять SID и имя клонированной виртуальной машины
  • Как расширить диск виртуальной машины VMware ESX Server без остановки или перезагрузки гостевой системы
  • Ошибка 0x8004FE2F при активации Windows в сети защищенной Forefront TMG 2010
  • Архитектура управления Exchange 2010 – использование одной машины для управления несколькими организациями Exchange 2010, часть 3
  • Архитектура управления Exchange 2010 – использование одной машины для управления несколькими организациями Exchange 2010, часть 2
  • Iperf – утилита для тестирования пропускной способности сети.
  • Три провайдера и сервера внутри сети
  • Архитектура управления Exchange 2010 – использование одной машины для управления несколькими организациями Exchange 2010, часть 1
  • Загрузка по сети
  • Обознался MAC-адресом!
  • One Comment

    1. Здраствуйте, интересует вопрос – можно ли в среде hyper-v поставить несколько гостевых ОС так, чтобы между ними была локальная сеть с адресами из диапазона, в котором находится сам сервер с hyper-v. И чтоб при этом каждая из гостевых ОС могла заходить на расшаренные ресурсы других гостевых ОС этого же hyper-v, на расшаренные ресурсы локальной сети в которой находится сервер. И можно ли этим гостевым ОС разрешить удаленный доступ каждой в отдельности а не целиком серверу с hyper-v? проще говоря, можно ли в рамках hyper-v настроить полноценную локальную сеть?

      1. александр on May 5th, 2010 at 9:57 am