Сетевое взаимодействие в Virtual PC и Virtual Server


Виртуализация в данный момент является одной из самых перспективных компьютерных технологий. По мнению многих экспертов, технологии виртуализации обладают огромным потенциалом и входят в тройку самых быстроразвивающихся. Множество производителей как программного, так и аппаратного обеспечения ориентируются на поддержку виртуализации в своих продуктах, и это неудивительно: ведь по прогнозам ведущих аналитиков в сфере IT, к 2015 году половина всех компьютерных систем будут виртуальными. На сегодняшний день особое внимание уделяется виртуализации операционных систем, как в контексте виртуализации серверной инфраструктуры предприятий, так и в отношении виртуализации пользовательских десктопов. Виртуальная инфраструктура серверов обладает значительно большими возможностями, чем реальная: она более гибка, имеет множество средств для обеспечения высокой доступности и значительно проще в управлении и развертывании. Настольные системы виртуализуются для самых разных пользовательских задач: от создания безопасных виртуальных окружений для изоляции ПО, до переносных виртуальных машин, используемых на работе и дома.

Корпорация Microsoft, конечно, не могла не уделить внимания технологиям виртуализации в обоих этих аспектах. Еще в 2003 году ею была куплена компания Connectix вместе с продуктом Virtual PC, с которого началась история виртуализации Microsoft.

В то время еще не было ясно, как именно виртуализация позволит более эффективно использовать компьютерные системы, и Microsoft не давала большой приоритет развитию продукта Connectix Virtual PC, выпустив лишь версию Virtual PC 2004, в то время как компания VMware агрессивно продвигала аналогичный продукт VMware Workstation. Время показало, что виртуализация вызывает огромный интерес у домашних и корпоративных пользователей, и компании Microsoft пришлось действовать в роли догоняющей стороны в конкурентной борьбе с компанией VMware, которая сделала большую ставку на виртуализацию. Выпустив продукт Virtual Server 2005, основанный на ядре Virtual PC, компания Microsoft несколько реабилитировала себя в глазах пользователей, однако существовавшие в то время издания Standard и Enterprise продукта Virtual Server были не бесплатны и не вызывали большого интереса. В 2006 году была выпущена версия Virtual Server 2005 R2, которую компании Microsoft пришлось сделать бесплатной ввиду того, что VMware анонсировала бесплатный продукт VMware Server для сектора SMB (Small and Medium Business), который по своим возможностям превосходил Virtual Server.

В данный момент усилия обеих компаний направлены на создание мощных средств по управлению серверами виртуализации, возможности которого будут определять эффективность виртуальной инфраструктуры в целом. Не так давно, компания Microsoft выпустила первый пакет обновлений для Virtual Server R2, который позволяет серьезно отнестись к возможности использования этой платформы в производственной среде предприятия. В 2007 году был выпущен Virtual PC 2007 — настольная платформа виртуализации, поддерживающая Windows Vista и работающая заметно быстрее прошлой версии.

В свете стремительного роста аппаратных мощностей компьютеров, домашние пользователи зачастую поддерживают несколько одновременно запущенных виртуальных систем, объединенных сетью для различного рода экспериментов, а также безопасной работы в Интернет. На платформе Virtual Server обслуживание виртуальной сети является одной из ключевых задач системных администраторов при развертывании виртуальной инфраструктуры. В данной статье мы раскроем все подробности настройки сети на платформах виртуализации Microsoft.

Об организации виртуальных сетей на платформах виртуализации Microsoft

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

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

Для каждого из перечисленных вариантов использования на платформах виртуализации Microsoft реализован отдельный тип сетевого взаимодействия.

Разделение ресурсов физического сетевого адаптера (Virtual Networking)

Чтобы виртуальная машина могла предоставлять сервисы во внешнюю по отношению к хостовой системе сеть, компания Microsoft предлагает использовать этот тип сетевого взаимодействия. В этом случае виртуальная машина ведет себя как самостоятельный компьютер в сети, к которой подключен физический компьютер. Если в этой сети действует DHCP-сервер (DHCP, Dynamic Host Configuration Protocol), назначающий IP-адреса, виртуальная машина получит его и сможет работать как самостоятельная система в сети (в противном случае, нужно будет назначить внешний IP самостоятельно). Наглядно такую схему сетевого взаимодействия можно представить так:

Структура сетевого взаимодействия Virtual Networking
Структура сетевого взаимодействия Virtual Networking

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

Локальное сетевое взаимодействие (Local Only Networking)

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

