VMware - виртуальный полигон для администратора и разработчика

OSzone.net » Программы » Обзоры программ » Различные утилиты » VMware - виртуальный полигон для администратора и разработчика
Иcточник: http://onix.opennet.ru/
Опубликована: 01.02.2005
Сегодня мы поговорим о VMware Workstation - самом младшем из продуктов в линейке виртуальных машин фирмы VMWare. Если расположить их в порядке убывания стоимости и сложности внутреннего устройства, то получится такая цепочка VMware GSX Server, VMware ESX Server, VMware Workstation. Сначала идут решения промышленного класса GSX Server и ESX Server. В контексте сегодняшней темы говорить о них мы не будем, иначе статья займет слишком много места.

Лично меня - а по прочтении этой статьи, возможно, и вас - будет больше всего интересовать VMWare Workstation, как наиболее близкая по предоставляемым возможностям к нуждам большинства пользователей.

В последнее время я все чаще и чаще сталкиваюсь со статьями о технологиях виртуальных машин, построенных на основе VMWare Workstation. Странно, но большинство авторов словно зациклились на описании того, как с помощью виртуальной машины запустить Windows и его родные приложения под Linux. Судя по количеству опубликованных статей и популярности у сетевого сообщества такого рода развлечений, мне кажется, что, несмотря на ежегодные уверенные заявления линуксоидов о превосходстве их любимой операционной системы над Windows, пингвин еще недостаточно созрел, чтобы занять место Windows в качестве настольной операционной системы для повседневного пользования. Иначе откуда у рядового пользователя Linux такая нездоровая тяга к проприетарному программному обеспечению? Налицо положение, интересное своей парадоксальностью, - люди, работающие на свободно распространяемой системе, используют виртуальную машину стоимостью в 300$ только для того, чтобы запускать внутри нее Windows и набор сопутствующих утилит и программ. Самое веселое в этой ситуации то, что за весь список программного обеспечения от Майкрософт и прочих производителей, выполняющегося внутри этой самой машины, все равно нужно платить лицензионные отчисления, если не хочешь иметь проблем с законом. Такой способ работы, по моему личному мнению, похож на разбивание орехов золотым микроскопом внушительных размеров. Результат, ради которого затевались все эти танцы вокруг кактуса, вроде бы достигнут, но возможности VMWare Workstation используются от силы на 10 процентов, да и по деньгам уж очень накладно получается. Особенно если учесть то обстоятельство, что существуют другие способы запустить Windows-программы под Linux. Решить большинство из вышеописанных проблем, возникающих при попытке запуска чужеродного программного обеспечения, можно с помощью Wine, Win4Lin, Crossover Office, bochs.

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

Операционная система, под управлением которой работает программа VMWare Workstation, называется "основной" системой.

В качестве основной операционной системы пока можно использовать только Linux и Windows. К сожалению, 4-я VMWare Workstation еще не портирована для FreeBSD. Поэтому поклонникам этой операционной системы придется довольствоваться несколько устаревшей 3-й версией. Давайте посмотрим, какие дистрибутивы Linux официально поддерживаются и могут выступать в роли основной системы:

Официально поддерживаемыми называются те виды Linux, для которых разработчики VMWare Workstation создали бинарные файлы модулей, загружаемых в ядро. Пользователи всех остальных версий Linux должны компилировать такие модули из исходных текстов самостоятельно. Несмотря на то, что нашего ALT Linux Master 2.2 в этом списке нет, мы все же настроим и запустим VMWare Workstation под его управлением. Разобравшись с Linux, обратим свой взор на Windows. Ниже привожу список операционных систем Windows, рекомендованных к использованию в роли основной:

Теперь перейдем ко второму виду систем. Системы, запущенные внутри контейнера виртуальной машины VMWare Workstation, называются "гостевыми". На данный момент можно запускать следующие системы:

Количество официальных основных и гостевых систем постоянно расширяется, поэтому, если вы не нашли в нем свою систему, не огорчайтесь. Имеет смысл посмотреть самую последнюю версию спиcка по адресу http://vmware.com/support/. Если же и в нем нет вашей системы, не отчаивайтесь. Возможно, что нужная вам система нормально работает внутри виртуальной машины, но персонал фирмы VMWare, ответственный за тестирование новых систем, просто не пробовал устанавливать и запускать ее. К примеру, несмотря на то, что NetBSD, ASP Linux, Black Cat Linux и OpenBSD отсутствуют в приведенном выше списке, все они отлично работали внутри моих тестовых виртуальных машин.



Как ни странно, но, приложив некоторое количество усилий и проведя некоторые нестандартные манипуляции, мне удалось более или менее сносно запустить внутри контейнера даже такую экзотику, как QNX. Хотя она и заработала, но из-за специфических методик тестирования оборудования, используемых на этапе начальной загрузки, ожидание ее длилось почти 15 минут. В процессе тестирования обнаружилось, что временами эта гостевая система по непонятным причинам впадает в глубокую задумчивость на срок от двух до пяти минут. Во всем остальном она работала довольно стабильно. Отсюда делаем вывод, что система виртуальных машин имеет большой запас прочности и работает гораздо лучше, чем думают ее создатели.

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

