База знаний DCImanager 6
Ваше мнение имеет значение!
Примите участие в опросе и помогите нам сделать продукты и сервисы ISPsystem еще лучше!
Пройти опрос

Что делать, если сервер не загружается по TFTP?

Загрузка шаблона операции на сервер проходит по протоколу TFTP. Для этого сервер отправляет запрос на загрузку определённых файлов с TFTP-сервера локации. Из-за ошибки, возникающей в работе некоторых сетевых адаптеров, имена файлов при запросе могут быть искажены. Например, вместо файла pxelinux.0 сервер может запрашивать файл pxelinux.0M-^. В результате сервер не сможет загрузиться, и операция не будет выполнена.

Чтобы избежать этой проблемы, настройте на сервере-локации правила подмены символов (remapping). Если TFTP-сервер получит запрос с искажённым именем файла, то автоматически изменит имя на правильное.

Диагностика

Если проблемы с загрузкой по TFTP связаны с искажением имён файлов, то при загрузке сервера могут появиться сообщения следующего вида:

Примеры сообщений об ошибках


Вы можете посмотреть подробный вывод ошибки на сервере-локации с помощью утилиты tcpdump:

Пример команды для интерфейса enp1s0
tcpdump -i enp1s0 port '(67 or 68 or 69)' -nn -A

Ответ должен содержать искажённое имя файла. Например, lpxelinux.0M-^.

Пример ответа
07:56:48.433740 IP 192.0.2.93.2070 > 192.0.2.92.69:  34 RRQ "srv1/lpxelinux.0M-^?" octet tsize 0
E..>......k..6[].6[\...E.*.R..srv1/lpxelinux.0..octet.tsize.0.
07:56:48.436957 IP 192.0.2.93.2071 > 192.0.2.92.69:  39 RRQ "srv1/lpxelinux.0M-^?" octet blksize 1456
E..C......k..6[].6[\...E./fq..srv1/lpxelinux.0..octet.blksize.1456.

Решение

  1. Отредактируйте на сервере-локации файл с правилами подмены символов:

    vi /opt/ispsystem/etc/tftp/remap.conf
    Пример файла
    rg \\ /
    ri (.*)ÿ$ \1
    ri (.*)M-\^\?$ \1
    ri (lpxelinux\.0).*$ \1
    ri (lpxelinux\.efi).*$ \1
    ri (syslinux\.0).*$ \1
    ri (syslinux\.efi).*$ \1

    Файл с помощью регулярных выражений описывает действия, которые нужно произвести с неправильными именами. В примере приведены наиболее часто встречающиеся ошибочные имена файлов. Вы можете дополнить этот файл собственными правилами.

  2. Перезапустите TFTP-сервер:

    docker restart tftpd
    Обратите внимание!
    Перезапуск TFTP-сервера может прервать запущенные операции.