Работа с сетью в Hyper-V


Поговорим о том, как Hyper-V работает с сетью. Что это означает для основной ОС, расположенной в parent partition, и для виртуальных машин, расположенных в child partitions?


Начнем с того, что Hyper-V работает с сетью совсем не так, как это было в Virtual Server 2005 или Virtual PC.


Для начала посмотрим, что мы имеем после установки Windows Server 2008 на системе с одним сетевым интерфейсом. В Network Connections мы увидим следующую картину:



И ваша ОС работает следующим образом:



Однако, как только вы установите роль Hyper-V и создадите виртуальную сеть (virtual network), ваша ОС начнет работать следующим образом:



Как вы видите, parent partition теперь использует виртуальный сетевой интерфейс для того, чтобы соединяться с физической сетью. Если вы теперь посмотрите в Network Connections — то увидите, что к физическому сетевому интерфейсу добавился виртуальный:



К изначальному физическому сетевому интерфейсу не привязано никаких служб, провайдеров или протоколов — кроме Microsoft Virtual Network Switch Protocol. А все остальные протоколы и службы теперь привязаны к виртуальному сетевому интерфейсу.


Стоит отметить несколько моментов:



  • Виртуальный сетевой интерфейс, который появился в Network Connections, получил точно такое же имя, как привязанный к нему virtual switch.

  • В Hyper-V вы можете создать внутреннюю (Internal) виртуальную сеть, которая добавит виртуальный сетевой интерфейс в parent partition, но не создаст привязки к какому-либо физическому сетевому интерфейсу.

  • В отличии от Virtual Server, Hyper-V жестко привязывает виртуальный сетевой интерфейс к соответствующему физическому интерфейсу при создании Virtual network switch. Это имеет свои плюсы и минусы. Преимущество такого подхода — в том, что те физические интерфейсы, которые не используются с Hyper-V, остаются не затронуты никоим образом. Так что снимаются любые вопросы производительности или совместимости. (Очевидно, что даже если ни одна виртуальная машина не использует некий виртуальный интерфейс, который привязан к соответствующему физическому интерфейсу, производительность канала между parent partition и физической сетью немного падает за счет появления дополнительного шага между используемыми виртуальным и физическим интерфейсами). Недостаток описанного подхода — в том, что при создании или удалении virtual network switch в Hyper-V связь на физическом интерфейсе временно пропадает, так как заново выполняется привязка всех протоколов и служб.

В заключение хотелось бы дать несколько советов относительно настроек сети для виртуализации.



  • Для любой системы с Hyper-V рекомендуется иметь минимум два физических интерфейса! Использование лаптопов с одним интерфейсом допускается, но рекомендуется лишь для демонстрационных целей.

  • Всегда выделяйте один физический интерфейс для управления ОС. К такому management interface не привязываются виртуальные интерфейсы. Он используется лишь для удаленной работы с parent partition.

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

  • Если ваши виртуальные машины используют внешнее хранилище по протоколу iSCSI — используйте и для этой цели выделенный интерфейс (или несколько).

  • Подключайте Management interface исключительно в локальную сеть. В идеале, соединение с Интернетом должно быть доступно только виртуальным машинам.

Если эта тема окажется интересна, я готов написать отдельную статью с различными сценариями настройки и использования сетевых интерфейсов в разных конфигурациях. Отдельную — чтобы не перегружать эту чисто теоретическую статью рассуждениями и рекомендациями из практики. Жду ваших комментариев!