Человеку, правильно понимающему, как разумно использовать технологию виртуальных машин по прямому назначению, продукт, являющийся предметом обсуждения этой статьи, в первую очередь может принести пользу с помощью существенного ускорения процесса разработки программного обеспечения. Представьте себе ситуацию, часто складывающуюся в процессе разработки программы сразу для нескольких операционных систем. На первый взгляд все довольно легко. Пишем переносимый код и с помощью кроссплатформенного компилятора создаем бинарные файлы для каждой операционной системы. Затем записываем их на сменный носитель или раздел диска, доступный всем операционным системам, установленным на машине. Тестируем работу программы под текущей операционной системой. Завершаем работу с этой операционкой и перегружаем компьютер. Загрузив следующую операционную систему, принимаемся за тестирование образца, предназначенного для нее. И так до тех пор, пока не проверим все варианты. Хорошо, если все версии бинарных файлов работают как нужно с первого раза. Но в жизни подобное счастье приключается весьма редко. Таким образом, большая часть рабочего времени будет потрачена на постоянные перезагрузки из одной системы в другую. Если же мы пользуемся VMWare Workstation, жизнь становится гораздо проще. Под управлением основной системы одновременно запущены сразу все нужные нам операционные системы. Каждая из них сидит в своем контейнере и терпеливо ожидает нашего внимания, пребывая в полной уверенности, что на этом компьютере выполняется только она. Теперь процесс тестирования проходит на порядок быстрее. Нужно только переключаться между операционными системами и проверять работоспособность своей программы.

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

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

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

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

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

В связи со спецификой профессии, мне, как и многим другим администраторам, приходится постоянно разрабатывать способы интеграции между собой разных служб и приложений. Иногда для проверки того или иного решения нужна всего лишь одна машина. А что прикажете делать, если нужно имитировать работу одной или нескольких связанных между собой локальных сетей? В данном случае у нас есть два варианта действий.

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



Второй вариант гораздо проще, удобнее. А самое главное - гораздо более продвинут с технической точки зрения. Все, что нам понадобится, - это компьютер средней мощности. Все наши тестовые сети и компьютеры, находящиеся внутри них, мы создадим, используя средства комплекса виртуальных машин VMWare Workstation. В данной статье будет подробно описана последовательность действий, необходимых для инсталляции VMWare Workstation на Windows 2000 Professional. Затем мы рассмотрим создание макета сетей, изображенного на следующем рисунке.

Как сделать то же самое для ALT Linux Master 2.2, будет описано во второй части этой статьи.

В сетях Vmnet2 и Vmnet3 находятся машины, работающие под управлением операционных систем Windows 98SE и Windows 2000. Машина Windows 98SE имеет статический адрес 192.168.120.15, а Windows 2000 получает адрес 192.168.80.128 динамически с помощью DHCP. Сеть Vmnet1 служит у нас демилитаризованной зоной (DMZ). Внутри нее обитает машина со статическим адресом 192.168.40.32 под управлением Linux Mandrake 9.0, на которой для демонстрации работы сетевых служб будет установлен веб-сервер Apache со статическим адресом. Между собой три сети, перечисленные выше, соединены с помощью шлюза, работающего на основе FreeBSD 4.7 с тремя сетевыми интерфейсами. Я надеюсь, всем понятно, что для более простого функционирования наших сетей все три интерфейса машины FreeBSD тоже должны иметь фиксированные адреса. Ну и в роли нашего последнего пациента выступает машина NetBSD с двумя интерфейсами. Первый из них с адресом 192.168.40.57 смотрит в демилитаризованную зону, а второй является шлюзом в Интернет. На втором интерфейсе 192.168.32.128 работает механизм преобразования сетевых адресов (NAT), это, в свою очередь, дает возможность предоставить доступ к веб-серверу клиентам, находящимся в Интернете. Частично благодаря этому машины, находящиеся в наших локальных сетях, могут легко пользоваться услугами не только Linux веб-сервера, но любого другого веб-сервера, расположившегося в любой точке Интернета.

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

Если верить утверждениям разработчиков, то для того, чтобы сносно работать с VMWare Workstation, нам потребуется компьютер со следующими характеристиками. Скорость процессора минимум 266 MHz, но все же рекомендуется не ниже 400 MHz. Стоит обратить внимание на тот факт, что поддержка мультипроцессорных систем выполнена очень качественно. К примеру, можно указать, на каком из нескольких процессоров будет выполняться та или иная гостевая система. Количество необходимой памяти рассчитываем по следующей формуле - память, необходимая для запуска основной системы, плюс память, требуемая для каждой гостевой системы. Минимумом принято считать 128 Мб, но лучше иметь 256 Мб. Впрочем, как я убедился на собственном опыте, оперативной памяти никогда не бывает слишком много. Видеоадаптер основной операционной системы должен поддерживать режимы с количеством цветов более чем 256. Пространство жесткого диска, необходимое для инсталляции, рассчитывается так же, как и размер оперативной памяти. В зависимости от основной операционной системы, для инсталляции пакета VMWare Workstation нам потребуется иметь 100 Мб свободного пространства на жестком диске для Windows и соответственно 20 Мб для Linux. Считается хорошим тоном отдавать гостевым системам столько же места, сколько нужно для установки каждой из них и всего сопутствующего программного обеспечения на обычный компьютер. В то же время рекомендуется выделять не менее 1 Гб пространства на жестком диске для любой гостевой операционной системы.

Итак, давайте разберемся с теорией функционирования VMWare Workstation. Внутри реальной машины на основе процессора X86 работает основная операционная система. Под ее управлением выполняются приложения, родные для этой системы. Несмотря на тот факт, что VMWare Workstation также является родным для основной системы приложением, между ним и системой находится тонкая прослойка, называемая "слоем виртуализации" и позволяющая виртуализировать работу с оборудованием, установленным на реальной машине. Это нужно для того, чтобы позволить единообразно и прозрачно работать с подобным оборудованием из каждой гостевой системы. Следующая задача, которая решается введением такого промежуточного слоя, - это предоставление всем системам одновременного доступа к оборудованию реальной системы.

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

