В умовах сучасного інформаційного суспільства вимоги до безпеки та керованості мережевого трафіку постійно зростають. Це актуально як для корпоративних офісів, де необхідно захищати критично важливі дані, так і для домашніх мереж, де важливі швидкість та стабільність інтернет-з’єднання. Роутери MikroTik з останньою версією RouterOS 7.18 стають все більш популярним вибором для реалізації цих завдань завдяки своїй надійності, гнучкості налаштування та широким можливостям управління трафіком.
Одним із сучасних та ефективних рішень є використання протоколу WireGuard – легкого VPN-рішення, яке забезпечує високу швидкість роботи, простоту налаштування та надійне шифрування. У статті ми розглянемо, як на роутерах MikroTik з RouterOS 7.18 налаштувати режим split tunnel для WireGuard, щоб забезпечити безпечний доступ до певних ресурсів (наприклад, YouTube) через захищений тунель, при цьому залишаючи інший трафік спрямованим безпосередньо через звичайне з’єднання.
Split tunnel (розділений тунель) – це технологія, за якою лише частина мережевого трафіку, наприклад, трафік, спрямований на корпоративні сервіси або певні інтернет-ресурси, маршрутизується через VPN-тунель, тоді як інший трафік йде безпосередньо через звичайне інтернет-з’єднання. Такий підхід дозволяє:
- Підвищити продуктивність, оскільки навантаження на шифрування та VPN-сервер обмежується лише критичним трафіком;
- Заощадити ресурси, особливо в офісному середовищі, де велика кількість співробітників працює з корпоративними даними;
- Знизити затримки (latency), що особливо важливо для інтерактивних застосунків, таких як відеоконференції, онлайн-ігри та віддалений доступ по SSH;
- Забезпечити гнучкість та безпеку, дозволяючи вибірково направляти через тунель лише конфіденційні або чутливі дані.
У цій статті ми докладно розглянемо налаштування WireGuard у режимі split tunnel на роутерах MikroTik з RouterOS 7.18, наведемо приклад маршрутизації трафіку для YouTube та обговоримо три способи вирішення проблем з низькою швидкістю: корекція MTU, зміна MSS та відключення FastTrack.
- Налаштування WireGuard Split Tunnel на MikroTik (RouterOS 7.18)
- Налаштування WireGuard підключення на MikroTik
- Створення інтерфейсу WireGuard
- Призначення IP-адрес
- Налаштування DNS
- Додавання піра (VPN-сервера)
- Налаштування split tunnel (приклад для YouTube)
- Створення адресного списку YouTube
- Створення користувацької таблиці маршрутизації для YouTube
- Додавання дефолтного маршруту для таблиці to_YT
- Правило mangle для позначення трафіку YouTube
- Налаштування NAT для позначеного трафіку YouTube
- Рішення проблем з низькою швидкістю WireGuard на MikroTik
- Корекція MTU та розрахунок оптимального значення
- Корекція MSS
- Відключення FastTrack
- Створити правило mangle для маркування VPN-з’єднань
- Налаштувати FastTrack для виключення VPN-з’єднань
- Висновок
Налаштування WireGuard Split Tunnel на MikroTik (RouterOS 7.18)
Для реалізації режиму split tunnel на роутері MikroTik з RouterOS 7.18 необхідно забезпечити можливість розподілу трафіку на два потоки: один — для захищеного VPN-з’єднання, інший — для прямого доступу до інтернету. Такий підхід дозволяє направляти через VPN лише критично важливий або конфіденційний трафік (наприклад, доступ до корпоративних ресурсів або певних сервісів, таких як YouTube), тоді як увесь інший трафік проходить безпосередньо через основний канал. Це значно знижує навантаження на VPN-сервер, покращує продуктивність та мінімізує затримки для інтерактивних застосунків.
Щоб налаштувати split tunnel, необхідно виконати наступні ключові кроки:
- Створити адресні списки для визначення сервісів, трафік яких має йти через VPN.
- Створити окремі таблиці маршрутизації для цих груп трафіку.
- Налаштувати правила mangle, які позначають пакети, адресовані у задані підмережі, і направляють їх за потрібними таблицями маршрутизації.
- За потреби, додати правила NAT для коректного перетворення вихідного трафіку.
Налаштування WireGuard підключення на MikroTik
Перший етап split tunnel — створення базового VPN-з’єднання через WireGuard. Це включає налаштування WireGuard-інтерфейсу на MikroTik, призначення IP-адрес, додавання піра (VPN-сервера) з параметрами (публічний ключ, предобмінний ключ, AllowedIPs, Endpoint, PersistentKeepalive) та перевірку роботи тунелю (ping з низькою затримкою, оновлення статистики rx/tx). Крім того, на цьому етапі налаштовується NAT (masquerade) для коректного перетворення вихідного трафіку та повернення відповідей від віддалених серверів.
Створення інтерфейсу WireGuard
Створіть новий інтерфейс WireGuard з приблизними значеннями. Замініть EXAMPLE_PRIVATE_KEY на ваш приватний ключ, а EXAMPLE_MTU на обране значення MTU (наприклад, 1500 або оптимальне значення для вашої мережі).
Призначте IP-адреси для інтерфейсу (замініть на приклади):
Налаштування DNS
Переконайтеся, що глобальні налаштування DNS коректні:
Додайте піра, використовуючи приблизні дані. Замініть EXAMPLE_PUBLIC_KEY, EXAMPLE_PRESHARED_KEY та EXAMPLE_ENDPOINT на відповідні значення вашого сервера WireGuard:
Примітка: Використання AllowedIPs = 0.0.0.0/0, ::/0 означає, що за замовчуванням увесь трафік буде проходити через тунель.
Налаштування split tunnel (приклад для YouTube)
Щоб направляти через VPN лише трафік для YouTube, виконайте наступні кроки:
Створення адресного списку YouTube
Створення користувацької таблиці маршрутизації для YouTube
Додавання дефолтного маршруту для таблиці to_YT
Правило mangle для позначення трафіку YouTube
Щоб забезпечити коректне перетворення вихідного трафіку, спрямованого через VPN (для пакетів з позначкою to_YT
), додайте правило masquerade, яке діє лише на трафік з цією позначкою:
Це правило гарантує, що лише пакети, позначені для маршрутизації за таблицею to_YT
, будуть проходити NAT через інтерфейс WireGuard, що забезпечує коректне повернення відповідей від віддалених серверів.
Після цього трафік, спрямований до адрес YouTube, буде використовувати таблицю маршрутизації to_YT і, відповідно, проходити через інтерфейс wgclient_example (VPN), а увесь інший трафік буде йти безпосередньо через основний канал.
Аналогічним способом можна направити трафік на будь-який сервіс та IP-адресу. Ви можете скористатися сервісами https://bgpview.io/ та https://bgp.he.net/, щоб визначити підмережі, що належать тому чи іншому сервісу.
Рішення проблем з низькою швидкістю WireGuard на MikroTik
При використанні VPN через WireGuard часто спостерігаються проблеми із затримками при встановленні з’єднань та зниженою інтерактивною швидкістю (наприклад, при підключенні по SSH або встановленні SSL/TLS-сесій), навіть якщо пропускна здатність для великих файлів висока. Такі проблеми можуть бути викликані рядом факторів, серед яких особливо важливу роль відіграють параметри MTU та MSS, а також особливості обробки трафіку FastTrack. Нижче докладно описані ці аспекти та наведено рекомендації щодо їх налаштування.
Хочу зазначити, що, зіткнувшись із проблемою низької швидкості WireGuard на MikroTik, вирішення проблеми виявилося у відключенні FastTrack для VPN-трафіку (описано в пункті 3), а корекція та пошук оптимального значення MTU, як часто рекомендується, ні до чого не привели.
Корекція MTU та розрахунок оптимального значення
MTU (Maximum Transmission Unit) – це максимальний розмір пакету (у байтах), який може бути переданий по мережі без фрагментації. При використанні VPN додаються додаткові заголовки тунелю, тому оптимальне значення MTU для VPN-інтерфейсу має бути нижчим за стандартне значення для Ethernet (зазвичай 1500 байт). Якщо MTU завищено, пакети можуть фрагментуватися або взагалі відкидатися, що призводить до затримок та зниження продуктивності.
Як розрахувати оптимальний MTU
-
Перевірте стандартне значення MTU для вашого каналу.
Стандартний MTU для Ethernet зазвичай дорівнює 1500 байт. -
Врахуйте додаткові заголовки.
При тунелюванні через VPN додаються додаткові заголовки (зазвичай це кілька десятків байт). Таким чином, якщо ви використовуєте тунель, оптимальне значення MTU може знизитися до 1400 або навіть 1300 байт. -
Використовуйте команду ping з DF-прапором для визначення максимального розміру пакету без фрагментації.
Наприклад, на Windows команда виглядає так:де параметр
-l
задає розмір даних, а DF (Don’t Fragment) забороняє фрагментацію. Зверніть увагу, що до вказаного розміру додається 28 байт заголовків (20 байт IP та 8 байт ICMP).Приклад:
Якщо командаповертає повідомлення «Потрібна фрагментація пакету, але встановлено заборонний прапорець», це означає, що 1180+28=1208 байт перевищує допустимий розмір. Спробуйте зменшити розмір, наприклад:
Якщо ping проходить, значить максимальний розмір даних (без фрагментації) дорівнює 1160 байтам, а загальний розмір пакету – 1160+28=1188 байт.
Таким чином, оптимальне значення MTU для VPN-інтерфейсу можна встановити на рівень, трохи нижчий за отриманий загальний розмір. Наприклад, якщо ви отримали, що 1188 байт проходить без фрагментації, спробуйте встановити MTU на 1180 байт або навіть трохи нижче, щоб залишити запас.
-
Налаштування MTU на MikroTik:
Якщо оптимальне значення для вашого каналу, отримане тестами, дорівнює 1320 байт, налаштуйте інтерфейс WireGuard наступним чином:
При цьому переконайтеся, що нове значення MTU погоджене як на стороні клієнта, так і на стороні сервера.
Важливо: Некоректно підібраний MTU може призводити до фрагментації, що особливо негативно впливає на інтерактивні застосунки (SSH, HTTPS), де затримки при встановленні з’єднання можуть бути відчутними.
Корекція MSS
MSS (Maximum Segment Size) – це максимальний розмір корисного навантаження TCP-пакету, який передається без фрагментації. Якщо MSS налаштовано занадто високо, пакети можуть фрагментуватися, що призводить до затримок на етапі встановлення з’єднання.
Рішення:
Додайте правило mangle, яке змінює MSS для TCP-пакетів з SYN-прапором, використовуючи значення, основане на MTU. Наприклад, для інтерфейсу wgclient_example
:
Відключення FastTrack
FastTrack – це механізм, призначений для прискорення обробки з’єднань у MikroTik, який дозволяє обходити частину логіки обробки пакетів. Проте FastTrack може негативно впливати на встановлення інтерактивних з’єднань (наприклад, SSH або SSL), оскільки він може не враховувати особливості обробки дрібних пакетів, необхідних для встановлення з’єднання.
Рішення:
Для перевірки впливу FastTrack тимчасово відключіть його. Знайдіть правило FastTrack (зазвичай воно має дію fasttrack-connection) та відключіть його командою:
Це правило присвоїть з’єднанням, що входять через інтерфейс VPN, мітку VPN_No_FastTrack
.
Створити правило mangle для маркування VPN-з’єднань
Додайте правило в ланцюгу prerouting, щоб позначати всі вхідні з’єднання через VPN-інтерфейс (наприклад, wgclient_example
):
Це правило присвоїть з’єднанням, що входять через інтерфейс VPN, мітку VPN_No_FastTrack
.
Налаштувати FastTrack для виключення VPN-з’єднань
Тепер нам потрібно переконатися, що правило FastTrack застосовується лише до з’єднань, у яких немає мітки VPN_No_FastTrack
. Для цього необхідно додати нове правило FastTrack, яке застосовує його лише до з’єднань, що не мають мітки VPN_No_FastTrack
:
Це правило FastTrack оброблятиме лише ті з’єднання, у яких connection mark не дорівнює VPN_No_FastTrack
.
ВАЖЛИВО! У WinBox у розділі Filter Rules для Firewall необхідно перемістити нове правило FastTrack на місце стандартного для коректної роботи:
Підсумок:
- Маркування VPN-з’єднань:
Позначаємо всі з’єднання, що входять через VPN-інтерфейс, щоб виключити їх з FastTrack. - Нове правило FastTrack:
Створюємо правило FastTrack, яке діє лише на з’єднання без міткиVPN_No_FastTrack
.
Після застосування цих правил VPN-трафік не проходитиме через FastTrack, а інший трафік продовжить використовувати прискорену обробку FastTrack. Це має допомогти усунути затримки при встановленні інтерактивних з’єднань через VPN.
Висновок
Налаштування WireGuard у режимі split tunnel на роутерах MikroTik з RouterOS 7.18 надає гнучкі можливості управління трафіком. Такий підхід дозволяє направляти через VPN лише критичний для безпеки трафік (наприклад, доступ до YouTube або корпоративних ресурсів), тоді як інший трафік проходить безпосередньо, забезпечуючи високу продуктивність та мінімальні затримки.
Переваги рішення:
- Гнучкість: можна вибірково направляти трафік через захищений тунель.
- Підвищена продуктивність: знижується навантаження на VPN, оскільки лише частина трафіку шифрується.
- Оптимізація безпеки: критичні дані передаються через VPN, а звичайний інтернет-трафік не зазнає зайвого шифрування.
У статті наведені практичні приклади налаштування інтерфейсів, створення адресних списків, таблиць маршрутизації та правил mangle, а також способи усунення проблем з низькою швидкістю через корекцію MTU, MSS та відключення FastTrack. Такий підхід підходить як для офісних, так і для домашніх мереж, забезпечуючи баланс між безпекою та продуктивністю.
Якщо виникнуть додаткові питання або знадобиться допомога з подальшою оптимізацією – звертайтеся!