Comments (35)

  1. Alex A says:

    Жить должна но:

    1) Microsoft никогда и ни в каких конфигурациях не поддерживает тиминг. Ни на физических хостах, ни на виртуальных. Все вопросы к вендору

    2) Обновите до актуальной версии драйверы Broadcom и BAPC – утилиту тиминга.

  2. Alex A says:

    Для запущенной ВМ, азумеется нельзя.

    Никакого взаимодействия кроме как по сети.

    Если вы выключите ВМ, можете подмонтировать VHD диск, открыть редактором реестра куст с SYSTEM из виртуальной машины и поменять настройки IP.

    В любом случае, есть возможность сделать это и без мучений, – запустите в неактивированной ВМ браузер, как будто вам нужно купить номер через интернет, в адресной строке бразуера запустите C:windowsexplorer.exe, будет десктоп, настройте адрес. У вас на это будет чуть более минуты до того, как процесс Explorer будет закрыт механизмом защиты ОС. На настройку IP хватит.

  3. Anonymous says:

    Может подскажите – как отвязать сетевые протоколы с интерфейса хоста на Server Core…

  4. Anonymous says:

    В нашем полку русскоязычных блогеров прибыло, к нас присоединился Алексей Кибкало , который является

  5. Anonymous says:

    Еще вопрос:

    [quote] ВМ: База данных – ВМ с одним интерфейсом, привязанному к Private свичу. [/quote]

    А как в таком случае получить доступ к файловой системе на VM-DB? Только опосредованно через VM-Web? Или есть какой-нить механизм засылки файлов через хостовую систему?

  6. Alex A says:

    Извиняюсь, не заметил прошлого вопроса, отвечу сейчас на оба.

    1) Как отвязать протоколы от интерфейса в Server Core:

    Ответ: Для начала узнаем GUID нужного интерфейса командой wmic nicconfig get Description,SettingID

    Далее при помощм Regedit.exe (Elevated) откроем ветвь HKLMsystemcurrentcontrolsetserviceslanmanserverlinkage

    В ключе Bind удаляем для найденного выше GUID интерфейса требуемый протокол (смотрите список):

    LanmanServer – File and Printer Sharing

    LanmanWorkstation – Client for Ms Networks

    lltdio – Link-Layer Discovery Mapper I/O Driver

    rspndr – Link-Layer Topology Discovery Responder

    tcpip – TCP/IPv4

    tcpip6 – TCP/IPv6

    Аналогично можно вернуть назад привязку.

    2) Как в получить доступ к файловой системе на VM-DB?

    Ответ: Обычно это не является типовым сценарием. Если в вашей ситации нужен частый доступ к файловой системе сервера баз данных, требуется внести изменения в конфигурацию, а именно добавить в VM-DB интерфейс, подключенный к internal switch, чтобы хост видел его по TCP/IP, без привязки к физическим интерфейсам. Никаких способов доступа к файловой системе ВМ с хоста без TCP/IP нет и быть не может!

  7. Alex A says:

    Ваш сценарий такой:

    На хосте два интерфейса:

    1) LAN – смотрит в локальную сеть, имеет внутренний IP, не виртуализован.

    2) External – смотрит в Интрнет. На основе интерфейса сделан External Switch. С самого switch на хосте отвязаны все сетевые протоколы (нет TCP/IP и File&Print Sharing)

    Также создан Private Switch (Сеть для виртуальных машин без доступа к хосту, не привязанная ни к одному интерфейсу).

    ВМ: База данных – ВМ с одним интерфейсом, привязанному к Private свичу.

    Web – ВМ с двумя интерфейсами, один к Private свичу для доступа к БД, второй к External свичу – с внешним IP.

    На хосте имеем брэндмауэр с запретом всего, кроме RDP на LAN интерфейс.

    В БД брандмауэр разрешает доступ к SQL по тому протоколу, который используется

    В WEB сервере брэндмауэр разрешает доступ по http/https на внешний интерфейс.

    Двух-ногая конфигурация хоста приводит к тому, что ваши ВМ не видят локальной сети, но для веб сервера это не нужно и повышает безопасность. Хотя дает некое неудобство при конфигурации самих VM через vmconnect (без RDP).

  8. Alex A says:

    Евгений, по шагам.

    1) Перед переносом виртуальной машины с VirtualPC/VirtualServer нужно (еще находясь в VPC) удалить Virtual Machine Additions (или по крайней мере обновить до современной версии, ибо старые вы удалить из Hyper-V просто не сможете)

    2) Перенеся виртуальную машину (без VMAdditions) в Hyper-V, или создав новую, вы должны установить компоненты интеграции Hyper-V (Integration Services) и перезагрузиться. Без них работает только Старый (Legacy) сетевой адаптер, а современные синтетические устройства не засекаются.

    3) Обратите внимание, что при установке Hyper-V Integration Services будет заменен HAL с ACPI на APIC – и эту ВМ вы более запустить в VirtualPC/VS2005 не сможете без ручных махинаций (еще на стороне Hyper-V)

    4) Если компоненты установились успешно – пользуйтесь Старым (Legacy) интерфейсом для загрузки с сети (Boot from LAN) и новым для всего остального.

    Настройки TCP/IP в ВМ такие же как и на хосте, отличий нет.

  9. Alex A says:

    Давайте я вас попрошу сделать следующее

    1) Выключите виртуальную машину

    2) В её свойствах убедитесь что есть ДВА адаптера – Legace и Synthetic (так удобнее проверять). Если сейчс один, – добавьте второй

    3) Включите ВМ

    4) Сделайте скриншот в Device Manager для сетевых карт и раздела System. Ну и если есть неопознанные устройства, – чтобы их было видно

    5) Сделайте скриншот настроек сети, так чтобы было видно название сетевого интерфейса (Intel bla-bla-bla для Legacy)

  10. Anonymous says:

    Уже все конечно отпиарили, но не могу удержаться – уж больно хороший блог Алексея Кибкало. Даже у Virtual PC Guy такого контента не встречал, а тут еще и на русском! Сегодня после проведения вебкаста по PowerShell , сразу начну воплощать пару статей в

  11. Alex A says:

    Скорее всего проблема в драйверах Broadcom на сервере 2008

    В свойствах драйвера ФИЗИЧЕСКОГО интерфейса (всех) отключите (disable) Large Send Offload (IPv4)

  12. Alex A says:

    Если локальный домен это сам хост виртуализации (not supported совмещение этих ролей), то нужно сделать внутреннюю сеть для общения хоста с ВМ.

    Если контроллер, это ВМ, то достаточно приватной сети для всех ВМ.

    Настройка IP адресов на ваше усмотоение – в пределах одной сети.

  13. Alex A says:

    Это ненормально.

    Есть подозрениее, что у ваших машин одинаковый MAC.

    То ли в Hyper-V свойствах адаптера виртуалки задан, то ли в настройках сетевой карты в Local Area Connection внутри виртуалки.

    Если вы клонировали виртуальную машину, или экспортировали несколько раз, дело может быть в этом.

  14. Alex A says:

    Не очень понял вопроса.

    "Работают без проблем с сетью" и "нулевая активность" не очень вяжутся.

    Network Monitor в виртуальных мащинах не работает, поддержка будет в следующей версии NetMon.

  15. Alex A says:

    Если удалось, то можно и не размещать.

    А так – размещаете где-то и даете ссылку.

  16. Alex A says:

    По соображениям безопасности доступ к хосту должен идти через отдельный интерфейс. Он должен быть во внутренней сети (без интернет) и не должен разделяться с ВМ.

    Технически можно обойтись и одним адаптером.

  17. Alex A says:

    Денис, вам нужно установить компоненты интеграции Hyper-V.

    Убедитесь, что стоит SP2 (без него работать не будет), далее в консоли виртуальной машины в меню Action сделайте Insert Integration Services Disk, и внутри виртуальной машины с появившегося диска установите драйверы.

    Если у вас нет возможности ставить SP2 и компоненты, то добавьте вместо синтетического интерфеса эмулируемый (для выключенной ВМ добавить устройство Emulated Network Card) и после включения оно найдет само. Эмулируемая карта работает медленнее и потребляет ресурсы процессора!

  18. Anonymous says:

    RE: Если эта тема окажется интересна, я готов написать отдельную статью с различными сценариями настройки и использования сетевых интерфейсов в разных конфигурациях. Отдельную — чтобы не перегружать эту чисто теоретическую статью рассуждениями и рекомендациями из практики. Жду ваших комментариев!

    Очень интересно продолжение…

    В частности интересует конфигурация типового web-решения – хостовый сервер с двумя физ.интерфейсами (предполагается один с реальным IP, другой с частным для управления хостом и виртуальными серверами) и два гостевых сервера: web-сервер и сервер БД.

    Как в этом случае правильно организовать виртуальные сети, чтобы это работало и уменьшить плоскость атак. Как правильно конфигурить брандмауэр хоста и гостя.

  19. Anonymous says:

    Добрый день. Есть сервер на Вин 2012 R2, с 4мя встроенными гигабитными сетевыми карточками Broadcom NetXtreme, объеденены в Hyper-V virtual Ethernet adapter. На сервере подняты AD, App, DNS, ISS, RDS, File&Storage и Hyper-V с 2мя виртуалками, на которых
    установлен Сервер 2012 R2. На 1 установлена программа Navision 2013, на 2 крутиться Sql база которую программа использует. В настройках виртуалок Network Adapter – выбран Microsoft Network Adapter Multiplexor Driver –Virtual Switch. Так вот собственно проблема
    в том, что пинг между серверами прыгает от 1 до 200 мс, наружу из любой ровно 20мс.

  20. Vasily Gusev says:

    Очень интересно! Пишите сценарии 🙂

  21. Kpapadak says:

    Надо заметить, что есть возможность через интерфейс управления Hper-V WMI "отрезать" от физического интерфейса виртуальный адаптер Parent-партиции. В случае если у вас 2-а сетевых интерфейса в сервере, это позволяет виртуальные машины выпустить в сеть через один физический интерфейс (никак не связанный с парент партицией), а управление и доступ к паретн партиции оставить ТОЛЬКО через второй сетевой интерефейс. Если еще Parent партиция будет Server Core, то такая конфигурация является по сути Appliance-ом Hyper-V.

  22. IVKril says:

    Еще глупый вопрос. У меня после добавления external-сети виртуалки работают без проблем с сетью, но на сетевых интерфейсах в виртуалках нулевая активность. Может дрова на виртуальные сетевки? Сервисы интеграции стоят.

  23. IVKril says:

    Ну тоесть сеть работает в полном объеме (рдп и т.д. и т.п.), но переданые и принятые пакеты по нулям, в диспетчере задач также ровный график и ноль процентов использования сети.

  24. restless says:

    Что то не оч врубился.

    Мне надо допустим что бы три виртуальные машины могли зарегестрироваться в моем локльном домене.Какие сетвые привязки к виртуальной машине нужны? Привязать external физический интерфейс своего сервера на котором крутятся машины?

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

  25. mlik says:

    Добрый день.

    Вот такой сценарий будет жить?

    Встроенные два сетевых интерфейса объеденены в Team. Реальный IP. В parent partition – DC, DNS, DHCP. virtual network switch привязан к третьему сетевому адаптеру. В child partition. Тоже реальный IP. В child partition  Server 2003. В нем третий реальный IP.

    Есть проблемы. Вся конфигурация раз в сутки падает. Вот я думаю или это проблема Broadcom или я чего-то не достроил.

  26. Di says:

    Не совсем понятна структура организации привязки виртуальных сетевых интерфейсов к реальным. Во-первых, рекомендация использовать как минимум 2 физических интерфейса с чем конкретно связана? Я так понял, рекомендуется 1 интерфейс иметь чисто для взаимодействия с реальной сетевой средой, не привязывая его к виртуальным сетям, а второй для организации взаимодействия с виртуальными машинами. Но почему именно так, и чем черевато использование для совмещения этих целей одного физ. интерфейса?

    И второй вопрос, плавно вытекающий из первого. У меня есть laptop с одним физ. адаптером. Я создал внутреннюю виртуальную сеть для взаимодействия с моей ВМ. Выхода наружу для ВМ не требуется. В итоге имею следующее – ВМ хост систему пингует, хост система ВМ нет. Собственно вопрос почему?

    И еще один вопрос. Если мне не нужен доступ во внешнюю сеть для моих ВМ, можно ли обойтись одним сетевым адаптером?

  27. Di says:

    Upd. С вопросом недоступности хост машины разобрался – долбанная виндоуз 7 со своей безопасностью.

  28. Di says:

    Спасибо. Еще такой вопрос. Возможно ли в hyper-v настроить свойства сетевого подключения child partition из parent partition? Просто есть необходимость активировать винду из вм, а срок уже истек-т.е сразу после логина выдает предложение об активации. Какие-то настройки там уже есть, но я их не знаю, т.е. dhcp тоже не вариант…

  29. SokRus says:

    Прошу разобрать следующий сценарий…

    Есть сервер с двумя картами (внешний IP и внутренний в локалку). На этом сервере стоит DHCP, почтовый сервер и FTP.

    На нем установлена ВМ (2003 server), на которой установлена ISA 2006.

    Задача!

    Требуется что бы локалка видела, как сам хост, так и ВМ.

    Требуется что бы сам сервер стоял за ISA (инет чтобы шел на хост через ВМ с ISA).

    Требуется чтобы хост видел локалку.

    Как это сделать?

  30. Sergey says:

    Помогите с такой проблемой.

    Есть физический сервер на котором 2008 и Hyper-V (на ней поднят Server 2003 AD с ролью PDC). Есть еще контроллеры домена в других зданиях, все реплицируется замечательно. При первой попытке включить в домен 2008 неполучилось до тех пор пока не был выключен сервер крутящийся на Hyper-V, только после этого он нормально включился в домен. Потом запустил сервер на Hyper-V попробовал сделать шару на 2008, вроде сначала нормально было но после того как только я выбрал пользователя, он мне сказал, что неможет провести согласования. Как только я выключил сервер на Hyper-V, и произвел предыдущие действия пользователь легко добавился.

    Я так понимаю у меня проблема какая-то с сервером на Hyper-V раз возникают такие проблемы. Можете подсказать в чем может быть проблема. Я грешу на виртуальный интерфейс Hyper-V.

    Заранее благодарен.

  31. Denis says:

    c виртуализацией на Hyper-V столкнулись недавно.

    и сразу косяк:

    1)в диспечере вирт сетей создаем сеть.

    2)в настройках вирт машины в Сетевом адаптере указываем это подключение.

    при запуске Вирт машины (установлен вин серв 2003) никаких сетевых адаптеров нет.

    из неопознанных устройств VMBUS/4&4B018EB&0

    как настроить или установить сеть?

  32. AndrewVICH says:

    Добрый день.

    На Hyper-V сервере установлены 3 сетевых адаптера – один смотрит непосредственно в сетку, на два других привязаны виртуальные свитчи.

    Поднято 4 виртуальных сервера – по два на каждый свитч.

    Проблема в следующем – два сервера на одном и том же свитче подхватывают сеть по принципу "кто первый встал – того и тапки". Кто успел – ловит IP, нормально видит сеть и видится из сети. Второй остается в "топке локалхоста", получая IP вида 169.254.79.90.

    Есть возможность с этим как-то побороться?

  33. Евгений says:

    Я только пробую пользоваться Hyper-v, но уже столкнулся с непонятками:

    была виртуалка в VirtualPC win2000SP4, перенес ее в Hyper-v, настроил, установил "старый сетевой адаптер" подключенный к внешней сети, к отдельному физическому адаптеру. Поначалу сеть работала, все было нормально, но потом после экспериментов с "старый сетевой адаптер" – "сетевой адаптер" – с ним не заработало, вернул все как было, а сеть не работает и оживить никак не получается. К тому же не нашел возможности изменения свойств адаптера на ВМ (ip-шник статический задать), хотя в ком. строке по ipconfig /all – показывает, что адаптер настроен на тот адрес который был у нее в VirtualPC

  34. Евгений says:

    по пунктам:

    1 – выполнено

    2 – выполнено

    3 – не нужно

    а вот с настройками адаптера под ВМ – тут все не так просто. При выборе протокола TCP/IP кнопка "свойства" – неактивна

  35. Евгений says:

    Удалось добиться работы путем удаления и создания заново виртуального сетевого интерфейса, а скриншоты сделаю в понедельник, только как их тут размещать?

Skip to main content