На основе такого богатого выбора можно создавать любые, даже самые экзотичные, комбинации из вышеперечисленного оборудования. Следующей в нашем списке фигурирует гостевая операционная система, которая работает с созданным нами набором виртуальных устройств. На ее основе запускаются все приложения, предназначенные для работы с этой конкретной системой. Разобравшись с картинкой и принципами функционирования VMWare Workstation, приступим к практическим занятиям.



ALT Linux Master 2.2 в качестве основной Linux-системы был выбран не случайно, так как отсутствует в списке официально поддерживаемых, а также за то, что вовремя оказался под рукой. Кроме всего прочего он довольно широко распространен среди русскоязычных пользователей. Процедура установки на любой из официальных Linux-дистрибутивов слишком проста, чтобы научить читателя чему-то полезному. Многие подводные камни пройдут мимо и не будут замечены до тех пор, пока не придется самостоятельно устанавливать VMWare Workstation для работы под управлением неофициального варианта Linux. Пользуясь моим опытом, читатель ценой малой крови сможет устанавливать VMWare Workstation н а множество других разновидностей Linux. Освоив минимум теории, необходимой для успешной работы с VMWare Workstation, перейдем к активным действиям.

На сайте производителя http://www.vmware.com/download/workstation.html заказываем себе пробный серийный номер для Windows и Linux. Все подобные лицензии действуют в течение 30 дней с момента отправки заказа. Таким образом, мы получаем в свое распоряжение на целый месяц полнофункциональную версию программы. Через несколько минут в наш ящик электронной почты упадет два письма с серийными номерами для разных платформ. Интересно то, что запрашивать пробные номера можно неограниченное количество раз, но на разные почтовые ящики. Вот так можно использовать VMWare Workstation, не нарушая никаких законов, сколько угодно долго. Подобная лояльная политика персонала VMWare.inc вызывает искреннее уважение. Видимо, деньги - не самое важное для них. Как обычно, потакая собственному любопытству, я задался целью посмотреть, как обстоит дело с надежностью защиты, и пошел на ближайший поисковый сервер. Программа, генерирующая серийные номера для любой версии VMWare Workstation, была найдена всего за 15 минут. Протестировав работоспособность создаваемых ключей для Windows и Linux, могу сказать, что они отлично работают и дают доступ к полной функциональности виртуальной машины, снимая всяческие временные ограничения. Годы пользования свободными операционными системами не прошли для меня даром, поэтому я очень не люблю нарушать любые лицензионные соглашения. Опираясь на все вышесказанное, для себя лично принял решение не использовать добытые таким образом серийные номера. Думаю, что маленькие ежемесячные неудобства, связанные с заказом новых пробных лицензий, - терпимая плата за возможность работы с таким потрясающим инструментом без всяких проблем с представителями закона. Вы же можете поступать, как вам заблагорассудится.

В качестве первого этапа работы выполним процедуру инсталляции VMWare Workstation для Windows. То, что нам предстоит сделать, просто, как мычание. Скачиваем отсюда: http://www.vmware.com/download/workstation.htm файл vmware-workstation-4.0.0-4460. Желательно также взять фирменную документацию по теории функционирования виртуальных машин и справочник часто задаваемых вопросов о гостевых системах в формате pdf http://www.vmware.com/support/ws4/doc/. Качество и подробность изложения справочного материала выше всяких похвал.

Запускаем инсталлятор на выполнение и несколько раз нажимаем кнопку "Yes". Затем принимаем лицензионное соглашение.

Определяем целевую папку, куда нужно устанавливать файлы VMWare Workstation.

После этого, следуя предупреждению, отключаем "Автозапуск" для устройства CD-ROM, потому что это может вызывать интересные эффекты в гостевых системах. Представьте себе одновременную попытку выполнить программу автозапуска с только что вставленного CD-ROM внутри основной Windows и всех работающих на данный момент версий гостевых Windows-систем. Ошибки, получившиеся в результате коллизий, вызванных борьбой за доступ к CD-ROM, будут весьма странными.

Отказываемся от поиска файлов, оставшихся от предыдущих версий VMWare Workstation, так как на этой машине она устанавливается впервые. Если бы у нас такие файлы имелись, можно было бы конвертировать их в новый формат и использовать со свежеустановленной версией.

Принимаем поздравления по факту завершения установки. И потихоньку, нажав кнопку "Finish", переходим к следующему этапу.

Через меню Help->Enter Serial Number вводим серийный номер для Windows, взятый из письма. В качестве имени пользователя и названия компании можно писать все, что придет в голову.



В соответствии с требованием программы инсталляции перезагружаем Windows. После загрузки в первый раз запускаем VMWare Workstation. Итак, можно себя поздравить: процедура установки успешно завершена.

Настало время усвоить еще немного теории. Посмотрим, как работает и из каких компонентов состоит подсистема, отвечающая за работу с сетями внутри VMWare Workstation.

Виртуальный коммутатор (virtual switch) является базовой конструкцией, на основе которой мы будем строить наши сети, и предназначен для тех же целей, что и обычный сетевой коммутатор, постоянно встречающийся нам в реальном мире. С его помощью можно соединять между собой все остальные сетевые объекты. Ответственность за автоматическое создание коммутаторов, по мере того как в них возникает надобность, возложена на VMWare Workstation, поэтому нам о них беспокоиться не нужно. Стоит помнить, что коммутаторов может быть не более девяти штук, а значит, и сетей создать на их основе можно точно такое же количество. Каждая сеть, созданная внутри виртуальной машины, получает стандартное имя VMnet и номер, указывающий, на основе какого коммутатора она работает. Таким образом, у нас возникает набор сетей с названиями от VMnet1 до VMnet9. Судя по тому что написано в фирменнной документации количество сетевых адаптеров, которые можно подключить к любому из вышеперечисленных коммутаторов, неограничено.

