Обход блокировки YouTube и некоторых сайтов на MikroTik за 5 минут

Вопреки распространенному и вводящему в заблуждение мнению, на MikroTik можно настроить работу антиDPi. Основные требования: роутер должен быть на ARM/ARM64/x86/x64(mipsbe/smips итд не подойдет, на hap ac2 обязательно поставить галочку single process в routing->settings для освобождения ram, а так же стоит установить старый модуль wireless вместо wifi-qcom-ac или отказаться от wifi в виду ограниченного кол-ва ram) и установлен пакет для поддержки контейнеров, а так же его работа разрешена, ну и очень желательно иметь внешнюю флешку для этого дела (фс только ext4). Огромная благодарность за решение и разрешение на публикацию: @wiktorbgu . К сожалению, лично у меня на таттелекоме не работает после этого вообще, но, возможно, кто-то найдется и внесет свои дополнительные исправления в этот набор. На ROS6/mipsbe думаю можно завести аналогичную тему через MetaRouter - виртуализация openwrt с последующей насадкой модулей. Оригинальная статья: https://habr.com/ru/articles/838452/ (доступна только под vpn)
Команды в настройку за один присест (стоит их скопировать сначала в notepad++ и потом только в terminal):

Summary
/interface/bridge add name=Bridge-Docker port-cost-mode=short
/ip/address add address=192.168.254.1/24 interface=Bridge-Docker network=192.168.254.0
/interface/veth add address=192.168.254.5/24 gateway=192.168.254.1 name=BYEDPI-SOCKS
/interface/veth add address=192.168.254.2/24 gateway=192.168.254.1 name=TUN2SOCKS
/interface/bridge/port add bridge=Bridge-Docker interface=BYEDPI-SOCKS
/interface/bridge/port add bridge=Bridge-Docker interface=TUN2SOCKS

/container/config set registry-url=https://registry-1.docker.io tmpdir=/usb1/docker/pull

/container/add remote-image=tazihad/byedpi:latest interface=BYEDPI-SOCKS cmd="--disorder 1 --auto=torst --tlsrec 1+s --debug 1" root-dir=/usb1/docker/byedpi start-on-boot=yes
/container/envs/ add key=LOCAL_ROUTE name=tun2socks value="ip r a 192.168.0.0/16 via 192.168.254.1;ip r a 10.0.0.0/8 via 192.168.254.1;ip r a 172.16.0.0/12 via 192.168.254.1"
/container/envs/ add key=SOCKS5_ADDR name=tun2socks value=192.168.254.5
/container/add remote-image=snegowiki/hev-socks5-tunnel-mikrotik:latest interface=TUN2SOCKS root-dir=usb1/docker/hev-socks5-tunnel start-on-boot=yes envlist=tun2socks

/ip/dns set address-list-extra-time=1d

/ip/dns/static/ add address-list=za_dpi_FWD forward-to=localhost match-subdomain=yes name=googlevideo.com type=FWD
/ip/dns/static/ add address-list=za_dpi_FWD forward-to=localhost match-subdomain=yes name=youtube.com type=FWD
/ip/dns/static/ add address-list=za_dpi_FWD forward-to=localhost match-subdomain=yes name=youtubei.googleapis.com type=FWD
/ip/dns/static/ add address-list=za_dpi_FWD forward-to=localhost match-subdomain=yes name=ytimg.com type=FWD
/ip/dns/static/ add address-list=za_dpi_FWD forward-to=localhost match-subdomain=yes name=youtu.be type=FWD
/ip/dns/static/ add address-list=za_dpi_FWD forward-to=localhost match-subdomain=yes name=ggpht.com type=FWD
/ip/dns/static/ add address-list=za_dpi_FWD forward-to=localhost match-subdomain=yes name=rutracker.org type=FWD
/ip/dns/static/ add address-list=za_dpi_FWD forward-to=localhost match-subdomain=yes name=rutracker.cc type=FWD
/ip/dns/static/ add address-list=za_dpi_FWD forward-to=localhost match-subdomain=yes name=medium.com type=FWD

/routing/table add disabled=no fib name=dpi_mark

/ip/route add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.254.2%Bridge-Docker pref-src="" routing-table=dpi_mark scope=30 suppress-hw-offload=no target-scope=10

/ip firewall mangle add action=mark-routing chain=prerouting comment="List DNS FWD route to tun2socks => byedpi" connection-state=""  dst-address-list=za_dpi_FWD in-interface-list=LAN new-routing-mark=dpi_mark passthrough=no

/ip/firewall/address-list/ add address=10.0.0.0/8 list=local
/ip/firewall/address-list/ add address=172.16.0.0/12 list=local
/ip/firewall/address-list/ add address=192.168.0.0/16 list=local

/ip firewall nat add action=redirect chain=dstnat dst-address-list=!local dst-port=53 in-interface-list=LAN protocol=udp
/ip firewall nat add action=redirect chain=dstnat dst-address-list=!local dst-port=53 in-interface-list=LAN protocol=tcp

После выполнения команд необходимо запустить 2 добавленных контейнера и перезагрузить роутер.
UPD: Вариант размещения антиdpi на роутере не совместим с антизапретом через openvpn на нем же, потому что происходит наложение маршрутов, просьба помочь с этим. У меня лично завелось все с --fake -1 --ttl 10 --auto=ssl_err --fake -1 --ttl 5 в аргументах контейнера.
UPD2: Если нет возможности использовать DoH или 7.16rc4(якобы все еще сырая прошивка), то нужно указать dns заместо localhost в dns static.
UPD3: Удалось совместить АнтиЗапрет и ютаб с другими сайтами путем указания им публичного dns снова через dns static.

Summary

image

ВНИМАНИЕ: Обход DPI работает только в случае блокировки сайта не по IP-адресу, тот же xvideos.com не откроется таким методом. Проверить можно по выдаче nslookup и проверкой ip.
P.S.Огромная благодарность @wiktorbgu , @dartraiden , @hufrea и другим кого не смог упомянуть.

Обновил инструкцию, для тех у кого не открывается оригинальная статья

наверное к требованиям стоит допипсать что нужно ещё кучу оперативной памятьи, как вот тут обсуждалось, например ас2 сосвоими 128 метрами идёт на…

UPD4: Оптимальный вариант для себя пошел с такими аргументами и обязательным указанием статики в arp для контейнеров (после ребута mac сменится у них, добавить заново придется)
–disorder 1 --split 1 --fake -1 --ttl 10 --auto=ssl_err --fake -1 --ttl 5 --debug 1