Форум по программам и оборудованию > >

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

19.06.2018 19:40


[ОТВЕТИТЬ]
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
14.02.2017 15:06
Occul
 
а где тут проверка порта?
14.02.2017 16:19
baggio
 
нету тут проверки порта... так как микротик скриптами не умеет проверять открытые порты на других хостах...
14.02.2017 18:11
OlegON
 
Так я выше что написал, он проверять не умеет, но у него есть стенка, которая может перехватить сообщение о закрытом порте, которое отбросит удаленный хост. Хотя, конечно, логичнее на самом хосте проверять сервис и перезапускать его при падении.
Опции темы


Часовой пояс GMT +3, время: 19:40.

 

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