home start up prev next

6.4. Network Address Translation (NAT)

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

Виртуальная машина с сетевым интерфейсом в режиме NAT подключается к сети, также как реальный компьютер подключается к Internet через маршрутизатор. "Маршрутизатором" в данном случае выступает сетевой модуль VirtualBox, который обрабатывает сетевой трафик виртуальной машины. Недостаток режима NAT, как и в случае локальной сети за маршрутизатором, в том что виртуальная машина недоступна для внешней сети (internet); вы не можете обрабатывать сетевые запросы, пока не настроите переброс портов (описывается ниже).

Виртуальная машина получает сетевой адрес и другие его настройки в локальной сети от сервера DHCP встроенного в VirtualBox. Таким образом IP адрес присваивается виртуальной машине отличный от сетевого адреса сети хоста. Возможно настроить использование нескольких сетевых карт в виртуальной машине в режиме NAT, тогда первая карта будет принадлежать локальной сети 10.0.2.0, вторая 10.0.3.0 и т.д. Если вам необходимо изменить диапазон выдаваемых IP, то обратитесь к Разделу 9.12, “Настройка адреса сетевого интерфейса NAT” .

Сетевые пакеты посылаемые гостевой ОС получает модуль VirtualBox NAT, который обрабатывает данные стека TCP/IP и пересылает их операционной системе хоста. Он определяет какие данные посылать приложениям хоста, а какие другим компьютерам той же сети, что и хост, используя сетевой интерфейс хоста . VirtualBox также перехватывает и пересылает ответные пакеты гостевой машине.

6.4.1. Переброс портов (port forwarding) в NAT

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

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

Вы можете настроить переброс портов, используя команду VBoxManage . Вам необходимо знать какие порты используются в госте сетевой службой и определить какие порты использовать на хосте (не обязательно использовать номера тех же портов, что и в гостевой системе). Вы можете использовать любые порты на хосте, которые не используются им. В примере показано, как настроить службу ssh :

VBoxManage setextradata "Linux Guest"
      "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "Linux Guest"
      "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "Linux Guest"
      "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222

В приведенном примере используется виртуальная сетевая карта PCNet; если вы используете в гостевой системе Intel PRO/1000, то замените "pcnet" на "e1000". Так же, если вы хотите настроить интерфейс отличный от приведенного (первый виртуальный сетевой интерфейс), то замените /0/ нужным номером. Номера интерфейсов pcnet и e1000 нумеруются отдельно и для обеих нумерация начинается с 0.

Имя guestssh выбрано произвольно для этого конкретного переброса порта. При данной настройке, все TCP соединения на порт хоста 2222 будут перенаправлены на 22 порт гостевой системы. Параметр Protocol может принимать одно из двух значений: TCP или UDP (обязательно заглавными буквами, значение чувствительно к регистру). Для удаления данной настройки, используйте те же команды, но без указания значений параметров (в данном случае TCP , 22 и 2222 ).

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

6.4.2. PXE загрузка в NAT

Механизм загрузки PXE теперь поддерживается в режиме NAT. Сервер NAT DHCP предоставляет загрузочный файл vmname.pxe если существует каталог TFTP в каталоге где находится файл VirtualBox.xml. Пользователю должен обеспечить существование корректного файла vmname.pxe .

6.4.3. Ограничения NAT

Существует четыре ограничения в режиме NAT о которых необходимо знать:

Ограничения протокола ICMP:

Многие часто используют сетевые утилиты отладки ( ping или tracerouting) используют протокол ICMP для отправки и получения сообщений. Хотя поддержка ICMP протокола была значительно улучшена в VirtualBox 2.1 ( ping теперь работает), но при работе с некоторыми утилитами возможны проблемы.

Широковещательные пакеты UDP:

Гостевые системы осуществляют ненадежное получение широковещательных пакетов, что сделано для улучшения производительности, они получают широковещательные пакеты только в определенный промежуток времени, после того как гость отсылает пакет UDP. Как следствие, протокол разрешения имен NetBios не всегда работает корректно (но WINS работает). В данном случае используйте обходной путь - вы можете использовать непосредственно IP адреса для доступа к сетевым ресурсам \\server\share.

Не поддерживается протоколы, такие как GRE:

Протоколы отличные от TCP и UDP не поддерживаются. Это означает что нельзя использовать VPN ( PPTP от Microsoft). Существуют другие реализации VPN которые используют TCP и UDP.

Переброс портов хоста < 1024 невозможен:

На Unix системах (Linux, Solaris, MacOS X) нельзя использовать порты с номерами меньше 1024 в приложениях которые запущены не с правами root . В результате, если вы попытаетесь настроить переброс таких портов, то ВМ не запустится.

Эти ограничения обычно не влияют на обычное использование сети. Но наличие их в NAT режиме может приводить к проблемам в сетевой работе. Приведем пример - NFS, часто сервера настроены так, что отказывают в соединениях от непривилегированных портов (т.е. портов с номерами меньше 1024).

home start up prev next
Сайт создан в системе uCoz