18 дек. 2025 г.

GeoIP routing Microtik

1.Делаем тоннель не заблокированным на данный момент времени способом.


[SKIP]

2.Выкачиваем список российских ip в формате скрипта адрес-листа Микротик (спасибо доброму человеку)


/tool fetch address=mikrotik-geoip.bafista.ru host=mikrotik-geoip.bafista.ru mode=https src-path=/ru/MikroTik-GeoI
P-ru.rsc

3. Запускаем скрипт. чтобы импортировать это в адрес-лист


/import file=MikroTik-GeoIP-ru.rsc

Пункты 2-3 надо в периодический скрипт, наверное, раз в месяц?

4.Создаем отдельную таблицу маршрутизации для русских


/routing/table add  name="rus" fib

5. Для VPN сервера добавляем маршрут через провайдера, чтобы его не потерять


/ip/route add dst-address=[адрес VPN сервера] gateway=ether1

6. Добавляем маршрут по умолчанию на весь мир в VPN в основной таблице маршрутизации (она есть по-умолчанию).


/ip/route  add  gateway=[адрес дальнего конца тоннеля]  routing-table="main"

6. Добавляем маршрут по умолчанию для России на провайдера в таблице маршрутизации  "rus"


/ip/route  add gateway=ether1 routing-table="rus"

7.Задаем в файерволе правило, что если ip назначения относится к списку адресов России "GeoIP-ru", то метим пакет меткой rus


/ip/firewall/mangle chain=prerouting action=mark-routing new-routing-mark=rus passthrough=yes src-address=192.168.1.0/24 dst-address-list=GeoIP-ru log=no log-prefix="" 

8. В выходной из роутера цепочке для адреса 0.0.0.0/0  для соединений, помеченных меткой GeoIP-ru, говорим, что у них должна быть метка роутинга rus, то есть надо воспользоваться таблицей роутинга не main, а rus, то есть отправить не в тоннель (пункт 6) а провайдеру (пункт 5)


/ip/firewall/mangle chain=output action=mark-routing new-routing-mark=rus passthrough=yes dst-address=0.0.0.0/0 connection-mark=GeoIP-ru log=no log-prefix=""