EL-Script

General IT knowledge base

Настройка MTU в WireGuard на MikroTik: пошаговое руководство

Пошаговое руководство по настройке MTU WireGuard на MikroTik для стабильного VPN-соединения. Узнайте, как определить и применить…

Коротко: MTU в WireGuard: Для корректной работы WireGuard на MikroTik обычно требуется уменьшить MTU на интерфейсе туннеля относительно физического канала. Рекомендуемое значение — 1420 байт (для Ethernet-подключений с учётом служебных заголовков). Настройка выполняется в свойствах WireGuard-интерфейса через WinBox или терминал. После изменения обязательно проверьте связь с удалённым пиром и при необходимости скорректируйте значение.

MTU в WireGuard: mTU напрямую влияет на стабильность и скорость WireGuard-туннеля на MikroTik. Неправильно подобранный размер пакета может привести к обрывам связи или медленной передаче данных. Разбираем, как правильно настроить MTU для интерфейса WireGuard в RouterOS.

Что понадобится

  • Маршрутизатор MikroTik с RouterOS версии 7.x (поддержка WireGuard)
  • Уже созданный и работающий WireGuard-интерфейс и пир (peer)
  • Доступ к настройкам через WinBox, WebFig или SSH
  • Знание текущего MTU вышестоящего интернет-канала (обычно 1500 для Ethernet)
  • Базовое понимание сети и VPN

Зачем настраивать MTU в WireGuard

WireGuard добавляет собственные заголовки к каждому пакету: 20 байт IP-заголовка, 8 байт UDP и 32 байта служебной информации WireGuard. При стандартном Ethernet MTU 1500 байт полезная нагрузка внутри туннеля не может превышать 1500 — 60 = 1440 байт для IPv4. Если передать пакет бóльшего размера, он будет фрагментирован, что увеличивает накладные расходы и снижает надёжность передачи.

Фрагментация особенно критична для UDP-трафика, чувствительного к задержкам. Неправильный MTU также может блокировать handshake и вызывать периодические обрывы. Поэтому важно подобрать значение, исключающее фрагментацию на всём пути пакета.

  • Заголовки IPv4: 20 байт
  • Заголовок UDP: 8 байт
  • Служебные поля WireGuard: 32 байта
  • Рекомендуемый MTU туннеля = MTU канала — 60 (для IPv4)

Важно: При использовании IPv6 или дополнительных туннелей (VLAN, PPPoE) накладные расходы увеличиваются, и MTU нужно уменьшать сильнее.

Как определить правильное значение MTU

Самый точный способ — эмпирический подбор через ping с запретом фрагментации. Отправляя ICMP-запрос увеличивающегося размера, вы найдёте максимальный пакет, который проходит без фрагментации. Затем прибавите 28 байт заголовков, чтобы получить MTU.

В большинстве случаев на Ethernet-подключении безопасно стартовать с MTU 1420. Если ваш провайдер использует PPPoE, MTU WAN составит 1492; тогда туннельный MTU: 1492 — 60 = 1432. Для сотовых сетей или VPN поверх VPN значения будут ещё ниже.

  1. Подключитесь к терминалу MikroTik.
  2. Выполните ping до IP-адреса удалённой стороны туннеля: /ping 10.7.0.2 size=1450 do-not-fragment=yes
  3. Уменьшайте size на 10-20 байт, пока не начнут проходить ответы.
  4. Максимальное успешное значение + 28 = ваш MTU для WireGuard-интерфейса.

Важно: Если используется динамический IP за NAT, тестируйте до публичного IP пира, но внутри туннеля — адрес туннельного интерфейса.

Настройка MTU на интерфейсе WireGuard в RouterOS

Параметр MTU задаётся непосредственно в свойствах WireGuard-интерфейса. После применения изменения не прерывают установленный handshake, но могут кратковременно нарушить трафик. Настройку можно выполнить как графически, так и через командную строку.

Значение применяется сразу после нажатия OK или выполнения команды. Перезагружать роутер не требуется. Рекомендуется выставить одинаковый MTU на всех пирах туннеля.

  1. Откройте WinBox и перейдите в меню Interfaces.
  2. Найдите свой WireGuard-интерфейс (например, wg1) и откройте его свойства двойным щелчком.
  3. На вкладке General в поле MTU введите значение, например 1420.
  4. Нажмите OK.
  5. Или выполните в терминале: /interface wireguard set [find name=»wg1″] mtu=1420

Важно: Если у вас несколько интерфейсов или сложная конфигурация, уточните имя через /interface wireguard print

Проверка работы после изменения

После смены MTU необходимо убедиться, что туннель функционирует и пакеты проходят без фрагментации. Проверьте статус пира и проведите тестовый ping большими пакетами с запретом фрагментации.

