Перейти к содержимому
Калькуляторы

Свой сервер обновления Microtik устройств.

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

 

Как работает механизм обновления микротик устройства с другого микротика? По http, ftp, или что-то своё?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

10 hours ago, Zhmak said:

Как работает механизм обновления микротик устройства с другого микротика? По http, ftp, или что-то своё?

 

Собственно чего тут сложного?

 

По следующим url'ам он получает файл с актуальной версией  ROS:

Long Term: http://upgrade.mikrotik.com/routeros/LATEST.6fix
Stable: http://upgrade.mikrotik.com/routeros/LATEST.6
Test: http://upgrade.mikrotik.com/routeros/LATEST.6rc
Development: http://upgrade.mikrotik.com/routeros/LATEST.7

 

Возьмем для примера - Long Term

скачивается файл LATEST.6fix с содержимым: 6.46.8 1603960195

 

 

Затем скачивает файл с http://upgrade.mikrotik.com/routeros/6.46.8/CHANGELOG

Внутри которого чейндж лог по этой прошивке

 

А как нажмеш кнопку download (and install) он скачивает: https://download.mikrotik.com/routeros/6.46.8/routeros-платформа-6.46.8.npk

 

Собственно, за чем дело сталось:

Подменяеш upgrade.mikrotik.com в его DNS'е

/ip dns static add address=192.168.88.32 name=download.mikrotik.com

 

Ну и на 192.168.88.32 поднимаеш web сервер обслуживающий http запросы с требуемым содержимым

/routeros/LATEST.6fix

/routeros/LATEST.6

/routeros/LATEST.6rc

/routeros/LATEST.7

/routeros/xxxxxx/CHANGELOG

/routeros/xxxxx/routeros-xxxxxxx-xxxxx.npk

 

Готово =)

Изменено пользователем minks

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 11.11.2020 в 10:18, Zhmak сказал:

Хочу иметь возможность централизованного обновления прошивок

У нас есть 10000+ устройств микротика без доступа в интернет. Могу вам сказать, что вариант с файлами (когда микротик на фтп держит нужные версии ПО) самый оптимальный. Вот представьте что вы сделали веб сервер, а все устройства разом туда пошли обновления скачивать в самое не удобное время=)

 

Обновлять надо только руками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

14 часов назад, Saab95 сказал:

У нас есть 10000+ устройств микротика без доступа в интернет. Могу вам сказать, что вариант с файлами (когда микротик на фтп держит нужные версии ПО) самый оптимальный. Вот представьте что вы сделали веб сервер, а все устройства разом туда пошли обновления скачивать в самое не удобное время=)

 

Обновлять надо только руками.

Ручками, но пачками, на веб сервере стартанул одну пачку микротов и асе, удобно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, fractal сказал:

Ручками, но пачками, на веб сервере стартанул одну пачку микротов и асе, удобно

А как быть с цепочками микротиков?

Например есть линия 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 микротиков. Обновить нужно все. Ясно дело, микротик 1 получит файл быстрее, чем микротик 9, и перезагрузится. Следующие устройства за ним не успеют получить файл и не обновятся. Но команда получена и он будет пытаться обновиться. И по такой схеме до микротика 9, в теории, пропадет связь 8 раз.

 

Если использовать команду загрузки

 

/tool fetch address=10.10.10.1 src-path=routeros-mipsbe-6.46.2.npk user=upgrade mode=ftp password=Up1234567890 dst-path=routeros-mipsbe-6.46.2.npk port=123 host="" keep-result=yes

То все микротики сначала получат файл с обновлением и более ничего делать не станут.

 

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

 

/system script
add name=reboot policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api source=\
    "foreach i in=[/system script find] do={/system script remove \$i;};\r\
    \n\r\
    \nsystem reboot"


:execute reboot 

/system reboot

:execute {/system reboot;}

И тут уже микротик перезагрузится, обновит ПО и включится в работу.

 

Ясно дело команды перезагрузки нужно отправлять сначала на самые дальние устройства, потом на ближние и т.п. Или использовать скрипт перезагрузки с паузой, например минут 5. Тогда можно на все микротики отправить этот скрипт и сразу выполнить его. После чего все оборудование само выполнит перезапуск и все устройства в цепочке будут обновлены.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 14.11.2020 в 14:28, Saab95 сказал:

А как быть с цепочками микротиков?

Например есть линия 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 микротиков. Обновить нужно все. Ясно дело, микротик 1 получит файл быстрее, чем микротик 9, и перезагрузится. Следующие устройства за ним не успеют получить файл и не обновятся. Но команда получена и он будет пытаться обновиться. И по такой схеме до микротика 9, в теории, пропадет связь 8 раз.

 

Если использовать команду загрузки

 


/tool fetch address=10.10.10.1 src-path=routeros-mipsbe-6.46.2.npk user=upgrade mode=ftp password=Up1234567890 dst-path=routeros-mipsbe-6.46.2.npk port=123 host="" keep-result=yes

