Инструкция по настройке Cloudflare Warp(1.1.1.1) в MikroTik RouterOS v7. Для генерация WireGuard конфигурации будет использоваться утилита ViRb3/wgcf, которая подготовит бесплатную версию для импорта в роутер MikroTik. В примере описана полная настройка, включая работу интернета через WireGuard. В настройке участвует роутер MikroTik hAP ax2 с прошивкой RouterOS v7.14.3
Компания Cloudflare выпустила бесплатный VPN клиент Cloudflare Warp, который можно установить на различные системы типа Ubuntu и Windows, а также на смартфоны под управлением Android и IOS(Iphone). Однако для оборудования MikroTik такое приложение установить невозможно, но можно использовать настройки Cloudflare Warp путём конфигурирования WireGuard VPN туннеля.
Почему Cloudflare Warp? Потому что это бесплатно, соединение зашифровано и нет ограничений по скорости.
Создание Cloudflare Warp(1.1.1.1) WireGuard конфигурации
Для генерации WireGuard конфигурации Cloudflare Warp будет использоваться утилита https://github.com/ViRb3/wgcf
Скачать утилиту ViRb3/wgcf
wget https://github.com/ViRb3/wgcf/releases/download/v2.2.19/wgcf_2.2.19_linux_386
Создать Cloudflare Warp account
./wgcf_2.2.19_linux_386 register
Сгенерировать WireGuard конфигурацию
./wgcf_2.2.19_linux_386 generate
Настройка Cloudflare Warp(1.1.1.1) в MikroTik
После генерации WireGuard конфигурации создался файл wgcf-profile.conf, содержимое которого
Просмотреть WireGuard конфигурацию
cat wgcf-profile.conf [Interface] PrivateKey = 2M6poD88ObeXXXXXXXXXXXXXXXXXXXXXXXX= Address = 172.16.0.2/32 Address = 2606:4700:110:8de3:eed5:e8bf:f8dd:a79f/128 DNS = 1.1.1.1 MTU = 1280 [Peer] PublicKey = bmXOC+F1FxYYYYYYYYYYYYYYYYYYYYYYYYYYY= AllowedIPs = 0.0.0.0/0 AllowedIPs = ::/0 Endpoint = engage.cloudflareclient.com:2408
Все эти настройки нужно применить со стороны роутера MikroTik.
Создание интерфейса WireGuard клиента
Настройка находится WireGuard→WireGuard
- Private Key — этот ключ нужно скопироваться с параметра PrivateKey, который указан в файле wgcf-profile.conf, при генерации WireGuard конфигурации;
- MTU — указать значение с файла wgcf-profile.conf, в данном случае это 1280.
Настройка параметров peer в WireGuard клиенте
Настройка находится WireGuard→Peers
- Public Key -этот ключ нужно скопироваться с параметра PublicKey, который указан в файле wgcf-profile.conf, при генерации WireGuard конфигурации;
- Endpont — внешний DNS адрес Cloudflare Warp, параметр Endpoint;
- Endpont Port — порт для подключения, указан в параметре Endpoint после DNS(engage.cloudflareclient.com:2408);
- Allowed Address — тут следует указать 0.0.0.0/0, весь интернет трафик будет направляться в Cloudflare Warp;
- Persistent Keepalive — при падении VPN туннеля, это время будет отводиться на его восстановление и будет считаться, что статус VPN все ещё UP.
Добавить WireGuard интерфейс в список WAN
Настройка находится Interfaces→Interface List
Настроить Masquerade для WireGuard
В данном варианте следуем просто проконтролировать, что присутствует правило для Out interface list ранее обновленного списка WAN типа Masquerade. Если его нет, то нужно создать новое и в качестве Out interface указать ранее созданный WireGuard интерфейс.
Настройка находится IP→Firewall→NAT
Создать таблицу маршрутизации для WireGuard
Настройка находится Routing→Tables
Назначить IP адрес WireGuard клиенту
Настройка находится IP→Addresses
где Address=172.16.0.2/24 это значение Address с конфигурации, который указан в файле wgcf-profile.conf, при генерации WireGuard конфигурации.
Промаркировать таблицу для выхода в интернет
С помощью маркировки(Mangle) можно промаркировать таблицу маршрутизации, в которую попадёт весь трафик, кроме трафика предназначенного локальной сети. По сути это и будет интернет трафик.
Настройка находится IP→Firewall→Mangle
Добавить статический маршрут для интернета через WireGuard
Промаркированная ранее таблица маршрутизации будет направляться в WireGuard туннель, что позволит выходить в интернет через сервер WireGuard Cloudflare Warp.
Настройка находится IP→Routes
где Gateway=172.16.0.1 это предполагаемый IP адрес WireGuard сервера, это значение отсутствует в клиентской конфигурации.
Полная конфигурация Wireguard
/interface wireguard add listen-port=13231 mtu=1280 name=Wireguard-Client /interface wireguard peers add allowed-address=0.0.0.0/0 endpoint-address=engage.cloudflareclient.com endpoint-port=\ 2408 interface=Wireguard-Client persistent-keepalive=10s public-key=\ "bmXOC+F1FxYYYYYYYYYYYYYYYYYYYYYYYYYYY=" /ip address add interface=Wireguard-Client address=172.16.0.2 netmask=255.255.255.0 /interface list member add comment=defconf interface=Wireguard-Client list=WAN /routing table add disabled=no fib name=To-WireGuard /ip firewall mangle add action=mark-routing chain=prerouting dst-address=!192.168.88.0/24 \ new-routing-mark=To-WireGuard src-address=192.168.88.0/24 /ip route add disabled=no dst-address=0.0.0.0/0 gateway=172.16.0.1 routing-table=\ To-WireGuard suppress-hw-offload=no
Проверка скорости Cloudflare Warp
Медленно работает WireGuard VPN
В частных случаях скорость туннеля WireGuard может быть в пределах 1-3Мб\с, это ситуацию поправит правило, в котором принудительно будут уменьшены пакеты, проходящих через WireGuard VPN туннель:
/ip firewall mangle add out-interface=Wireguard-Client protocol=tcp tcp-flags=syn action=change-mss new-mss=1380 chain=forward tcp-mss=1381-65535
Что можно сделать если download 23.5 мбит/с, а upload 0,05 мбит/с?