Первое и естественное желание - выбросить это барахло.

Второе - отправить туда, откуда эти 2000 роутеров пришли. Пусть китайцы сами шьют.

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

Перед тем как начнем, немного вводных о самих устройствах

Я работаю в интернет-провайдере, который заводит оптику до абонента.

Соответственно роутер с GPON-WAN-входом. Роутер без Wi-Fi интерфейса и имеет 2 выхода: RJ-45 и Аналоговый для телевидения. После нашего роутера ставится любой роутер с WI-FI интерфейсом от абонента. Настройки роутер абонента получает по DHCP. Это делает управление сетью для нас более унифицированным процессом (мы знаем, как работать с каждой из наших железок, поэтому если у абонента проблема с сетью, а на нашем роутере все ок - значит проблема у абонента на роутере), и защищает нашу сеть от абонентов.

Итак, у нас есть вводные

Задача такова: в офисе Бишкека 1400 роутеров, в офисе Оша - 600. Нужно за адекватное время сделать так, чтобы роутеры, оказавшись у абонентов в домах, были на нужной нам прошивке. Вот несколько способов, как это можно сделать:

Вариант А. Он же самый простой

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

В нашем случае у монтажников отсутствуют ноутбуки. Это небольшая проблема, так как есть USB-сетевые карты, которые можно подключать к телефонам, и это тоже решение.

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

Вариант B. Чуть посложнее

На каждый из новоподключаемых роутеров по SSH подключается Ansible, выполняет команду загрузки с FTP сервера прошивки, и устанавливает ее на устройстве. Все выглядело просто, но было 2 момента.

  1. У наших роутеров не было SSH, только Telnet. Что в целом не страшно. Ансибл все так же мог бы подключаться к каждому новому роутеру, обновлять прошивку, после чего убивать телнет для безопасности. Но тут то мы и получили 2 проблему.

  2. Роутеры по дефолту закрыты по телнет из WAN-порта. Но открыт с порта локальной сети.

А значит...

Еще один вариант. То же самое, что и в предыдущем, но для локальной сети

  1. Берем самую большую по портам Cisco. У нас это было 48 портов. Сверху берем любой Микротик, желательно хотя бы из роутерной HEX-серии.

  2. У нас 47 роутеров, у каждого из которых для локальной сети одинаковый IP-адрес: 192.168.1.1

  3. Чтобы решить эту проблему, берем коммутатор из пункта 1, и создаем на нем 47 VLAN-ов.

  4. К��ммутатор втыкаем в микротик. Дальше начинается магия с VRF, которую я не реализовывал, но так точно можно делать. Вопрос только в том, вытащит ли такое Микротик HEX-серии, или нужно что-то посерьезнее.

  5. Итак, на каждый из 47 виртуальных роутеров мы приземляем по VLAN-у. Поднимаем на каждом из этих роутеров NAT, и делаем проброс портов до наших роутеров из внешней сети.

  6. Микротику, FTP-серверу и Серверу со скриптом для обновления даем адреса из подсети, которую виртуальные роутеры считают внешней. Допустим это будет сеть 10.0.0.0/26 (чтобы оперировать 62 IP-адресами).

  7. После конфигурирования сети напишем небольшой скрипт, который:
    • Откроет telnet сессию через каждый виртуальный роутер на роутер, который мы собрались прошивать
    • Отдаст команду на скачивание прошивки
    • После того, как прошивка будет скачана, отдаст команду на ее установку. Но на деле я просто собирался написать "sleep 1m", чтобы прошивка точно была скачана.

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

Самый последний вариант. Теперь уже точно

  1. Достал 48-портовую Cisco и 24-портовый и самый тупой TP-Link.

  2. Все порты на Cisco переводим в ацесс мод. На TP-Link-е можно ничего не трогать.

  3. Процесс работы с утилитой достаточно прост:

    • питание на роутерах отключается

    • активируется утилита

    • начинает кидать широковещательные пакеты по какому-то из своих протоколов. Я не уточнял этот момент, работает и ладно

    • Подаем питание на роутеры, и первое, что они видят - пакеты от утилиты

    • Роутеры переходят в режим прошивки.

    • на роутерах видим индикацию о прошивке

    • ждем 5 минут

    • Отключаем утилиту

    • Отключаем-включаем питание на роутерах для перезагрузки

    • Получаем готовые роутеры.

  4. Каждый из портов Cisco настраивается следующим образом:

    interface GigabitEthernet <номер порта>
      switchport access vlan <номер влана> / Все порты в один влан
      switchport mode access
      spanning-tree portfast / Отключаем STP на порту. Пока циска согласует порты,
                              модемы выйдут из режима готовности к прошивке, и утилита
                              не отработает.

В остальном ничего специфичного, можно брать дефолтную циску.


На этом процесс настройки можно считать завершенным. Перейдем к процессу построения конвейера.

  1. Питание. После того, как все сконфигурировано, нужно как-то запитать условные 70 роутеров. И вот это уже проблема. Достав все пилоты, что были в запасах на складе, у меня получилось организовать только 52 гнезда на 220. 2 пилона были "мэнеджмент", чтобы удобно включать/отключать питание на роутерах. Все это выглядело вот так:

    Подключаем 52 блока питания для роутеров. Крайний левый и крайний правый пилон - для управления питанием.
    Подключаем 52 блока питания для роутеров. Крайний левый и крайний правый пилон - для управления питанием.

  2. Питание для питания. Посчитав максимальную нагрузку, получил цифру в 3,4 киловатта для всей этой фермы. Нагрузка не запредельная, как 2 чайника, но безопасности ради пришлось тыкнуть это все в отдельную розетку от щитка. Лучше держать этот момент в уме, когда захотите прошить 100 модемов за раз.

  3. Очень желательно было после прошивки вернуть каждый модем в родную коробку, так как на коробке была маркировка с серийным номером, который нужно прописывать при активации роутера в биллинге. Вопрос был решен вот такой "матрицей". Коробки брались последовательно, ставились на нужную позицию. Допустим это позиция 5. После чего роутер из 5 коробки втыкался в 5 порт. После прошивки роутер с 5 порта возвращался в 5 коробку.

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

    Подпишите каждый кабель по номеру порта на циске, чтобы потом не искать
    Подпишите ка��дый кабель по номеру порта на циске, чтобы потом не искать
Просто красивая картиночка для фактуры.
Просто красивая картиночка для фактуры.

Как итог получился следующий процесс

  • Взять коробку с 60 роутерами. В коробке 5 столбцов по 4 ряда и 3 слоя в высоту

  • Достать и распаковать один ряд роутеров

  • Поставить 5 коробок из ряда к стене, каждую на свою позицию

  • Воткнуть роутеры в порты, согласно номерам позиций

  • Провести процесс прошивки

  • Вернуть 52 роутера в соответствующие коробки.

В теории все просто и быстро, на практике процесс прошивки одной "партии" из 52 роутеров занимал от 40 минут до 1 часа, что за 8-часовую смену давало 400 прошитых роутеров. На практике выходило 200, что тоже результат.

В Бишкекском офисе было 1400 роутеров, так что с перерывами и неспеша с этой работой мы справились примерно за 2 недели.

В город Ош отправили 600 роутеров, и они предсказуемо сделали все за 3 дня.


Не пытаюсь развести на комментарии, но мне было бы интересно узнать, как вы бы решили такую задачу. Можете писать свои варианты.