mikrotik проверка портов по скрипту

Полезные скрипты для MikroTik RouterOS

Перезагрузка роутера, при зигрузке CPU

Копирование и применение последней актуальной понфигурации

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

Этот скрипт ставим в планировщик на несколько минут позже выполнения скрипта резервного копирования.

И последний скрипт — применение настроек на резервном сервере. В нем также используется МАС для идентификации роутера.

Здесь меняем имя роутера, ip-адрес LAN-интерфейса и приоритет VRRP на меньший, чтобы роутер сделать слейвом. Запуск этого скрипта нужно поставить в автозагрузку. Изменения будут происходить на резервном сервере после копирования и применения последней актуальной конфигурации.

Резервное копирование

Проверка статуса роутера и выключение интерфейса

Подключение к динамическим серверам или сервисам, на примере pptp-соединения

Проверка синтаксиса скрипта

Настройка на 2 провайдера:

Блокировка трафика по времени:

Если нужно запретить трафик по времени ночью, скажем с 22:00 до 10:00 утра:

0) Стандартный способ – использовать два правила с временными промежутками 22:00:00-23:59:59 и 00:00:00-10:00:00

1) Использовать через запрет – Где-то в конце есть правило, которое запрещает, а конкретным правилом разрешать.

2) Использовать шедулер –
также создаём правило в файрволе, но не указываем конкретное время –

Источник

Универсальный скрипт переключения 2-х каналов интернета Mikrotik

Около 2,5 лет назад писал статью на тему автоматического переключения канала Интернет на резервный. Скрипт, конечно, и по сей день работает «на отлично», но его внешний вид и некоторые нюансы…

Итак, встала задача улучшить скрипт, максимально устранив побочные эффекты. Что ж, приступим.

mikrotik проверка портов по скрипту

В нашем распоряжении Mikrotik RB850Gx2, для которого мы будем писать скрипт (его работоспособность также проверена на моделях RB450G и RB951G-2HnD).

mikrotik проверка портов по скрипту

Присвойте скрипту имя, например, script-check-inet

Что же будем в нем использовать?

Итак, для начала определим необходимые переменные:

