Hyper v настройка сети

Заключительная статья из серии публикаций о Microsoft Hyper-V.

Речь пойдет о том, как виртуальные машины в среде Hyper-V работают с сетевыми интерфейсами. Предыдущие публикации:

  1. Архитектура Microsoft Hyper-V
  2. Microsoft Hyper-V и устройства хранения данных

В контексте Hyper-V, сетевые интерфейсы – это единственный способ взаимодействия виртуальных машин как между собой, так и со «внешним миром». Поэтому необходимо понимать особенности сетевого взаимодействия в среде MS Hyper-V.

Сетевые адаптеры

Как можно увидеть в Hyper-V Manager, есть два типа виртуальных сетевых адаптеров: Network Adapter и Legacy Network Adapter. Отличаются между собой они тем, что первый из них является синтетическим устройством, а второй – эмулируемым. Чем отличаются синтетические устройства от эмулируемых – можно почитать в первой статье, «Архитектура Hyper-V».

Использование синтетических устройств всегда предпочтительнее, и именно поэтому при создании новой виртуальной машины по умолчанию добавляется именно Network Adapter. Использовать Legacy Network Adapter рекомендуется только в двух случаях:

  • Когда гостевая ОС не поддерживает установку компонент интеграции;
  • Когда необходим доступ к сети до загрузки ОС, к примеру – загрузка по PXE для установки ОС с сервера WDS.

Для этого при создании виртуальной машины необходимо убрать галочку «Start virtual machine automatically», а затем, зайдя в конфигурацию виртуальной машины, вручную удалить Network Adapter и добавить Legacy Network Adapter.

Стоит еще упомянуть о назначении MAC-адресов виртуальным адаптерам. Он может назначаться как автоматически при создании виртуальной машины (причем диапазон выдачи MAC-адресов можно изменять в настройках сервера Hyper-V), либо же вручную через конфигурацию виртуальной машины.

Виртуальные

Разумеется, если есть сетевые адаптеры – они должны куда-то подключаться. И для этого в Hyper-V существуют виртуальные сети (Virtual Networks), которые по сути представляют собой самые обычные виртуальные коммутаторы. К каждому виртуальному коммутатору могут присоединяться как сетевые интерфейсы виртуальных машин, так и физические сетевые интерфейсы сервера. Виртуальные сети бывают трех типов, и чтобы проще было их понять – взглянем на схему.

У сервера, изображенного на рисунке выше, имеется два сетевых интерфейса.

Когда хостовая ОС только что была установлена, и интерфейсы сконфигурированы – к каждому из них привзяывается протокол TCP/IP, некоторые другие протоколы и соответственно – назначаются сетевые настройки (IP-адрес, маска подсети, адреса шлюзов и DNS) – статически или динамически.

Виртуальные сети (то есть виртуальные коммутаторы) бывают трех типов: External, Internal и Private.

External – виртуальная сеть, имеющая выход «во внешний мир». При создании сети типа External необходимо указать сетевой интерфейс, через который будет осуществляться выход наружу (Физический адаптер 2). При этом физический интерфейс теряет все сетевые настройки, и создается виртуальный адаптер в хостовой ОС (Виртуальный адаптер 1), к которому привязываются все необходимые протоколы и настройки. Физический же интерфейс остается всего с одним протоколом: Virtual Network Switching Protocol. Кроме этого, в Windows Server 2008 R2 появилась возможность создавать сети типа External, но при этом все равно изолировать их от хостовой ОС. Делается это снятием галочки «Allow management operating system to share this network adapter»:

Внимание: При создании виртуальной сети типа External происходит кратковременный разрыв сетевого соединения, и все настройки переносятся на новый, виртуальный адаптер. Об этом необходимо помнить во-первых, если настройка осуществляется удаленно – соединение может прерваться, и во-вторых – возможно придется заново настраивать Windows Firewall, чтобы привязать правила к новому виртуальному интерфейсу.

Internal – внутренняя виртуальная сеть, к которой могут подключаться только виртуальные интерфейсы – виртуальных машин и хостовой ОС. К физическому интерфейсу сеть типа Internal не привязывается, и, соответственно, выхода «вовне» не имеет.

Private – то же самое, что и Internal, за исключением того, что к такой сети могут подключаться только виртуальные машины. Сеть типа Private не имеет доступа ни к «внешнему миру», ни к хостовой ОС.

Для лучшего понимания – в таблице ниже указано, какие интерфейсы будут подключены к виртуальному коммутатору, а какие – нет при разных настройках:

Работа с VLAN

Hyper-V поддерживает работу с VLAN (IEEE 802.1Q). Для этого в свойствах виртуальных сетевых интерфейсов имеется галочка «Enable VLAN Identification», после активации которой можно ввести VLAN ID.

Предварительно, разумеется, необходимо настроить коммутаторы, чтобы трафик тегировался соответствующими ID, и, разумеется, установить в хостовой ОС драйверы сетевого адаптера с поддержкой необходимых функций.

Более подробно о настройке виртуальных машин для работы с VLAN можно почитать в статье Дмитрия Макарова.

VMQ

Стоит упомянуть о нововведении, которое появилось в Windows Server 2008 R2 – поддержке виртуальных очередей, VMQ. Поддержка VMQ позволяет перенести большую часть затрат на обработку сетевых пакетов, адресованных виртуальным машинам с хостовой ОС на плечи процессора сетевого адаптера. Разумеется, при условии, что сетевой адаптер это поддерживает, и в гостевых ОС установлены компоненты интеграции. Если не используется VMQ, то обработка сетевых пакетов происходит следующим образом:

Распределением трафика по виртуальным машинам и фильтрацией по тегам VLAN, в этом случае, занимается виртуальный коммутатор, действующий в пространстве родительской ОС. При большом количестве виртуальных машин и при больших объемах трафика это может привести к некоторому снижению производительности, так как у процессора сервера есть и другие задачи, помимо обработки сетевых пакетов. Использование VMQ позволяет переложить обработку пакетов на плечи процессора сетевого адаптера:

Сетевой адаптер, поддерживающий VMQ, способен самостоятельно осуществлять необходимую обработку сетевых пакетов, а затем записать данные непосредственно в область памяти соответствующей виртуальной машины. Передача же данных, что с VMQ, что без оной – идет как и обычно: Виртуальный сетевой адаптер – VMBus – Виртуальный коммутатор – Физический сетевой адаптер.

Автор: Александр Косивченко
Оригинал статьи: http://habrahabr.ru/blogs/virtualization/97085/

  • Дата публикации: 23 июня 2010 г. 7:00:56 MSD

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

  • Время чтения: 2 мин
  • Соавторы

Вашей виртуальной машине потребуется виртуальная сеть, чтобы предоставить вашему компьютеру доступ к сети. Создание виртуальной сети— необязательный шаг. Если виртуальную машину не требуется подключать к Интернету или сети, перейдите к шагу создания виртуальной машины Windows.

Подключение виртуальных машин к Интернету

Hyper-V поддерживает три типа виртуальных коммутаторов: внешние, внутренние и частные. Создайте внешний коммутатор, чтобы предоставить доступ к сети вашего компьютера виртуальным машинам, работающим на нем.

В этом упражнении выполняется создание внешнего виртуального коммутатора. После завершения этого шага на узле Hyper-V будет виртуальный коммутатор, который сможет подключать виртуальные машины к Интернету через сетевое подключение вашего компьютера.

Создание виртуального коммутатора с помощью диспетчера Hyper-V

  1. Откройте диспетчер Hyper-V. Чтобы сделать это быстро, нажмите кнопку или клавишу Windows и введите "Hyper-V Manager".
    Если диспетчер Hyper-V найти не удается, это значит, что Hyper-V или средства управления Hyper-V отключены. Инструкции по включению см. в разделе Включение Hyper-V.

  2. Выберите сервер в левой области или нажмите кнопку «Подключиться к серверу…» в правой области.

  3. В диспетчере Hyper-V выберите пункт Диспетчер виртуальных коммутаторов… в меню "Действия" справа.

  4. В разделе "Виртуальные коммутаторы" выберите пункт Создать виртуальный сетевой коммутатор.

  5. В окне "Виртуальный коммутатор какого типа вы хотите создать?" выберите Внешний.

  6. Нажмите кнопку Создать виртуальный коммутатор.

  7. В разделе "Свойства виртуального коммутатора" назначьте ему имя, например Внешний коммутатор виртуальных машин.

  8. В разделе "Тип подключения" убедитесь, что выбрана Внешняя сеть.

  9. Выберите физический сетевой адаптер для связывания с новым виртуальным коммутатором.

    Этот сетевой адаптер физически подключен к сети.

  10. Нажмите кнопку Применить, чтобы создать виртуальный коммутатор. На этом этапе, скорее всего, появится приведенное ниже сообщение.

    Щелкните Да, чтобы продолжить.

  11. Нажмите кнопку ОК, чтобы закрыть окно диспетчера виртуальных коммутаторов.

