После многих часов тестов и прочтения разных постов мне удалось настроить свой USG так, чтобы клиенты загружались по PXE с сервера Clonedeploy, в котором встроен TFTP-сервер (он работает в docker-контейнере на моём FreeNAS). Конфигурация, которая сработала, указана ниже.
Команды CLI можно вводить в USG через SSH или просто отредактировать конфиг ниже под себя. Поместите этот файл config.gateway.json в unifi/data/sites/<sitename> (у меня sitename был default) через SSH. Обязательно проверьте синтаксис командой python -m json.tool config.gateway.json, а потом внесите небольшое изменение в конфигурацию USG через UniFi UI, чтобы система пересоздала конфигурацию. Я изменил порт в фиктивном port forward.
Главное здесь — параметр next-server, который заставляет клиента искать загрузочный файл на сервере clonedeploy. Естественно, измените IP-адреса и имя файла загрузки PXE под свою среду. Надеюсь, это сэкономит кому-то несколько часов.
{
"service": {
"dhcp-server": {
"global-parameters": [
"next-server 192.168.1.61;"
],
"shared-network-name": {
"LAN_192.168.1.0-24": {
"subnet": {
"192.168.1.0/24": {
"bootfile-server": "192.168.1.61",
"subnet-parameters": [
"filename \"pxeboot.0\";"
],
"tftp-server-name": "192.168.1.61"
}
}
}
}
}
}
}
Удачи, Graham