Причина проста: счётчик пакетов (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
Не все реализации tftp одинаково полезны на файлах размером > 32M, это не новость. Ваше же мнение относительно того, что следует сделать нам по этому поводу, будет всенепременнейше учтено.
Собственно, если действительно нужна эта реализация и охота починить -- милости просим: http://altlinux.org/join :)