Структура сетевого взаимодействия Local Only
Структура сетевого взаимодействия Local Only

Такой тип сетевого взаимодействия не позволяет виртуальным машинам взаимодействовать с хостовой системой.

Сеть с использованием NAT (Network Address Translation) — Shared Network

Безопасность является одним из самых важных моментов при планировании использования виртуальных машин для работы с внешней сетью. Если применение виртуальной машины планируется только для того, чтобы пользователь и программное обеспечение работали с сервисами внешней сети, не предоставляя при этом во внешнюю сеть свои сервисы, идеально подойдет тип сетевого взаимодействия Shared Networking.

Структура сетевого взаимодействия NAT Networking
Структура сетевого взаимодействия NAT Networking

В этом случае в хостовой операционной системе работает независимый DHCP-сервер, который назначает внутренние IP-адреса виртуальным машинам в пределах сети хоста. Виртуальная машина может инициировать соединение во внешнюю сеть посредством специального сервиса Network Address Translator, осуществляющего преобразование IP-адресов. При таком типе сетевого взаимодействия виртуальные машины используют один IP-адрес хостовой системы (Shared IP) и не видны из внешней сети.

Настройка сети Virtual PC

При планировании развертывания нескольких виртуальных машин на одном физическом хосте, необходимо заранее продумать структуру их сетевого взаимодействия. Наиболее частое применение продукта Virtual PC — создание виртуальной рабочей среды для испытания программного обеспечения или получение переносного пользовательского окружения. При этом, зачастую, требуется обеспечить как выход во внешнюю сеть из виртуальных машин, так и их взаимодействие между собой. Для каждого из вариантов использования виртуальной машины можно создать отдельную модель сетевого взаимодействия, прикрепив один или несколько виртуальных сетевых интерфейсов к соответствующему типу сети. Virtual PC позволяет создать до четырех виртуальных сетевых адаптеров для одной виртуальной машины. В гостевой системе эмулируемые адаптеры видятся как DEC / Intel 21140 Based PCI Fast Ethernet adapter. Они полностью поддерживают протокол IPv6, а также возможность загрузки по сети (PXE, Preboot eXecution Environment). Надо отметить, что платформы виртуализации Microsoft не поддерживают сети топологии Token Ring.

Еще при установке виртуальной машины в Virtual PC, в левом нижнем углу консоли можно увидеть значок сетевого подключения, который мигает во время обращения виртуальной машины к виртуальному сетевому адаптеру. Щелкнув на нем правой клавишей и выбрав «Networking Settings», можно перейти к настройке сети для виртуальной машины. Также сетевые настройки можно вызвать, выбрав в главном окне консоли «Edit» -> «Settings» -> «Networking»:

Настройка сети для виртуальной машины
Настройка сети для виртуальной машины

Примечание

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

Not Connected

Чтобы виртуальная машина не имела виртуального сетевого адаптера и не имела доступа к сетевым ресурсам хостовой и других гостевых систем, в настройках виртуальной машины выберите категорию «Networking», и выберите «Not Connected» для первого сетевого адаптера:

Настройка сети для виртуальной машины
Настройка сети для виртуальной машины

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

Virtual Networking

Очень часто пользователям Virtual PC приходится выходить в интернет из гостевой системы, при этом требуется, чтобы гостевая система также предоставляла какие-нибудь сервисы во внешнюю сеть (например, сетевые папки). В этом случае подходит тип сетевого соединения «Virtual Networking», когда виртуальные машины в пределах хоста взаимодействуют как между собой, так и с внешней сетью.

Чтобы назначить виртуальному сетевому адаптеру такую модель взаимодействия, в настройках виртуальной машины выберите категорию «Networking», и выберите свой физический сетевой адаптер:

Настройка сети для виртуальной машины
Настройка сети для виртуальной машины

Примечание

Виртуальная машина на платформе Virtual PC может быть запущена без возможности взаимодействия с другими гостевыми системами на одном хосте. Для этого можно запустить виртуальную машину с помощью интерфейса командной строки. Нажмите «Start» -> «Run» -> введите «cmd» и нажмите «Enter». Далее выполните команду:

"<путь к Virtual PC>\Virtual PC.exe” —pc <имя виртуальной машины> -extnetworking -launch

(параметр -extnetworking не влияет на тип сетевого взаимодействия «Shared»).

Local Only

