Bug 32766

Summary: Не отдаёт файл размером больше 32 МБ.
Product: Sisyphus Reporter: Горев Андрей <nekapitan2009>
Component: utftpdAssignee: Sergey Y. Afonin <asy>
Status: RESOLVED LATER QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: asy, mike
Version: unstable   
Hardware: all   
OS: Linux   

Description Горев Андрей 2016-11-18 14:18:57 MSK
Причина проста: счётчик пакетов (id в заголовке UDP) не переходит через 64k пакетов.
  Итог: после прохождения 65535-го ID идут таймауты и файл не докачивается. 65535 * 512 байт ~= 32 МБ. Точно сами считайте - мне лень.

  Насчёт размера блоков TFTP из соответствующего RFC. Управление размером блока имеют очень немногие TFTP серверы, но даже в этом случае, необходимо, чтобы клиент TFTP с этим согласился. Cisco к таким не относится.
  Из всех серверов TFTP из дистрибутива с файлами размером больше 32 МБ работает только пакет tftp (пускалки tftp-server-standalone, tftp-server-xinetd), перенесённый из BSD в Linux. Или оставьте только его или исправьте остальные.

P.S. Многие IOS для Cisco БОЛЬШЕ 32 МБ существенно.

    Стандартный tftp не имеет управления, но с > 32 МБ справляется. Здесь виден переход ID через 64k:
15:00:06.119619 IP (tos 0x0, ttl 64, id 65532, offset 0, flags [none], proto UDP (17), length 544)
    pc00447.tlt.globex.msk.36206 > 192.168.1.10.32088: UDP, length 516
15:00:06.127182 IP (tos 0x0, ttl 255, id 1288, offset 0, flags [DF], proto UDP (17), length 32)
    192.168.1.10.32088 > pc00447.tlt.globex.msk.36206: UDP, length 4
15:00:06.127368 IP (tos 0x0, ttl 64, id 65533, offset 0, flags [none], proto UDP (17), length 544)
    pc00447.tlt.globex.msk.36206 > 192.168.1.10.32088: UDP, length 516
15:00:06.134768 IP (tos 0x0, ttl 255, id 1289, offset 0, flags [DF], proto UDP (17), length 32)
    192.168.1.10.32088 > pc00447.tlt.globex.msk.36206: UDP, length 4
15:00:06.134853 IP (tos 0x0, ttl 64, id 2, offset 0, flags [none], proto UDP (17), length 544)
    pc00447.tlt.globex.msk.36206 > 192.168.1.10.32088: UDP, length 516
Comment 1 Sergey Y. Afonin 2016-11-18 15:33:52 MSK
Последняя версия utftpd вышла 22 августа 1999 года. Боюсь, проект заброшен. Но он имеет одну особенность, которая мне важна: в зависимости от IP клиента раскладывать файлы в разные каталоги, потому я против удаления его из репозитория.

На Cisco у нас забили, но про предел в 32 МБ я запомню, спасибо за информацию. Буду ли я сам это исправлять, пока не знаю: у меня нет пока необходимости в передаче данных такого объёма по tftp.
Comment 2 Michael Shigorin 2016-11-19 14:28:56 MSK
Как вариант, можно добавить в %description предупреждение.
Но вообще да, на АНБ-шных туннелях в инфраструктуру мир не заканчивается.