У каждого администратора однажды перестает отзываться некий сервер на другом конце города. В вечер пятницы приходится ехать по раскисшему весеннему городу, так как пациент недоступен через Интернет и вменяемого персонала рядом нет. Помню, как в один из таких случаев было обидно лицезреть "Press F1 to continue": вышел из строя ИБП и старенький ProLiant после перезагрузки считал, что «Power Supply Failed». Ну надо же было забыть отключить уведомление с ожиданием реакции в BIOS!


Но здесь будет не ода IPMI, а немного личных граблей и хитростей удаленного восстановления сетевого и серверного железа.


Удаленная настройка сети – к дальней дороге


Мне, например, лениво ездить куда-то далеко для обновления прошивки роутера или добавления нескольких правил в пограничный фаервол, поэтому делаю это удаленно. Здесь важно отнестись к процессу крайне внимательно и тщательно продумывать каждый шаг, чтобы не оказаться внезапно отрезанным и от консоли настройки, и от сети вообще.


От таких промашек страхует резервный канал на дополнительном маршрутизаторе или автоматический откат некорректных настроек. Вариант с настройками интереснее, поэтому чуть подробнее расскажу о способах спасения попадавшихся в руки устройств.



Серия DFL имеет мало общего с обычным D-link и его странными глюками – сами устройства и их ПО разработаны компанией Clavister.



У таких устройств есть простейший механизм защиты: если после применения настроек администратор не смог повторно подключиться к веб-интерфейсу, новые параметры не сохраняются. Надежно как штык и никаких дополнительных телодвижений.


Mikrotik


В изделиях наших братьев-прибалтов есть режим Safe Mode. Поскольку все вносимые в конфигурацию изменения применяются сразу, то делать их нужно только в Safe Mode, после чего корректно перевести устройство в обычный режим. Только после перехода обратно будет записана новая конфигурация.



Если Safe Mode не был отключен перед обрывом сессии настройки, то через 9 мин конфигурация будет заменена той, что работала до включения безопасного режима.


Cisco


Относительно недавно Cisco добавила механизм автоматического отката настроек по таймеру, если был настроен архив конфигурации. Перед важными изменениями нужно просто задавать время, после которого устройство отменит произведенные настройки:


configure terminal revert timer X

Где X – время в минутах.


Отключить таймер после успешного применения настроек можно командой configure confirm. Больше примеров и подробностей вы найдете в документации Cisco.


С отменой неудачного процесса обновления прошивки дела обстоят сложнее. Если до удаленного филиала, где вы хотите обновить ПО маршрутизатора, нет полностью независимого канала – лучше съездить с оказией и все сделать лично.


Больше загрузок, хороших и разных


Если IP-KVM для конкретного сервера нет или канал недостаточно широк для удаленной работы с дистрибутивом ISO, то стоит предусмотреть альтернативные способы загрузки средств восстановления. В качестве примитивного решения можно положить загрузочную флешку с набором привычных утилит рядом с серверной стойкой. Задействовать этот аварийный набор можно при помощи Smart Hands – самого "технического" сотрудника филиала, который будет нажимать кнопки по вашей указке.


Конечно, самый популярный способ удаленной загрузки начинается с веб-интерфейса модуля BMC.


На всякий случай, памятка про BMC

BMC (Baseboard management controller) – это мини-компьютер, установленный на плате сервера и работающий автономно, даже если вся система выключена. С помощью этого устройства производится диагностика и управление сервером через несколько доступных протоколов, самым известным из которых является IPMI. В зависимости от производителя и модели сервера, управляющий модуль может предоставить доступ к консоли через IP-KVM. Частным случаем реализации BMC являются:


  • HPE iLO.


  • Lenovo IMM.


  • Dell iDRAC.


Например, для HPE ProLiant DL380 Gen9 это выглядит так:



Но еще интереснее происходит загрузка средств восстановления через PXE:



Инструкций на этот случай написано великое множество, поэтому отмечу лишь, что при использовании BMC без IP-KVM нужно настроить старт образа без лишних вопросов.


Не обязательно держать отдельный сервер для сетевой загрузки. Например, уже упомянутые маршрутизаторы Mikrotik вполне справятся и с раздачей образа по сети. С их помощью можно даже сделать готовый "модуль спасения" с резервным беспроводным каналом и разными образами.


Тогда команда IPMI для включения загрузки по PXE будет выглядеть примерно так:


ipmitool -H <ip> -U <user> -P <pass> chassis bootdev pxe

С другими способами управления загрузкой через IPMI можно ознакомиться в этом материале.


Внимание стоит уделить и самому образу. Помимо обеспечения доступа к запускаемой системе по сети, нужно не забыть любимый набор утилит для реанимации. Я обычно использую Microsoft DaRT, поэтому подробнее расскажу про него.


С помощью DaRT можно восстановить любую проблемную Windows-систему, но многие использует инструмент только локально. Чтобы исправить положение удаленно, кто-то местный должен запустить средство "Remote Connection" на пациенте и передать вам данные тикета (адрес, порт и номер). Тогда можно подключиться к системе с помощью DaRT Remote Connection Viewer и проделать все необходимые восстановительные процедуры. Файл с данными тикета после запуска Remote Connection создается в Windows\System32\inv32.xml.



Более продвинутый вариант, не требующий чьей-либо помощи

Для автоматической поддержки удаленного подключения готовый образ из Сети не подойдет – придется сделать его вручную:


  1. Качаем средство создания образов;


  2. На шаге Remote Connection включаем его;


  3. Создаем образ и подключаем его;


  4. Правим файл Windows\System32\winpeshl.ini:

[LaunchApps]

"%windir%\system32\netstart.exe -network -remount"

"cmd /C start %windir%\system32\RemoteRecovery.exe -nomessage"

в этой строке нужно скопировать файл %windir%\system32\inv32.xml в сетевую папку или //отправляем по почте админу"


"%windir%\system32\WaitForConnection.exe"

"%SYSTEMDRIVE%\sources\recovery\recenv.exe"

После всего этого собираем образ обратно. Остается забрать файл inv32.xml с сетевого хранилища и указать данные средству удаленного подключения.


Без аппаратного управления избежать поездок сложнее


Модулем аппаратного управления (BMC) снабжают свою продукцию практически все производители серверов. Но некоторые продают часть функций отдельно, так что не забудьте купить лицензию или изучить бесплатный набор инструментов. Например, консольные команды обычно доступны бесплатно.



Если в BMC есть IP-KVM, то вы в большинстве случаев сможете перезапустить систему, а также выполнить загрузку по сети или из образа ISO. Все это без использования рискованного ресурса Smart Hands. К слову, "самый толковый сотрудник" запросто может заявить нечто вроде “Мы в школе учили немецкий – я не понимаю, что тут написано”, что разрушит весь хрустальный мир аварийного восстановления.


Но бывают и приятные исключения. В одной авральной ситуации попросил к телефону самого разбирающегося в компьютерах сотрудника. Яркий восточный акцент из трубки сразу как-то настроил на пессимистичный лад… Но оказалось, что Файзулла окончил в Ташкенте технический университет, ночью работает программистом на фрилансе, а днем трудится на складе – так сказать, отдыхает мозгом и экономит на фитнесе.

Важные моменты настройки BMC для удаленного доступа

Следует воспринимать подключение через BMC как некий бэкдор, который отличает от уязвимости только то, что служит все это вашим целям. Поэтому выставлять его в публичную сеть – не самая лучшая идея. Даже внутри локальной сети управляющие интерфейсы стоит выводить в отдельный VLAN с доступом только с админских машин. В случае с удаленным объектом нужно также настроить доступ по VPN.


Порты для графической консоли и проброса Remote Media у трех популярных вендоров следующие:


Порт IMM Порт iLO Порт iDRAC
Remote Media 3900 17998 5900
Remote Console 3900 17990 5900

Более полная информация по настройки сети есть в официальной документации:



При планировании сетевой конфигурации стоит помнить и о том, что BMC обычно работает в одном из трех режимов:


  • Dedicated – когда порт используется только для управления;


  • Shared – IPMI работает на сетевом интерфейсе LAN1;


  • Failover – IPMI работает в режиме Dedicated, но в случае отсутствия линка на выделенном порте переключается в режим работы Shared.

Используя Shared или Failover режимы, есть вероятность случайно выпустить BMC в общую сеть. Поэтому везде где возможно следует использовать отдельный интерфейс.


В качестве дополнительного рычага управления можно использовать GSM-розетку:



Модуль управления питанием с SIM-картой позволяет перезагружать любые подключенные устройства вне зависимости от доступности основного канала Интернет. Но такой перезапуск может негативно сказаться на целостности серверных данных, потому что происходит все только в "жестком" режиме. Для коммутаторов и маршрутизаторов такой управляемый через SMS аварийный рубильник очень удобен.

Если сервер все же приобретен без какой-либо реализации BMC, то есть пара запасных вариантов:


  • Отдельное устройство IP-KVM. Можно подключить множество "неуправляемых" серверов;


  • Модуль BMC на шине PCI-E, который можно установить практически в любую машину;


  • В случае, когда будущий сервер собирается на базе десктопного железа, стоит заказывать материнскую плату и процессор с поддержкой Intel vPro. С реализациями IPMI эта система имеет мало общего, но функции IP-KVM предоставляет.

По закону Мерфи, одновременно со сбоем сервера может выйти из строя Интернет-канал или маршрутизатор. Поэтому хорошей идеей будет использование не одного роутера с двумя каналами, а нескольких отдельных устройств. Неплохим вариантом выглядит 3G\LTE-модем с поддержкой туннелей VPN – предоставляемой этими сетями скорости хватит даже для сеанса удаленного доступа к рабочему столу.

О пользе непопулярных протоколов


В эпоху всеобщего "цифрового любопытства" использовать дырявый протокол управления серверами, да еще и работающий по UDP, кажется архаичным. Помимо удобных веб-интерфейсов, производители часто предоставляют альтернативные способы управления:


  • WS-Management. Этот протокол идейно ближе к WBEM, чем к SNMP. В среде Windows его реализацией является WinRM.

Для примера, команда PowerShell на перезагрузку с использованием WS-Management выглядит так:


Restart-Computer -ComputerName "Server01" -Protocol WSMan -WSManAuthentication Kerberos

  • SMASH. Стандарт интерфейса, который работает по SSH. Команда на перезагрузку проста, как все гениальное:

reset

Практически все вендоры предоставляют подобные альтернативные интерфейсы, но ими чаще пользуются средства мониторинга, а не сами администраторы.


Итого


Конечно, от многих проблем успешно спасают кластерные решения. Но мы живем не в идеальном сферическом мире, и не для всех сервисов можно организовать резервирование. Поэтому нюансы "хитрых" восстановлений тоже пригодятся хотя бы раз каждому.


У вас наверняка есть собственные хитрости на случай "пинг пропал, а ехать далеко" – поделитесь с коллегами в комментариях.

Поделиться с друзьями
-->

Комментарии (14)


  1. ildarz
    21.11.2016 10:11
    +1

    > WS-Management. Этот протокол идейно ближе к WBEM, чем к SNMP, и во многом похож на WinRM

    Это не WS-Management «похож» на WinRM, а WinRM является виндовой реализацией стандарта WS-Management. :D


    1. dimskiy
      21.11.2016 10:23

      Точно! Спасибо за внимательность :)


  1. jok40
    21.11.2016 10:44
    +4

    Прикольно. Совсем недавно мне пришлось выполнять удалённый подъём упавшего сервера, вообще не подключенного к интернету — с помощью «Smart hands» и WhatsApp: человек на той стороне делал фотки с экрана монитора и присылал мне их по Ватсапу, а я ему через Ватсап же слал команды — что нажимать дальше. Получилось достаточно эффективно.


    1. dimskiy
      21.11.2016 10:49

      А чего не пошли в ногу со временем – FaceTime или видеочат в Skype? :)


      1. jok40
        21.11.2016 11:17

        Честно говоря, что такое FaceTime — я не в курсе, а вот с помощью видео как то раз пытался организовать поддержку — ничего не получилось. Канал был узковат и видео было такого качества, что разобрать надписи на мониторе не представлялось возможным. Да и Ватсап у нас обоих уже был установлен, так что не пришлось делать никаких дополнительных телодвижений.


        1. dimskiy
          21.11.2016 11:29

          Да, нужен приличный канал, хотя бы стабильный. Помню, пытался с кем-то по видео связи общаться, когда ее сотовые операторы только представили и везде рекламировали. Тогда еще айфонов не было. Это была боль и страдание, а не звонок :)


      1. dragony
        22.11.2016 11:13

        Вспомнил, как правил настройки через видеочат Viber :)
        Кстати, всё получилось норм, особенно после того, как удалённый человек повернул телефон горизонтально :)


  1. aproof
    21.11.2016 15:45

    Расскажу про один огромный костыль в моей практике на заре LTE в нашей могучей.
    Интернет канал был организован из связки LTE модема и ноутбука с Ubuntu server в качестве шлюза/фаервола/шейпера и USB хаба для модема. С физическим доступом к этой связке были проблемы, да и лень ехать.
    Модем имел свойство зависать через непредсказуемое время. Причем, проблема решалась исключительно передергиванием на нем питания.
    Думалось проблема решится скриптом на ноуте, чтобы он при детектировании зависания модема отправлял ноут в перезагрузку. Ан нет, ноут в режиме перезагрузки, гад, не рубил питания на USB портах.

    Костыль номер 1) Собрал схемку, которая питалась от блока питания ноута. Цель этой схемки — при падении питания на USB через несколько секунд замкнуть кнопку включения. Смысл такой: скрип на ноуте выключает его, а схемка через несколько секунд включает. Профит.

    Костыль номер 2) Учтя недостаток предыдущей схемки (отсутствие возможности всё-таки выключить ноут), соорудил другую в виде адаптера-переходника от модема к ноуту, которая умела по команде рубить питание включенного в нее модема. Команду схемка принимала от звуковой карты (Гы-гы). Скрипт при детектировании зависшего модема генерировал звуковой импульс, который выключал модем. При окончании импульса схемка включала модем. Профит.

    Вот так я, собственно, и развлекался в студенческие годы)


  1. Meklon
    22.11.2016 17:41

    Черт! Спасибо за Mikrotik Safe Mode. Только вчера в замкнутый кирпич превратил кривым правилом firewall. Пришлось ехать и делать reset кнопкой, а потом backup накатывать.


    1. avelor
      22.11.2016 21:17
      +1

      эм… а мак-телнет что не использовали? винбокс замечательно цепляет кротиков в одном броадкаст домене по маку.
      очень удобно — грохнул дефолтный конфиг полностью и настраивай в свое удовольствие. разумеется, если нет подготовленного файла с конфигом:)


      1. Meklon
        23.11.2016 12:06

        l2tp это был. И он отпал) Если локально, то да. Сейчас с маршрутами долблюсь(( Вообще магия. Из центральной сети не вижу локальные адреса филиала. Наоборот маршрут работает. У меня получается 192.168.10.0/24 филиал, 192.168.100.0/24 центр. Из центра доступен только маршрутизатор 192.168.10.1, а, скажем, 192.168.10.100 уже недоступен. Из 192.168.10.0/24 доступна вся сеть 192.168.168.100.0/24. Экспортировал конфиги и думаю.


        1. avelor
          23.11.2016 12:18

          это я к тому, что не обязательно было сбрасывать роутер. а если бы на точке был человек с 3g-модемом\смартфоном — можно было вернуть всё как было через какой-нибудь teamviewer:)
          если кинете в личку конфиги — могу посмотреть. но я думаю, что описание вашей проблемы и решение её есть на форуме микротика.
          кстати имхо l2tp для site2site не лучший вариант, я предпочитаю хотя бы ipsec, можно поверх ipip, можно «голый»- это более универсально для связки оборудования разных производителей — не все умеют в gre и т.п


          1. nixon89
            30.11.2016 12:32

            Meklon Кстати, на ютуб канале Хекслет только сегодня вышло отличное и понятное видео о настройке ipsec на mikrotik


        1. avelor
          23.11.2016 12:25

          ЗЫ вы же правда не выдаете адрес l2tp-клиенту из основной сети?