Коротко: 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 значения будут ещё ниже.
- Подключитесь к терминалу MikroTik.
- Выполните ping до IP-адреса удалённой стороны туннеля: /ping 10.7.0.2 size=1450 do-not-fragment=yes
- Уменьшайте size на 10-20 байт, пока не начнут проходить ответы.
- Максимальное успешное значение + 28 = ваш MTU для WireGuard-интерфейса.
Важно: Если используется динамический IP за NAT, тестируйте до публичного IP пира, но внутри туннеля — адрес туннельного интерфейса.
Настройка MTU на интерфейсе WireGuard в RouterOS
Параметр MTU задаётся непосредственно в свойствах WireGuard-интерфейса. После применения изменения не прерывают установленный handshake, но могут кратковременно нарушить трафик. Настройку можно выполнить как графически, так и через командную строку.
Значение применяется сразу после нажатия OK или выполнения команды. Перезагружать роутер не требуется. Рекомендуется выставить одинаковый MTU на всех пирах туннеля.
- Откройте WinBox и перейдите в меню Interfaces.
- Найдите свой WireGuard-интерфейс (например, wg1) и откройте его свойства двойным щелчком.
- На вкладке General в поле MTU введите значение, например 1420.
- Нажмите OK.
- Или выполните в терминале: /interface wireguard set [find name=»wg1″] mtu=1420
Важно: Если у вас несколько интерфейсов или сложная конфигурация, уточните имя через /interface wireguard print
Проверка работы после изменения
После смены MTU необходимо убедиться, что туннель функционирует и пакеты проходят без фрагментации. Проверьте статус пира и проведите тестовый ping большими пакетами с запретом фрагментации.
Дополнительно можно оценить скорость передачи данных и сравнить её с показателями до изменения. Мелкие потери на уровне 1-2% допустимы, но массовые потери указывают на неверно подобранный MTU.
- Выполните команду: /interface wireguard peers print — убедитесь, что ваш пир в состоянии «ESTABLISHED».
- Запустите тестовый ping: /ping 10.7.0.2 size=1392 do-not-fragment=yes (1392 = 1420 — 28).
- При успешном прохождении проверьте скорость передачи файлов или 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, снижающего пропускную способность
Проверить проблему 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. Дополнительные советы и инструменты диагностики доступны в нашей базе знаний.