Настройка и работа в Linux
adb5321d

Установка сети: есть из чего выбирать, главное не запутаться


Настройка сетевых интерфейсов — это самое важное, поскольку вряд ли кто-то ставит FreeBSD или Linux с иной целью, чем задействовать сетевые возможности последних. Представляемые виртуальные машины имеют несколько принципиально различных методов подключения к вашему компьютеру и ко внешней сети. Рассмотрим (как более канонический вариант) схемы подключения vmware и потом перечислим отличия в VirtualPC.

Существует три основных режима подключения виртуальной машины к сети: Bridged mode, NAT и Host Only, схематически показанные на рисунке.

Bridged mode дает виртуальной машине непосредственный доступ к внешнему интерфейсу хост-машины, на котором виртуальная машина самостоятельно устанавливает или получает через DHCP собственные сетевые параметры — такие как IP-адрес, маршрутизатор по умолчанию и тому подобные. Этот вариант подключения нужно использовать для тех случаев, когда на VM вы устанавливаете серверы, которые должны иметь определенные сетевые адреса.

NAT использует трансляцию адресов исходящего трафика. Напомню, что в этом случае адрес виртуальной машины, полученный по встроенному в NAT DHCP, в момент пересылки на внешний протокол подменяется на адрес хост-машины. При этом запрос помещается в таблицу запросов. Полученные ответы от удаленных систем сверяются с этой таблицей — и по ряду параметров находится соответствие, по типу «в ответ на ваше письмо от такого-то какого-то рады вам сообщить…». При пересылке в VM адрес снова подменяется, так чтобы программа, запросившая информацию, получила пакеты на свой порт и адрес. Таким образом пересылаются запросы и в серверные приложения, к которым пользователь обычно не обращается напрямую, например DNS.

NAT без проблем работает на исходящем трафике, но в случае входящего запроса все запросы приходят на адрес хост-машины, поскольку во внешнем мире все NAT-адреса были представлены одним адресом хост-системы. Для того чтобы виртуальная машина могла получать входящий трафик, на хост-машине необходимо вручную установить правило ретрансляции, смысл которого примерно следующий: «входящие пакеты на порту таком-то переводить в ВМ такую-то на порт такой-то (порт обычно тот же самый)». То есть доступ к серверу можно осуществлять и через NAT, но это требует дополнительной настройки. Для более подробной инструкции по настройке NAT под VMWare ищите «Understanding NAT» в справочном пособии и изучайте файл C:\WINNT\system32\vmnetnat.conf.

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

Завершая эту тему, нужно отметить, что все это относится к одному сетевому интерфейсу ВМ, виртуальной сетевой карточке, создаваемой по умолчанию при создании ВМ. Впоследствии вы можете создать любое количество таких интерфейсов — и на каждом настроить свой режим, превратив ВМ в маршрутизатор, NAT, DHCP и настроив его, как любой сервер.

Пару слов о VirtualPC, которая «тоже ВМ». Настройки здесь слабее, но, в общем, то же самое. Первый режим — None, никакой сети. Зачем он нужен — большая тайна Connectix. Второй режим — NAT, но, в отличие от VMWare, здесь никакой настройки не предусматривается, так что «A guest PC using Shared Networking is not able to act as an Internet server». Кроме NAT, есть еще режим Virtual Switch, что наиболее точно соответствует Bridged mode в VMWare. То есть виртуальная машина имеет свой собственный IP на внешнем интерфейсе хоста, со всеми вытекающими последствиями. У этого режима есть дополнительный фильтр, который ограничивает хождение пакетов «только между ВМ», «ВМ и хост» и «только наружу». При всей фантазии я не смог придумать этим фильтрам какого-то применения, так что оставляю это читателям в качестве лабораторной работы.

6. Настройка производительности

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

Например, для нормальной работы Windows 2000 нужен (для ваших целей — в зависимости от того, что вы там гоняете) Pentium II/III 600. Для работы вашего Linux-сервера в терминальном режиме требуется Pentium 300. Просто складывая эти числа, вы получите искомый 1 ГГц, на котором обе системы будут поддерживать прежнюю производительность.

В меню Settings > Preferences на закладке Priority VMWare есть установка приоритетов, помогающая тонко настроить приоритет вашей виртуальной машины при распределении циклов процессора. Global обозначает настройку для всех виртуальных машин. Локальная настройка относится только к текущей виртуальной машине. Grabbed input соответствует режиму, когда виртуальная машина получает управление и захватывает ввод пользователя; Ungrabbed, соответственно,- фоновому режиму виртуальной машины (даже если ее окно и находится на переднем плане).

Особое внимание нужно обратить на память, учитывая, что она выделяется статически, в момент запуска виртуальной машины. Поскольку на хост-системе установлена виртуальная память, можно загрузить несколько виртуальных машин — и под все будет распределена память. Но поскольку вся она (на 90%) будет в файле подкачки, производительность упадет драматически. Рассчитывайте память честно, беря в расчет только физическую память. Например, современные Linux-системы с Gnome для комфортной работы требуют около 128 Мб памяти. Плюс в хост-режиме под NT5 вы планируете обрабатывать графику (как я, например, обрабатываю скриншоты), что, по моим оценкам, тоже требует около 128 Мб. Добавьте сюда еще несколько приложений, таких как браузер, почтовый клиент, текстовый редактор. Таким образом, система с 256 Мб будет показывать несколько замедленную реакцию в требовательных к памяти приложениях, а вот установка 256 + 128 Мб обеспечит полный комфорт в работе.

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

7. Вопрос последний, который возникает первым: «Как мне выйти из этой виртуальной машины?»

В VMWare нажмите левые <Alt + Ctrl>, в VirtualPC — правый <Atl>. Эти же комбинации вернут вас к хост-системе из полноэкранного виртуального режима. Другое дело - как вообще вернуться из виртуального компьютерного мира в реальную жизнь, но для этого клавишной комбинации пока не предусмотрено.

Арсений Чеботарев,
ac@comizdat.com [an error occurred while processing this directive]



Содержание раздела