где:
$firstInterface — имя нашего PPPoE-соединения основной линии связи.
$secondInterface — имя нашего Ethernet-соединения резервной линии.
$pingTo1 и $pingTo2 — IP-адреса ресурсов, которые будем «пинать».
$pingCount — количество пингов на каждый IP-адрес
$stableConnectFrom — процентное соотношение для определения «стабильности» Интернет-канала. Например, в нашем случае при потере свыше 30% пакетов пинга (`$pingStatus Создадим запись в шедулере

mikrotik проверка портов по скрипту

mikrotik проверка портов по скрипту

В поле `Name` введите имя записи, чтобы не запутаться.
Поле `Start Time` я выставил `00:00:00` для запуска ровно в полночь.
Интервал — 30 секунд
В поле `On Event` вписываем имя нашего скрипта — `script-check-inet`
И жмем «ОК».

Вот, собственно, и все!

Ниже под спойлером приведен полный код скрипта.

Так как мы ввели дополнительную переменную `$firstInterfaceName`, то удалось изменить эту конструкцию и добились работоспособности скрипта на всех перечисленных устройствах.

UPD 2

Код скрипта в очередной раз был обновлен. esudnik обратил внимание на проблему большого количества потерянных пакетов при активном подключении к сети. Таким образом, мы ввели дополнительную переменную (`stableConnectFrom`), используемую для определения процентного соотношения «качества» линии.

В примере указано значение переменной равное «70». Это значит, если процент успешно отправленных пакетов будет ниже 70%, скрипт активирует резервный канал.

UPD 3

Как заметил icCE, при использовании скрипта на прошивке 6.36rc10, выходит ошибка:

Прошивке не нравится «* 100«. Решение проблемы было простым — обрамить вычисляемые значения в дополнительные скобки, получив

Источник

MikroTik`s scripts спешат на помощь

mikrotik проверка портов по скрипту

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

Модернизируя сетевую инфраструктуру одного из заказчиков, мы столкнулись с настоящим телеком динозавром из семейства «for home use only». На границе периметра был засунут старенький роутер Asus, основное назначение которого было выполнение роли DDNS клиента. Так получилось, что в компании давно были настроены внутренние сетевые ресурсы и с интернет провайдером заключен договор о лизинге белого динамического IP. Со временем в инфраструктуре многое поменялось, но из-за твердого не желания заказчика вмешиваться в существующие, налаженные годами процессы, настройки клиентской стороны не менялись, и Asus работал себе и работал, сообщая внешнему DDNS сервису свой текущий адрес. В этом месте вспоминается разговор у костра с одним коллегой, который поведал мне о увиденном им лично коммутаторе Cisco с uptime в целых 11 лет, хотите верьте, хотите нет. Настал черед выйти Asus-у на пенсию и уступить место оборудованию от MikroTik. В этом месте мы столкнулись с инженерной задачей, готового решения которого в интернете найдено не было. В связи с чем, было проведено небольшое исследование, которое может кому-то поможет сэкономить время.

▍Техническая часть

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

mikrotik проверка портов по скрипту Настройка DDNS клиента

В первую очередь, это, конечно, сервис от самой компании Asus. Из настроек можно указать только «Имя хоста», которое и будет резолвиться в IP. У оборудования MikroTik дела с этим обстоят по-другому. Встроенный функционал работает только со своим сервером cloud.mikrotik.com и, разумеется, никакого www.asus.com в нем нет. В интернете мы не нашли описание, как выкрутиться из этой истории и все-таки списать динозавра на пенсию. Имеются материалы, касающиеся настройки сервиса No-IP, но нам они не подходят, потому что не работают. Сразу стало понятно, что в такой ситуации решением будет регулярная отправка из скрипта необходимой информации на сервера Asus посредством HTTP клиента fetch. Осталось только разобраться что, куда и как. Запишем трафик, который передает Asus. Для этого отключим работу его DDNS клиента и брандмауэра, настроим DHCP клиент на WAN порту и подключим к подготовленному MikroTik с работающим DHCP сервером.

mikrotik проверка портов по скрипту Отключение брандмауэра для WAN порта

mikrotik проверка портов по скрипту Настройка DHCP клиента для WAN порта

Если все сделано верно, тогда в лизинге увидим нужный нам IP.

Настраивая на MikroTik снифер, мы выбрали наиболее простой вариант /tool sniffer с сохранением дампа в память роутера:

Активируем DDNS клиент на Asus и смотрим трафик, а там все как на ладони.

mikrotik проверка портов по скрипту
Работа DDNS клиента

Все данные у нас есть, верстаем скрипт на RouterOS, заголовки Authorization и User-Agent пропускаем для простоты:

Сервер нам выдает ошибку 401 Unauthorized, все понятно, добавляем в скрипт данные для аутентификации, как есть, в сыром виде. И DDNS сервис от Asus заработал, но уже на оборудовании MikroTik:

Не забываем скрипт засунуть в планировщик заданий:

Как видно, мы пропустили User-Agent, но лучше так не делать, мало ли ребята из Asus рассердятся и начнут блокировать наше решение (http-header-field=«User-Agent: ez-update-3.0.11b5»). Осталось разобрать заголовок Authorization. Это связка логина и пароля, закодированные в Base64. После декодирования видно, что в качестве логина используется прошитый MAC адрес WAN интерфейса.

mikrotik проверка портов по скрипту
Декодированный заголовок Authorization

mikrotik проверка портов по скрипту
MAC адрес WAN порта

А вот откуда берется пароль, нам выяснить не удалось. В системных логах загрузки роутера ничего подобного не упоминалось. Даже не поленились посмотреть под корпусом, ничего похоже и там не нашли. После обновления версии операционной системы он не изменился, поэтому будем считать, что она берет эту информацию откуда-то изнутри железа. Что интересно, сервер DDNS проверяет на валидность только первые 6 знаков (для шестнадцатеричного представления, разумеется) и наличие «:» после 12 знака, остальное можно опустить или изменить, но аутентификацию так не пройти.

▍Заключение

В работе технических специалистов постоянно возникают различного рода нестыковки, иногда в самых неожиданных местах. Тогда в дело вступает светлая голова, ровные руки, везение и качественное оборудование, на котором приятно работать. Немного добавим про безопасность такой вот реализации DDNS клиента. На наш взгляд, все хорошо. Чтобы злоумышленнику попытаться стравить IP адрес, ему придется ввести данные для аутентификации. Если с MAC адресом вроде как все это проще, то пароль точно не подобрать. Да и вообще на дворе 2021 год и пора давно бы отказаться от DDNS, в корпоративной среде уж точно, как-то не серьезно.

Источник

Мониторинг Dude Mikrotik. Функции и скрипты по простому

mikrotik проверка портов по скрипту

Я видел в интернете много инструкций по dude от Mikrotik, но не смог найти информацию как правильно писать и использовать скрипты и функции. Теперь частично разобравшись, готов с вами поделится. Здесь не будет описания установки и минимальной настройки dude, для этого есть много подробных инструкций. А также, я не буду рассказывать почему использую именно dude, это статья не для этого. Вперед.

Имею в наличии стену мониторинга, не закончена, мониторов будет девять. Доделаем, сделаю отдельную статью.

mikrotik проверка портов по скрипту

Я начал собирать необходимые мне карты. В какой-то из инструкций по dude я увидел, что теоретически можно организовать мониторинг жестких дисков на серверах с использованием SNMP. На этом примере мы и будем разбирать скрипт.

Вот это конечный результат.

mikrotik проверка портов по скрипту

Я буду писать небольшими кусками, а для тех, кто «блин не жуй, где конечный результат?» внизу полные скрипты для мониторинга.

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

mikrotik проверка портов по скрипту

Вставить команду можно нажав правой кнопкой мыши по нашему серверу, выбрать из представленного “Appearance”, в открытом окне нас интересует поле “Label”. Вставим в него команду. Для того чтобы все работало правильно, необходимо в начале и в конце команды поставить квадратные скобки [ ].

Используем вот такую команду [oid(«1.3.6.1.2.1.25.2.3.1.5.1»)*oid(«1.3.6.1.2.1.25.2.3.1.4.1»)/1024/1024/1024]. На выходе получаем вот такую картинку

mikrotik проверка портов по скрипту

Если по-простому, то oid это имя, присвоенное какому-то железу по его типу. Если по совсем правильному то вот — Как читать MIB и OID.

С этим разобрались. Теперь, полученные цифры, это объем диска в ГБ без округления.
Теперь нам нужно добавить условия. У микротика это работает так: if(условие)=значение, сделать это, иначе сделать вот это. В нашем случае пишем так:

Получаем такую строку если oid = 0, т.е диск отсутствует или пуст вывести 1, иначе получить объем диска. Вместо 1 может быть что угодно, но для примера нужно так. Продолжим. В следующем коде добавлен только round для округления.

mikrotik проверка портов по скрипту

Для объединения команд у микротика используется concatenate. Применение очень неожиданное, все-таки ни excel, но получилось работать только с ним. Если у кого-то получиться сделать тоже самое более простым кодом пишите, будет интересно обсудить. PS: только сначала ознакомьтесь с полученным результатом до конца, чтобы не было недопонимания.

mikrotik проверка портов по скрипту

Этим кодом мы объединили всю доступную информацию по памяти на диске. Объем/занято/свободно в ГБ. Вроде очевидно, вроде понятно, но как быть с остальными дисками? Добавлять код для каждого диска? Дисков может быть много, да и ни для того мы работаем, чтобы руками это все писать каждый раз. Я использовал функции. Вначале столкнулся с проблемами, при добавлении кода подряд можно добавить не более 10 раз в одной функции, тапками не кидаем, цикл микротику не знаком, к сожалению. Нас спасет конкатенация. Во вкладке functions создадим новую, выглядит она вот так:

В функцию код добавляется без квадратных скобок. Таким образом прибавляя по единице к oid мы проверим все теоретически возможные диски в системе. Тут следует уточнить, что буквы дисков написаны по стандартной очередности, если у вас буква первого диска будет W, то для этого железа все придется делать вручную, ну или отдельную функцию My_Funny_Computer. В примере начало пути, каждый допилит под себя. Ок, проверим. Берем имя созданной функции, заключаем в квадратные скобки, в конец ставим круглые и добавляем вместо кода во вкладку Label. Пример [About_PC()]

mikrotik проверка портов по скрипту

mikrotik проверка портов по скрипту

Теперь мы можем смотреть и наслаждаться, но задача у нас иная, автоматизировать процесс.
Для этого нам нужна функция, которая будет проверять диски и отдавать инфу зонду проверки. Делаем функцию, назову Monitor_Disc_Serv суть ее такая: если oid не равен 0 проверим диск и если памяти более 50 гб вернем 1, иначе 0.

Ок, мы получили функцию, обработаем ее значение. Вкладка Probes, создаем новый выглядит он так:

mikrotik проверка портов по скрипту

В поле Type выбираем Function, объявляя, что будем обрабатывать значение, полученное из функции.

Monitor_Disc_Serv() = 1 во вкладке Available значит что если функция Monitor_Disc_Serv возвращает 1, все хорошо.

Error срабатывает если Available выдает ошибку, т.е. всегда когда ее значение не равно 1.
Для правильной работы зонда пишем все прозрачно и очевидно: if(Monitor_Disc_Serv()=1,»»,«Что-то случилось») если функция возвращает 1 то ничего делать не нужно, иначе вывести строчку в аларм. Теперь дальше, чтобы это все работало нам необходимо добавить настроенный зонд нашему серверу. Для этого откроем настройки, вкладку Services и добавим зонд:

mikrotik проверка портов по скрипту

У меня он уже сработал, вот так выглядит аларм настроенный у меня, вы же можете поставить не 50гб а столько, сколько нужно.

mikrotik проверка портов по скрипту

В итоге у нас получилось две функции. Первая для просмотра места на диске в реальном времени и вторая для передачи информации зонду. А также один зонд.

if(oid(«1.3.6.1.2.1.25.2.3.1.5.1»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.1»)-oid(«1.3.6.1.2.1.25.2.3.1.6.1»))*oid(«1.3.6.1.2.1.25.2.3.1.4.1»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.2»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.2»)-oid(«1.3.6.1.2.1.25.2.3.1.6.2»))*oid(«1.3.6.1.2.1.25.2.3.1.4.2»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.3»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.3»)-oid(«1.3.6.1.2.1.25.2.3.1.6.3»))*oid(«1.3.6.1.2.1.25.2.3.1.4.3»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.4»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.4»)-oid(«1.3.6.1.2.1.25.2.3.1.6.4»))*oid(«1.3.6.1.2.1.25.2.3.1.4.4»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.5»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.5»)-oid(«1.3.6.1.2.1.25.2.3.1.6.5»))*oid(«1.3.6.1.2.1.25.2.3.1.4.5»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.6»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.6»)-oid(«1.3.6.1.2.1.25.2.3.1.6.6»))*oid(«1.3.6.1.2.1.25.2.3.1.4.6»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.7»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.7»)-oid(«1.3.6.1.2.1.25.2.3.1.6.7»))*oid(«1.3.6.1.2.1.25.2.3.1.4.7»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.8»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.8»)-oid(«1.3.6.1.2.1.25.2.3.1.6.8»))*oid(«1.3.6.1.2.1.25.2.3.1.4.8»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.9»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.9»)-oid(«1.3.6.1.2.1.25.2.3.1.6.9»))*oid(«1.3.6.1.2.1.25.2.3.1.4.9»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.10»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.10»)-oid(«1.3.6.1.2.1.25.2.3.1.6.10»))*oid(«1.3.6.1.2.1.25.2.3.1.4.10»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.11»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.11»)-oid(«1.3.6.1.2.1.25.2.3.1.6.11»))*oid(«1.3.6.1.2.1.25.2.3.1.4.11»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.12»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.12»)-oid(«1.3.6.1.2.1.25.2.3.1.6.12»))*oid(«1.3.6.1.2.1.25.2.3.1.4.12»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.13»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.13»)-oid(«1.3.6.1.2.1.25.2.3.1.6.13»))*oid(«1.3.6.1.2.1.25.2.3.1.4.13»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.14»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.14»)-oid(«1.3.6.1.2.1.25.2.3.1.6.14»))*oid(«1.3.6.1.2.1.25.2.3.1.4.14»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.15»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.15»)-oid(«1.3.6.1.2.1.25.2.3.1.6.15»))*oid(«1.3.6.1.2.1.25.2.3.1.4.15»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.16»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.16»)-oid(«1.3.6.1.2.1.25.2.3.1.6.16»))*oid(«1.3.6.1.2.1.25.2.3.1.4.16»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.17»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.17»)-oid(«1.3.6.1.2.1.25.2.3.1.6.17»))*oid(«1.3.6.1.2.1.25.2.3.1.4.17»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.18»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.18»)-oid(«1.3.6.1.2.1.25.2.3.1.6.18»))*oid(«1.3.6.1.2.1.25.2.3.1.4.18»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.19»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.19»)-oid(«1.3.6.1.2.1.25.2.3.1.6.19»))*oid(«1.3.6.1.2.1.25.2.3.1.4.19»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.20»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.20»)-oid(«1.3.6.1.2.1.25.2.3.1.6.20»))*oid(«1.3.6.1.2.1.25.2.3.1.4.20»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.21»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.21»)-oid(«1.3.6.1.2.1.25.2.3.1.6.21»))*oid(«1.3.6.1.2.1.25.2.3.1.4.21»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.22»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.22»)-oid(«1.3.6.1.2.1.25.2.3.1.6.22»))*oid(«1.3.6.1.2.1.25.2.3.1.4.22»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.23»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.23»)-oid(«1.3.6.1.2.1.25.2.3.1.6.23»))*oid(«1.3.6.1.2.1.25.2.3.1.4.23»))/1024)/1024)/1024)>50,1,0),1)*
if(oid(«1.3.6.1.2.1.25.2.3.1.5.24»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.24»)-oid(«1.3.6.1.2.1.25.2.3.1.6.24»))*oid(«1.3.6.1.2.1.25.2.3.1.4.24»))/1024)/1024)/1024)>50,1,0),1)

