Bug 32767 - Не отдаёт файл размером больше 32 МБ.
Summary: Не отдаёт файл размером больше 32 МБ.
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: inquisitor-tftpd (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Michael Shigorin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-11-18 14:19 MSK by Горев Андрей
Modified: 2016-11-19 14:18 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Горев Андрей 2016-11-18 14:19:36 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 Michael Shigorin 2016-11-18 22:41:41 MSK
(В ответ на комментарий №0)
> Из всех серверов TFTP из дистрибутива с файлами размером больше 32 МБ
> работает только пакет tftp (пускалки tftp-server-standalone,
> tftp-server-xinetd), перенесённый из BSD в Linux.
> Или оставьте только его или исправьте остальные.

$ rpm -qp --qf='%{DESCRIPTION}\n' inquisitor-tftpd-0.48-alt1.qa1.src.rpm
The Trivial File Transfer Protocol (TFTP) is normally used
for booting diskless systems.

This package includes only server side patched to please Inquisitor.
Comment 2 Sergey Y. Afonin 2016-11-19 09:56:09 MSK
(In reply to comment #1)

> This package includes only server side patched to please Inquisitor.

Так Андрей и пишет, что сервер не отдаёт. Видимо, была попытка IOS залить современный в Циску. Так что, наверное, баг.
Comment 3 Michael Shigorin 2016-11-19 14:18:41 MSK
Братцы, это пакет специально для исошки с inquisitor (которым, кстати,
хорошо бы опять заняться после выпусков).  Оставьте его в покое.