То все микротики сначала получат файл с обновлением и более ничего делать не станут.

 

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

 


/system script
add name=reboot policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api source=\
    "foreach i in=[/system script find] do={/system script remove \$i;};\r\
    \n\r\
    \nsystem reboot"


:execute reboot 

/system reboot

:execute {/system reboot;}

И тут уже микротик перезагрузится, обновит ПО и включится в работу.

 

Ясно дело команды перезагрузки нужно отправлять сначала на самые дальние устройства, потом на ближние и т.п. Или использовать скрипт перезагрузки с паузой, например минут 5. Тогда можно на все микротики отправить этот скрипт и сразу выполнить его. После чего все оборудование само выполнит перезапуск и все устройства в цепочке будут обновлены.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 минуту назад, fractal сказал:

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

Через дуду обновлять не пробовали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

10 часов назад, Saab95 сказал:

Через дуду обновлять не пробовали?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

-

Изменено пользователем Georghack

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 hours ago, Georghack said:

А можно это разжевать для особых чайников? Как сделать именно эту часть?

Разжевать, как поднять веб сервер и создать на нем вышеописанную структуру каталогов?

Если да - это не по адресу =)

 

5 hours ago, Georghack said:

192.168.88.32 это адрес микротика или именно web сервера? Как правильно? 

Адрес web сервера, на котором создано и структура каталогов с требуемым содержимым

 

P.S.

Странные вопросы задаёте... черным по белому написано... не читаем?

On 11/11/2020 at 8:41 PM, minks said:

Ну и на 192.168.88.32 поднимаеш web сервер обслуживающий http запросы с требуемым содержимым

Изменено пользователем minks

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вариант с ftp в итоге устроил.

Изменено пользователем georghacker

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 14.11.2020 в 14:28, Saab95 сказал:
/tool fetch address=10.10.10.1 src-path=routeros-mipsbe-6.46.2.npk user=upgrade mode=ftp password=Up1234567890 dst-path=routeros-mipsbe-6.46.2.npk port=123 host="" keep-result=yes

Эта команда отправит файл на одно устройство, а как отправить на несколько? Только скрипт?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Эта команда запускается на микротике, на который нужно скачать файл.

То есть вам надо знать все адреса ваших устройств, на каждое по очереди подключаетесь по ssh/telnet, и выполняете указанные команды.

 

Если FTP сервер на микротике в виде роутерборда, то лучше более 20 сессий за раз не запускать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 Хороший совет, правильный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

существует несколько методов автообновления:

1. если вы используете CAPsMAN - там всё настраивается достаточно просто - но если у вас зоопарк точек, тот тут начинаются проблемы, необходимо в ручную выкачивать все необходимые версии прошивок и заливал на микрот который будет эти обновления раздавать, работает только с оборудование имеющим на борту вайфай модули.

2. центр обновлений(Auto upgrader) - иcпользует FTP сервак и на него льем прошивки когда это необходимо, через менеджмент интерфейс раздаем обнову или через дудя как в официальном вики.

3. немножко гемор - через скрипты состоит по сути из нескольких этапов.

    а. качается обнова на устроства - тут нужно задать в порядке обратной иерархии с шагом в минуту - соответственно сразу ребут.

    б. второй скрип сразу обвляет фирмвар

    в. ну а теперь играемся с расписанием - делаем правило разрешающее доступ только к репозиторию микротов и только по расписанию или ручками активируем соответвующее правило фаервола.

    г. на всех устроствах делаем хадульки с ежедневной задачей - запрос обновлений, допустим каждые 3 часа.

    д. дальше сами додумаете как всё это сделать максимально безопасным, в случае смены админа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

20 часов назад, CooL_RusH сказал:

на всех устроствах делаем хадульки с ежедневной задачей - запрос обновлений, допустим каждые 3 часа.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 часа назад, Saab95 сказал:

Ведь и на старых прошивках все исправно работает.

И дыры не надо закрывать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Какие дыры? Для этого достаточно отключить все не используемые сервисы. У тех, какие нужны - сделать ограничения доступа по IP, так же ограничить по IP и доступ админов. На всех роутерах, дополнительно, блокировать доступ абонентов в подсеть управления.

 

Тогда кто и каким образом сможет попасть на устройства? Опять же на те роутеры, которые смотрят в интернет - можно получать доступ через VPN, и ограничение по IP в туннеле. Тогда со стороны интернета все будет заблокировано.

 

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

 

Вот варианты через НАТ ограничивать запросы, блокировать при попытках подключения и подбора пароля - вот это все не правильная и дырявая настройка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 часов назад, Saab95 сказал:

Тогда кто и каким образом сможет попасть на устройства?

Иногда вскрывается то, что заложено вендоров или специально или по упущенности, и тогда все эти отключения сервисов, acl ничем не помогут, это все равнозначно для любого вендора и сидеть на старом по сейчас сродни идиотизму, естественно обновляют с предварительным тестом

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.