Баг в DGS-3120-24SC (и с высокой долей вероятности во всей серии 3120), версии прошивки v1.02.13, v2.00.010, v2.50.015. При загрузке прошивки с TFTP сервера при помощи SNMP прошивка загружается битой. При загрузке с TFTP сервера при помощи telnet прошивка загружается нормально.
Как воспроизвести баг: 1. Загружаем прошивку с TFTP сервера: snmpset -v2c -c private 10.90.90.90 \ .1.3.6.1.4.1.171.12.1.2.18.1.1.3.1 a 10.90.90.91 \ .1.3.6.1.4.1.171.12.1.2.18.1.1.5.1 "firmware.had" \ .1.3.6.1.4.1.171.12.1.2.18.1.1.8.1 i 3 \ .1.3.6.1.4.1.171.12.1.2.18.1.1.12.1 i 3
2. Проверяем результат: snmpget -v2c -c private 10.90.90.90 .1.3.6.1.4.1.171.12.1.1.5.0
3. Если результат равен 7, тогда сохраняем: snmpset -v2c -c private 10.90.90.90 .1.3.6.1.4.1.171.12.1.2.18.4.0 i 4
4. Перезагружаем: snmpset -v2c -c private 10.90.90.90 .1.3.6.1.4.1.171.12.1.2.19.0 i 2
После этого свич не загружается. Оживить можно только если заранее в файловой системе была бекапная прошивка, либо подключится по COM и залить прошивку через HyperTerminal.
Вот что было обнаружено в ходе расследования: - Если свич не перезагружать после прошивки, а зайти через telnet и попробовать сделать "config firmware image firmware.had boot_up" то получаем "success". Но, если мы перезагрузим его, то загрузится он уже с бекап прошивки, а передыдущая команда вернёт "invalid firmware". Т.е. свич с неё попытался загрузиться, у него не получилось, и он её пометил как битую. После этого её можно только удалить, загрузить её по TFTP куда-либо для сравнения с исходной не выйдет, получим "invalid firmware".
- Если свич не перезагружать после прошивки, то файл firmware.had можно залить обратно на TFTP сервер. При этом мы получаем файл с md5, отличающимся от md5 первоначальной прошивки, но такого же размера. Если сравнить файл который прошивали и который заливали в двоичном редакторе, то в значительной области второго файла вместо содержания просто забиты нули.
Из-за этого бага мы не можем толком работать со свичами, т.к. система у нас автоматизирована при помощи SNMP, и техподдержка не имеет доступа к свичам по telnet. 27 установленных коммутаторов придётся перешивать на свежую прошивку вручную, и хотелось бы чтоб делать это повторно не пришлось.
|