if(oid(«1.3.6.1.2.1.25.2.3.1.5.31″)=0,»»,
concatenate(«Disc: «,round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.31»)-oid(«1.3.6.1.2.1.25.2.3.1.6.31»))*oid(«1.3.6.1.2.1.25.2.3.1.4.31″))/1024)/1024)/1024),»Gb»
,» / «,(round(oid(«1.3.6.1.2.1.25.2.3.1.5.31»)*oid(«1.3.6.1.2.1.25.2.3.1.4.31»)/1024/1024/1024),»Gb
«)))

if(oid(«1.3.6.1.2.1.25.2.3.1.5.33″)=0,»»,
concatenate(«Disc: «,round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.33»)-oid(«1.3.6.1.2.1.25.2.3.1.6.33»))*oid(«1.3.6.1.2.1.25.2.3.1.4.33″))/1024)/1024)/1024),»Gb»
,» / «,(round(oid(«1.3.6.1.2.1.25.2.3.1.5.33»)*oid(«1.3.6.1.2.1.25.2.3.1.4.33»)/1024/1024/1024),»Gb
«)))
Для мониторинга
if(oid(«1.3.6.1.2.1.25.2.3.1.5.33»)<>0,if(round(((((oid(«1.3.6.1.2.1.25.2.3.1.5.33»)-oid(«1.3.6.1.2.1.25.2.3.1.6.33»))*oid(«1.3.6.1.2.1.25.2.3.1.4.33»))/1024)/1024)/1024)>10,1,0),1)

Источник

Имеем:
Микротик
внешнюю сеть:88.88.88.88
внутреннею сеть:192.168.0.1\24
имеем порт 9999 на котором работает некий сервис. который проброшен на 192.168.1.10

Проблема: Иногда внутренний комп 192.168.1.10 падает. т.е. потрт 9999 не отвечает.

Необходимо:
1. Проверять с некой переодичностью открыт ли порт 9999 на 192.168.1.10
2. Если порт не открыт запускать скрипт на изменение правил и перенаправлении данного порта на другой хост (сами правила есть выяснили в другой ветке).

baggio ➤ Имеем:
Микротик
внешнюю сеть:88.88.88.88
внутреннею сеть:192.168.0.1\24
имеем порт 9999 на котором работает некий сервис. который проброшен на 192.168.1.10

Проблема: Иногда внутренний комп 192.168.1.10 падает. т.е. потрт 9999 не отвечает.

Необходимо:
1. Проверять с некой переодичностью открыт ли порт 9999 на 192.168.1.10
2. Если порт не открыт запускать скрипт на изменение правил и перенаправлении данного порта на другой хост (сами правила есть выяснили в другой ветке).

Проще тогда netwatch

/ip firewall nat
add action=netmap chain=dstnat dst-address=xx.xx.xx.xx dst-port=9999 protocol=tcp to-addresses=yy.yy.yy.yy to-ports=9999 comment=switch2reserve
add action=netmap chain=srcnat dst-address=yy.yy.yy.yy dst-port=9999 protocol=tcp to-addresses=xx.xx.xx.xx to-ports=9999 comment=switch2reserve

«UP»
/ip firewall nat set [find comment=»switch2reserve»] disabled=yes
:delay 2
/ip firewall nat set [find comment=»Main»] disabled=no

«DOWN»
/log warning «server Main may bee is fail…»
:local time [/sys clock get time]
:local checkip [/ping 192.168.0.101 count=5]
:if (checkip = 0) do= <
/log error «server Main is DOWN. …»
/ip firewall nat set [find comment=»switch2reserve»] disabled=no
:delay 2
/ip firewall nat set [find comment=»Main»] disabled=yes

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *