Заметил любопытную особенность в работе DHCP с которой раньше не был знаком. Когда клонировал виртуальные машины, заметил, что они получают одни и те же IP адреса, хотя я менял у сетевых интерфейсов MAC адреса. Я всегда был уверен, что выдача IP зависит от мака. Оказывается, что не только.
В качестве DHCP сервера выступал Mikrotik. Несмотря на изменение маков, он выдавал один и тот же IP адрес разным виртуальным машинам. Я выяснил, что выдача у него привязана к Client ID. Пока не изменить его, адрес не изменится.
В Linux этот ID указан в файле /etc/machine-id. Для того, чтобы его изменить, надо его удалить и сгенерировать заново:
# rm -f /etc/machine-id # dbus-uuidgen --ensure=/etc/machine-id
Таким образом, после клонирования виртуальной машины нужно:
- Изменить MAC адрес сетевого интерфейса.
- Изменить hostname:
# hostnamectl set-hostname server-clone
- Отредактировать файл /etc/hosts, изменив там имя сервера.
- Сгенерировать новый machine-id.
Вроде всё. Может ещё что-то забыл? Мне не так часто приходится этим заниматься. Даже если и приходится делать клон вируталки, то обычно для тестов и запускается всё это в изолированной сети. А так, чтобы делать клон и запускать его тут же, я не практикую.