Не работает routing_mark в цепочке output
Добавлено: 04 ноя 2018, 01:31
Коллеги, очень прошу помощи! Столкнулся с разновидностью неработоспособности маркирования роутинга. Задача стоит простая - заворачивать обращения к хостам Телеграма в PPTP-тоннель. Казалось бы, что проще, но нет. Что делаю:
Список узлов, которые заворачиваем:
Манглы:
Тоннель:
Маршрут для трафика Телеги (с меткой):
Но, увы и ах, не работает. Ниже даю больше деталей:
- Доступ к Телеге для LAN-клиентов не нужен, нужен только для собственных пакетов микрота (поэтому у меня нет соотв. правила на маскарадинг). Доступ делается для Микротик-скрипта.
- Пакеты для 149.154.167.220 должным образом маркируются, что видно по счетчику пакетов в Mangle. Любой ping до 149.154.167.220 дает непрерывный рост счетчика, так что тут все ок.
- VPN-тоннель PPTP активен и подключен, и в нем появляются TX-пакеты, когда я делаю /tool fetch url="http://api.telegram.org/"
Конкретно что не так - обращения к узлам Телеги идут через ненужный мне интерфейс LAN5-WAN (вместо VPN-интерфейса TelegramVPN). До того момента, пока в маршруте TelegramVPN я не уберу routing_mark. Это я узнаю так:
Таблица маршрутизации:
Где 192.168.2.1 - собственный адрес Микротика в LAN.
routing_mark убрать в маршруте навсегда не могу, так как маршрута 0.0.0.0/0 у меня два, и маршрут 0.0.0.0/0 для MikrotikVPN начинает главенствовать над 0.0.0.0/0 89.xxx.xxx.x, который является дефолтным (выход в интернет).
Очень прошу помочь, так как чувствую, что я рядом, но не хватает какой-то мелочи.
Список узлов, которые заворачиваем:
Код: Выделить всё
/ip firewall address-list
add address=91.108.4.0/22 list=Telegram
add address=91.108.8.0/22 list=Telegram
add address=91.108.12.0/22 list=Telegram
add address=91.108.16.0/22 list=Telegram
add address=91.108.56.0/22 list=Telegram
add address=149.154.160.0/22 list=Telegram
add address=149.154.164.0/22 list=Telegram
add address=149.154.168.0/22 list=Telegram
add address=149.154.172.0/22 list=Telegram
add address=149.154.167.220 list=Telegram
Код: Выделить всё
0 ;;; Mark Telegram
chain=output action=mark-routing new-routing-mark=mark_telegram passthrough=no dst-address-type="" dst-address-list=Telegram log=no log-prefix=""
1 chain=prerouting action=mark-routing new-routing-mark=mark_telegram passthrough=yes dst-address-list=Telegram log=no log-prefix=""
Код: Выделить всё
/interface pptp-client add comment="Telegram VPN" connect-to=PL226.vpnbook.com disabled=no name=TelegramVPN user=vpnbook password=5bhea6u
Код: Выделить всё
/ip route add comment="Telegram to TelegramVPN" distance=1 gateway=TelegramVPN routing-mark=mark_telegram
- Доступ к Телеге для LAN-клиентов не нужен, нужен только для собственных пакетов микрота (поэтому у меня нет соотв. правила на маскарадинг). Доступ делается для Микротик-скрипта.
- Пакеты для 149.154.167.220 должным образом маркируются, что видно по счетчику пакетов в Mangle. Любой ping до 149.154.167.220 дает непрерывный рост счетчика, так что тут все ок.
- VPN-тоннель PPTP активен и подключен, и в нем появляются TX-пакеты, когда я делаю /tool fetch url="http://api.telegram.org/"
Конкретно что не так - обращения к узлам Телеги идут через ненужный мне интерфейс LAN5-WAN (вместо VPN-интерфейса TelegramVPN). До того момента, пока в маршруте TelegramVPN я не уберу routing_mark. Это я узнаю так:
Код: Выделить всё
[Mikrot] > /ip route check 149.154.167.220
status: ok
interface: LAN5-WAN
nexthop: 89.xxx.xxx.x
Код: Выделить всё
0 A S 0.0.0.0/0 192.168.2.1 TelegramVPN 1
1 A S 0.0.0.0/0 89.xxx.xxx.x 2
2 ADC 89.xxx.xxx.0/21 89.xxx.xxx.xx LAN5-WAN 0
3 ADC 172.16.36.1/32 172.16.36.xxx TelegramVPN 0
4 ADC 192.168.2.0/24 192.168.2.1 LAN-Bridge 0
routing_mark убрать в маршруте навсегда не могу, так как маршрута 0.0.0.0/0 у меня два, и маршрут 0.0.0.0/0 для MikrotikVPN начинает главенствовать над 0.0.0.0/0 89.xxx.xxx.x, который является дефолтным (выход в интернет).
Очень прошу помочь, так как чувствую, что я рядом, но не хватает какой-то мелочи.