Форум OlegON > Компьютеры и Программное обеспечение > Сеть

Mikrotik: проверка порта скриптом - изменение правил : Сеть

25.04.2024 2:50


14.02.2017 11:35
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. Если порт не открыт запускать скрипт на изменение правил и перенаправлении данного порта на другой хост (сами правила есть выяснили в другой ветке).
14.02.2017 11:53
KirillHome
 
Цитата:
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. Если порт не открыт запускать скрипт на изменение правил и перенаправлении данного порта на другой хост (сами правила есть выяснили в другой ветке).
Если проверять не порт, а доступность 192.168.1.10 - то очень похоже на

Если всё же проверять порт (ответ от сервиса) - надо сначала понять, что будет "положительным" ответом, а что "отрицательным".
14.02.2017 12:25
baggio
 
1. проверять пингом не гут. так как сам комп может отвечать а сервис который там крутится упасть...
2. положительным ответом будет то что порт открыт... отрицательным, то что порт не открыт...
14.02.2017 13:24
OlegON
 
Единственное, что приходит в голову - завести правило в firewall, чтобы если от того хоста приходит сообщение о недоступности, то добавлять этот хост в список адресов. Соответственно, заданием раз в минуту, например, проверять список, и, если в нем этот хост есть, включать правило редиректа, а если нет - выключать. Удобно тем, что в список можно добавлять с таймаутом, т.е. через некоторое время оттуда хост пропадет и следующее обращение к сервису будет проверкой старого адреса.
14.02.2017 13:30
baggio
 
проблема в том что хост может уйти в даун неожиданно... т.е. по питанию...
14.02.2017 13:32
baggio
 
мда... оказывается в микротике нет инструмента для простой проверки открытости порта...
народ вон извращается виртуалку с openwrt на микротик вставляет...
и после этого вы не любите openwrt да там на коленке это делается за 5 минут...
тьфу... пропролетарщина...
14.02.2017 13:38
OlegON
 
Как работает openwrt я уже проверил :(
И, все же, чем мой вариант не устроил? Максимально хост в дауне будет минуту.
14.02.2017 13:54
baggio
 
Цитата:
OlegON Как работает openwrt я уже проверил :(
И, все же, чем мой вариант не устроил? Максимально хост в дауне будет минуту.
не устроил тем что хост может не успеть ничего послать...
14.02.2017 13:58
OlegON
 
Так сам микротик пошлет, нет? Можно скомбинировать это с обычным пингом. Типа если пингуется, но сервис валяется, то приедет отсутствие порта.
14.02.2017 14:26
baggio
 
Проще тогда 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


netwatch

"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
Часовой пояс GMT +3, время: 02:50.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.