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

Сначала я создал мостовое соединение:

Затем я выбрал новый сетевой мост в настройках своей виртуальной машины:

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

Что я делаю неправильно?

1 ответ1

1

Вы подключили виртуальную машину к адаптеру Wi-Fi. Независимо от того, какой метод моста вы используете - предоставленный Windows или VirtualBox (ваш снимок экрана показывает, что оба используются одновременно) - попытка подключить Wi-Fi вызовет одну и ту же общую проблему: он не позволяет хосту обманывать свой MAC-адрес ,

Несмотря на то, что виртуальная машина считает, что у нее есть собственный MAC-адрес, хост-мост должен спокойно переписать ее на всех исходящих пакетах (реализуя, таким образом, «NAT 2-го уровня» или "arpnat"). Это необходимо, поскольку заголовки кадров Wi-Fi требуют, чтобы радиопередатчик идентифицировал себя, и не позволяли клиентам (станциям) указывать адрес источника, отличный от адреса передатчика.

(Ethernet не имеет этой проблемы. Wi-Fi имеет дополнительный режим, который решает проблему, называемую "4addr" или "мост WDS", но и клиент, и точка доступа должны его поддерживать.)

Конечный результат, как заметил @FrankThomas, заключается в том, что ваш маршрутизатор (сервер DHCP) видит одинаковые адреса MAC-запросов оба раза. В зависимости от конфигурации маршрутизатора (например, статическое резервирование или вне зоны обслуживания), он всегда может предлагать один и тот же адрес для одного и того же MAC.

(Да, запросы DHCP несут свою собственную копию исходного MAC, независимо от заголовка L2 ... но я, кажется, помню, что по крайней мере реализация arpnat VirtualBox также переписывает это. Я не совсем уверен.)

Если у вас действительно есть статическая аренда DHCP, одним из возможных решений будет привязать их к "идентификатору клиента" вместо MAC-адреса. Соответствующий стандартам DHCP-сервер должен различать запросы с разными идентификаторами клиентов, даже если они поступают с одного и того же MAC-адреса. (И наоборот, один и тот же "идентификатор клиента" должен быть связан с одной и той же арендой, даже если MAC-адрес отличается.)

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