Почему две виртуальные машины получают одинаковый IP-адрес?

31

У меня есть две виртуальные машины, работающие на хосте Linux (Fedora 16). Я установил оба адаптера как подключенные к NAT. Когда я загружаю их, у них обоих установлен шлюз по умолчанию 10.0.2.2. Они также имеют одинаковый IP-адрес (10.0.2.15). Они оба находятся на одном адаптере (адаптер 1). Я не знаю, почему им назначается один и тот же IP-адрес, и не должен быть шлюз по умолчанию, 10.0.2.1поскольку адрес подсети 10.0.2.0и маска сети 255.255.255.0. Есть ли что-то, чего мне не хватает, это случалось с кем-то раньше? Как правильно настроить VirtualBox DHCP?

rubixibuc
источник
2
Это не обязательно верно, возможно создать «истинную» виртуальную сеть NAT, в которой нескольким виртуальным машинам должны быть назначены разные IP-адреса на основе их виртуализированного MAC-адреса, и виртуальная машина может видеть друг друга за сетью NAT, в основном практически вся подсеть за интерфейсом NAT. Зависит от вашего выбора в конфигурации сетевого адаптера, если выбрано «NAT», NAT - это отношение «один на один хост / виртуальная машина», если выбрано «NAT network», то это отношение хост / подсеть, в котором каждая виртуальная машина на Виртуализированная сеть должна иметь разные IP-адреса.
Я ответил на аналогичный вопрос здесь
Миан Асбат Ахмад

Ответы:

22

VirtualBox DHCP работает правильно.

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

Шлюз по умолчанию также не обязательно должен быть 10.0.2.1. Хотя обычной практикой является его использование на более низком IP-адресе, это может быть любой IP-адрес в диапазоне подсети.

Кроме того, нет «настоящей» службы dhcp, все жестко закодировано в коде VirtualBox, хотя, если вы недовольны IP-адресами по умолчанию, вы можете точно настроить механизм NAT .

jlliagre
источник
Привет @jlliagre, это действительно ожидаемое поведение? Как я понимаю, если всем виртуальным машинам был присвоен один и тот же IP-адрес, они не смогут использовать этот сетевой интерфейс для связи, верно? Если это так, вы заявляете, что для группы виртуальных машин, если каждая из них имеет только один адаптер NAT, по умолчанию они не могут обмениваться данными.
Просто ученик
1
@OgrishMan Да, это ожидаемое поведение. Это одно из главных обоснований NAT. Это позволяет многим машинам использовать один и тот же локальный IP-адрес. Они не могут напрямую общаться, как мой ноутбук с 192.168.1.4, так как IP-адрес не может связаться с вашим устройством, которое может использовать тот же IP-адрес. Основная причина, по которой они не могут общаться, заключается в том, что они в любом случае находятся в разных локальных сетях. Машины, использующие только интерфейсы NAT, могут взаимодействовать друг с другом только через внешний сторонний шлюз или с помощью обратного сопоставления портов на уровне хоста.
Jlliagre
Спасибо вам за разъяснение! Я думаю, что теперь все ясно.
Просто ученик
7

В панели управления VirtualBox выберите Файл -> Настройки -> Сеть.

Выберите вкладку «Сети NAT», создайте новую «сеть NatN», нажав кнопку + сбоку, и нажмите OK.

Теперь выберите каждую виртуальную машину, перейдите в Настройки -> Сеть

В приложении Attached to: выберите NAT Network, выберите «NatNetwork» и нажмите OK.

Перезагрузите все виртуальные машины.

Теперь виртуальные машины имеют другой сетевой адрес.

Суман Боумик
источник
1
Я обнаружил, что все еще получаю те же IP-адреса, используя этот подход!
Джерси бин
6

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

Поскольку вы работаете с виртуальными машинами, у них есть виртуальное оборудование, и поэтому они «подделывают» MAC-адрес. Вы должны убедиться, что никакие две машины не имеют одинаковый аппаратный адрес Ethernet.

Вы можете установить MAC-адрес вашей виртуальной машины в VirtualBox в разделе аппаратной сети (это выглядит так: 3c: 08: 51: 05: 24: 8a)

Вы можете проверить это на своей работающей виртуальной машине:

sudo ifconfig

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=2b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4>
    ether 3c:08:51:05:24:8a 
    media: autoselect (none)
    status: inactive
snies
источник
2
DHCP-сервер NAT, встроенный в VirtualBox, нереальный. В частности это не заботится о MAC-адресах. В любом случае несколько виртуальных машин могут иметь один и тот же MAC-адрес, что не имеет значения, поскольку виртуальные сети полностью изолированы.
Jlliagre
2

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

Что касается двух адаптеров, имеющих один и тот же адрес, то, скорее всего, это связано с конфигурацией, которую вы установили в Virtualbox. Если они являются клонами, то вам может понадобиться явно указать новый MAC-адрес.

Проверьте конфигурации сети для каждого и посмотрите, считают ли они, что они одинаковы.

Если отличается, вы можете временно установить фиксированный IP для каждого на DHCP-сервере (назначается по MAC-адресу)

Посмотрите на этот раздел из руководства VirtualBox для получения дополнительной информации.

Рори Олсоп
источник
1
Размещенная вами ссылка не относится к NAT.
Jlliagre
1

Я была такая же проблема. Назначен Adapter2 для второй гостевой ОС. Уникальный Mac и IP-адрес, назначенный для гостей.

введите описание изображения здесь

user358023
источник
0

Две настройки должны быть изменены.

1) В боковой части виртуальной машины - Консольное программное обеспечение клиента VMware изменяет сетевые настройки (т.е.) добавляет новый нат на сетевые настройки. 2) На стороне виртуальной машины - обновите Mac-адрес для каждой виртуальной машины.

Царь сатана
источник
-1

откройте настройки сети для каждого виртуального компьютера, нажмите «Дополнительно»> нажмите кнопку обновления рядом с Mac Addr. Получить другой на обоих, и все готово

Сэм
источник
недооцененный ответ
elsadek