Сделать запрос через определённый интерфейс

RIP, OSFP, BGP, MPLS/VPLS
Аватара пользователя
Sir_Prikol
Сообщения: 38
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Сделать запрос через определённый интерфейс

Сообщение Sir_Prikol » 02 май 2018, 18:25

Добрый день.
Есть микротик RB3011.
На сегодня подключено уже 4 провайдера.
Требуется, чтоб в том-же Netwatch, запрос вида /tool fetch url="blahblahblah" шёл через определённого провайдера, а не ломился на все подряд.

Балансировка каналов настроена, файловер настроен. Работает всё, кроме этого.
Пробовал через mangle отправлять на определённый маршрут, в результяте все, кто за этим микротиком - спокойно фильтруются, отрабатывают и идут на нужный маршрут, сам микротик - не хочет.
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Chupaka
Сообщения: 988
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Сделать запрос через определённый интерфейс

Сообщение Chupaka » 02 май 2018, 18:47

Добрый.

Через mangle, правильно. Только в chain=output надо метить, а не prerouting :)

Или просто в таблице маршрутизации main создать маршрут через нужный интерфейс для нужного адреса. Там явно у вас ходит только роутер, а клиенты - в созданных для балансировки таблицах.

Аватара пользователя
Sir_Prikol
Сообщения: 38
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Сделать запрос через определённый интерфейс

Сообщение Sir_Prikol » 02 май 2018, 19:56

mangle
второе спокойно отрабатывает для клиентов

Код: Выделить всё

/ip firewall mangle
add action=mark-routing chain=output dst-address-list=lv-traff log-prefix=lv new-routing-mark=to_lv passthrough=no   (стоит первым в цепочке)
add action=mark-routing chain=prerouting dst-address-list=lv-traff log-prefix=lv new-routing-mark=to_lv passthrough=no    (второе в цепочке)

дальше правилв балансировки

route rule

Код: Выделить всё

/ip route rule
add action=lookup-only-in-table routing-mark=ISP1 table=ISP1
add action=lookup-only-in-table routing-mark=ISP2 table=ISP2
add dst-address=214.14.163.20/32 interface=00.to-lv routing-mark=to_lv table=main
route

Код: Выделить всё

/ip route
add distance=1 gateway=00.to-lv routing-mark=to_lv
Не работает, хоть тресни.

интервейс указан из-за того, что поднят vpn, но это не важно, так как не ходит только с самого рутера. За ним всё в норме
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Sir_Prikol
Сообщения: 38
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Сделать запрос через определённый интерфейс

Сообщение Sir_Prikol » 02 май 2018, 20:19

upd

Странно, через минут 15 правила начали отрабатывать
Даже не знаю, что сработало :)
Будем наблюдать
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Sir_Prikol
Сообщения: 38
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Сделать запрос через определённый интерфейс

Сообщение Sir_Prikol » 02 май 2018, 20:30

upd 2

Странно как-то, работало около 5-ти минут. Потом опять по таймауту молчал, потом (через пару минут) заного заработало.

Ничего не понимаю :)
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Chupaka
Сообщения: 988
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Сделать запрос через определённый интерфейс

Сообщение Chupaka » 02 май 2018, 20:59

Правила в prerouting не играют роли, поскольку пакеты самого роутера туда не попадают: https://wiki.mikrotik.com/wiki/Manual:P ... ow#Diagram

Route rule для IP-адреса отрабатывать не будет, поскольку interface - это интерфейс, с которого пакет пришёл, а не куда он должен уйти.

Ping на ресурс, для которого делается fetch, вообще ходит?

Ну и уже надо смотреть /ip route print detail (например, для той таблицы, в которую попадают маркированные в output пакеты; не забыть, что в main должен быть активный маршрут для данного адреса (любой) - без этого будет просто dst-unreachable).

Аватара пользователя
Sir_Prikol
Сообщения: 38
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Сделать запрос через определённый интерфейс

Сообщение Sir_Prikol » 02 май 2018, 21:24

Код: Выделить всё

May/02/2018 20:17:31 firewall,info lv output: in:(unknown 0) out:00.pppoe-ISP01, proto TCP (ACK), 123.123.123.123:59580->214.14.163.20:443, NAT (123.123.123.123:59580->10.8.0.6:59580)->214.14.163.20:443, len 52
May/02/2018 20:17:31 firewall,info lv output: in:(unknown 0) out:00.pppoe-ISP01, proto TCP (ACK), 123.123.123.123:59580->214.14.163.20:443, NAT (123.123.123.123:59580->10.8.0.6:59580)->214.14.163.20:443, len 52
May/02/2018 20:17:31 firewall,info lv output: in:(unknown 0) out:00.pppoe-ISP01, proto TCP (ACK,PSH), 123.123.123.123:59580->214.14.163.20:443, NAT (123.123.123.123:59580->10.8.0.6:59580)->214.14.163.20:443, len 178
10.8.0.6 - нужный ip. Висит на нужном интерфейсе.

Судя по логу, идёт запрос на основной интерфейс, потом нат, потом на нужный.

В принципе меня такая схема устраивает, хотя у неё есть посредник.

Понаблюдаю день, может не будет сбрасываться. Хотя логика в таком варианте тоже присутствует.
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Chupaka
Сообщения: 988
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: Сделать запрос через определённый интерфейс

Сообщение Chupaka » 02 май 2018, 21:38

Ну, по идее, от трансляции адресов можно избавиться, указав в fetch параметр src-address=10.8.0.6

Аватара пользователя
Sir_Prikol
Сообщения: 38
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Сделать запрос через определённый интерфейс

Сообщение Sir_Prikol » 02 май 2018, 22:04

Код: Выделить всё

/tool fetch src-address=10.8.0.6 url="https://xxxxxxxx/yyyyyy!" 
failure: closing connection: <bind() failed: Address family not supported by protocol> 2000:47g:4a9:f337::15:443 (4)
А так он пытается через ipv6 законнектится.
Что совсем запутывает мозг, так как я принудительно тот хост прописывал через ipv6 и оно не бегало.

Ладно, пока оставлю как есть, буду думать об этом завтра :)
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Sir_Prikol
Сообщения: 38
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: Сделать запрос через определённый интерфейс

Сообщение Sir_Prikol » 02 май 2018, 22:47

upd

/tool fetch address=хост

В таком случае он забирает нужный мне ip

решил проблему немного по другому. Жёстко прописал ip адрес в dns записях - начало отрабатывать нормально.

Осталось написать скрипт, который будет проверять изменения ip адреса нужного мне хоста и заменять его в статических dns записях
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Ответить