Сегодня я поделюсь следующими штуками в среде RouterOS:
1) Полуавтоматическое обновление прошивок устройств Mikrotik, уведомление по эл.почте и/или СМС
2) Автоматическое копирование настроек между устройствами
3) Блокировка трафика, заворот его в другой шлюз
Интересно? Тогда прошу под кат.
Сначала немного теории: мой случай - это 3 устройства 951 серии, соединенные каждый с каждым по VPN. Одна из точек - мастер, остальные берут нужные обновления с мастера по внутреннему каналу. Мастер проверяет обновления через Интернет, автоматически скачивает их и высылает уведомление по почте и СМС.
Но есть один момент: по умолчанию файлы обновлений складываются в корень Files, только оттуда Микротик может обновиться при перезагрузке. Сразу после обновления файлы удаляются. Для моей схемы это критично, поэтому нужно сложить файлы в какую-то из папок, там они не удалятся и другие точки будут их видеть.
Что понадобится
:
понадобится FTP-сервер на мастере.
опционально - настроенные ветки Email и SMS
Как сделать: Мастер
Необходим только скрипт, нужные переменные находятся в верхней части.
Скрипт обновления для версии <6.32.2
:local email "Ваш email"
:local user "Ваш пользователь"
:local pass "Ваш пароль"
:local folder "Имя папки куда копировать"
:local phone "Ваш номер мобильного с +"
#####
/system package update check-for-updates:delay 3:if ( = ) do={
/tool e-mail send to=$email subject="Обновление Mikrotik" body="Доступно обновление RouterOS! Новая версия - $. Что нового - http://www.mikrotik.com/download"
/tool sms send usb1 channel=2 "$phone" message="New RouterOS version is available!"
/system package update download:delay 20:foreach i in=] do={
/tool fetch address=127.0.0.1 src-path="$" dst-path="$folder/$" user=$user password=$pass mode=ftp
}
}
Скрипт обновления для версии >=6.32.2
:local email "Ваш email"
:local user "Ваш пользователь"
:local pass "Ваш пароль"
:local folder "Имя папки куда копировать"
:local phone "Ваш номер мобильного с +"
#####
:if ( != "Downloaded, please reboot router to upgrade it") do={
/system package update check-for-updates:delay 3:if ( != ) do={
/system package update download:delay 20:foreach i in=] do={
/tool fetch address=127.0.0.1 src-path="$" dst-path="$folder/$" user=$user password=$pass mode=ftp
}
/tool e-mail send to=$email subject="Обновление Mikrotik" body="Доступно обновление RouterOS! Новая версия - $. Что нового - http://www.mikrotik.com/download"
/tool sms send usb1 channel=2 "$phone" message="New RouterOS version is available!"
}
}
Примечание: начиная с версии 6.32.1 возникли проблемы с кодировкой e-mail сообщений.
Как сделать: Слейв
Необходимы настройка и 2 скрипта.
Нацеливание на мастер-точку
/system upgrade upgrade-package-source add address=xxx.xxx.xxx.xxx user=user
И введите пароль удаленного пользователя.
Скрипт обновления RouterOS
/system upgrade refresh:delay 5
/system upgrade download-all reboot-after-download=yes
Скрипт обновления FW
:if ( < ) do {
/system routerboard upgrade
/system reboot
}
«Почему бы не fetch"ить файлы прямиком на слейв-точки?» - спросите вы. Потому что на точках могут быть установлены разные пакеты. Лучше уж сами слейвы будут решать что им качать, а что нет.
Если у вас одно устройство Mikrotik, то вы можете скомпоновать скрипты для полностью автоматизированного обновления ПО.
Итак, есть 2 варианта: простой и правильный.
Простой:
Заключается в последовательной отправке 2х файлов.
Скрипт
:local ip "IP точки, на которую нужно скопировать МАС"
:local user "Пользователь"
:local password "Пароль"
#####
/interface wireless access-list export compact file=address:delay 1
/tool fetch upload=yes address=$ip mode=ftp src-path=address_flush.rsc dst-path=address_flush.auto.rsc user=$user password=$password:delay 1
/tool fetch upload=yes address=$ip mode=ftp src-path=address.rsc dst-path=address.auto.rsc user=$user password=$password
Содержимое файла address_flush.rsc
/interface wireless access-list remove
Скрипт
:local ip "IP точки, на которую нужно скопировать МАС"
:local user "Пользователь"
:local password "Пароль"
#####
/interface wireless access-list export compact file=wifi2_mac:delay 1
/tool fetch upload=yes address=$ip mode=ftp src-path=wifi2_mac.rsc dst-path=wifi2_mac.rsc user=$user password=$password:delay 1
/tool fetch upload=yes address=$ip mode=ftp src-path=address_proc.rsc dst-path=address_proc.auto.rsc user=$user password=$password:delay 10
/file remove
Содержимое файла address_proc.rsc
#2015.09.11 - AcidVenom - Copy MAC to extertnal Script:delay 5:if ( != "") do={
/interface wireless access-list remove
/import wifi2_mac.rsc:delay 1
/file remove
}
По образу и подобию вы можете копировать нужные вам настройки практически «на лету».
Следующий момент - заворот трафика отдельных машин в другой шлюз, который не по умолчанию.
/ip firewall mangle add chain=prerouting src-address=192.168.0.0/24 dst-address=!192.168.0.0/16 action=mark-routing new-routing-mark=another_gateway passthrough=yes
/ip route add dst-address=0.0.0.0/0 gateway=192.168.1.1 check-gateway=ping type=unicast distance=1 routing-mark=another_gateway
Параметр Distance должен быть ниже, чем у шлюза по умолчанию. При необходимости вместо подсети источника можно указать единичный IP или адресный лист.
Таким образом можно завернуть весь исходящий наружу трафик на шлюз 192.168.1.1. Очень советую указывать шлюз через IP, иначе при разрыве правило в Route List просто стирается.
Ну и последняя фишка на сегодня - заворот только отдельных сайтов на шлюз не по умолчанию. Это очень полезно, если у вас есть прокси не на территории РФ, а вам хочется и/или нужно посетить заблокированный РКН сайт.
Это немного сложнее, т.к. L7 работает тогда, когда соединение уже установлено. Поэтому будем использовать адресные листы.
Для примера возьмем forum.mikrotik.com, для которого мой основной IP был в спам-диапазоне.
/ip firewall layer7-protocol add name=forum.mikrotik regexp=^.+(forum.mikrotik.com).*$
/ip firewall mangle add chain=prerouting src-address=192.168.0.0/24 dst-address=!192.168.0.0/16 layer7-protocol=forum.mikrotik action=add-dst-to-address-list address-list=forum.mikrotik.ip address-list-timeout=24:00:00
/ip firewall mangle add chain=prerouting src-address=192.168.0.0/24 dst-address=!192.168.0.0/16 dst-address-list=forum.mikrotik.ip action=mark-routing new-routing-mark=forum.mikrotik.rm passthrough=yes
/ip route add dst-address=0.0.0.0/0 gateway=192.168.1.1 check-gateway=ping type=unicast distance=1 routing-mark=forum.mikrotik.rm
Минус данного решения - первое соединение закончится ошибкой, но последующие будут идти через нужный шлюз.
P.S.: обновлено 20.10.2015. Добавлен скрипт обновления для версии 6.32.2+
P.P.S.: С выходом версии 6.32.3 починили email-рассылку. Хочется думать, что на починку сподвигла данная статья.
P.P.P.S: обновлено 09.11.2015.
С выходом версии 6.33 выяснилась неприятность: микротик не может сравнивать версии разных порядков, т.е. 6.32.3 и 6.33.
Поэтому скрипт изменен с учетом этого казуса. Так же уведомления перенесены ниже для отправки в последняя очередь.
В качестве преамбулы (вступления) отмечу, что уже больше трёх лет в домашних условиях как шлюз для доступа в Интернет мной используется маршрутизатор MikroTik 951-2n. Причём причиной для его использования стала необходимость контролировать из дома работу установленного в компании ПО 1С8, которое по закону "подлости" имело свойство "зависать" в утренние часы.
Ряд работников компании имели привычку приходить на работу на час раньше начала рабочего времени и затем при невозможности полноценной работы с 1С8 периодически выставлять претензии.
Поэтому после настройки на MikroTik возможности подключения к локальной сети компании по протоколу L2tp IpSec появилась возможность перезапуска "зависшего" сервера до появления на рабочем месте категории работников "ранняя пташка".
Работа MikroTik всегда получала от меня наивысшую оценку. Если также своевременно обновлять и его прошивку (установленную версию ПО), то за безопасность своей домашней локальной сети можно быть абсолютно спокойным (в случае, конечно, грамотной настройки сетевого экрана маршрутизатора).
Использующийся дома MikroTik RB951-2n
Подарочный MikroTik RB931-2nD
Так как чётко оформленных намерений по применению RB931-2nD пока не имелось, то он был снова упакован в коробку. После обновления прошивки RB951-2n до актуальной 6.43.4 было решено обновить и прошивку RB931-2nD.
На роутере для загрузки пакета не хватает свободного места
Но не тут то было. При попытке загрузки новой версии ПО через меню Winbox "System – Packages – Check For Updates" появилось сообщение, что на устройстве недостаточно свободного места. И действительно, при сравнении устройств было установлено, что для RB951-2n Storage size составляет 64 Mб а для RB931-2nD – 16 Мб. При этом на RB931-2nD требовалось примерно 10,1 Мб, а в наличии было только 7,6-7,9 Мб свободного дискового пространства. Попытки очистки всех файлов Log не принесли желаемого результата.
Но свой запрос в Support MikroTik о возможности осуществления обновления прошивки данной модели был получен ответ, что данную операцию можно осуществить через netinstall.
Не буду описывать данную операцию, так как информации по данному вопросу достаточно и при желании её можно без проблем найти (пример). Отмечу только, что netinstall возможно осуществить только на узле с проводным соединением (то есть должна быть и сетевая карта, а не только WiFi). Провод от сетевой карты необходимо соединять с интерфейсом ether1 микротика, а адреса сетевой карты узла и Client IP микротика устанавливать из сети 192.168.88.0 с маской 255.255.255.0 Также следует обратить внимание на то, что для RB931-2nD нужен пакет npk под именем routeros-smips, который берётся из второй секции загрузок ПО MikroTik.
Сюрприз
После обновления прошивки и последующей перезагрузке устройства подключение в нему установить не удалось. Перепрошивка была повторена 5 раз! Пока не посетила "светлая" мысль попробовать соединиться по MAC-адресу.
Вот после этого и было выяснено, что мой MikroTik – самый чистый MikroTik в мире. Ни одного активного интерфейса, ни одной активной службы... вообще ничего. Пришлось все настройки прописывать ручками. Потом "хорошая мысля пришла апасля", что, наверное, нужно было в настройках netinstall поставить галочку в поле "Keep old Configuration".
Обновление через помещённый на MikroTik пакет
Как эксперимент прошивка была обновлена до версии 6.42.10 (Long-term). При просмотре свойств пакета routeros-smips-6.42.10.npk установлено, что он имеет размер в 7,5 Мб. Самая свежая версия routeros-smips-6.43.4.npk – 7,6 Мб.
Так как всё равно "издевательства" над устройством уже имели место, то было принято решение попробовать обновить прошивку через помещение на MikroTik в Files пакета routeros-smips-6.43.4.npk и дать устройству команду Reboot.
Шут его знает, может и помогло сэкономить какое-то место, но был деактивирован ряд возможностей ПО:
192.168.237.128/29 – сеть RB931-2nD ;
192.168.224.80/28 – сеть RB951-2n (вышестоящий).
Пакет routeros-smips-6.43.4.npk был успешно загружен через ftp:
Product codeRB931-2nD
10/100 Ethernet ports3
Antenna gain1.5
CPUQCA9533
CPU core count1
CPU nominal frequency650 MHz
Dimensions48 x 78 x 81mm
License level4
Max Power consumption3.5W
Number of chains2
Operating SystemRouterOS
Power Jack1
Size of RAM32 MB
Storage size16 MB
Storage typeFLASH
Supported input voltage5 V - 5 V
Wireless chip modelQCA9533
Wireless standards802.11b/g/n
Кстати говоря, в последующем обновление прошивки стандартным способом (через System – Packages) происходило без проблем. На момент правки данной заметки последняя установленная прошивка на RB931-2nD – 6.43.8
RouterBOOT – специальный загрузчик, который отвечает за запуск операционной системы RouterOS на устройствах RouterBOARD компании Mikrotik.
На самом деле у устройств RouterBOARD имеется 2 загрузчика – основной и резервный. По-умолчанию, используется основной загрузчик, но при необходимости, можно использовать резервный, изменив соответствующие настройки Routerboard в RouterOS, либо прямо из командной строки:
System routerboard settings set force-backup-booter=yes
Зачем это нужно? Бывают случаи, когда при обновлении устройство перестаёт запускаться из основного загрузчика либо возникают другие связанные проблемы. В таких случаях вы сможете воспользоваться резервным загрузчиком и/или откатить версию программного обеспечения.
Всем нам, так или иначе, иногда приходится прибегать к использованию кнопки reset для сброса настроек. При этом, большинство людей выполняет сброс, даже не вникая в тонкости.
Кнопка reset выполняет 3 функции:
Важное замечание! Если удерживать кнопку сброса до подключения питания, будет использован резервный загрузчик RouterBOOT. Если же вы хотите использовать основной загрузчик, кнопку сброса следует нажать сразу после подачи питания на устройство.
Для начала, вам необходимо определить используемую версию RouterBOOT, сделать это можно как в меню RouterOS, так и воспользовавшись командой:
/system routerboard print
Обратите внимание на значения «current-firmware» и «upgrade-firmware». Первое указывает на текущую используемую версию, второе – на доступную версию. Если «upgrade» новее «current» – необходимо выполнить обновление. Значение «factory-firmware» указывает на версию, которая использовалась на устройстве изначально либо версию резервного загрузчика (точная информация отсуствует).
При обновлении RouterOS, независимо от того, как вы делаете обновление, обновляется только сама операционная система. Обновление RouterBOOT уже содержится в файле routeros-X.npk (где X – название платформы и версия ПО), но сам загрузчик требуется обновлять вручную.
Сделать это достаточно легко прямо из меню System > Routerboard > Upgrade > Yes, после чего выполнить перезагрузку, либо поочередно воспользовавшись следующими командами:
/system routerboard upgrade
/system reboot
Изменения версии 3.33
Изменения версии 3.32
Изменения версии 3.31
Изменения версии 3.30
Изменения версии 3.29
Изменения версии 3.28
Изменения версии 3.27
Изменения версии 3.26
Изменения версии 3.25
Изменения версии 3.24
Изменения версии 3.23
Изменения версии 3.22
Данный список изменений можно продолжать еще очень долго, т.к. изменений сделано несколько десятков. Если у вас еще более ранняя версия загрузчика, список всех изменений вы можете найти на официальном сайте компании Mikrotik.
Учитесь работать с MikroTik? Рекомендую видеокурс « ». В курсе разобраны все темы из официальной учебной программы MTCNA и много дополнительного материала. Курс сочетает теоретическую часть и практику – настройку маршрутизатора по техническому заданию. Консультации по заданиям курса ведет его автор Дмитрий Скоромнов. Подойдет и для первого знакомства с оборудованием MikroTik, и для систематизации знаний опытным специалистам.
После покупки любого сетевого устройства первое, что я рекомендую сделать- обновить прошивку. Поскольку обновление прошивки повышает безопасность и отказоустойчивость маршрутизатора, к тому же иногда добавляются новые возможности и функции. В этой статье я пошагово опишу процесс обновления прошивки на маршрутизаторе Mikotik RB951G 2HnD (аналогичным способом прошиваются все маршрутизаторы Mikotik RB7xx series, RB9xx series).
Подключаться к интерфейсу Mikotik можно различными способами, самый наглядный и удобный- с помощью утилиты Winbox. Winbox- бесплатная утилита не требующая установки, с помощью которой можно настроить маршрутизатор Mikotik. Вот ссылка для скачивания этой утилиты с официального сайта http://www.mikrotik.com/download . После того как вы скачали утилиту, настройте на компьютере/ ноутбуке автоматическое получение сетевых настроек . После этого подключите маршрутизатор с помощью сетевого кабеля в любой порт, кроме первого. Запустите скаченную утилиту. Ведите в поле "Connect To" IP адрес Mikrotik (по умолчанию 192.168.88.1), Login - по умолчанию admin, Password - по умолчанию отсутствует (оставьте это поле пустым). Нажмите кнопку "Connect ".
Помимо обновления всей прошивки на маршрутизаторах Mikrotik можно обновлять отдельные компоненты, что бы посмотреть установленные версии прошивки компонентов необходимо зайти в меню "System"- "Packages".
Теперь когда вы знаете какая версия прошивки установлена на вашем Mikotik, необходимо узнать последнюю актуальную прошивку, для этого зайдите на сайт производителя, выберите версию вашего оборудования и скачайте последнюю версию .
Например для всех версий Mikrotik RB751XX и Mikrotik RB951XX, необходимо выбрать верхнее меню "mipsbe CRS series, RB4xx series, RB7xx series, RB9xx series, RB2011 series, SXT, OmniTik, Groove, METAL, SEXTANT"и скачать последнюю версию прошивки.
В утилите Winbox выбираем "Files". Рядом с утилитой открываем папку со скаченной прошивкой (файл с расширением.npk) и перетаскиваем обновленную версию прошивки в поле с файлами. В течении нескольких минут файл скопируется на маршрутизатор.
Зачастую возникает вопрос, как же правильно обновлять устройства, работающие под управлением RouterOS?
Существует 2 основные способа обновления. Первый - через браузер в панели управления WebFig, второй - посредством программного обеспечения Winbox. Оба эти способа не имеют различий в плане названий разделов меню, опций и т.п., поэтому мы не будем разделять их на отдельные инструкции.
Возможен также третий вариант - использование NetInstall. Netinstall применяется в тех случаях, когда необходимо восстановить работоспособность устройства после неудачного или неправильного обновления, а также в тех случаях, когда не удается получить доступ к устройству первыми двумя способами.
В качестве примера мы воспользовались популярным роутером (RB941-2n). К слову, питание на роутер мы подали прямо с ноутбука при помощи кабеля USB-to-microUSB.
Покупая оборудование Mikrotik , вы получаете его с настройками по-умолчанию и актуальной, на момент изготовления, версией прошивки (операционной системы). До того, как попасть в ваши руки, девайс может несколько месяцев пробыть на складе, версия ОС (прошивки) может утратить актуальность. В связи с чем, мы настоятельно рекомендуем обновлять устройства сразу после приобретения до настройки и эксплуатации.
Каждый из вариантов обновления предполагает 2 режима - онлайн и оффлайн. Онлайн-режим обновления предполагает, что устройство загрузит прошивку напрямую из интернета. Режим оффлайн пригоден для обновления, когда доступ к интернет на устройстве отсутствует.
С точки зрения практичности и затрат времени, наиболее оптимальный вариант - обновление онлайн. Причем абсолютно не имеет значения, будет ли это осуществляться через WebFig, либо же через Winbox.
Если вы решили прибегнуть к обновлению в оффлайн-режиме, сперва вам необходимо скачать необходимые файлы. Для этого заходим соответствующий раздел на официальном сайте https://www.mikrotik.com/download
В разделе RouterOS, обратите внимание, чтобы был выбран канал «Current» в секции «Please select version». Использование других каналов для рабочей системы не рекомендуется.
1. mipsbe - предназначен для устройств BaseBox, SXT, OmniTik, cAP, mAP, hEX, DynaDish, Groove, NetBox, NetMetal, PowerBox, QRT, Metal и Sextant, а также линейки CRS, RB4xx, RB7xx, RB9xx, RB2011. Например, для RB951G-2HnD.
2. ppc - специальная версия для линейки RB3xx, RB600, RB800 и устройств RB1000/RB1100.
3. x86 - версия для PC и RB230.
4. mipsle - линейка RB1xx, RB5xx и Crossroads.
5. tile - версия для устройств семейства CCR.
6. smips - специальная версия для hAP lite.
В нашем случае, для RB941-2n (hAP lite) необходима версия smips. Из списка выбираем «Main package» - это и есть файл прошивки.
Чуть ниже в списке вы увидите «Extra packages», который представляет из себя архив с основными и дополнительными компонентами. Extra packages подходит для тех случаев, когда вы не хотите выполнять полное обновление, а лишь желаете обновить один из компонентов, например пакет для работы с беспроводным модулем (файл wireless-cm2-Х.ХХ-smips.npk). Также вы можете выбрать здесь дополнительные компоненты (модули), для домашнего использования hAP lite может понадобится пакет Multicast (multicast-Х.ХХ-smips.npk), который в базовом варианте отсутствует.
При первом подключении необходимо настроить сетевую карту на автоматическое получение параметров (DHCP).
По-умолчанию, роутер будет иметь IP-адрес 192.168.88.1 Логинимся в браузере, либо Winbox с логином admin, пароль пустой. Если вы используете браузер - необходимо набрать https://192.168.88.1 в адресной строке. Для Winbox можно воспользоваться как IP-адресом, так и найти устройство через вкладку «Neighbors».
Обратите внимание, в WebFig версия прошивки на устройве будет показана в правой верхней части, например v.6.25. Для Winbox, версия RouterOS содержится в названии рабочего окна, в нашем случае это: [email protected] (Mikrotik) - WinBox v6.25 on hAP lite (smips).
Если же вы решили прибегнуть к самому простому способу, в WebFig / Winbox на стартовой странице «Quick Set» (быстрая настройка) следует нажать кнопку «Check For Updates».
Само собой разумеется, устройство должно иметь доступ к сети Интернет (задействован WAN-порт, либо настроен режим CPE по Wi-Fi). Этот же функционал реализуется с помощью раздела меню «System» => «Packages» => кнопка «Check For Updates».
В появившемся окне нас интересует «Current Version» и «Latest Version», как несложно догадаться, первое - текущая установленная версия, а второе - актуальная версия.
Для простой загрузки можно нажать «Download», в этом случае обновление будет применено только при первой же перезагрузке устройства. При нажатии «Download&Upgrade», устройство загрузит актуальную версию ROS и выполнит перезагрузку устройства для обновления.
После перезагрузки логинимся в панель управления и видим, что устройство успешно обновилось.
Однако на этом процесс обновления не завершен. Необходимо зайти в раздел «System» => «Routerboard» для сравнения значений «Current Firmware» и «Upgrade Firmware». Здесь указывается версия загрузчика RouterBOOT, список изменений доступен на странице https://wiki.mikrotik.com/wiki/RouterBOOT_changelog
Для выполнения обновления загрузчика, необходимо нажать «Upgrade» и подтвердить обновление. После этого заходим в «System» => «Reboot» и перезагружаем устройство. После перезагрузки повторно заходим в меню Routerboard и проверяем версию.
Итак, вы уже скачали необходимые файлы. Открываем проводник, выделяем наш файл routeros-smips-6.31.npk (где 6.31 - версия) и копируем его. Теперь файл необходимо загрузить в устройство. Для этого заходим в раздел «File» и нажимаем кнопку «Paste». Можно также использовать комбинации клавиш Ctrl+C (Copy - копирование) и Ctrl+V (Paste - вставить), однако на некоторых конфигурациях это не срабатывает.
После загрузки файла прошивки в устройство, его необходимо перезагрузить. После перезагрузки проверяем версию RouterBOOT, как было описано ранее и, при необходимости, выполняем его обновление.
Если вы выполняете обновление на уже работающей конфигурации, рекомендуется выполнить сохранение настроек. Сделать это можно как с помощью Terminal (более сложный и продвинутый способ), так и при помощи все того же раздела «File». Процесс сохранения (бэкапа) сводится к нажатию всего 1 кнопки, поэтому не забирает времени. Для сохранения нажмите «Backup», при желании, вы можете указать свое имя файла, установить пароль и шифрование файла.
Для восстановления настроек, достаточно нажать кнопку «Restore», предварительно выбрав необходимый файл с резервной копией настроек. В большинстве случаев, а точнее, практически всегда, обновление происходит с полным сохранением предыдущих настроек. Хотя, всё же бывают единичные случаи, когда настройки сбрасываются.