2

Например, у меня есть VMware Workstation, которая находится на хосте, host и виртуальной машине , работающей под VMware, zeddicus . В принципе, я понимаю, что в обычной сети вы подключаете компьютер к сети (или Wi-Fi), вам назначается IP-адрес по DHCP (при условии отсутствия статических IP-адресов), и вы уже в пути. Как это работает на виртуальной машине с DHCP, хотя? Когда вы используете виртуальную машину, весь трафик направляется через host , скажем, 10.0.0.10 ... но с мостовым соединением, у zeddicus будет другой DHCP-адрес (10.0.0.11), если вы запустите ipconfig/ifconfig. Как это работает при просмотре через внешнюю сеть? Весь трафик (здесь я должен что-то упустить) направляется через 10.0.0.10 к zeddicus который является 10.0.0.11, или сетевой интерфейс каким-то образом регистрируется как имеющий два разных адреса в сети? Это также относится и к MAC-адресам, так как интерфейс должен иметь только один адрес, а виртуальные машины имеют свой собственный.

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

2 ответа2

2

Естественно использовать термин "маршрутизируемый", когда речь идет о пакетах, проходящих через устройство, однако в сети маршрутизация означает особую вещь - это означает, что пакет перемещается из одной сети уровня 3 в другую. Мостовое соединение - это место, где пакеты перемещаются на уровне 2 и фактически одинаковы до и после мостового соединения.

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

Это означает, что широковещательный трафик, такой как DHCP, будет успешно проходить по мосту как от исходящего запроса (который будет исходить от виртуального MAC-адреса виртуальной машины) до ответа, который будет отправлен на виртуальный MAC-адрес. Поскольку интерфейс хоста VM действует как мост, он будет передавать все пакеты в сети всем устройствам на мосту. Он ведет себя точно так же, как два физических интерфейса через мост.

1

Вы заметите, что VMWare устанавливает виртуальные сетевые интерфейсы - зайдите в ncpa.cpl чтобы посмотреть их.

Вы также заметите, что если вы посмотрите на свойства своего физического сетевого адаптера, вы увидите активный протокол под названием "Протокол Vmware Bridge".

Я предполагаю, что через протокол моста Vmware входящий трафик, предназначенный для виртуальной машины, перехватывается и перенаправляется на виртуальную машину до того, как он достигнет хоста. Аналогично тому, как это делается для трафика USB через использование специальных драйверов.

Могу поспорить, что этот мостовой протокол переводит физический сетевой адаптер в беспорядочный режим, который позволяет ему "слышать" весь трафик, который попадает на сетевой адаптер. Он, вероятно, просматривает весь трафик до того, как протокол TCP/IP этого интерфейса его получает, или, возможно, у "Vmware Bridge Protocol" есть другой "номер протокола" в заголовке IP.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .