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

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

27.03.2017 11:31


[ОТВЕТИТЬ]
Опции темы
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

Последний раз редактировалось baggio; 14.02.2017 в 14:29.
 
 


Опции темы



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

Все в прочитанное - Календарь - RSS - - Карта - Вверх

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