Я попытался создать группу виртуальных машин в Virtualbox и подключить их к сети NAT. Основная информация показана ниже:
The Virtualbox version: 6.0.12
The Ubuntu guest version: ubuntu-18.04.2
The NAT network info:
NetworkName: natnet22
IP: 192.168.13.1
Network: 192.168.13.0/24
IPv6 Enabled: No
IPv6 Prefix: fd17:625c:f037:2::/64
DHCP Enabled: Yes
Enabled: Yes
loopback mappings (ipv4)
127.0.0.1=2
Когда я закончу создание машины Ubuntu, DHCP-сервер, возможно, назначит ей ip 192.168.13.4
. Но когда я клонировал машину, я меняю MAC-адрес клонированной. DHCP-сервер все еще назначает ip 192.168.13.4
клонированному.
Почему клонированный Ubuntu получает тот же IP-адрес с исходным кодом? Мне нужно, чтобы у них были разные ip в сети NAT для управления ими. Пожалуйста, помогите мне решить проблему.
Попробуйте выполнить следующие команды на клонированной виртуальной машине:
sudo ip address flush scope global
sudo dhclient -v
Выполните следующие команды в оболочке bash. Использовать идентификатор машины в качестве идентификатора.
sudo rm /etc/machine-id
sudo systemd-machine-id-setup
В новых версиях Ubuntu netplan используется для настройки сети. Файл /etc/machine-id используется для создания идентификатора DHCP по умолчанию, а не для использования MAC-адреса сетевой карты.
Когда система Ubuntu клонируется, в процессе клонирования может измениться MAC-адрес сетевой карты, но обычно это не приводит к автоматическому изменению /etc/machine-id.
В ваших двух системах вы можете сравнить содержимое /etc/machine-id, и оно, вероятно, будет одинаковым.
У вас есть два варианта:
Изменить идентификатор машины хотя бы на одном из серверов (ответ huangjunpo)
user@host:~$ cat /etc/machine-id
d8dcd93cd8bffce0f7ed73875eb5be3a
user@host:~$ sudo rm /etc/machine-id
user@host:~$ sudo systemd-machine-id-setup
Инициализация идентификатора машины из генератора случайных чисел.
user@host:~$ cat /etc/machine-id
4b603489b08541ce9127791047081f46
Если вы используете netplan, измените способ построения netplan идентификатора клиента для DHCP, чтобы использовать MAC-адрес, добавив dhcp-identifier: mac
в файл конфигурации netplan в /etc/netplan
. ]. Добавьте его под любой интерфейс, который вам нужен, и будьте осторожны с отступами в файле yaml.
(см. netplan.io - примеры)
user@host:~$ cat /etc/netplan/00-installer-config.yaml
# Это сетевая конфигурация, написанная 'subiquity'
сеть:
Ethernet:
enp3s0:
DHCP4: правда
DHCP-идентификатор: Mac
версия: 2
После внесения этого изменения вам нужно будет применить его, чтобы оно вступило в силу.
sudo netplan apply
Обратите внимание, что /var/lib/dbus/machine-id
связан с /etc/machine-id
.
user@host:~$ ls -l /var/lib/dbus/machine-id
lrwxrwxrwx 1 root root 15 May 8 20:30 /var/lib/dbus/machine-id -> /etc/machine-id