Технический блог специалистов ООО"Интерфейс"
- Главная
- Настраиваем сеть в Hyper-V.
Настраиваем сеть в Hyper-V.
- Автор: Уваров А.С.
- 21.01.2014
Продолжая цикл статей посвященный виртуализации, сегодня мы поговорим о настройке сети в Hyper-V. Основное внимание мы уделим теории, а именно разберем как устроены виртуальные сети и как они взаимодействуют с реальными. Потому что, как показывает практика, многие администраторы, в отсутствие простых и понятных материалов по данному вопросу, вынуждены осваивать настройку сети в Hyper-V методом "научного тыка".
С одной стороны, ничего сложного в настройке сетей для виртуальных машин нет, с другой многие начинают путаться во всех этих адаптерах, с трудом понимая, где реальный, где виртуальный, и чем они друг от друга отличаются. Постараемся внести ясность.
За настройку сетей в Hyper-V отвечает Диспетчер виртуальных коммутаторов, если мы откроем его, то увидим следующую картину:
Как видим, нам доступно создание трех типов сетей: внешней, внутренней и частной. Разберемся подробнее, для чего нужны эти сети и в чем разница между ними.
Внешняя сеть
Самый распространенный тип сети, который позволяет виртуальным машинам взаимодействовать с внешними сетями и хостом. При ее создании необходимо выбрать один из физических сетевых адаптеров, через который данная виртуальная сеть будет соединяться с внешними сетями.
Как мы уже писали, основу виртуальной сети составляет виртуальный коммутатор. При создании внешней сети, Hyper-V создает виртуальный коммутатор, к которому через виртуальные сетевые адаптеры (vNIC) подключаются как виртуальные машины, так и хост. Физический адаптер отключается от хоста и по сути становится физическим портом виртуального коммутатора, через который он подключается к внешней сети.
В этом нетрудно убедиться, после создания внешней сети на хосте появляется Адаптер Ethernet для виртуальной сети Hyper-V, на который переносятся все настройки с физического адаптера.
А в свойствах физического адаптера остался только Расширяемый виртуальный сетевой коммутатор в Hyper-V.
В случае с внешней сетью следует четко понимать, что хост, точно также как и виртуальные машины, подключается к виртуальному коммутатору через виртуальный сетевой адаптер. Физический сетевой адаптер, после создания внешней сети становится портом виртуального коммутатора, через который он подключается к внешней сети. Поэтому все сетевые настройки хоста следует производить только на виртуальном сетевом адаптере.
Также имеется возможность создания внешних сетей, изолированных от хоста, в этом случае виртуальный сетевой адаптер не создается, а физический интерфейс отключается от хоста, обслуживая только виртуальный коммутатор. Для этого при создании внешней сети необходимо снять галочку Разрешить управляющей операционной системе предоставлять общий доступ к этому сетевому адаптеру.
Данная конфигурация позволяет успешно виртуализировать пограничные сетевые устройства, надежно отвязав их от внутренней сети и хоста. Например, мы можем создать две внешних сети, одна из которых будет подключена к локальной сети, вторая к интернет и осуществлять выход во внешнюю сеть через роутер на виртуальной машине, при этом и хост, и локальная сеть будут надежно изолированы от интернет, несмотря на то, что кабель внешней сети физически будет подключен к сетевому адаптеру хоста.
Внутренняя сеть
Как следует из ее названия, внутренняя сеть предназначена для подключения виртуальных машин и хоста и не предусматривает соединения с внешними сетями. При ее создании также создается виртуальный сетевой адаптер для хоста, который оказывается подключен к виртуальному коммутатору внутренней сети и должен быть сконфигурирован в соответствии с настройками виртуальной сети.
К внешней сети хост остается подключен через физический адаптер, настройки которого не затрагиваются. Данная конфигурация чаще всего используется для учебных и исследовательских целей, позволяя создавать и моделировать различной сложности сетевые конфигурации не затрагивая рабочие сети предприятия.
Внутренняя сеть c NAT
Данная возможность появилась начиная с Windows Server 2016, Hyper-V Server 2016 и Windows 10. Подробнее читайте в нашей статье: Настраиваем сеть NAT в Hyper-V
Частная сеть
Частная сеть отличается от внутренней тем, что виртуальный коммутатор может быть подключен только к виртуальным машинам и изолирован от хоста.
Данный вид сетей может быть использован также в учебных и исследовательских целей, а также для создания изолированных участков сети, например DMZ.
В этом случае связь между внешней и частной сетью будет осуществляться через одну из виртуальных машин, которая должна быть подключена к обеим сетям.
Как видим, Hyper-V дает в руки администратора весьма гибкий и мощный инструмент, позволяющий создавать весьма сложные сетевые конфигурации и управлять ими.
В настройке сети на «виртуальной машине» (далее по тексту принято сокращение «ВМ»), а также в добавлении виртуального свитча в оснастке Hyper-V нет ничего сложного, хотя даже для продвинутых пользователей иногда процедура может выглядеть немного запутанной.
Однако, ознакомившись с основными принципами и ходом настроек, поясненных иллюстрациями, в голове человека все быстро упорядочивается и в дальнейшем уже не вызывает каких-либо затруднений. Нижеприведенный материал поможет самостоятельно и успешно справиться с поставленной задачей.
Архитектура Hyper-V
«Виртуальные сети» (сокращенно: «ВС») в Hyper-V называют виртуальными коммутаторами, к которым подключаются не только сетевые интерфейсы ВМ, но и физические сетевые интерфейсы сервера.
Существуют 3 вида «ВС». Схематично они представлены на рисунке ниже.
Майкрософт сравнительно недавно предусмотрела в «Windows Server 2008 R2» создание ВС «External» с изоляцией от хостовой системы. Осуществляется процесс просто. Следует убрать отметку из графы «Allow management operating system to share this network adapter».
При этом отключаются все ранее созданные подключения, и параметры прописываются для новой ВМ.
Необходимо отметить, что в Hyper-V имеется поддержка VLAN (IEEE 802.1Q).
После настройки коммутаторов, достаточно в свойствах ВМ установить отметку «Enable VLAN Identification» и указать VLAN ID.
Приятной новинкой, внедренной специалистами из Майкрософт в Виндовс Server 2008 R2, является поддержка виртуальных очередей VMQ.
Это сделало возможным перенаправление на процессор сетевого адаптера значительной доли нагрузки на обработку пакетов, которые направляются на ВМ с хостовой ОС. Сетевой адаптер с поддержкой VMQ может сам производить обработку пакетов и далее сохранять информацию в памяти ВМ.
Процедура настройки
Сложности с Hyper-V при настройке сети на виртуальной машине в основном вызваны недопониманием принципов реализации ее функционирования.
Многие хорошо знакомы с работой на «Виртуал Сервер» или «Microsoft’s Virtual PC» и привыкли к тому, что они функционируют как простые программы Виндовс.
Иными словами, приложения располагаются поверх Windows и процессы обмена данными с оборудованием осуществляются посредством ОС. Однако в Hyper-V все работает кардинально по противоположному принципу и в результате ВМ обеспечиваются прямым доступом к оборудованию сервера, то есть, минуя родительскую ОС.
Это обстоятельство накладывает некоторые нюансы на процедуру настройки доступа к сети ВМ Hyper-V из сетей.
Рассмотрим процесс на конкретном примере со следующими сетевыми параметрами: главный IP-адрес: ___.189.53.206/30; доп.адрес: ___.91.26.173/32; сервер с 2-мя интерфейсами (при этом задействован лишь 1-ый, а 2-ой отключен).
Далее всю процедуру исполняем только с LAN1.
Теперь можно приступить к настройке 2-х ВМ:
1-ая ВМ получит связь с внешним миром через сетевую карту с доступом во всемирную патину, а 2-ая послужит как коммутатор корневого сервера с виртуальным хостом.
Чтобы создать эти ВМ потребуется войти в главную консоль управления Hyper-V, запустить диспетчер виртуальных сетей.
Установить отметки, как показано на скриншоте выше для создания 1-ой ВМ. Далее создать 2-ую, как изображено на рисунке ниже.
Подготовительные мероприятия на этом этапе завершены, но перед тем как настраивать сети, следует убедиться, что все исполнено корректно. От этого зависит успешность процедуры в целом.
Важное отступление: Во время создания 1-го ВМ будут разорваны все подключения, поэтому рекомендуется предусмотреть дополнительное соединение с сервером, например, IPMI, IP-KVM либо прямой физический доступ.
В окне сетевых подключений должна отображаться следующая картина, как показано на скриншоте ниже.
В параметрах коммутатора (2-ой ВМ) указать IP-адрес. В результате этот ВМ на физическом сервере станет работать как шлюз.
Уже можно констатировать приятный факт, что ввод параметров сетевых интерфейсов на корневом сервере окончен.
Затем надо произвести настройки «RRAS», чтобы обеспечить перенаправление трафика к ВМ и обратно. С этой целью в меню «Диспетчера сервера» потребуется присвоить роль для «Службы политики сети и доступа».
По умолчанию она «Остановлена» и следует ее настроить.
Отобразится мастер, указания которого требуется пошагово исполнить.
Установить отметку в графу «Особая конфигурация».
Поставить галочки в два поля, как сделано на иллюстрации выше.
Клацнуть «Готово».
Кликнуть «Запустить службу». Далее проверить корректность выполненной работы через меню диспетчера.
Служба полностью подготовлена и необходимо перейти к перенаправлению трафика к ВМ. Для этого создается промежуточный интерфейс, вызвав контекстное меню от «Преобразования сетевых адресов».
Клацнуть строчку «Новый интерфейс» и применить внешний интерфейс.
Войти в закладку «Преобразование сетевых адресов (NAT)» и поставить галочки в графах, указанных на следующем скриншоте:
Перейти в закладку «Пул адресов» и указать доп. адреса. От них запросы станут поступать на внутренние адреса ВМ.
Далее еще рекомендуется добавить резервный для внутреннего адреса ВМ, как показано на рисунке ниже.
В свойствах ввести параметры сети где расположен шлюз.
В результате ВМ получила выход во всемирную паутину. Чтобы удостовериться в этом, достаточно заглянуть в меню «Центра управления сетями и общим доступом».
Примечание: Если соединение с глобалкой отсутствует, то проблема быстро решается простым изменением параметров Брадмауэра на серверах.
Еще убедиться в правильности можно через любой интернет-сервис.
Задуманное успешно реализовано на практике, вот так просто можно применять несколько различных сетей на единственном реальном сервере, то есть физическом (сколько их пожелает создать администратор, столько же создается и коммутаторов).
А если требуется настроить сети на Линуксе, которая запущена под Hyper-V?
Многие сталкиваются с проблемой во время установки Ubuntu на ВМ Майкрософт Hyper-V. Сложность заключается в том, что Линукс просто иногда не способен при этом увидеть сетевую карту. Очевидно, что сеть в таком случае функционировать не будет.
Сложность может быть устранена следующей «уловкой»: в Параметрах ВМ указать одну из «древних» сетевых карт. ОС такую картуувидит сразу, то есть возникшая сложность устраниться быстро.
Но есть один недостаток этой маленькой хитрости. Часто процессор ВМ будет полностью загружен, а данное обстоятельство повлечет замедленное функционирование системы.
Заключение
Отдельные пользователи пренебрегают этапом настроек по «Преобразованию сетевых адресов (NAT)», который описан в инструкции выше. Однако этот механизм обеспечивает доступ ВМ к сети через объединение IP основной электронно-вычислительной машины с портом через внутренний коммутатор Hyper-V. В итоге приобретаются несколько следующих преимуществ:
- Применяется внутренний коммутатор, что понижает загрузку сета электронно-вычислительной машины;
- Несколько ВМ могут размещать программы, требующие внутренние порты связи, просто соотнося их с индивидуальными внешними интерфейсами;
- Экономятся IP по причине сопоставления внешнего IP и порта со значительно увеличенным перечнем внутренних IP.
В Hyper-V имеется специальный тип виртуального коммутатора Internal (внутренний), предназначенный для обмена данными между виртуальной машиной и хостом. Виртуальные машины, подключенные к такому коммутатору, могут видеть только друг-друга и хост, при этом не имея выхода во внешнюю сеть.
Однако на практике не все так красиво. По умолчанию связи между виртуальными машинами, находящимися во внутренней сети, и хостом нет, а для того, чтобы она появилась необходима дополнительная настройка.
Например, у нас имеется виртуальная машина WKS81, подключенная к виртуальному коммутатору типа Internal и имеющая IP-адрес 192.168.0.81/24.
Если попробовать пропинговать ее с хоста, то ничего не получится.
Дело в том, что при создании виртуального коммутатора типа Internal в системе создается виртуальный сетевой интерфейс. Этот интерфейс не привязан к физическому адаптеру и не имееет выхода наружу, а IP-адрес получает с помощью механизма APIPA (Automatic Private IP Addressing) из подсети 169.254.0.0.
Для того, чтобы хост увидел виртуальную машину, находящуюся во внутренней сети, нам необходимо назначить хосту IP-адрес из этой сети. Для этого открываем свойства сетевого интерфейса Internal, переходим в свойства протокола IPv4 и в разделе «Альтернативная конфигурация» указываем настройки для внутренней сети.
Проверяем еще раз. Как видите, теперь ВМ доступна с хоста, и можно свободно обмениваться файлами. При этом сама машина не видна в сети, и доступ к ней есть только у хостовой ОС.
Подобный подход удобно использовать при развертывании ВМ в лабораторных и тестовых средах. И еще, как альтернативный вариант для обмена данными между ВМ и хостом можно использовать командлет Copy-VMFile.