Страница 1 из 2

Скрипт + telnet

Добавлено: 10 окт 2016, 10:57
Lovi_
Доброго времени суток.
Я тут совсем новый и зеленый. Но прежде чем сюда писать обшарил интернет в поисках нужной инфы и что-то находил совсем не то что я искал.
С микротиками я не имел тесного контакта до сего момента. И так у меня следующий вопрос.
Подскажите пожалуйста как правильно запустить и настроить netwatch (как менять провайдера это я понял, тут всё просто и легко у меня другая задача.)

Вводная.
И так есть у нас чудо сервер communigate и всё бы ничего, он прекрасно работает. Но возникла потребность продублировать канал. И вроде есть 2 провайдер. Но вот незадача. Начальство не хочет покупать вторую AS и вешать туда белые IP. После недолгих скитаний взор мой пал на микротик. Был взят на тест у знакомого домашний роутер, и я скажу настройка микротика и его функционал поражает. В общем он делает всё то что именно нужно. Плюс ко всему цена очень приятная.

Теперь проблема.
Как я уже говорил раньше "чудо сервер communigate"! Вся беда состоит в том, что в настройках communigate есть одна занозная строчка WANAddress.
Дело в том что в этой строке указывается IP который нам предоставляет ISP. И только с этой строкой communigate работает как положенно. Ну бог с ней. Дело в том что когда ISP1 падает микротик поднимает ISP2 с помощью netwatch, а делает он это просто великолепно. Так вот поднялся у нас ISP2 и что же делать. IP WANAddress остался от ISP1, а нужно указать От ISP2.

ISP1 работает ISP2 потушен
WANAddress = 99.99.99.99

ISP1 отключился срабатывает скрипт поднимается ISP2
WANAddress = 99.99.99.99 остался прежним
И чтобы communigate заработал нужно менять IP на 88.88.88.88
ОК фигня война. После не большой переписки с тех поддержкой communigate выяснилось что можно использовать CLI/API и всё прекрасно менять.

Вот список команд которые нужно для этого счастья.

telnet 192.192.192.192 106
USER user
PASS userpass
setnetwork {WANAddress = "[88.88.88.88]";}
QUIT

Как написать скрипт на Linux это не составило проблемы (когда тестировал). Даже замутил скрипт на cisco.
Но вот как правильно сделать это в mikrotik я так и не разобрался.
Через newterminal на микротик я попробывал в ручную. До всюду достукиваюсь и всё получается список команд выглядит след образом.

/system telnet 192.192.192.192 106
Trying 192.192.192.192...
Connected to 192.192.192.192.
Escape character is '^]'.
200 test CommuniGate Pro PWD Server 6.1.11 ready
user user
300 please send the PASS
pass userpass
200 login OK, proceed
setnetwork {WANAddress = "[88.88.88.88]";}
200 OK
Quit
200 CommuniGate Pro PWD Server connection closed
Connection closed by foreign host.

Welcome back

И всё. Комунигейтюшка прекрасно работает. Идея такая добавить к скриптам на mikrotik netwatch

/ip route enable [find comment="ISP2"]

Добавить правильный набор команд чтобы он конектился к коммунигаейту и менял Ip.
Как это сделать ну или хотябы как должен выглядить правильно синтаксис я не нашел, а все потуги правильно его родить тоже не получилось. Из инфы понял что, вроде бы как используется язык LUA, но что-то тоже всё без результатно.

P.S. понимаю что много буков. И может показаться что слишком глупый вопрос. Но я не имел дел до сих пор с микротиком. А информации по этому делу нашел очень скудно. Посему покорно прошу помощи у более опытных людей. Заранее благодарен.

Re: Скрипт + telnet

Добавлено: 10 окт 2016, 12:08
Vlad-2
Мне кажется Вы как-то всё усложнили, менять адрес сервиса, который постоянный и внешний..., как-то это не то, костыльно чтоли.
Во всяком случаи я так думаю.

Хочу предложить более иной подход и виденье, мне кажется он более гибче/универсальнее и не надо менять адреса:
(сразу говорю у меня этот метод работает, только не с почтовиком, а с базой данных, учесть что у нас операторы спутниковые,
связь не ахти,приходиться делать наподобие такого отказоустойчивого кластера :))))))))

План:
1) убираем реальный адрес с почтовика
2) выставляем его/их (адреса) на микротике (оба адреса, что от первого прова, что от второго)
2.1) делаете пробросы на обоих адресов и запросы по их портам на почтовик
2.2) шлюзом у почтовика конечно должен стоять микротик
3) при входящем запросе (не важно с какова интерфейса/провайдера) он придёт на микротик, сам микротик уже всё сделает,
поймёт откуда пришёл запрос и куда дальше его направить. Естественно придётся настроить проброс портов, правильную маршрутизацию, но она у вас
уже в микротике процентов на 70 сделана.