Создание виртуального коммутатора с помощью PowerShell

Чтобы создать виртуальный коммутатор с внешним подключением с помощью PowerShell:

  1. Используйте команду Get-NetAdapter, чтобы вернуть список сетевых адаптеров, подключенных к системе Windows10.

  2. Выберите сетевой адаптер для использования с коммутатором Hyper-V и разместите экземпляр в переменной $net.

  3. Выполните следующую команду, чтобы создать новый виртуальный коммутатор Hyper-V.

Виртуальная сеть на ноутбуке

Сеть NAT

Механизм преобразования сетевых адресов (NAT) предоставляет виртуальной машине доступ к сети вашего компьютера путем объединения IP-адреса главного компьютера с портом через внутренний виртуальный коммутатор Hyper-V.

У этого механизма есть ряд полезных возможностей.

  1. NAT экономит IP-адреса за счет сопоставления внешнего IP-адреса и порта с гораздо большим набором внутренних IP-адресов.
  2. NAT позволяет нескольким виртуальным машинам размещать приложения, которым требуются одинаковые (внутренние) порты связи, сопоставляя их с уникальными внешними портами.
  3. NAT использует внутренний коммутатор. После создания внутреннего коммутатора вы можете не использовать сетевое подключение. Кроме того, за счет этого снижается нагрузка на сет компьютера.

Чтобы настроить сеть NAT и подключить ее к виртуальной машине, см. Руководство пользователя по созданию сети NAT.

Подход с использованием двух коммутаторов

Если вы используете Hyper-V в Windows 10 на ноутбуке и часто переключаетесь между беспроводной и проводной сетями, вы можете создать виртуальный коммутатор как для сетевой карты Ethernet, так и для карты беспроводной сети. В такой конфигурации можно переключать виртуальные машины между этими коммутаторами в зависимости от типа сетевого подключения ноутбука.

Виртуальные машины не будут автоматически переключаться между проводными и беспроводными сетями.

Следующий шаг— создание виртуальной машины

Создание виртуальной машины Windows

Hyper-V и использование COM/USB в ВМ

От: akasoft  
Дата:  18.01.14 17:45
Оценка:
Есть у меня аппаратный сервер, на котором работает всяко-разное ПО, в свою очередь взаимодействующее с USB-ключами SafeNet Sentinel и с GSM-модемами, подключаемыми по COM и по USB.

Захотелось воспользоваться чудесами виртуализации, и превратить аппаратный сервер в сервер, работающий под управлением бесплатного гипервизора Microsoft Hyper-V, самого распоследнего 2012 R2. Создать там несколько виртуальных машин, разнести по ним мешанину, живущую на аппаратном сервере.

Но надо обеспечить проброс USB и COM портов аппаратного сервера в разные виртуальные машины, в зависимости от ПО, которое будет в них работать. Т.е. задать, что виртуальная машина 1 пользует вот этот порт USB вот с этим воткнутым в него ключом SafeNet, а вирутальная машина 2 пользует вот этот COM порт с воткнутым туда GSM модемом, и т.п.

Если я правильно понял всемирный разум, желаемое под Hyper-V невозможно (ссылка, в комментариях есть вопрос и ответ).

В то же время, для USB есть платные сторонние решения, суть которых в преобразовании USB в TCP/IP, которое передаётся в виртуальные машины, и там как-то обратно воспринимается. Весь вопрос, как поведёт себя моё конкретное ПО и оборудование в этом случае, и будет ли оно таким образом работать. Интересно, для COM портов такие решения есть?

Может, я чего-то пропустил, и всё-таки можно как-то настроить виртуальную машину, чтобы она увидела нужные мне USB/COM устройства аппаратного сервера, на котором она работает? Прошу ткнуть носом.

… << RSDN@Home 1.2.0 alpha 5 rev. 66>> SQL Express 2012

Re: Hyper-V и использование COM/USB в ВМ

От: WPooh  
Дата:  22.01.14 12:17
Оценка: 12 (1)

Здравствуйте, akasoft, Вы писали:

A>Есть у меня аппаратный сервер, на котором работает всяко-разное ПО, в свою очередь взаимодействующее с USB-ключами SafeNet Sentinel и с GSM-модемами, подключаемыми по COM и по USB.

A>Захотелось воспользоваться чудесами виртуализации, и превратить аппаратный сервер в сервер, работающий под управлением бесплатного гипервизора Microsoft Hyper-V, самого распоследнего 2012 R2.

Создать там несколько виртуальных машин, разнести по ним мешанину, живущую на аппаратном сервере.
Бесплатный VMware Player вроде бы умеет это делать (тут) но я сам это не пробовал.
Для RS232 aka COM порт VMware workstation должна работать но я опять-таки не пробовал. В 2009 году VMware Player вроде бы не умел COM порты виртуализировать, может сейчас уже научили — не знаю.

A>Если я правильно понял всемирный разум, желаемое под Hyper-V невозможно (ссылка, в комментариях есть вопрос и ответ).
Я тоже слышал про такое, но может быть добавят когда-нибудь.
A>В то же время, для USB есть платные сторонние решения, суть которых в преобразовании USB в TCP/IP, которое передаётся в виртуальные машины, и там как-то обратно воспринимается.
Вот еще ссылка про примерно то же самое.
A>Весь вопрос, как поведёт себя моё конкретное ПО и оборудование в этом случае, и будет ли оно таким образом работать.
Редко кому надо, на данный момент это специфическая задача, привязка к конкретной железке. Мэйнстрим — абстрагировать виртуалку от конкретной железки, а желательно вообще в облако закинуть машинку. Может оно и тебе не сильно надо? Сильно большая мешанина и мешает нормально работать?

К этому моменту у меня внутри 0.5, 0.7, 0.33 (с) НС

Re: Hyper-V и использование COM/USB в ВМ

От: savitar  
Дата:  22.01.14 13:40
Оценка:

Здравствуйте, akasoft, Вы писали:

A>…

и USB и COM в VMware Player работают.

Re[2]: Hyper-V и использование COM/USB в ВМ

От: akasoft  
Дата:  22.01.14 14:00
Оценка:
Здравствуйте, savitar, Вы писали:

S>и USB и COM в VMware Player работают.

А конкретно ключи Sentinel HASP HL Pro и HL Max?

… << RSDN@Home 1.2.0 alpha 5 rev. 66>>

Re[3]: Hyper-V и использование COM/USB в ВМ

От: savitar  
Дата:  22.01.14 14:42
Оценка:

Здравствуйте, akasoft, Вы писали:

A>А конкретно ключи Sentinel HASP HL Pro и HL Max?
не пользовался, не знаю, но это не уровень VM, она его на уровне USB использует, если это стандартное USB устройство и это устройство работало бы в железном Linux, то будет и в виртуалке работать.

Re: Hyper-V и использование COM/USB в ВМ

Здравствуйте, akasoft, Вы писали:

A>Может, я чего-то пропустил, и всё-таки можно как-то настроить виртуальную машину, чтобы она увидела нужные мне USB/COM устройства аппаратного сервера, на котором она работает? Прошу ткнуть носом.

В новых клиентах это можно сделать (см. view\enhanced session). Но у вас же приложение будет работать в фоне. Т.е. без подсоединенного клиента. В случае COM наверное это можно сделать через пайпы. Не уверен, что пробросит контрольные сигналы. Возм, только данные. По поводу USB, я пользую вот это: http://www.incentivespro.com/products.html. 80$ за маппинг 2 устройств. Мне достаточно.

Пока на собственное сообщение не было ответов, его можно удалить.

Добавить комментарий

Закрыть меню