Есть такие карты как APC NMC (Network Management Card), весьма распространенные и весьма проблемные при этом. Причины их глюкавости кроются в том, что компания APC всегда была слаба в области разработки ПО, но решила к этому своему «навыку» добавить еще и железо 15-летней давности (следы разработки этих устройств ведут в начало нулевых). И на этом старье начала писать сервисы, такие как telnet, FTP, HTTP, HTTPS, SNMP и SSH. По информации от корифеев форума APC, железо не потянуло современную крипту, которая жизненно необходима для HTTP и SSH, и компания-производитель бросила поддержку карт первого поколения в 2010 году (последняя прошивка с бинарниками версии 372/373 датирована февралем 2010 года). А с тех пор в алгоритмах шифрования, применяемых в SSH и SSL нашли кучу багов, и все цивильные производители ПО запретили работу своих продуктов с использованием «дырявых» протоколов. С этого момента начинаются новые проблемы, которых изначально у карт первого поколения не было. Кстати, первое поколение карт APC — это AP9617, AP9618 и AP9619 (далее по тексту заметки просто NMC 1). Внешний вид AP 9617 для общего развития:
Эти карты очень долго продавались после того как их поддержка была прекращена, что позволило «счастливым владельцам» этих карт хапнуть немало горя в процессе их эксплуатации. Карты первого поколения до сих пор встречаются тоннами на eBay и Авито, в том числе, новые в заводской упаковке.
Далее привожу свои наработки по борьбе с особенностями и глюками карт APC NMC 1:
#1. У карт первого поколения (NMC 1) нет разъема Jack 3.5 мм, а значит, нет консольного порта. То есть, при любой критической ошибке конфигурирования вы будете вынуждены делать сброс карты и начинать ее настройку с нуля. Это было бы не так больно, если бы карта желала делать DHCP client с обычного DHCP-сервера (а она не желает, см. ниже).
#2. Вся техника APC, включая PDU, ATS, и, конечно же, карты NMC 1, не умеет грузиться по DHCP в конфигурации по умолчанию. Дело в том, что в APC посчитали, что грузиться по DHCP в любой сети — это глупость и разгильдяйство, а грузиться можно только в сети, где есть должным образом настроенная DHCP Option 43 (если вкратце, то устройство APC при получении IP-конфигурации от сервера делает вывод «годный» он или нет). Поэтому карта, которую вы сбросите в дефолт, в 99% сетей будет недоступна через telnet и веб. А так как у нее нет консольного порта, дело пахнет легким геморроем. По слухам, в NMC 2 этот идиотизм отключили.
#3. Легкий геморрой. Как вы знаете, в APC решили, что грузиться по DHCP в абы какой сети не кошерно, но и IP-адрес по умолчанию задавать тоже не стали. Хотелось бы посмотреть в лицо этому человеку из APC, а потом плюнуть в него же. Потому, что такого извращения я не встречал за свой 16-летней опыт работы с сетевухой. По версии APC, первым делом я должен воспользоваться утилитой Network Management Device IP Configuration Wizard v5.0.2, которая методом сканирования всей моей сети найдет нужное устройство (находит) и установит на нем желанные параметры TCP/IP (не устанавливает). Эта утилита сыпет одной и той же ошибкой, ссылаясь на ARP-кэш и необходимость перезагрузить систему (какую именно — ОС или NMC 1 не уточняется, но перезагрузка вообще всего, ровно как и ручная очистка кэша ARP, не помогают). Я перегружался и пробовал раз 5-6, пока не стало очевидно, что это бесполезно. Дело в том, что NMC 1 стоит в режиме DHCP & BOOTP, и фирменная утилита в принципе не может задать ей IP-параметры, так как для этого нужно выставить интерфейс в режим Manual. Осознанно или неосознанно, Network Management Device IP Configuration Wizard этого сделать не смогла. После понимания причин произошедшего, мне захотелось не только плюнуть в рожу разработчикам, но и обоссать их несколько раз.
Теперь о том, как все же задать IP-конфигурацию при первом использовании карты или после ее ресета, который, кстати, делается установкой и удержанием скрепки в соотв. отверстии NMC. Из командной строки Windows нужно дать команды:
arp -s 192.168.1.5 00-00-00-00-00-00
ping 192.168.1.5 -l 113
Где 00-00-00-00-00-00 — MAC-адрес NMC, который можно узнать, сканируя вашу сеть все той же утилитой Network Management Device IP Configuration Wizard (с этой задачей она справляется), или из наклейки на NMC (для того, чтобы люди окончательно заебались, в APC решили не печатать MAC-адрес на наклейке на самой коробке). А 192.168.1.5 — желаемый IP-адрес NMC. После этого к карте можно будет подключиться по telnet, используя «apc» в качестве логина и пароля.
#4. Не включайте на NMC 1 протокол SSH, так как он вырубит вам единственно работающий в данном случае протокол удаленного доступа — telnet (они одновременно не «живут»). А если все-таки включили, и больше не можете прицепиться, ищите Putty версии ниже, чем 0.63. Например, Putty 0.62 будет работать. При этом текущая версия Putty (0.73) мгновенно посылает нафиг закрытием коннекта (попытки принудительно разрешить SSHv1 и прочее небезопасное старье успехом не увенчались).
#5. Не включайте на NMC 1 протокол HTTPS! Вы просто потеряете доступ к NMC 1 через веб. В ряде источников указано, что это можно побороть, включив поддержку небезопасного протокола SSLv3, однако мне это не помогло. Браузеры продолжили показывать сообщения об отсутствии совместимого алгоритма шифрования (пробовал Firefox и Internet Explorer). В FF это делается правкой реестра браузера (страница about:config, поиск ключа security.tls.version.min и изменение его значения в 0; после чего перезапустить FF). В IE достаточно поставить соотв. галку в Tools — Internet Options — Advanced, скроллить в самый низ до опций Use SSL 2.0, Use SSL 3.0. Но еще раз — в моем случае это не сработало!
#6. Если вы решили обновить свою карту, думая, что спасение где-то там, то вы ошибаетесь. Во-первых, в последней версии AOS (APC OS) 3.7.3 никакие из этих проблем не решены. Во-вторых, скорее всего, вы увеличите количество проблем на единицу. А именно, при обновлении прошивки через apc_hw02_aos373_sumx372 софтина сообщит вам следующее: Not all Network Management Cards were upgraded successfully / Could not log into the Management Card’s FTP server / Encountered 1 failures during upgrade. Анализ текстового лога (results.txt) показывает, что ОС залилась успешно, а дальше, после 2-минутного ожидания устройства, утилите удалось залогиниться, но дальше что-то сбойнуло. Сначала непонятно что именно пошло не так (разработчикам софта было впадлу сделать вывод осмысленного сообщения), но потом вы понимаете, что даже если зашли в девайс по telnet и вырубили HTTPS, вы не можете попасть в девайс по HTTP: Error: The application was not able to load. / You are attempting to access an APC device. / There was a problem loading the application. Please login to the device via telnet for more details.
Попахивает пиздецом, конечно. Куда не сунься, везде что-то недоделано, недопилено. И это не только у меня — Google показывает множественные мучения других пользователей. Но поисковики, RTFM и раскидывание мозгами дали результат — оказывается, дело в том, что при старте NMC 1 через telnet можно увидеть некий Stat, а выше его — версию APP.
Так вот, по всей видимости, «A» — это и есть APP, и под этим термином в APC подразумевают и веб-сервер. Если вы не видите строки Smart-UPS & Matrix-UPS APP v3.7.2 (или иной версии), а в Stat вы видите «A минус», то ничего хорошего не ждите, веб-сервер не заработает. Если вы видите «A?», то просто подождите, приложение загружается. В моем случае там был «A минус», что означает отсутствие приложений.
Я прицепился к APC NMC 1 при помощи FTP-клиента, предварительно выставив в нем режим передачи файлов как binary. И влил в корневую директорию файл apc_hw02_sumx_372.bin
После заливки файла карта автоматически перегрузилась, как и задумано разработчиком (именно поэтому за раз нельзя залить более 1 файла). После перезагрузки карты я увидел статус «A?», который после недолгого ожидания и рефреша картинки сменился на «A плюс».
Ну и как вы уже догадались, обращение через браузер показало желанную форму ввода логина и пароля. Ура! Карта побеждена и работает. Подумаешь, что на все это потрачено 2 вечера :(
И еще один момент — обратите внимание на название архива с прошивкой, где sumx в названии указывает на то, что это прошивка для SmartUPS & MatrixUPS. Это важно потому, что существует еще минимум 2 других прошивки для NMC 1 для работы совместно с другими UPS. Другая прошивка не убьет вашу карту, но не позволит ей правильно работать с вашим устройством.
Вывод
В общем, ребята, софты APC — это лютый пиздец, и образец идиотизма с налетом олдскула одновременно. Те, кто работал над этом ПО, точно занимались не своим делом. Это я уже молчу про то, что все Windows ПО APC использует Java, имеет огромные дистрибутивы, долго ставится, и при этом обладает скудной функциональностью и интерфейсами «назад в 2003-й».
P.S.
Несколько улучшить ситуацию можно перейдя на NMC 2, то есть, на карты с номерами AP9630, AP9631 или AP9635 и логотипом Schneider Electric на них. Я лично с ними не работал, но согласно найденной в сети информации, с ними меньше проблем в плане HTTPS, ну и как говорилось выше, они могут грузиться с обычного DHCP-сервера без всяких опций. Также у APC хватило ума оснастить их консольным портом, что позволяет настраивать эти карты без подключения по TCP/IP. Ну и для этих карт существует утилита для обновления с Win32 GUI вместо command line (в 2011-12 годах в APC заметили, что люди больше не работают в командной строке). Но в целом это аналогичный по функциям и качеству продукт, как и NMC 1, и не следует ожидать от них чудес.