В итоге: Вы защитите почтовик в какой то степени, будут сразу доступны 2 канала (если сможете настроить) и при этом будет всегда доступен почтовик в любом случаи.

Re: Скрипт + telnet

Добавлено: 10 окт 2016, 12:17
Lovi_
спасибо за отзыв но не прокатит.
Такая схема прорабатывалась в самом начале.
Все дело именно в настройках communigate. Всё именно в этой долбаной строчке в самом комунигейте.
Например elastix работаем просто изумительно транки поднимает всё бегает прыгает. С почтовиком на zimbra вообще не было никаких проблем. Тесты прошли на ура. А вот !!!communigate!!! не поцоны, ничё не знаю, меняйте у меня в настройках этот долбаный Ip. И хоть ты тресни. А самое поршивое то, что в эту строчку помещается только 1 IP, и нет возможности указать например два, или альтернативный. Только один и только конкретный. У меня горит от этого уже неделю :)

Re: Скрипт + telnet

Добавлено: 10 окт 2016, 12:32
KARaS'b
Поддержу товарища Vlad-2. Насколько можно понять и данного мана - http://www.communigate.com/ru/guide/Network.html, ваш CommuniGate прекрасно умеет работать за натом.

Re: Скрипт + telnet

Добавлено: 10 окт 2016, 14:20
Lovi_
Еще раз говорю. Communigate прекрасно работает.
И работает он вот по этой схеме.
http://www.communigate.com/ru/guide/Net ... ewall2.gif
НО! учтите что это схема только с 1 провайдером.
И я ещё раз повторю при переключении на другого провайдера нужно менять WANAddress в COMMUNIGATE!!!
И менять его надо РУЧКАМИ! Или скриптиком. Вопрос то был ребят про скрипт. Про то как правильно его написать.

Re: Скрипт + telnet

Добавлено: 10 окт 2016, 15:16
podarok66
Ну так у Communigate и будет один адрес, ну скажем 192.168.1.15, а уж на Тике будет два белых адреса сразу...
Впрочем, вам виднее, вы рядом.

Re: Скрипт + telnet

Добавлено: 10 окт 2016, 15:22
vqd
Скриптом вы не заставите микротику подключатся куда то по ССХ или телнет и что то выполнять. Эта возможность закрыта разработчиками в целях безопасности.

Руками из консоли легко

Re: Скрипт + telnet

Добавлено: 10 окт 2016, 15:43
Lovi_
podarok66 писал(а):Ну так у Communigate и будет один адрес, ну скажем 192.168.1.15, а уж на Тике будет два белых адреса сразу...
Впрочем, вам виднее, вы рядом.

В коммунигейте и есть один адрес. Если не поняли про какое поле идёт речь можете почитать вот тут
http://www.communigate.com/ru/guide/Network.html#WAN
это такая немного долбанутая специфика настройки communigate. Не спрашивайте почему она такая, я не знаю :) (хотя догадываюсь, что это скорее всего связанно с корректной работой почтовика.)
Из мануала нас интересует второй метод подключения. И там есть небольшой пункт. Я его называю чудесная строчка.
"Например, если ваш Сервер CommuniGate Pro имеет в локальной сети IP адрес 10.0.1.12, и NAT/Firewall ретранслирует все входящие соединения, приходящие на IP адрес 77.77.77.77, на адрес 10.0.1.12, то укажите в этой настройке IP адрес 77.77.77.77: "
Конечна на этом все сюрпризы коммунигейта не заканчиваются, и до финишной настройки надо еще пару танцев сделать, но это уже тонкости.

vqd писал(а):Скриптом вы не заставите микротику подключатся куда то по ССХ или телнет и что то выполнять. Эта возможность закрыта разработчиками в целях безопасности.

Руками из консоли легко


То есть получается скриптом можно отрабатывать только, внутренние потребности микротика (ну скажем так в переделах данной железяки). И не шагу в сторону?
И я так понимаю никаких там галочек в снятии ограничений нет?

Re: Скрипт + telnet

Добавлено: 10 окт 2016, 15:58
vqd
нет, нету

Re: Скрипт + telnet

Добавлено: 10 окт 2016, 16:01
Lovi_
vqd писал(а):нет, нету

Большое спасибо, вы ответили на все мои вопросы и развеяли все мои сомнения.
Придется продумать более сложную цепочку.

P.S. тему можно закрывать. Спасибо большое всем за ваши ответы и советы.