Если вы установите этот тип сетевого взаимодействия для гостевых систем, то виртуальные машины будут взаимодействовать только между собой, при этом, не затрагивая внешнюю сеть хостовой системы. В этом случае сетевой трафик между виртуальными машинами не доходит до хостовой системы, локализуясь во внутренней сети платформы. Помните, что у Virtual PC в этой модели взаимодействия не используется DHCP-сервер, и вам необходимо будет настроить IP-адреса виртуальных машин вручную. Стоит отметить, что в пределах такой виртуальной сети сетевой адаптер одной из гостевых систем, работающий в promiscuous-mode (режим, когда сетевая карта принимает все пакеты, а не только предназначающиеся ей), может перехватывать трафик других виртуальных машин.

Чтобы назначить виртуальному сетевому адаптеру такую модель взаимодействия, в настройках виртуальной машины выберите категорию «Networking» и выберите «Local Only»:

Настройка сети для виртуальной машины
Настройка сети для виртуальной машины

Shared

Эта модель сетевого взаимодействия, как уже было сказано, «прячет» виртуальную машину за хостовой операционной системой, позволяя из гостевой системы инициировать соединения во внешнюю сеть через модем или LAN-подключение (однако Microsoft не рекомендует использовать модем в виртуальных машинах). Доступ к виртуальным машинам извне будет невозможен (это нужно учитывать при работе в сети из виртуальной машины). В этом случае в пределах виртуальной сети функционирует DHCP-сервер, который назначает виртуальным машинам внутренние адреса из диапазона 192.168.131.x, где x — число из диапазона от 1 до 253 (к сожалению, Virtual PC не позволяет менять этот диапазон). Помните, что этот тип сети не поддерживает взаимодействие между виртуальными машинами, а также соединение из хостовой системы в гостевую. Нужно отметить, что только первый виртуальный сетевой адаптер может быть использован для сетевого соединения Shared Networking.

Чтобы назначить виртуальному сетевому адаптеру такую модель взаимодействия, в настройках виртуальной машины выберите категорию «Networking» и выберите «Shared Networking (NAT)»:

Настройка сети для виртуальной машины
Настройка сети для виртуальной машины

Помните, что если вы не являетесь членом группы администраторов в хостовой системе, вы не сможете взаимодействовать с внешней сетью по протоколу ICMP (Internet Control Messages Protocol).

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

При развертывании виртуальных машин на настольных компьютерах зачастую требуется настраивать сеть между виртуальными машинами и физическим хостом, при отсутствии подключения к внешней сети. Иногда физический компьютер не имеет сетевого адаптера вовсе, однако и в этом случае есть возможность настроить сетевое взаимодействие между хостовой ОС и виртуальными машинами. К тому же, в некоторых случаях требуется создать несколько изолированных виртуальных сетей типа «Local Only», в пределах которых будут взаимодействовать гостевые системы. Компания Microsoft предлагает простое и элегантное решение: работа виртуальных машин с хостовой системой через виртуальное устройство «Адаптер замыкания на себя» (Loopback Adapter), которое позволяет объединить виртуальные машины и хостовую систему в единую изолированную сеть. При добавлении этого интерфейса, в хостовой системе можно выставить его в настройках виртуальных машин в качестве сетевого адаптера, что позволит им взаимодействовать в рамках одной с хостом виртуальной сети. В этом случае адаптер замыкания на себя можно представить, условно говоря, как виртуальный коммутатор или концентратор, к которому подключены сетевые адаптеры хостовой и гостевых систем. При этом добавление нескольких таких адаптеров позволит создать несколько виртуальных изолированных сетей. Эти сети можно объединить между собой через виртуальную машину с двумя виртуальными сетевыми адаптерами, выставив в параметрах каждого из адаптеров привязку к соответствующему адаптеру замыкания на себя хостовой системы. При выходе в Интернет из виртуальной машины в такой сети не забудьте включить Internet Connection Sharing в хостовой системе.

Для добавления адаптера замыкания на себя, в хостовой системе проделайте следующие действия:

  1. Нажмите «Start», далее «Settings» -> «Control Panel» -> «Add Hardware».
  2. Нажмите «Next», выберите «Yes, I have already connected the Hardware», после чего нажмите «Next»:
    Добавление адаптера замыкания на себя
    Добавление адаптера замыкания на себя
  3. Далее, выберите последний элемент «Add a new hardware device» из списка и нажмите «Next»:
    Добавление адаптера замыкания на себя
    Добавление адаптера замыкания на себя
  4. В появившемся окне выберите «Install the hardware that I manually select from a list» и нажмите «Next»:
    Добавление адаптера замыкания на себя
    Добавление адаптера замыкания на себя
  5. Из списка выберите «Network Adapters» и нажмите «Next»:
    Добавление адаптера замыкания на себя
    Добавление адаптера замыкания на себя
  6. В списке «Manufacturer» выберите «Microsoft», а в соседнем списке — «Microsoft Loopback Adapter»:
    Добавление адаптера замыкания на себя
    Добавление адаптера замыкания на себя

После этого нажмите «Next», а затем «Finish», и в списке оборудования, в категории «Network Adapters», у вас появится адаптер замыкания на себя, к которому мы можем «присоединять» виртуальные сетевые интерфейсы, как к коммутатору.

Откройте сетевые настройки виртуальной машины («Virtual PC Console» -> «Settings»), перейдите в категорию «Networking» и сделайте привязку для виртуального сетевого адаптера на Loopback Adapter:

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

После этого в настройках сетевого адаптера вам необходимо выставить IP-адрес и маску подсети. IP-адрес рекомендуется выбирать из диапазона 192.168.x.y (где x — число от 0 до 255, y — от 1 до 254) для отсутствия конфликтов с другими адресами во внешней сети. Затем, в гостевой системе нужно настроить IP-адрес сетевого адаптера в соответствии с подсетью хоста (число x должно быть тем же, что и у хоста, при использовании маски 255.255.255.0).

Для других адаптеров вы можете сделать привязку к другим интерфейсам, объединив, таким образом, виртуальные сети между собой.

Использование сетевых адаптеров Wi-Fi в Virtual PC 2007

Некоторые пользователи настольной платформы виртуализации Virtual PC 2007 испытывают потребность в использовании беспроводной сети Wireless Network из виртуальной машины посредством Wi-Fi адаптера в хостовой системе. Однако не всегда распознавание этого типа сетевых адаптеров проходит успешно. Зачастую, при установке возникает следующая проблема:

Ошибка при распознавании Wi-Fi сетевого адаптера
Ошибка при распознавании Wi-Fi сетевого адаптера

В этом случае доступ к внешней сети и ресурсам хоста из виртуальных машин будет невозможен при использовании этой Wi-Fi карты в режиме разделения ресурсов физической сетевой карты (Virtual Networking) в связи с тем, что службы Virtual Machine Network Services оказываются отключенными для данного подключения. Чтобы заставить виртуальные машины работать с Wireless-адаптером, необходимо в хостовой системе выбрать сетевое соединение Wi-Fi, кликнуть на нем правой клавишей и выбрать «Properties». В появившемся окне нужно отметить чекбокс «Virtual Machine Network Services»:

Активация Virtual Machine Network Services
Активация Virtual Machine Network Services

Настройка сети Virtual Server R2

В отличие от Virtual PC, платформа Virtual Server R2 имеет больше возможностей при настройке сетевого взаимодействия между виртуальными машинами, однако принципы функционирования сети у нее те же. Virtual Server оперирует понятиями сети двух типов:

  • Internal Network (взаимодействие в пределах хоста, аналог Local Only в Virtual PC)
  • External Network (взаимодействие с внешней сетью посредством физического сетевого адаптера хостовой системы)

После установки продукта Microsoft Virtual Server, автоматически создается одна внутренняя (Internal) сеть и несколько внешних (External) сетей по числу физических сетевых адаптеров хостовой системы.

Чтобы посмотреть список доступных сетей в Virtual Server, на странице управления сервером виртуализации, в категории «Virtual Networks» нажмите «Configure» -> «View All»:

Список доступных сетей в Virtual Server
Список доступных сетей в Virtual Server

Далее вы увидите список доступных для использования виртуальных сетей:

Список доступных для использования виртуальных сетей
Список доступных для использования виртуальных сетей

Как видно из рисунка, для построения виртуальных сетей мы можем использовать виртуальное устройство «Loopback Adapter» по тем же принципам, что и на платформе Virtual PC. Чтобы редактировать свойства виртуальной сети, наведите указатель мыши на имя виртуальной сети и выберите «Edit Configuration».

Редактирование свойств виртуальной сети
Редактирование свойств виртуальной сети

Здесь мы можем редактировать свойства виртуальной сети (Network Settings) или настройки DHCP-сервера для нее. При клике на «Network Setting», откроется редактор виртуальной сети:

Редактор виртуальной сети
Редактор виртуальной сети

