еще вопросик. разобрался с примером, сгенерировал по днс-кэшу список List, получилось поднял соединение с внешним PPTPсервером PUSPROXU, повесил на нем маскарад, дефолтовый маршрут к нему убрал, т.е. по дефолту все как и было, идет в билайн теперь подскажите плиз, как правильно сделать, чтобы весь траффик из локалки для сайтов из списка List шел только через интерфейс PUSPROXU. что-то я пока туплю
Код: /ip firewall mangle add chain=prerouting src-address-list=LIST_NAME action=mark-routing new-routing-mark=pptp-out /ip route add gateway=PPTP_INTERFACE routing-mark=pptp-out
что-то не хватило, сделал так : /ip firewall mangle add chain=prerouting src-address-list=Banks action=mark-routing new-routing-mark=bankslist /ip route add gateway=pptp-RUSP3nat routing-mark=bankslist появилась запись в mangle, показывает что пакеты маркирует в /ip route появилась записm с метрикой 1 , пишет reachable в NAT маскарад для pptp-RUSP3nat включен но не открывается ничего из списка bankslist , добавил туда myip.ru . если дизаблю интерфейс pptp-RUSP3nat, то открывает с билайновского ip, если включаю не открывает ... надо понять,что мешает ======== /ip route export # jun/29/2016 00:58:44 by RouterOS 6.35.4 # software id = CBTU-0TF0 # /ip route add distance=1 gateway=pptp-RUSP3nat routing-mark=bankslist =========== /ip firewall exporе # jun/29/2016 00:59:42 by RouterOS 6.35.4 # software id = CBTU-0TF0 # /ip firewall address-list add address=178.62.9.171 comment=myip.ru list=Banks .......пропускаю подробный список ..........=Banks /ip firewall filter add chain=input comment="defconf: accept ICMP" protocol=icmp add chain=input comment="defconf: accept established,related" connection-state=established,related add action=drop chain=input comment="defconf: drop all from WAN" in-interface=ether1wan add action=drop chain=input comment="no telnet from beeline" connection-type="" dst-port=23 in-interface=Beeline log=yes \ log-prefix=telnet_attempt protocol=tcp add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related add chain=forward comment="defconf: accept established,related" connection-state=established,related add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ connection-state=new in-interface=ether1wan /ip firewall mangle add action=mark-routing chain=prerouting new-routing-mark=bankslist src-address-list=Banks /ip firewall nat add action=masquerade chain=srcnat comment="defconf: masquerade" out-interface=ether1wan add action=masquerade chain=srcnat out-interface=Beeline add action=masquerade chain=srcnat out-interface=pptp-RUSP3nat add action=dst-nat chain=dstnat comment=mysql dst-port=3306 in-interface=Beeline protocol=tcp to-addresses=\ 192.168.13.100 to-ports=3306 add action=dst-nat chain=dstnat comment="rdp dos32pc" dst-port=3389 in-interface=Beeline protocol=tcp to-addresses=\ 192.168.13.196 to-ports=3389 add action=dst-nat chain=dstnat comment="rpd server" dst-port=3399 in-interface=Beeline protocol=tcp to-addresses=\ 192.168.13.100 to-ports=3389 add action=dst-nat chain=dstnat comment=GoodSynk dst-port=33333 in-interface=Beeline protocol=tcp to-addresses=\ 192.168.13.196 to-ports=33333 add action=dst-nat chain=dstnat dst-port=33334 in-interface=Beeline protocol=tcp to-addresses=192.168.13.100 to-ports=\ 33333 ==============
Проверьте, возможно проблема в DNS. Если не поможет, попробуйте выключить правило fasttrack в файрволе.
так, а вот что дал tracert с компа , почему-то тут билайновская корбина на 2 хопе, так-же как и когда интерфейс отключен , странно, только если отключен, то myip.ru открывается, а если включен нет tracert myip.ru Трассировка маршрута к myip.ru [178.62.9.171] с максимальным числом прыжков 30: 1 <1 мс <1 мс <1 мс router [192.168.13.1] 2 1 ms <1 мс 1 ms bras254-lo10.spb.corbina.net [83.102.254.223] 3 1 ms 1 ms 1 ms 89.179.21.10 4 12 ms 12 ms 12 ms bmor19-bb-be2.spb.corbina.net [85.21.225.40] 5 11 ms 11 ms 11 ms xe-7-2-0-xcr1.skt.cw.net [166.63.220.69] 6 12 ms 12 ms 13 ms xe-0-0-0-20.r01.stocse01.se.bb.gin.ntt.net [195.2.22.58] 7 44 ms 44 ms 44 ms ae-21.r02.amstnl02.nl.bb.gin.ntt.net [129.250.7.12] 8 46 ms 46 ms 46 ms ae-2.r03.londen01.uk.bb.gin.ntt.net [129.250.3.8] 9 53 ms 53 ms 53 ms 212.119.29.54 10 * * * Превышен интервал ожидания для запроса. 11 *
Ага. Вот тут проблема. Я написал в mangle правило которое маршрутизирует пакеты на основании адреса отправителя (src-address-list), а вам надо на основании адреса назначения dst-address-list Переделайфте правило на закладке advanced. Или удалите и вставьте Код: /ip firewall mangle add chain=prerouting dst-address-list=LIST_NAME action=mark-routing new-routing-mark=pptp-out
о, точно, спасибо огромное, заработало, у меня пока dst и scr еще в голове не отложились .... хорошо у вас с поддержкой, куплю себе еще у вас микротик , и похоже сходные конфигурации коллегам пригодятся, только на себе обкатаю сначала
теперь в принципе осталось добавить в файрвол правило, которое запретит список с других интерфейсов, чтоб когда нет почему-либо этого pptp через билайн оно тупо не работало, и будет то, что надо. потом пойдй резервный WAN заводить с модемного роутера, и основное что мне хотелось будет как надо
Зачем файрволл? Это делается через маршрутизацию )) Код: /ip route add distance=10 type=prohibit routing-mark=pptp-out Теперь если VPN есть, то срабатывает обычный маршрут с дистанцией 1. Если VPN упал - сработает вышеприведенный маршрут. А он Prohibit
еще вопросик, сделал списки адресов на базе примеров в инете подскажите плиз языковю конструкцию, чтобы в /ip firewall address-list add address=$tmpAddress list=$ListName comment=$cacheName заменить единичный адрес на сеть, типа если в переменной $tmpAddress у нас "102.102.103.104" надо заменить на на например "101.102.103.0/24" , а то у меня пока с синтаксисом напряг, списки с чужих скриптов сваял, но если честно синтаксис пока не осваивал.
да, что-то я в вики глянул в команды скрипта, но не нашел функций для работы с текстом, отделить тект после последней "." и заменить его на "0/24" скажем, по строкам нашел только конкатенацию. что-то я в общем пока недопонял сам, как кусок текста заменить, сорри
ну и еще вопрос на тему возник .... сорри, замучал видимо, но скоро похоже еще микротиков куплю допустим в продрлжение темы поднят не 1, а 2 или более VPN клиента (допустим PPTP1 и PPTP2), на них завернут маршрут для писка LIST, скажем на PPTP задана метрика 1, а на PPTp2 метрика 2, ну и как Вы выше посоветовали, остальные маршруты через остальные интерфейсы prohibit. далее при попытке срединения с узлом из LIST роутер выберет маршрут с наименьшей метрикой, т.е. PPTP1. вопрос такой, ежели далее скрипт установит для соеднинений PPTP1 метрику больше, чем у PPTP2, новые соединения пойдут через интерфейс PPTP2, а вот те, что были установлены ранее через PPTP1 тоже завернут на PPTP2 по меньшей метрике, или если интерфейс PPTP1 все еще активен, то действующие соединения будут продолжать обслуживаться через тот интерфейс, через который были установлены, хоть у него и хуже теперь метрика ?
Именно так. При чем если у вас есть src-nat то старые соединения пойдут на новый шлюз со старым src-address.
Подскажите в какой теме шла речь про "cгенерировал по днс-кэшу список List". Мне необходимо сделать нечто подобное. А возможно ли работать напрямую с доменными именами?
Ставите 6.36 В ней в address-list можно писать DNS-имя. Роутер сам создаст и будет обновлять списки IP.