Mikrotik. Заворачиваем трафик.
Фактически инструкция универсальная и применить её можно к любым сервисам и сайтам, на сколько у вас фантазии хватит. Давайте разбираться в настройке. Для начала нам потребуется VPN - платный или бесплатный, тут на ваш вкус. Я его взял с сервиса VPNGate, но вы вольны выбирать его самостоятельно. Нам подойдет любой, работающий по протоколу PPTP или L2TP.
Допустим, VPN-сервис мы нашли, теперь нужно настроить Микротик.
1. Запиливаем так называемый адрес-лист, чтобы было удобнее работать с правилами - нужно будет создать правило для всего листа, а не множество для каждого из пулов.
2. Создаем правило, по которому на пакеты с адресом источника из сети роутера (смотрите, какая сеть именно у вас) и назначения из созданного адрес-листа, будет навешиваться соответствующая марка.
3. Создаем VPN-подключение, это может быть PPTP или L2TP-интерфейс, в зависимости от сервера. В своем примере я использую L2TP.
После создания нужно проверить статус подключения. Идем в Interfaces и проверяем новоиспеченный L2TP-клиент, он должен быть Status: connected.
4. Настраиваем маскарадинг, это нужно для того, чтобы пользователи локальной сети могли использовать наш VPN. Если вы делаете все эти настройки для внутренних нужд роутера, то этот пункт не понадобится. Например, вы хотите, чтобы сервис мониторинга The Dude слал сообщения через Telegram-бота.
5. Осталось настроить маршрутизацию для пакетиков, которые мы промаркировали во втором пункте. Проверьте, что маркеры везде указаны одинаковые.
Отлично! Теперь проверим доступность доменов сервиса телеграм.
Что делать, если не взлетело? Ну, для начала проверьте настройки маскарадинга в NAT, тамошнее правило не должно ругаться на недоступность VPN. Теперь идем в IP > Routes, наш маршрут должен отображаться как freevpn reachable. Если тут всё в порядке, то загляните в NAT, не нарушен ли порядок правил, а также проверьте настройку фильтров.
По дефолту Микротик уже имеет набор правил в IP > Firewall >Filter Rules, они создаются при первичном запуске, если вы не посылали мастера настройки в пешее путешествие. Так вот, если всё оставить как есть, не создавать новых бриджей и всего такого прочего, то маршрутизация через VPN заведется без проблем.
Но продвинутые юзвери настраивают маршрутизатор с нуля. В основном, конечно, по готовым статьям. Обычно при этом создается бридж между локальными интерфейсами и фильтрация на конкретных интерфейсах. И для них маршрутизация через VPN без бубна не стартанет. А бубен создаем в IP > Firewall > Filter Rules:
Тут нужна ремарочка.
bridge1 - это название моста в вашей локалке, с тем же успехом он может называться bridge, bridge-lan и вообще как угодно.
freevpn - тут всё понятно, это наше PPTP/L2TP-подключение.
192.168.88.0/24 - дефолтная подсеть, у вас она может быть другой.
Чтобы правила заработали, поднимите их выше настроенных action=drop, иначе роутер зарубит их, когда увидит, что дроп приоритетнее.
В принципе на этом всё. Способ этот, как я уже говорил, универсальный, и его можно использовать в т.ч. для обхода блокировок прочих ресурсов.
Допустим, VPN-сервис мы нашли, теперь нужно настроить Микротик.
1. Запиливаем так называемый адрес-лист, чтобы было удобнее работать с правилами - нужно будет создать правило для всего листа, а не множество для каждого из пулов.
/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
2. Создаем правило, по которому на пакеты с адресом источника из сети роутера (смотрите, какая сеть именно у вас) и назначения из созданного адрес-листа, будет навешиваться соответствующая марка.
/ip firewall mangle
add action=mark-routing chain=prerouting comment="Mark Telegram" dst-address-list=Telegram new-routing-mark=mark_telegram passthrough=no src-address=192.168.88.0/24
3. Создаем VPN-подключение, это может быть PPTP или L2TP-интерфейс, в зависимости от сервера. В своем примере я использую L2TP.
/interface l2tp-client add comment="FREE VPN" connect-to=vpn832492819.opengw.net disabled=no name=freevpn user=vpn password=vpn
После создания нужно проверить статус подключения. Идем в Interfaces и проверяем новоиспеченный L2TP-клиент, он должен быть Status: connected.
4. Настраиваем маскарадинг, это нужно для того, чтобы пользователи локальной сети могли использовать наш VPN. Если вы делаете все эти настройки для внутренних нужд роутера, то этот пункт не понадобится. Например, вы хотите, чтобы сервис мониторинга The Dude слал сообщения через Telegram-бота.
/ip firewall nat add action=masquerade chain=srcnat out-interface=freevpn
5. Осталось настроить маршрутизацию для пакетиков, которые мы промаркировали во втором пункте. Проверьте, что маркеры везде указаны одинаковые.
/ip route add comment="Telegram to VPN" distance=1 gateway=freevpn routing-mark=mark_telegram
Отлично! Теперь проверим доступность доменов сервиса телеграм.
Нюансы.
Что делать, если не взлетело? Ну, для начала проверьте настройки маскарадинга в NAT, тамошнее правило не должно ругаться на недоступность VPN. Теперь идем в IP > Routes, наш маршрут должен отображаться как freevpn reachable. Если тут всё в порядке, то загляните в NAT, не нарушен ли порядок правил, а также проверьте настройку фильтров.
По дефолту Микротик уже имеет набор правил в IP > Firewall >Filter Rules, они создаются при первичном запуске, если вы не посылали мастера настройки в пешее путешествие. Так вот, если всё оставить как есть, не создавать новых бриджей и всего такого прочего, то маршрутизация через VPN заведется без проблем.
Но продвинутые юзвери настраивают маршрутизатор с нуля. В основном, конечно, по готовым статьям. Обычно при этом создается бридж между локальными интерфейсами и фильтрация на конкретных интерфейсах. И для них маршрутизация через VPN без бубна не стартанет. А бубен создаем в IP > Firewall > Filter Rules:
/ip firewall filter
add action=accept chain=forward connection-state=established,new in-interface=bridge1 out-interface=freevpn src-address=192.168.88.0/24
add action=accept chain=forward connection-state=established,related in-interface=freevpn out-interface=bridge1
Тут нужна ремарочка.
bridge1 - это название моста в вашей локалке, с тем же успехом он может называться bridge, bridge-lan и вообще как угодно.
freevpn - тут всё понятно, это наше PPTP/L2TP-подключение.
192.168.88.0/24 - дефолтная подсеть, у вас она может быть другой.
Чтобы правила заработали, поднимите их выше настроенных action=drop, иначе роутер зарубит их, когда увидит, что дроп приоритетнее.
В принципе на этом всё. Способ этот, как я уже говорил, универсальный, и его можно использовать в т.ч. для обхода блокировок прочих ресурсов.
Комментариев 5