Чому мої дві віртуальні машини отримують однакову 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 працювати належним чином?


2
Це не обов'язково, можливо, можна створити "справжню" віртуальну NAT-мережу, в якій декільком VM повинні бути призначені різні IP-адреси на основі віртуалізованої MAC-адреси, і VM можуть бачити один одного позаду мережі NAT, в основному практично ціла підмережа за інтерфейсом NAT. Залежить від вашого вибору в конфігурації мережного адаптера, якщо вибрано "NAT", NAT - це співвідношення один на один хост / vm, якщо вибрано "NAT мережа", то це відносини хост / підмережа, в яких кожен VM на віртуалізована мережа повинна мати різні IP-адреси.

Я відповів на подібне запитання тут
Міан Асбат Ахмад

Відповіді:


22

VirtualBox DHCP працює належним чином.

Немає нічого поганого в тому, що всі ваші машини отримують однакову адресу в конфігурації NAT. Всі ВМ ізольовані між собою, тому немає ризику конфлікту. Вони також не на одному адаптері. Кожен VM має власне віртуалізоване обладнання, включаючи NIC.

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

Крім того, немає "справжнього" сервісу dhcp, все в коді VirtualBox жорстко закодовано, хоча якщо ви не задоволені IP-адресами за замовчуванням, ви можете налаштувати механізм NAT .


Привіт @jlliagre, це дійсно очікувана поведінка? Як я розумію, якщо всім віртуальним машинам присвоєно однакову IP-адресу, вони не зможуть використовувати цей мережевий інтерфейс для спілкування, правда? Якщо це так, ви заявляєте, що для групи віртуальних машин, якщо кожен з них має лише один адаптер NAT, за замовчуванням вони не можуть спілкуватися.
Просто учень

1
@OgrishMan Так, така очікувана поведінка. Це одне з головних обґрунтувань NAT. Це дозволяє багатьом машинам використовувати ту саму локальну IP-адресу. Вони не можуть безпосередньо спілкуватися, як і мій ноутбук, який має 192.168.1.4, оскільки IP-адреса не може спілкуватися з вашим пристроєм, який може використовувати ту саму IP-адресу. Основна причина, по якій вони не можуть спілкуватися, полягає в тому, що вони все одно знаходяться в різних локальних мережах. Машини, що використовують NAT-інтерфейси, можуть спілкуватися разом лише через зовнішній сторонній шлюз або використовуючи зворотне зіставлення портів на рівні хосту.
jlliagre

Дякую за пояснення! Я думаю, що мені зараз ясно.
Просто учень

7

На панелі керування VirtualBox перейдіть у меню Файл -> Налаштування -> Мережа

Виберіть вкладку NAT Networks, створіть нову "NatNetwork", натиснувши кнопку + убік і натисніть OK.

Тепер виберіть кожен віртуальний комп'ютер, перейдіть до Налаштування -> Мережа

У варіанті Додано до: виберіть NAT Network та виберіть "NatNetwork" та натисніть OK.

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

Тепер VM мають різну мережеву адресу.


1
Я знаходжу, що я все ще отримую ті самі IP-адреси, використовуючи цей підхід!
Джерсі боб

6

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

Оскільки ви працюєте з віртуальними машинами, у них є віртуальне обладнання, і тому вони "підробляють" MAC-адресу. Ви повинні переконатися, що жодна машина не має однакової апаратної адреси Ethernet.

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

Ви можете перевірити це у своєму запущеному VM:

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

2
Сервер NAT dhcp, вбудований у VirtualBox, не справжній. Зокрема, це не хвилює MAC-адреси. У будь-якому випадку, декілька VM можуть мати один і той же MAC-адресу, що не має значення, оскільки віртуальні мережі повністю ізольовані.
jlliagre

2

Вони отримають шлюз за замовчуванням від сервера dhcp - так це буде все, що там встановлено. Вам потрібно буде подивитися на сервер dhcp, щоб побачити, що він постачає (як правило, просто встановіть його в конфігурації сервера таким, яким ви хочете).

Що стосується двох адаптерів, що мають однакову адресу, то це, швидше за все, залежить від конфігурації, встановленої у Virtualbox. Якщо вони є клонами, то вам може знадобитися явно надати одному нову MAC-адресу.

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

Якщо різні, ви можете тимчасово встановити фіксовану IP для кожного з них на сервері dhcp (призначений за MAC-адресою)

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


1
Посилання, яке ви опублікували, не стосується NAT.
jlliagre

1

У мене було те саме питання. Призначений Adapter2 для 2-ї гостьової ОС. Унікальні Mac та Ip-адреси, призначені для гостей.

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


0

Два налаштування потрібно змінити.

1) У вікні VM - клієнтське програмне забезпечення консолі VMware змінює мережеві налаштування (тобто) додає нову функцію налаштувань мережі. 2) На стороні машини VM - Оновіть адресу Mac для кожного VM.


-1

відкрийте мережевий параметр для кожного vm, натисніть на розширений> натисніть кнопку оновлення поруч із mac addr. Отримайте інший на обох, і ви все налаштовані


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.