Заметил любопытную особенность в работе DHCP с которой раньше не был знаком. Когда клонировал виртуальные машины, заметил, что они получают одни и те же IP адреса, хотя я менял у сетевых интерфейсов MAC адреса. Я всегда был уверен, что выдача IP зависит от мака. Оказывается, что не только.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
В качестве 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.
Вроде всё. Может ещё что-то забыл? Мне не так часто приходится этим заниматься. Даже если и приходится делать клон вируталки, то обычно для тестов и запускается всё это в изолированной сети. А так, чтобы делать клон и запускать его тут же, я не практикую.
Если DHCP-сервер на RouterOS, то можно еще использовать идентификатор клиента так: в Linux в файле /etc/dhcp/dhclient.conf параметр send dhcp-client-identifier = "какое_то_название"; или send dhcp-client-identifier = hardware;, в Windows через правку реестра. Тогда на DHCP-сервере в Leases в поле Active Client ID будет написано значение в НЕХ формате. Если (в Linux) передать параметр в кавычках - то параметр будет просто конвертирован в НЕХ формат, а если передать параметр hardware - то будет запись вида 1: (где 1 - номер сетевой карты системы).
Что-то знаки неравенства не отобразились в комментарии...
а если передать параметр hardware - то будет запись вида 1: МАС-адрес (где 1 - номер сетевой карты системы).
Спасибо за полезную информацию.