Вопрос или проблема
Я экспериментировал с DRBL. Для этого я создал две виртуальные машины в VMWare Workstation.
Обе виртуальные машины соединены между собой с помощью виртуальной частной сети, только хост, с отключенным dhcp. Это должно быть так, как будто я прямо соединяю две ВМ сетевым кабелем.
Для установки drbl я выполнил следующие шаги:
- Установил Ubuntu Server 24.04
- Выполнил следующую команду для добавления репозитория drbl:
sudo add-apt-repository 'deb http://free.nchc.org.tw/drbl-core drbl stable'
- Обновил репозиторий, сделав его доверенным с помощью
deb [trusted=yes] http://free.nchc.org.tw/drbl-core drbl stable
. - Обновил сервер с помощью
apt-get update && apt-get dist-upgrade
- Установил drbl с помощью
sudo apt-get install drbl
Затем, чтобы настроить сервис, я выполнил следующие шаги:
- Настроил drbl с помощью
sudo drblsrv -i
- Обновил файл
/etc/dhcp/dhcpd.conf
следующим содержимым:
# option domain-name "example.org";
# option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.209.0 netmask 255.255.255.0 {
range 192.168.209.10 192.168.209.150;
option routers 192.168.209.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.209.255;
}
- Я обновил файл
/etc/default/isc-dhcp-server
, добавивINTERFACES="ens37"
, это сетевой интерфейс сервера, соединенный с частной сетью. - Я настроил сетевой интерфейс сервера, обновив файл
/etc/netplan/50-cloud-init.yaml
:
network:
ethernets:
ens33:
dhcp4: true
ens37:
dhcp4: false
ignore-carrier: true
addresses:
- 192.168.209.1/24
routes:
- to: default
via: 192.168.209.1
version: 2
- Перезапустил сервер dhcpd с помощью
sudo service isc-dhcp-server restart
- Обновил файл
/etc/yp.conf
с ip-адресом сервера:
ypserver 192.168.209.1
- Запустил drbl с помощью
sudo drbl-all-service start
Теперь, когда я запускаю клиентскую виртуальную машину, я вижу, что она получает адрес, и ее сетевой интерфейс правильно настроен. В журнале dhcp я вижу:
Oct 30 16:29:06 backupserver dhcpd[7483]: DHCPDISCOVER from 00:50:56:35:26:63 (testdrbl-vmwarevirtualplatform) via ens37
Oct 30 16:29:06 backupserver dhcpd[7483]: DHCPOFFER on 192.168.209.12 to 00:50:56:35:26:63 (testdrbl-vmwarevirtualplatform) via ens37
Oct 30 16:29:06 backupserver dhcpd[7483]: DHCPREQUEST for 192.168.209.12 (192.168.209.1) from 00:50:56:35:26:63 (testdrbl-vmwarevirtualplatform) via ens37
Oct 30 16:29:06 backupserver dhcpd[7483]: DHCPACK on 192.168.209.12 to 00:50:56:35:26:63 (testdrbl-vmwarevirtualplatform) via ens37
Вместо этого, когда я перезапускаю клиент, активировав PXE во время загрузки, он зависает на строке DHCP, и на сервере я вижу следующий журнал:
Oct 30 16:30:29 backupserver dhcpd[7483]: DHCPDISCOVER from 00:50:56:35:26:63 via ens37
Oct 30 16:30:30 backupserver dhcpd[7483]: DHCPOFFER on 192.168.209.13 to 00:50:56:35:26:63 via ens37
Oct 30 16:30:31 backupserver dhcpd[7483]: DHCPDISCOVER from 00:50:56:35:26:63 via ens37
Oct 30 16:30:31 backupserver dhcpd[7483]: DHCPOFFER on 192.168.209.13 to 00:50:56:35:26:63 via ens37
Oct 30 16:30:35 backupserver dhcpd[7483]: DHCPDISCOVER from 00:50:56:35:26:63 via ens37
Oct 30 16:30:35 backupserver dhcpd[7483]: DHCPOFFER on 192.168.209.13 to 00:50:56:35:26:63 via ens37
Oct 30 16:30:43 backupserver dhcpd[7483]: DHCPDISCOVER from 00:50:56:35:26:63 via ens37
Oct 30 16:30:43 backupserver dhcpd[7483]: DHCPOFFER on 192.168.209.13 to 00:50:56:35:26:63 via ens37
В основном кажется, что клиент не отправляет команду DHCPREQUEST
, но поскольку это работает с обычной загрузкой, я не уверен, что это ошибка в настройке сети VMware. Я думаю, что это может быть проблемой настройки DHCP.
Что я делаю не так? Как мне настроить сервер dhcp, чтобы он также работал с PXE?
Ответ или решение
Ситуация, которую вы описываете, связана с проблемой PXE (Preboot Execution Environment), когда клиентская виртуальная машина не отправляет запрос DHCP после того, как получает предложение от DHCP-сервера. Это может быть вызвано несколькими причинами, и я постараюсь описать возможные источники проблемы и пути их решения.
Обзор ситуации
Вы настроили сервер Ubuntu с помощью DRBL и ISC DHCP-сервера в окружении VMware Workstation с использованием сети “host-only”. Хотя клиентская машина успешно получает IP-адрес и настройки в стандартном режиме, при запуске по PXE процесс застревает на стадии получения IP-адреса. Мы видим, что сервер DHCP получает DHCPDISCOVER
и отправляет DHCPOFFER
, однако DHCPREQUEST
не поступает от клиента.
Возможные причины проблемы
-
Ошибка конфигурации PXE
- Убедитесь, что клиентская виртуальная машина настроена для загрузки по PXE. В BIOS/UEFI виртуальной машины проверьте, включен ли PXE-boot и находится ли он на правильном месте в очередности загрузки.
-
Проблемы с совместимостью VMware
- Для PXE-загрузки важно, чтобы используемый виртуальный сетевой адаптер был совместим с PXE. Убедитесь, что вы используете сетевой адаптер типа "E1000" или "VMXNET3" и что они правильно настроены на виртуальной машине.
-
Несоответствие опций DHCP
- Для PXE-загрузки DHCP-сервер должен предоставлять специальную информацию о загрузчике (bootloader). Убедитесь, что настройки DHCP-сервера включают правильные параметры
option 66
(TFTP-сервер) иoption 67
(имя файла загрузчика). В вашем случае конфигурация может выглядеть, например, так:subnet 192.168.209.0 netmask 255.255.255.0 { range 192.168.209.10 192.168.209.150; option routers 192.168.209.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.209.255; option tftp-server-name "192.168.209.1"; option bootfile-name "pxelinux.0"; }
- Для PXE-загрузки DHCP-сервер должен предоставлять специальную информацию о загрузчике (bootloader). Убедитесь, что настройки DHCP-сервера включают правильные параметры
-
Конфликты между DHCP и TFTP
- Убедитесь, что TFTP-сервер запущен и правильно настроен. Попробуйте проверить, может ли клиентская машина соединиться с TFTP-сервером, чтобы загрузить необходимые файлы.
Шаги по устранению проблемы
-
Проверьте конфигурацию BIOS/UEFI
- Убедитесь, что загрузка по PXE включена и стоит выше в очереди загрузки.
-
Проверьте сетевой адаптер
- Используйте адаптеры типа E1000 или VMXNET3. В VMware также проверьте, не включен ли "Promiscuous Mode" на сетевом адаптере.
-
Дополите настройки DHCP
- Включите параметры
option 66
иoption 67
в конфигурацию DHCP для правильной работы PXE.
- Включите параметры
-
Проверьте TFTP-сервер
- Убедитесь, что TFTP-сервер работает и доступен по сети. Попробуйте выполнить загрузку тестового файла с клиента на TFTP-сервер.
-
Исключите ошибки в запросах
- Включите отладочные сообщения в конфиге DHCP-сервера для получения более подробной информации о процессе.
Заключение
Решение проблемы с PXE может потребовать последовательно пройтись по указанным шагам, от настройки BIOS/UEFI до конфигурации DHCP и TFTP. Проверьте каждую деталь, чтобы выявить источник проблемы, и, как правило, это поможет устранить возникшие затруднения. Если все шаги не помогут, рассмотрите необходимость изучения логов DHCP и TFTP для детального анализа ошибок.