Автор: CHIRT
Дата сообщения: 24.10.2007 20:21
2 maz544008
Всё не так сложно, как кажется.
Во-первых (очень просто), хост подключается к сети посредством сетевого интерфейса, а ядром сети (т.е., по сути, самой сетью, если исключить среду передачи, например, провода) является комутатор или свич. Сетевых интерфейсов может быть множество. Чтобы все работало хорошо, необходимо чтобы все интерфейсы были правильно настроены, т.е. они должны иметь адреса из непересекающихся подсетей. Иначе, компьютер не будет знать, через какой интерфейс слать пакет. Либо может слать не через тот, который нужно. Или, например, может сегодня слать пакет через один интерфейс, а завтра через другой, и будет казаться, что сеть то работает, то нет. Кроме того, на одном из интерфейсов (только на одном!) настраивается, т.н. шлюз по-умолчанию, у которого адрес должен быть из тойже подсети, что и адрес этого интерфейса. Таким образом, через этот интерфейс будут также посылаться пакеты на все остальные адреса, т.е. невходящие в подсети сетевых интерфейсов хоста. Это относится и к VM тоже.
Во-вторых. У VMware Workstation есть 10 виртуальных свичей VMnet0-VMnet9, т.е. можно создать 10 сетей (т.к. свич - это и есть сеть). Кроме того, есть три режима работы виртуальных свичей: Bridged, NAT и Host only.
Режим Host only - самый простой для понимания. Это обыкновенный свич, только виртуальный. Поэтому, например, если мы хотим две виртуалки объединить в сеть, мы их виртуальные интерфейсы подключаем к одному и томуже виртуальному свичу (например, VMnet1), который настроен на работу в режиме Host only, и, соответственно, настраиваем их виртуальные интерфейсы так, чтобы они имели адреса из одной подсети (как обычно делается в реальных сетях, всё тоже самое). С другой стороны, как только мы перевели виртуальный свич, например VMnet1, в режим Host only, у самого хоста появится дополнительный интерфейс, виртуальный, для возможности подключить сам хост к этой виртуальной сети. Таким образом, если все 10 виртуальных свичей перевести в режим Host only, то у хоста дополнительно появится 10 виртуальных интерфейсов. Как правило, при установке VMware Workstation, по умолчанию виртуальный свич VMnet1 включен и настроен на работу в режиме Host only.
Режим Bridget. Мост (объясняю по-тупому) - это такой режим работы, когда два интерфейса объединяются в один. Только, выражаясь образно, "вход" используется от одного интерфейса, а "выход" от другого. Что такое "вход" и "выход"? Если интерфейс один, то он пакет из среды передающей принял, и он же его компьютеру отдал. А когда настроен мост, то один принял, а отдал другой. Но компьютер видет только свой интерфейс, а среда только свой. И для компа идля среды интерфейс всё равно остаётся один (только у каждого свой). Поэтому, когда мы переводим виртуальный свич в режим Bridget, мы должны указать ему реальный интерфейс, т.е. тот "конец", который будет смотреть в реальную среду. Таким образом, виртуальных свичей в режиме Bridget мы можем создать столько, сколько у нас есть реальных сетевых интерфейсов у хоста. Дальше, когда мы подключаем виртуальный интерфейс виртуальной машины к такому виртуальному свичу, то фактически мы делаем мост. Если мы подключаем к этому же виртуальному свичу другую виртуальную машину, то мы делаем второй мост. У этих мостов "вход" один, а выходы разные. Поэтому чтобы пакеты доходили туда, куда надо, адреса на виртуальных интерфейсах должны быть разные (кроме того отличные от адреса реального интерфейса) и, т.к. своим внешним "концом" они смотрят в реальную сеть, то адреса должны быть из тойже подсети (или подсетей), которая настроена в этой реальной сети. Как правило, при установке VMware Workstation, по умолчанию виртуальный свич VMnet0 включен и настроен на работу в режиме Bridget. При этом, виртуальный свич VMnet0 в режиме Bridget при нескольких реальных сетевых интерфейсах у хоста можно настроить (а по-умолчанию он так и настроен) на работу в автоматическом режиме для выбора нужного реального сетевого интерфейса. Действительно, адреса у виртуальных интерфейсов из тех же подсетей, что и у реальных (но не всегда, и тогда автоматический режим выбирать нельзя) и просто сравнивая подсети, виртуальный свич может автоматически выбрать нужный реальный интерфейс. Таким образом, при автоматическом режиме виртуального свича VMnet0 больше создать свичей в режиме Bridget не удасться (оно и не нужно).
NAT - это такой же режим, как и Host only, т.е. это виртуальная сеть, со своей внутренней адресацией, никак непересекающейся с реальной адресацией. И у хоста появляется, соответственно, свой виртуальный интерфейс. Единственной особенностью у этого режима является то, что к этому виртуальному свичу дополнительно подклучено некое виртуальное устройство NAT, которое имеет два интерфейса. Один, соответственно, подключен к виртуальному свичу, и его адрес является шлюзом по умолчанию для этой сети. Второй интерфейс - это тот реальный интерфейс хоста, на котором по сути, настроен шлюз по умолчанию хоста, т.е. через который хост шлёт пакеты на реальный шлюз по-умолчанию. А мы знаем (см. выше), что шлюз по умолчанию только один, и VMware Workstation это тоже знает, причем знает какой. Поэтому, во-первых, в режиме NAT может работать только один виртуальный свич (как правило, по умолчанию, это VMnet8), во-вторых, если у хоста нет шлюза по-умолчанию, то и NAT работать не будет, он теряет смысл, в-третьих, при переводе виртуального свича в режим NAT, какой-то реальный интерфейс хоста указывать не нужно (да и не получится), т.к. VMware сама знает какой выбрать реальный интерфейс, но нужно настроить само виртуальное устройство NAT.
Вот так.
И ещё. Когда мы добавляем виртуальный сетевой интерфейс в виртуальной машине, нам предлагается выбрать какого он будет типа (Bridget, NAT, Host only, Custom). На самом деле мы вибираем не какого он будет типа, а к какому типу виртуального свича мы хотим подключиться этим виртуальным сетевым интерфейсом. При этом вариант Bridget (если нам нужен мост) имеет смысл выбирать, если у нас настроен автоматический режим Bridget у виртуального свича VMnet0. Потому что он тогда единственный Bridget. В противном случае Custom и номер нужного свича. Вариант NAT (если нам нужен NAT) можно выбирать всегда, потому что он (т.е. виртуальный свич в режиме NAT) всегда один. Хотя Custom тоже можно (будет одно и тоже). Вариант Host only имет смысл выбирать, если он у нас один, а не 2-10. В противном случае Custom и номер нужного свича.