Дополнительно можно оценить скорость передачи данных и сравнить её с показателями до изменения. Мелкие потери на уровне 1-2% допустимы, но массовые потери указывают на неверно подобранный MTU.

  1. Выполните команду: /interface wireguard peers print — убедитесь, что ваш пир в состоянии «ESTABLISHED».
  2. Запустите тестовый ping: /ping 10.7.0.2 size=1392 do-not-fragment=yes (1392 = 1420 — 28).
  3. При успешном прохождении проверьте скорость передачи файлов или iperf3.

Важно: Если пакеты проходят только с опцией fragment, уменьшите MTU ещё на 20-40 байт.

Частые ошибки при настройке MTU

Многие администраторы забывают о разнице между MTU интерфейса и MSS для TCP. Даже при корректном MTU туннеля TCP-сессии могут страдать из-за неправильного размера сегментов. Поэтому часто требуется дополнительная настройка TCP MSS clamping.

Ниже перечислены типичные просчёты и их последствия.

  • MTU превышает возможности канала — вызывает фрагментацию, рост задержек и деградацию производительности.
  • Изменение MTU только на одной стороне — вторая сторона пытается отправить большие пакеты, которые не проходят.
  • Путаница между MTU и MSS — для TCP нужно корректировать MSS в отдельном правиле mangle.
  • Игнорирование MTU на маршрутах к удалённым сетям — иногда необходимо добавить статический маршрут с ограничением MTU.

Важно: Для глобальной коррекции TCP MSS используйте mangle правило: /ip firewall mangle add chain=forward protocol=tcp tcp-flags=syn action=change-mss new-mss=1380

Дополнительные рекомендации

После настройки MTU на интерфейсе вы можете повысить стабильность TCP-трафика через туннель, добавив правило clamp-tcp-mss. Оно принудительно уменьшает MSS в SYN-пакетах, исключая фрагментацию на уровне TCP.

Также имеет смысл проверить сквозной MTU с помощью утилит сканирования пути (path MTU discovery), но в небольших сетях ручного подбора обычно достаточно.

  • Добавьте правило: /ip firewall mangle add chain=forward protocol=tcp tcp-flags=syn action=change-mss new-mss=1380 comment=»Clamp MSS for WireGuard»
  • Убедитесь, что интерфейс туннеля участвует в соответствующих маршрутах без принудительной фрагментации

Важно: Если трафик проходит через несколько туннелей, MSS следует уменьшать на сумму накладных расходов всех инкапсуляций.

Проверка результата

  • Убедитесь, что WireGuard интерфейс и пир созданы и работают
  • Запишите текущие значения MTU на физическом WAN-интерфейсе
  • Проверьте, не используются ли уже правила коррекции MSS

Частые ошибки и нюансы

  • Установка MTU туннеля равным MTU физического интерфейса без учёта заголовков
  • Изменение MTU только на одном конце туннеля
  • Игнорирование необходимости коррекции MSS для TCP
  • Применение значений MTU без тестирования реальным трафиком
  • Задание слишком маленького MTU, снижающего пропускную способность
AI-инструмент

Проверить проблему WireGuard

Введите ошибку, симптом или часть конфигурации: handshake, AllowedIPs, DNS, MTU, Endpoint.

FAQ

Какой MTU использовать для WireGuard на Ethernet-подключении?

Обычно 1420 байт (1500 — 20 IP — 8 UDP — 32 WireGuard). При использовании IPv6 или дополнительных туннелей значение может быть другое.

Нужно ли менять MTU на обеих сторонах туннеля?

Да, для симметричной работы рекомендуется установить одинаковый MTU на интерфейсах WireGuard у всех участников. Иначе пакеты в одну сторону могут фрагментироваться.

Почему после смены MTU тормозят сайты через VPN?

Скорее всего проблема с TCP MSS — пакет может фрагментироваться, что замедляет HTTP. Добавьте правило clamp MSS.

Можно ли задать MTU через терминал одной командой?

Да: /interface wireguard set wg1 mtu=1420. Убедитесь, что имя интерфейса (wg1) правильное.

Как проверить, правильно ли подобрано значение MTU?

Выполните ping с запретом фрагментации: /ping 10.7.0.2 size=1392 do-not-fragment=yes. Если ответ приходит без потерь, MTU подходит.

Влияет ли изменение MTU на существующие сессии?

Текущие сессии могут временно испытать потери пакетов до получения нового ICMP-сообщения о необходимости фрагментации, но обычно переподключаются быстро.

Итог

Грамотно настроенный MTU — залог стабильной и быстрой работы WireGuard-туннеля на MikroTik. Начните с рекомендуемого значения 1420 и проверьте связь с удалённой стороной. При появлении проблем используйте утилиту ping с запретом фрагментации и скорректируйте TCP MSS. Дополнительные советы и инструменты диагностики доступны в нашей базе знаний.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *