Создание и настройка виртуальных коммутаторов Hyper V


02 сентября 2019


Создание и настройка виртуальных коммутаторов Hyper V

Virtual switch или коммутаторы Hyper V нужны для работы сети в виртуальных машинах. На примерах мы рассмотрим как создавать и настраивать эти коммутаторы.

Коммутатор или switch - это оборудование канального уровня или Layer 2 в модели OSI. То есть у коммутатора нет IP, но имеет MAC. Такое оборудование помогает устанавливать связь между хостами.

Первое что нужно понять, что в Hyper V есть три типа свитчей:

  • Внешний (External) - виртуальные хосты подключенные к этому свитчу могут общаться с машинами вне хоста Hyper V, выходить в интернет и общаться с другими виртуальными машинами на этом хосте.
  • Внутренний (Internal) - виртуальные машины с этим свитчем не могут выходить в интернет, но им доступен хост Hyper V и другие виртуалки с этим адаптером.
  • Частный (Private) - виртуалки с этим свитчем не могут выходить в интернет и обращаться к хосту Hyper V. Виртуальные хосты под этим свитчем общаются только между собой.

hyper v коммутатор

По сути мы создаем внешний виртуальный коммутатор Hyper V чаще всего, он имеет и доступ к внешнему DNS и DHCP. Если мы захотим протестировать DHCP сервер, например, отличным кандидатов будет приватный свитч.

Для создания первого свитча нужно нажать следующие кнопки:

hyper v виртуальный коммутатор

В новом окне у нас появится выбор выше описанных свитчей с кнопкой создания.

Hyper V не создает коммутаторов по умолчанию. Если в диспетчере виртуальных коммутаторов вы видите имя default switch , то скорее всего кто-то поленился написать название.

Можно выбрать любой, так как на следующем шаге этот выбор останется. Нажимаем кнопку 3:

настройка коммутатора hyper v

На следующем окне мы можем установить название свитча(1) и выбрать область его работы (2) и установить, если есть, идентификатор VLAN (3). Идентификаторы VLAN могут иметь свитчи кроме приватного.

Если на количество приватных и внутренних свитчей ограничений нет, то на внешний есть. Внешний свитч может создаваться один на каждый физический адаптер. Кроме этого внешний Hyper V виртуальный коммутатор имеет две дополнительные настройки:

  • Разрешить управляющей операционной системе предоставлять общий доступ к этому сетевому адаптеру (Allow management OS to share this network adapter) - хост с ролью Hyper V перестанет использовать этот сетевой адаптер. Его смогут использовать только виртуалки. Рекомендации любого вендора иметь отдельный адаптер для хоста виртуализации и отдельный для виртуальных машин. 
  • Виртуализация ввода-вывода с единым корнем (Enable Single Root I/O Virtualization SR-IOV) - по сути эта технология позволяет миновать лишний расход ресурсов и направлять трафик с адаптера в виртуальную машину. Работа SR-IOV возможна с Windows Server 2012 и на виртуальных машинах с Windows Server 2012 и 8, при наличии физической поддержки со стороны сетевого адаптера, BIOS и процессора. Такая опция может быть включена только при создании свитча, но не после.

настройка виртуального коммутатора hyper v

Если вы выбрали внешний коммутатор, у вас единственный адаптер и включена опция "Allow management OS to share this network adapter", то вы можете обратить внимание что на хосте Hyper V у вас два адаптера в "Сетевые подключения". Один физический, работающий на канальном уровне, а другой, новый, через который работает хост Hyper V.

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

Подключение сетевого адаптера Hyper V

Либо у существующей виртуальной машины. Начиная с Windows Server 2016 адаптеры можно добавлять на работающую машину. Для того что бы это сделать нужно зайти в свойства машины:

Hyper V свойства виртуальной машины

Затем добавить сетевой адаптер:

Добавление адаптера Hyper V

Затем выбрать новый адаптер и подключить к настроенному коммутатору Hyper V:

Подключение к коммутатору сетевой адаптер Hyper V

После этого у хостов появится подключение.

 

Создание виртуальных коммутаторов Hyper V в Powershell

Для создания свитчей в Powershell у нас есть команда New-VMSwitch. Так как в этой команде доступен ключ ComputerName мы можем выполнять эту операцию удаленно. Командой ниже я создам приватный свитч:

New-VMSwitch -Name 'Private Hyper V Switch' -SwitchType Private -ComputerName 'AD1'

В SwitchType мы можем указать коммутаторы описанные выше:

  • External
  • Internal 
  • Private

Так как внешний свитч не создается без физического адаптера мы должны получить его имя:

Get-NetAdapter

А затем создать свитч:

New-VMSwitch -ComputerName 'AD1' -Name 'Ext Test' -EnableIov $true -Notes 'For testing' -AllowManagementOS $true -NetAdapterName 'Ethernet0'

New-VMSwitch создание коммутатора External

Где:

  • Notes - описание коммутатора. Не обязательно заполнять.
  • AllowManagementOS - опция описанная выше. Позволяет пользоваться коммутатором хосту Hyper V.
  • EnableIov - включает SR-IOV

Есть дополнительные ключи, но они не часть этой темы:

  • EnableEmbeddedTeaming - нужен для создания Switch Embedded Teaming
  • EnablePacketDirect - нужна физическая поддержка. Позволяет ускорять работу адаптеров.
  • MinimumBandwidthMode - минимальная пропускная способность коммутатора.

Теперь добавим адаптер к виртуальной машине. Список всех виртуальных машин можно получить так:

Get-VM

Для добавления нам нужно указать имя свитча и машины:

Add-VMNetworkAdapter -SwitchName 'Ext Test' -VMName 'CentOS'

 

...

Теги: #hyper-v


Популярные тэги
О блоге
Этот блог представляет собой конспекты выученного материала, преобретенного опыта и лучшие практики в системном администрировании и программировании.