Мост (bridge) - устройство, позволяющее прозрачно присоединить сетевой интерфейс любой виртуальной машины к локальной сети, в которой работает реальная машина. Виртуальный адаптер получает адрес из пространства реальной сети, а для передачи и приема пакетов используется реальный сетевой адаптер. Таким образом, всем машинам, находящимся в реальной сети, будет казаться, что у реального компьютера появился еще один сетевой интерфейс.

Виртуальный сетевой адаптер хоста (host virtual adapter) создается для того, чтобы соединить гостевую и основную операционные системы. Для этой цели на реальной машине организуется частная сеть класса C. В терминологии VMWare Workstation подобные сети называются (host-only network). В такую сеть входит виртуальный адаптер основной системы. Виртуальный адаптер основной системы нужно создать вручную через интерфейс управления сетями. И только затем можно будет добавлять в целевую сеть адаптеры гостевых систем. Бояться утечки пакетов и проблем с безопасностью при использовании подобных сетевых адаптеров не стоит из-за того, что они не присоединены ни к одной из внешних реальных сетей.

Устройство NAT (Network Address Translation device) - присоединяет виртуальный адаптер к существующему реальному. Но в отличие от случая, в котором используется мост, никаких новых интерфейсов в реальной сети не появляется. Программное обеспечение NAT перехватывает все проходящие пакеты и изменяет их так, чтобы системы, находящиеся в реальной сети, считали, что общаются с реальным адаптером основной системы. При каждом запросе, исходящем от виртуального адаптера, NAT записывает запрос в специальную таблицу преобразований и открывает соединение с целевой системой, используя определенный диапазон портов реального интерфейса, и через него отправляет пакет. По приходу ответа, опираясь на номер порта, NAT преобразует пакет к виду, приемлемому для виртуальной сети, и отдает его виртуальному адаптеру, по запросу которого создавалось соединение. Таким образом, появляется возможность одновременной работы нескольких виртуальных адаптеров через один реальный сетевой адрес.

Устройство NAT (Network Address Translation device) - присоединяет виртуальный адаптер к существующему реальному. Но в отличие от случая, в котором используется мост, никаких новых интерфейсов в реальной сети не появляется. Программное обеспечение NAT перехватывает все проходящие пакеты и изменяет их так, чтобы системы, находящиеся в реальной сети, считали, что общаются с реальным адаптером основной системы. При каждом запросе, исходящем от виртуального адаптера, NAT записывает запрос в специальную таблицу преобразований и открывает соединение с целевой системой, используя определенный диапазон портов реального интерфейса, и через него отправляет пакет. По приходу ответа, опираясь на номер порта, NAT преобразует пакет к виду, приемлемому для виртуальной сети, и отдает его виртуальному адаптеру, по запросу которого создавалось соединение. Таким образом, появляется возможность одновременной работы нескольких виртуальных адаптеров через один реальный сетевой адрес.

Настал момент, когда нужно снова прекратить грызть гранит науки и опять начать практическую деятельность по настройке макета наших виртуальных сетей. Под Windows для выполнения этой задачи служит программа управления сетями "Virtual Network Editor". Запускаем ее, последовательно пройдя через меню Пуск->Программы->VMWare Workstation->Manage virtual networks. Того же результата можно добиться, если выбрать в работающей VMWare Workstation пункты меню Edit->Virtual Network Settings.

На первом экране видим суммарную статистику по виртуальным сетям, созданным с настройками по умолчанию во время инсталляции VMWare Workstation. Итак, судя по картинке, сеть VMnet0 зарезервирована для устройств типа мост. Таким образом, VMnet1 - это (host-only) сеть 192.168.149.0 из адресного пространства, выделенного для частных сетей. Ну и VMnet8 сеть 192.168.32.0 соответственно служит для устройств NAT.

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

Здесь мы видим список наших сетей. Надпись "Not bridged" означает что сеть не настроена и на данный момент не может быть использована.

Далее идет список виртуальных сетевых адаптеров, функционирующих в нашей системе. Судя по рисунку, активированы адаптеры для сетей VMnet1 и VMnet8.

Следующий снимок показывает интерфейс, позволяющий управлять виртуальным DHCP-сервером. Как мы видим, он обслуживает сети 192.168.149.0 (VMnet1) и 192.168.32.0 VMnet8.

Самый последний из показанных экранов демонстрирует возможности управления сервисом NAT, активированным для сети VMnet8.

Для создания виртуальных сетей host-only и NAT используются сети класса C из адресного пространства, выделенного для частных подсетей. Адреса таких сетей начинаются с 192.168.0.0 и продолжаются по 192.168.255.255 включительно. Выше по тексту мы обсуждали применение виртуального DHCP-сервера для раздачи адресов сетевым интерфейсам наших гостевых систем. Давайте посмотрим, как это работает, и в качестве примера будем использовать схему адресации для вымышленной сети 192.168.13.0.



Распределение адресов в сетях типа host-only.

Адреса

Предназначение

Пример

1

Используется основной системой

192.168.13.1

2 - 127

Диапазон статических адресов

192.168.13.2 - 192.168.13.127

128 - 253

Распределяются с помощью DHCP сервера

192.168.13.128 - 192.168.13.253

254

Адрес нашего DHCP сервера

192.168.13.254

255

Зарезервирован для широковещательной рассылки

192.168.13.255

Распределение адресов в сетях, использующих NAT.

Адреса

Предназначение

Пример

1

Используется основной системой

192.168.13.1

2

Устройство NAT

192.168.13.2

3 - 127

Диапазон статических адресов

192.168.13.3 - 192.168.13.127

128 - 253

Распределяются с помощью DHCP сервера

192.168.13.128 - 192.168.13.253

254

Адрес нашего DHCP сервера

192.168.13.254

255

Зарезервирован для широковещательной рассылки

192.168.13.255

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

Итак, на рисунке мы видим все перечисленные ранее хосты и их интерфейсы. Присмотревшись внимательно, легко разобраться в соответствии между IP-адресами и интерфейсами. Далее изображены три виртуальных коммутатора для сетей host-only VMnet1 (192.168.40.0), VMnet2 (192.168.80.0), VMnet3 (192.168.120.0). Соответственно для работы с устройством NAT (192.168.32.2) предназначена сеть VMnet8, для которой по умолчанию используется адресное пространство 192.168.32.0. Также обратите внимание на тот факт, что виртуальные DHCP-сервера работают только в сетях VMnet2 и VMnet8. Исходя из того факта, что в сетях VMnet1 и VMnet3 используются статические IP-адреса, DHCP-сервера этих сетей отключены за ненадобностью.

Снова открываем программу управления нашими виртуальными сетями. Первым делом нужно изменить наст-ройки сети VMnet1. По умолчанию она привязана к адресному пространству 192.168.149.0. По моему мнению, такую комбинацию цифр неудобно запоминать, поэтому мы исправим адрес VMnet1 на 192.168.40.0. Для этого выбираем вкладку "Host Virtual Network Mapping" и нажимаем кнопку "..." напротив надписи VMnet1.

После этого активизируем вновь появившееся подменю "Subnet".

Вносим данные о нашей сети 192.168.40.0, по умолчанию используется сетевая маска 255.255.255.0. Нажимаем кнопку "OK" и вновь возвращаемся к интерфейсу управления сетями. Стоит крепко-накрепко запомнить, что после внесения любых изменений необходимо каждый раз нажимать кнопку "Применить", иначе ничего не произойдет.



Теперь переходим на вкладку DHCP и, выбрав запись, указывающую что для сети VMnet1 включена раздача IP-адресов с помощью DHCP, нажимаем кнопку "Remove". И, как всегда, для завершения щелкнем по кнопке "Применить". После того как мы разобрались с сетью VMnet1, осталось создать еще две сети VMnet2 и VMnet3. Снова возвращаемся к вкладке "Host Virtual Network Mapping" и опять жмем кнопку "..." напротив надписи VMnet2. Как всегда, выбираем пункт меню "Subnet" и в появившемся диалоговом окне вписываем 192.168.80.0. Как обычно, не забываем уделить внимание кнопкам "OK" и "Применить". Пока что наша сеть не активирована, потому что в основной системе нет виртуального адаптера, отвечающего за нее. Поэтому переходим на вкладку "Host Virtual Adapters" и жмем кнопку "Add new adapter".

Проверяем, чтобы в выпадающем списке была выбрана сеть VMnet2, и снова жмем "OK".

Не стоит расслабляться и считать работу выполненной после того, как в списке адаптеров появится надпись "New device". На самом деле новый адаптер еще не создан. Как всегда, используем по прямому назначению кнопку "Применить", после этого ждем, пока система выйдет из задумчивого состояния и обновит список адаптеров. На экране должно появиться что-то похожее на следующую картинку.

По умолчанию после того, как создан новый виртуальный адаптер, внутри только что налаженной сети начинает работать DHCP-сервер. Вы можете в этом убедиться, выбрав вкладку "Host Virtual Network Mapping" и нажав кнопку "...". Теперь в выпадающем меню появился добавочный пункт "DHCP". Если выбрать его, то в ответ получим следующий диалог, позволяющий менять настройки DHCP-сервера. Кстати, точно такого же эффекта можно добиться, если нажать на вкладку DHCP главного интерфейса, выбрать нужную сеть и использовать кнопку "Properties". Все вышеописанные манипуляции производились с целью показать, как легко и просто можно менять опции DHCP, но так как в данном случае нас устраивают настройки по умолчанию, то изменять мы ничего не станем.

В документации, поставляющейся вместе с VMWare Workstation, говорится, что сети VMnet рекомендуется строить на основе частных сетей класса C. Нигде не сказано, что создавать сети других классов запрещено, и поэтому я решил проверить, можно ли получить виртуальные сети класса B и С. В процессе создания сети все идет нормально, и никакие ошибки на экране не появляются. VMWare Workstation ни на что не жалуется, но ни одна из свежесозданных сетей не работает. Повторив свой неудачный эксперимент несколько раз, с сожалением констатирую, что нам придется работать только с сетями класса C.

Покончив с лирическими отступлениями, переходим к созданию последней из необходимых нам сетей. Думаю, читатель уже достаточно поднаторел в подобном ремесле и сможет самостоятельно создать сеть VMnet3 с адресным пространством 192.168.120.0. По окончании процесса желательно не забыть отключить DHCP для этой сети. Впрочем, если вы этого не сделаете, то ничего страшного не произойдет, но дизайн сети будет уже не таким опрятным. В вашей голове может возникнуть вопрос: "Если все и так работает, зачем делать лишние движения"?. Я считаю, что все эти процедуры желательно выполнять, потому что такой подход упрощает понимание механизмов действия наших сетей. Посмотреть список виртуальных адаптеров, появившихся внутри основной системы, можно, пройдя через меню Пуск->Настройка->Сеть и удаленный доступ к сети.

Ради удовлетворения собственного любопытства можете посмотреть опции любых адаптеров.

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

Вот теперь самое время приступить к созданию виртуальных машин. Итак, запускаем VMWare Workstation и первым делом создадим машину с Windows 98 SE. Вначале была опробована обычная версия Windows 98, которая проинсталлировалась, как положено, с первого раза. Но ни у меня, ни у кого-либо из знакомых лицензий на неё не было. Поэтому пришлось снести ее и использовать OEM-версию Windows 98, поставлявшуюся с рабочими станциями для фирмы, в которой я сейчас работаю. Кстати, стоит отметить, что пришлось перепробовать несколько версий системы, поставлявшихся с разными партиями оборудования. Из четырех вариантов три подвисали на разных этапах установки. Видимо, дело в том, что они рассчитаны на довольно-таки специфическое оборудование. После того как был найден дистрибутив, нормально работающий под виртуальной машиной, началась установка. Итак, первым делом выбираем меню File->New->New Virtual Machine. В ответ получаем диалог помощника, который будет сопровождать нас в процессе создания новой виртуальной машины.

Нажав кнопку "Next", переходим к следующему шагу.

Теперь нужно выбрать, какой тип конфигурирования мы будем использовать. По умолчанию используется опция "Typical". Если выбрать ее, то VMWare Workstation без нашего участия решит, какой набор устройств стоит включить в создаваемую виртуальную машину. Мне такой подход не нравится, потому что я предпочитаю самостоятельно выбирать необходимые компоненты. А значит, нам нужно использовать опцию "Custom".



Пришел черед выбрать операционную систему. Я думаю, вы уже догадались, что нам нужна Windows 98.

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

На следующем шаге нужно решить, сколько оперативной памяти будет доступно создаваемой виртуальной машине. Судя по картинке, основная система располагает 256 Мб оперативной памяти, из которых 192 Мб отдано для нужд VMWare Workstation и работающих внутри нее виртуальных машин. Автоматический помощник предлагает по умолчанию выделить вновь создаваемой системе 64 Мб, но я думаю, что и 32 Мб хватит с головой. Если уж быть совсем жестоким, то можно поставить 16 Мб, но тогда появится некоторое некритичное, но все же неприятное замедление работы этой виртуальной машины. Стоит обратить внимание, что размер выделяемой памяти должен быть обязательно кратен 4 Мб.

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

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

По умолчанию предлагается интерфейс мост "Bridged Networking", но нас это не устраивает, так как машина должна находиться в сети VMnet3. Если мне не изменяет память, то эта сеть относится к классу host-only, поэтому выбор очевиден.

Наступило время решить, каким образом будут храниться данные, записываемые на жесткий диск виртуальной машины. Опция "Create New Virtual Disk" приказывает создать новый файл-хранилище для виртуального диска. За ней идет "Use an existing Virtual Disk", позволяющая использовать файл, созданный ранее. Например, такой файл может остаться от другой виртуальной машины, которую вы решили переустановить. Последняя опция "Use a physical disk" дает нам возможность использовать в качестве виртуального диска какой-либо раздел жесткого диска реальной машины. Эта опция довольно опасна, потому что позволяет по неосторожности легко уничтожить данные в любом разделе реального жесткого диска. Выбираем первую опцию и, как всегда, жмем "Далее".

Следующий экран позволяет определить размер в Гб жесткого диска, выдаваемого гостевой системе. Я думаю, что 0,5 Гб, или, проще говоря, 500 Мб, будет достаточно. Следующая опция "Allocate all disk space now" позволяет выделить все необходимое место сразу. Таким образом, на жестком диске основной системы у нас появится файл размером 500 Мб, заполненный нолями. Такой способ работы ускоряет выполнение операций записи на виртуальный диск из гостевой системы, но в то же время уменьшает свободное место реального жесткого диска. В противовес такому подходу можно выделять пространство внутри виртуального диска динамически, в ответ на запросы гостевой системы. Это будет слегка медленнее, зато виртуальная машина будет занимать гораздо меньше места на жестком диске реальной системы. Я решаю использовать схему с динамическим распределением места. Последняя из опций, доступных на этом экране, "Split disk into 2 GB files", позволяет разбить большой виртуальный диск на файлы размером по 2 Гб. Таким образом, виртуальный диск размером в 4,5 Гб на жестком диске реальной системы будет представлен двумя файлами по 2 Гб и одним файлом с размером 0,5 Гб. Эта возможность нужна, если файловая система основной операционки не поддерживает файлы размером более 2 Гб. Эта опция нас также не интересует, поэтому оставляем ее нетронутой.

Далее нам предлагают придумать имя для файла, в котором будет храниться файловая система виртуальной машины. Вариант по умолчанию отлично подходит для этих целей. Поэтому жмем кнопку "Готово", завершая процесс предварительной настройки виртуальной машины.

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

Для начала нам нужно настроить сетевой адаптер системы так, чтобы он находился в сети VMnet3. Для этого используем меню Edit->Virtual Machine Settings.

Выбираем пиктограмму сетевой карты и получаем возможность редактировать ее параметры. Из ниспадающего списка выбираем VMnet3 и снова жмем "OK". Немного передохнув, с воодушевлением приступаем к установке операционной системы. Для того, чтобы подать электропитание на нашу виртуальную машину, жмем клавишу с зеленой стрелкой и смотрим, как происходит включение.

Надпись внизу экрана подсказывает нам о необходимости нажать клавишу "F2", чтобы войти в интерфейс управления BIOS. С радостью выполняем это действие и попадаем внутрь самого что ни на есть настоящего BIOS. Инсталляцию мы начнем с заранее припасенной загрузочной дискеты.

Теперь нужно перейти в раздел "Boot" и с помощью клавиш "+" и "-" выставить список загрузочных устройств так, как изображено на рисунке. После этого, воспользовавшись меню "Exit", выходим с сохранением внесенных изменений. Гостевая система снова начнет перезагрузку. После того как загрузка с дискеты успешно завершилась, с помощью программы fdisk создаем основной раздел и делаем его активным. Для того, чтобы изменения вступили в силу, снова перезагружаемся. Для этого можно использовать клавишу, находящуюся на панели инструментов VMWare Workstation и состоящую из двух разноцветных стрелок, обвивающихся друг вокруг друга. После загрузки командой format c: размечаем единственный раздел жесткого диска. Стоит отметить, что загрузочная дискета, которой я пользуюсь, с помощью драйвера mscdex самостоятельно подключает к системе CD-ROM с дистрибутивом. По завершении процесса переходим на диск D: и запускаем оттуда инсталляцию системы. Я думаю, что каждый из вас много раз выполнял последовательность действий, необходимых для успешной инсталляции Windows, поэтому опускаю рутинные подробности. Примерно через 20 минут происходит первый запуск Windows. На вашей машине этот временной промежуток может быть более или менее продолжительным. Все зависит от скорости реального жесткого диска. В процессе первой загрузки Windows обнаружит следующие устройства:



Для них будут автоматически подобраны наиболее подходящие драйвера. Конечно, изображение на экране оставляет желать лучшего, но нас это на данный момент не особенно интересует. Сейчас для нас самая главная задача - настроить сетевую подсистему Windows. Открываем настройки сетевой карты Windows и вносим туда вот такие данные: IP-адрес 192.168.120.15 и маску сети 255.255.255.0.

В качестве шлюза по умолчанию устанавливаем адрес 192.168.120.2. После перезагрузки нужно будет проверить, правильно ли применились сетевые параметры. Если все произошло так, как мы хотели, то можно считать настройку этой машины оконченной. Для того, чтобы она не мешала нам работать, ее можно выключить. Если выключать желания нет, то можно применить более элегантный прием. С помощью меню Power->Suspend или кнопки, состоящей из двух желтых линий, можно перевести виртуальную машину в состояние глубокого сна. В таком режиме она не будет использовать системные ресурсы. Все программы, выполнявшиеся внутри машины, будут остановлены и заморожены, их выполнение продолжится с того же места, где они были остановлены, только после того, как вы воспользуетесь меню Power->Resume или клавишей, включающей питание этой виртуальной машины.

Завершив настройку Windows 98, переходим к настройке FreeBSD 4.7. Большинство действий, производимых нами, будет схоже с предыдущим примером. Будем заострять внимание только на отличиях. Итак, я создал виртуальную машину с жестким диском размером в 1 Гб дискового пространства и 32 Мб оперативной памяти, если возникнет надобность и желание что-либо менять, можете отдать ей гораздо меньше ресурсов. На быстродействие этой системы подобные изменения никак не повлияют. Стоит также отметить, что для FreeBSD лучше выделить все место сразу в файле виртуального диска. Как это делать, мы обсуждали во время установки Windows. Если этого не сделать, то посреди инсталляции вас может поджидать неприятность.

Видимо, в момент установки программного обеспечения обмен с винчестером слишком интенсивен, и дисковая подсистема Windows не выдерживает такой нагрузки. Кстати, при использовании Linux в качестве основной системы такой ошибки я не встречал ни разу. В принципе ничего страшного тут нет

Перед запуском инсталляции в машину нужно добавить еще две дополнительные сетевые карты. Как, наверное, догадались самые любознательные читатели, мы снова воспользуемся меню Edit->Virtual Machine Settings. Во-первых, убеждаемся, что первая сетевая карта привязана к сети Vmnet1. После этого нажимаем кнопку "Add", затем в новом окне нажимаем кнопку "Далее". В следующем диалоговом окне выбираем строку Ethernet Adapter и снова жмем "Далее".

Стоит обязательно настроить все так, чтобы вновь добавляемая карта была предназначена для сети VMnet2. Жмем на кнопку "Готово". Как видите, процедура добавления нового оборудования в систему довольно проста. Самостоятельно добавляем еще одну карту с привязкой к VMnet3. Стоит отметить, что внутри VMWare Workstation стоит ограничение на количество сетевых карт, которые можно добавить в одну машину. Ни одна виртуальная машина не может иметь более трех сетевых карт. Завершив предварительные приготовления, запускаем инсталляцию. Настраиваем BIOS так, чтобы загрузка шла с CD-ROM, потому что дистрибутив системы у нас находится именно там. Я думаю, разметить диск и инсталляцию FreeBSD вы сможете самостоятельно. После того как система загрузилась первый раз, нам нужно настроить сетевую подсистему. Сетевые интерфейсы, которые мы добавили в систему, называются lnc0, lnc1 и lnc2 соответственно. Для того чтобы они заработали как положено, настраиваем систему с помощью программы /stand/sysinstall или вручную вносим следующие данные в файл rc.conf:

gateway_enable="YES"
defaultrouter="192.168.40.57"
ifconfig_lnc0="inet 192.168.40.2 netmask 255.255.225.0"
ifconfig_lnc1="inet 192.168.80.2 netmask 255.255.225.0"
ifconfig_lnc2="inet 192.168.120.2 netmask 255.255.225.0"

Перезагружаем систему для того, чтобы настройки вступили в силу. Как только перезагрузка завершится, можно разморозить машину Windows или запустить ее, если она у вас еще не запущена. Как только Windows загрузится, выбираем меню Пуск->Программы->Сеанс MS-DOS, в появившемся окне командной оболочки пробуем выполнять по очереди нижеследующие команды:

ping 192.168.120.2
ping 192.168.80.2
ping 192.168.40.2

Все команды должны показать, что ICMP-пакеты достигли цели и благополучно вернулись назад.

Итак, переходим к следующей машине, которая будет выступать у нас в роли веб-сервера. На нее нам предстоит установить Linux Mandrake. Как и в случае FreeBSD, установка у нас происходит с CD-ROM. Этой машине мы выделяем 1 Гб пространства жесткого диска и 64 Мб оперативной памяти. Сетевой адаптер у нас один, и он принадлежит к сети VMnet1, я надеюсь, вы сможете сделать так, чтобы это соответствовало истине, самостоятельно. За счет использования графической оболочки процесс инсталляции проходит совершенно безболезненно. Главное - не забыть заказать инсталляцию веб-сервера apache. Под конец установки дать системе IP-адрес 192.168.40.32 и назначить шлюзом по умолчанию IP 192.168.40.2, принадлежащий машине FreeBSD. В остальном все выглядит довольно прозрачно.

Следующим нашим пациентом становится машина на основе OEM версии Windows 2000 Professional. Как вы уже догадались, ничего нетипичного здесь нет. Инсталляция выполняется с загрузочного CD-ROM. Для работы этой машины выделен 1 Гб жесткого диска и 64 Мб оперативной памяти. Изюминкой, ради которой была затеяна возня с этой машиной, является работа с DHCP. После того как инсталляция Windows 2000 будет окончена, нужно настроить свойства протокола TCP/IP так, как показано на рисунке.

Таким образом, мы разрешаем этой системе получать адрес от DHCP-сервера. И результат не заставит себя ждать. Находясь в командном интерпретаторе, выполняем команду ipconfig /all.

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

Теперь самое время перейти к нашей последней и, возможно, самой интересной инсталляции. Сейчас мы создадим машину на основе NetBSD, которая будет служить для нас шлюзом в Интернет. Интересные моменты начинаются практически сразу после начала создания виртуальной машины. NetBSD нет в списке официально поддерживаемых VMWare Workstation систем, поэтому во время выбора типа системы мы будем использовать опцию "Other". Выделяем 300 Мб свободного пространства на жестком диске и 32 Мб оперативной памяти. Для такой маленькой системы, как NetBSD, этого будет вполне достаточно. Как всякому порядочному шлюзу между сетями, даем две сетевые карты: первая из них смотрит в VMNet1 и имеет адрес 192.168.40.57, а вторая получает адрес 192.168.32.128 и направлена в сторону VMNet8. Также в этой сети по адресу 192.168.32.2 находится устройство NAT. Я надеюсь, вы сможете самостоятельно добавить устройства этих сетевых карт в виртуальную машину. Инсталляцию мы будем проводить не с CD-ROM, а с его iso-образа. Согласитесь, довольно полезная возможность, если вы скачали образ диска из Интернета, а под рукой нет пишущего CD-ROM. Итак, чтобы пристыковать образ как диск CD-ROM, нужно сделать следующее. Настраиваем в BIOS загрузку с CD-ROM, затем в списке оборудования выбираем этот самый CD-ROM. Изменяем его свойства так, чтобы стала активна опция "Use ISO Image", затем с помощью кнопки "Browse" выбираем необходимый файл образа.

Поскольку для связи с внешним миром NetBSD будет использовать NAT, нужно немного подправить настройки сети VMnet8. Как обычно, для этих целей используем редактор сетей VMWare Workstation. Выбираем вкладку NAT, убеждаемся, что выбрана именно VMnet8, и жмем клавишу "Edit", в ответ открывается диалог настроек NAT. Нам нужно идти глубже, поэтому жмем на клавишу "Port forwarding". Появляется еще одно окно, разделенное на два окна поменьше, верхняя часть отвечает за проброс внутрь сети входящих TCP-пакетов, а нижняя соответственно UDP. Нам нужно настроить TCP, поэтому используем кнопку "Add" верхнего окна.

Настраиваем проброс так, чтобы все входящие пакеты с порта 80 попадали на порт 80 веб-сервера. Несколько раз жмем кнопку "OK" и затем один раз кнопку "Применить".

Вот теперь можно начинать установку NetBSD. Оболочка инсталлятора очень похожа на оболочку FreeBSD, поэтому, я думаю, проблем с ней возникнуть не должно. Главное - не забыть настроить сетевую карту, смотрящую в сеть VMnet1 на адрес 192.168.40.57. Вторая карта будет получать параметры своих настроек от сервера DHCP, работающего в сети VMnet8. Кстати, стоит отметить, что шлюзом по умолчанию для второй карты будет адрес устройства NAT. По окончании установки и настройки NetBSD все наши подопытные сети смогут ходить в Интернет, а также пользоваться услугами внутреннего веб-сервера. А клиенты из внешних сетей будут видеть веб-сервер на 80-м порту сетевого адаптера нашей реальной машины. В результате при заходе на веб-сервер из любой сети должна получаться вот такая картинка.

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


Ссылка: http://www.oszone.net/1767/