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

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.