Jump to content
Калькуляторы

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

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

 

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

Share this post


Link to post
Share on other sites
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

 

Готово =)

Edited by minks

Share this post


Link to post
Share on other sites
В 11.11.2020 в 10:18, Zhmak сказал:

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

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

 

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

Share this post


Link to post
Share on other sites
14 часов назад, Saab95 сказал:

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

 

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

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

Share this post


Link to post
Share on other sites
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. Тогда можно на все микротики отправить этот скрипт и сразу выполнить его. После чего все оборудование само выполнит перезапуск и все устройства в цепочке будут обновлены.

Share this post


Link to post
Share on other sites
В 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. Тогда можно на все микротики отправить этот скрипт и сразу выполнить его. После чего все оборудование само выполнит перезапуск и все устройства в цепочке будут обновлены.

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

Share this post


Link to post
Share on other sites
1 минуту назад, fractal сказал:

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

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

Share this post


Link to post
Share on other sites
10 часов назад, Saab95 сказал:

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

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

Share this post


Link to post
Share on other sites
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 запросы с требуемым содержимым

Edited by minks

Share this post


Link to post
Share on other sites

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

Edited by georghacker

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now