На этой странице можно изменить имя виртуальной сети в поле «Virtual Network Name». В поле «Network adapter» задается тип виртуальной сети. Если выбрано значение «None (Guest Only)», то виртуальные машины, чьи сетевые адаптеры присоединены к этой сети, будут взаимодействовать только между собой, не затрагивая сетевое взаимодействие хостовой системы (аналог сети Local Only в Virtual PC). Если выбрать физический адаптер хостовой системы, то тип сетевого взаимодействия будет аналогичен Virtual Networking в Virtual PC.

В поле «Disconnected virtual network adapters» можно присоединить виртуальный сетевой адаптер виртуальной машины к редактируемой сети, а в поле «Virtual network notes» можно отредактировать описание сети.

Вернувшись назад и нажав на ссылку «DHCP Server», можно включить и настроить DHCP-сервер для этой виртуальной сети:

Настройка DHCP-сервера
Настройка DHCP-сервера

Настройки DHCP-сервера включают в себя все необходимые установки сетевого адаптера, назначаемые им при старте виртуальной машины (начальный и конечный IP-адреса, шлюз по-умолчанию, подсеть, DNS и WINS-серверы и т. д.). При конфигурировании DHCP-сервера, нужно учитывать, что первые 16 адресов заданного диапазона резервируются сервером и никогда не назначаются виртуальным машинам. Для сетей типа External DHCP-сервер по-умолчанию отключен, чтобы виртуальные машины могли получить сетевые настройки из внешней сети.

После того как виртуальная сеть будет настроена, вы можете переходить к настройке сетевых адаптеров виртуальных машин. Вы также можете создать собственную виртуальную сеть, нажав ссылку «Add» в категории «Virtual Networks». Virtual Server позволяет создавать неограниченное количество виртуальных сетей, к которым может быть присоединено сколько угодно виртуальных машин. При создании виртуальной сети, в папке «\Documents and Settings\All Users\Documents\Shared Virtual Networks» создается .vnc-файл с настройками сети, который потом можно импортировать в Virtual Server. Помните, что виртуальные сети не обладают свойством переносимости на другой физический хост, поскольку их настройки зависят от конкретного оборудования, установленного в хостовой системе.

Настройка сетевых адаптеров виртуальной машины

Чтобы настроить один или несколько виртуальных сетевых адаптеров виртуальной машины, в главном окне Virtual Server наведите указатель мыши на имя виртуальной машины и нажмите «Edit Configuration», далее нажмите на ссылку «Network adapters».

Настройка сетевых адаптеров виртуальной машины
Настройка сетевых адаптеров виртуальной машины

На этой странице можно выбрать виртуальную сеть, к которой будет присоединен виртуальный сетевой интерфейс, добавить еще один (до четырех для одной виртуальной машины) и назначить статический или динамический MAC-адрес (MAC, Media Access Control) сетевому адаптеру. Microsoft рекомендует назначать динамические MAC-адреса для предотвращения конфликтов в сети между виртуальными машинами. Если вы используете статические адреса по каким-либо причинам, убедитесь в том, что они уникальны для каждой из машин (особенно следите за этим при развертывании виртуальных машин из одного шаблона на различных серверах). Если конфликт MAC-адресов все же произошел, замените в .vmc-файле строчку:

<ethernet_card_address type="bytes">0003FFxxxxxx</ethernet_card_address>

на

<ethernet_card_address type="bytes"></ethernet_card_address>

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

Так же, как и в Virtual PC, вы можете полностью отключить сетевое взаимодействие виртуальной машины, выбрав вариант «Not Connected» в поле «Connected to». В Virtual Server нет отдельного типа сетевого взаимодействия Shared Networking, однако его можно без труда получить, привязав виртуальные машины к адаптеру замыкания на себя и включив Internet Connection Sharing для соединения с Интернет.

Заключение

Платформы Virtual PC и Virtual Server дают возможность пользователям создавать виртуальные сети с различными типами взаимодействия. Несмотря на то, что они не так гибко настраиваются, как, например, в продуктах VMware, они позволяют реализовывать все основные варианты использования нескольких виртуальных машин на одном хосте, работающих в одной или нескольких изолированных или объединенных сетях. Поскольку обе платформы компании Microsoft бесплатны, их использование вполне приемлемо энтузиастами, домашними пользователями и небольшими компаниями. Продукты Virtual Server и Virtual PC представляют собой огромное поле для экспериментов, при создании виртуальных сетей в целях обучения, при отсутствии физической возможности построить реальное сетевое взаимодействие между несколькими компьютерами.






Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.