Долго я к этому шел, но наконец вроде взлетело. Давно пытался реализовать разруливание траффика по разным каналам с автоматизацией. Но то времени нет, то не работает чего-нибудь, то еще какая напасть. Однако наконец мой микротик удалось скрестить с сервисом antifilter.download и настроить в приемлемом виде. Шпаргалка в общих чертах, как всегда.
Во-первых, нам нужен сервер где-нибудь, где РКН не властен. Во-вторых, надо там настроить VPN-сервер. В-третьих, нужен роутер, который в автоматическом режиме прожуёт списки и направит нас в нужном направлении.
Первый пункт опустим, сервисов подобных сейчас множество, выбирай на вкус. VPN-сервер тоже выбираем по вкусу. Главное, чтобы он был совместим с роутером. Я выбрал привычный себе OpenVPN AS. Роутер, в моем случае, это MIKROTIK MAP 2ND – компактный и вообще можно запитать от любой повербанки и подключить через переходник в 4G-свисток Обязательна RouterOS 7 версии. Ладно, ближе к настройкам.
- После установки OpenVPN AS нужно отключить TLS, потому что Mikrotik’овый клиент не умеет с ним работать. Печаль, но делать нечего. Заходим в Advanced VPN -> TLS Control Channel Security и вместо tls-crypt ставим none.
- Дальше создаем профиль для роутера и выгружаем OVPN-профиль для него.
- Из профиля добываем и сохраняем в файлы сертификат центра сертификации (секция CA, файл .cert), сертификат клиента (секция cert, файл .cert) и приватный ключ (секция key, файл .key).
- Загружаем файлы сертификатов в Mikrotik и по очереди их импортируем в раздел сертификатов. Сертификат клиента после загрузки ключа должен получить статус КТ.
- Создаем PPP-соединение типа OVPN Client со следующими параметрами:
- Настраиваем NAT через свежесозданный PPP-интерфейс. Проще всего добавить его в группу WAN-интерфейсов и не париться
Осталось настроить получение списка заблокированных адресов. Инструкция честно утащена с https://forummikrotik.ru/viewtopic.php?t=14126
/routing bgp connection add as=64514 disabled=no hold-time=4m input.ignore-as-path-len=yes keepalive-time=1m local.address=192.168.220.220 .role=ebgp multihop=yes name=bgp1 remote.address=45.154.73.71/32 .as=65432 routing-table=main
Фильтр создается в Routing-Filters вкладка Rule. Синий плюсик.
В поле Chain впишите название вашего фильтра (придумайте сами).
А в поле Rule впишете текст (где my-vpn – это название вашего PPP-соединения):
set gw my-vpn; accept
Осталось в созданной записи BGP выбрать фильтр. Routing-BGP, далее щелкните дважды нужную строчку с параметрами BGP подключения. Перейдите на вкладку Filter. В поле Input Filter выберите нужный фильтр.
Да, и неплохо бы пустить получение BGP все через тот же VPN, а то мало ли заблочат
/ip route add dst-address=45.154.73.71/32 gateway=my-vpn
Вообще, рекомендую почитать оригинальную тему – там даже картинки есть.
Да, и последнее – для DNS’а и прочих руками забитых маршрутов сквозь VPN есть смысл использовать рекурсивные маршруты, чтобы целевой хост хотя бы пытался открыться через обычное соединение при неработающем VPN’е.