Что Такое Размер MTU На WiFi Роутере и Какое Значение Ставить в Настройках?


Автор статьи

Кристина Горбунова

Высшее образование по специальности “Информационные системы”. В сфере более 7 лет, занимается разработкой сайтов на WordPress и Tilda.

Задать вопрос

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

Что такое MTU?

MTU — это сокращенное английское понятие Maximum Transmission Unit, что переводится как максимальное значение размера пакета данных, которые устройство получает или принимает внутри локальной сети wifi или через интернет.

Размер MTU выставляется по умолчанию в настройках роутера. Работает это следующим образом — весь объем информации, которую, например, компьютер или ноутбук передает на смартфон или телевизор, отправляется не единоразово целиком, а делится на равнозначные пакеты, то есть фрагментируется. После чего принимающее устройство объединяет их обратно. Величина этих пакетов — как раз и есть MTU. Она измеряется в байтах.

Автоматическая настройка — PMTU discovery

Существуют режимы работы некоторых устройств, когда размер MTU уточняется во время подключения к удаленному серверу (PMTU discovery). Алгоритм такой же, как и тот, которым пользовались при настройке MTU на роутере. В начале работы устройство отправляет блоки данных разного размера, пытаясь определить максимальный размер пакета, который дойдет без фрагментации.

В этом алгоритме есть одна проблема, называемая «MTU Discovery Black Hole». Она возникает в случае, когда администраторы сетей, чтобы избежать возможных атак на их сервера, запрещая маршрутизаторам передачу ICMP, в частности которые используются при команде ping.

Так конечно не корректно действовать. Устройство, не получив ответа на запрос не может продолжить работать.

Из чего складывается размер MTU?

Весь пакет в целом также делится на составные части. Это:

  • MSS (Maximum Segment Size) — величина может настраиваться
  • Заголовок IP — 20 байт
  • Заголовок ICMP — 8 байт

В итоге общий размер MTU в байтах равен 20 + 8 + размер основного пакета, который можно менять в настройках роутера. Для чего, спросите вы? Дело в том, что по умолчанию каждый маршрутизатор автоматически устанавливает определенную величину блока MTU. И она не всегда оптимальна. И в том случае, если значение выставлено некорректно, могут наблюдаться существенные проблемы в работе интернета. Например, будут плохо загружаться определенные сайты или просадки в скорости при воспроизведении видео. При этому, чем меньше значение MTU, тем больше будет пакетов, и тем дольше они будут обрабатываться.

Это означает, что лучше всего выставлять значение MTU максимальное, которое допустимо для вашего провайдера

Диагностика

Ну думаю: что-то тут не так. Сетевое у меня Mikrotik, возможностей уйма, пойду искать причину на своей стороне. Лезу в логи и вижу как посыпался DoH (РКН, приветик) и крайне удивляюсь этому. решил временно отрубить DoH и дать 1.1.1.1… Ситуация не изменилась. Начал резолвить адреса хотя бы чего-нибудь, все через раз. Решил прокинуть трейс до Хабра и смотрю на «потяряшки». Думаю дай звякну в поддержку, вдруг умное чего скажут. Те репу почесали, сказали что не видят мою сеть за роутером (nat >> forward >> change ttl >>+1 :D) и изобразили что-то вроде «Мы ХЗ».

Начал копать дальше. Вспомнил всю балду, которую знаю о пакетах и тут осенило.

Какое значение MTU выставить на роутере?

Вот мы и подошли вплотную к вопросу, как определить оптимальное значение MTU в вашей конкретной ситуации. Для проверки мы будет использовать командную строку Windows на компьютере или ноутбуке.

Открываем меню поиска и набираем «cmd»

Первым делом я бы рекомендовал проверить текущие настройки. Для этого вводим команду

netsh interface ipv4 show subinterfaces

Нажимаем клавишу «Enter» и видим в столбце «MTU» текущую величину пакета. У меня она стандартна для WiFi и равна «1500». Из них 20 — это заголовок IP, 8 — ICMP, и 1472 — размер блока самих данных. У вас же может быть произвольное значение от 1400 в зависимости от настроек конкретного провайдера, если вы проверяете с компьютера, подключенного к интернету по кабелю.

Для того, чтобы определить, какое MTU является максимальным в вашей сети, необходимо «пропинговать» различные значения до того момента, пока система не выдаст сообщение о необходимости дополнительной фрагментации (деления) текущего пакета.

Например, я знаю, что у меня максимальное MTU 1472 байт. Но проверим, какой ответ будет от удаленного сервера wifika.ru, если попробовать протолкнуть 1700 байт. Для этого вводим команду

ping -f -l 1700 wifika.ru

Получаем следующий ответ:

  • «Требуется фрагментация пакета, но установлен запрещающий флаг»
  • «100% потерь»
  • «отправлено — 4, получено — 0, потеряно — 4»

Если же задать 1471 байт, то пакеты должны быть отправлены и получены. Проверяем:

ping -f -l 1471 wifika.ru

Результат:

  • Время передачи пакета
  • «0% потерь»
  • «отправлено — 4, получено — 4, потеряно — 0»

То есть вся информация была успешно передана. То же самое будет, если указать «1472», а вот «1473» уже проходить не будет. То есть для моей сети максимальное и оно же оптимальное значение MTU — это 1472 + 20 + 8 = 1500. Его и необходимо указать в настройках роутера, если автоматически в нем выставлено что-то иное.

Также стоит обратить внимание, что размер MTU также зависит от типа подключения к интернету. По умолчанию они следующие:

  • Динамический или Статический IP – максимально допустимо 1500 байт
  • PPPoE – 1420 байт
  • L2TP или PPTP – 1460 байт

Настройка на компьютере

Поменять MTU в Windows 7, 10 можно за несколько минут.

Пошагово процесс выглядит так:

  1. Определите текущую величину МТУ. Запустите командную строку. Введите команду «netsh interface ipv4 show subinterfaces». На экране появится таблица, в которой видно, что значение параметра 1500.

  2. Установите новое значение максимального размера передаваемых пакетов. Для этого введите команду «netsh interface ipv4 set subinterface “Ethernet” mtu=1300 store=persistent», где 1300 – новая величина передаваемого блока данных.
  3. Проверить ввод новых настроек. Необходимо снова ввести команду «netsh interface ipv4 show subinterfaces». Проверка считается успешной, если значение изменилось на 1300. Если значение осталось прежним, то снова введите команду из пункта 2.

После сохранения этих настроек с компьютера будут отправляться пакеты, максимальный размер которых ограничен на IP-уровне 1300 байтами. Но на MAC-уровне их величина будет равна 1314 байт. Отправка пакетов данных большего размера осуществляться не будет.

В ОС семейства Linux тоже можно изменить МТУ. Для этого запустите консоль комбинацией Ctrl+Alt+F1.

Дальнейший порядок действий:

  1. Определите величину МТУ с помощью команды ip link.
  2. Установите новое значение максимального передаваемого блока данных с помощью команды «ip link set dev eth0 mtu 1200», где 1200 – нужный размер МТУ.

С помощью команды происходит временная замена значения максимальной величины передаваемых пакетов на 1200. После перезагрузки восстановится значение по умолчанию. Для того, чтобы сделать новую величину постоянной, отредактируйте файл /etc/network/interfaces. К описанию нужного интерфейса (eth0) добавьте отдельной строкой mtu 1200.

После сохранения настроек выполните команду ifdown $eth0 && ifup $eth0, где eth0 – наименование интерфейса.

Величина MTU на роутере

После того, как вы проверили максимальную величину для своего подключения, необходимо установить его на роутере.

TP-Link

Для ручной установки MTU на моделях TP-Link необходимо зайти через браузер в панель управления и открыть меню «Дополнительные настройки — Сеть — Интернет». И раскрыть блок «Дополнительные»

Ваше мнение — WiFi вреден?

Да

22.91%

Нет

77.09%

Проголосовало: 36517

В старой версии администраторского раздела этот параметр находится в основном пункте «WAN»

Asus

Для указания MTU на Asus открываем рубрику «Интернет» в новой версии прошивки

Для старых роутеров нужно открыть настройки «WAN»

Keenetic

В маршрутизаторах Keenetic задать собственную величину MTU можно в меню «Проводной интернет»

Необходимый параметр находится в блоке «Проводные подключения»

D-Link

Для выбора параметров MTU на роутерах D-Link открываем «Сеть — WAN» и выбираем свое подключение к интернету

Tenda

У маршрутизаторов Tenda данная конфигурация расположена в «Системных настройках — WAN»

Mercusys

Чтобы найти MTU в панели Mercusys, надо открыть меню «Расширенные настройки» и пройти в пункт «WAN»

Здесь даже отдельно привлечено внимание к тому, что без надобности менять значение по умолчанию в 1500 не нужно

Netis

В Netis жмем на кнопку «Advanced»

Далее открываем меню «Сеть — WAN» и далее на кнопку «Расширенные»

Upvel

Установка значения MTU на роутерах Upvel производится в рубрике «Интерфейс WAN»

Linux

ip address

В более современных системах используется утилита для работы с сетевыми интерфейсами — ip address. Вводим команду:

В полученном результате находим нужный сетевой интерфейс и строчку на подобие:

eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

* то, что мы ищем — mtu 1500.

ifconfig

В более ранних системах или с установленным ifconfig вводим:

* где eth0 — сетевой адаптер, для которого хотим узнать MTU.

В полученном результате находим что-то на вроде:

eth0: flags=4163 mtu 1500

* где mtu 1500 — наше значение.

Do not Fragment и Destination Unreachable, Fragmentation Needed

Пакеты могут перемещаться по сетям произвольным образом и невозможно заранее просчитать все маршруты и максимальный размер пакетов для каждого подключения. В RFC 1191 прописана методология определения размера MTU. Процесс, посредством которого хост для конкретного подключения может обнаруживать меньший размер MTU, чем поддерживает его собственный сетевой интерфейс. Ключевыми являются два компонента: бит “Не фрагментировать” (Do not Fragment (DF)) заголовка IP и субкод сообщения ICMP-протокола Destination Unreachable, Fragmentation Needed.

Установка бита DF в IP-пакете не позволяет маршрутизатору выполнять фрагментацию, когда он обнаруживает MTU меньше, чем размер пакета. Вместо этого пакет отбрасывается и по ICMP отправителю приходит сообщение о необходимости фрагментации пакетов. По сути, маршрутизатор указывает, что для отправки далее ему необходимо разбить пакет на части, но флаг Don’t Fragment (DF) не позволяет это сделать. RFC 1191 расширяет ICMP-сообщение, запрашивающее фрагментацию, с включением размера MTU для текущего подключения.

Теперь, когда был обнаружен максимальный размер пакета для подключения, хост может кэшировать это значение и формировать последующие соответствующего размера. Обратите внимание, что обнаружение максимального размера пакетов для конкретного подключения является непрерывным процессом. В случае использования динамической маршрутизации и перестроении маршрута между отправителем и получателем хост периодически продолжает попытки установить флаг DF для обнаружения дальнейшего уменьшения размера пакетов. RFC 1191 также позволяет периодически тестировать возможность увеличения максимального размера пакетов для каждого маршрута, иногда пытаясь передать пакет больше, чем кешированный. Если пакет передается успешно, то значение предельно допустимого размера пакета увеличивается.

Отмена конфигурации

Что делать, когда вы проставили неправильное значение? Если настройки выставлены некорректно, использование интернета будет сопровождаться еще большими сбоями и торможениями.

Чтобы сбросить внесенные изменения, зайдите в настройки маршрутизатора и снова измените mtu вручную. Учитывайте оптимально значение в зависимости от используемого протокола передачи данных на вашем ПК:

  • Для протокола PPPoE нормальное значение будет равно 1420;
  • Dynamic/Static IP – 1500;
  • L2TP -1460.

Помните! Число mtu не должно быть больше оптимального значения.

Более 90% пользовательский компьютеров используют Dynamic/Static IP. Советуем узнать точный вид протокола, в настройках роутера выполните следующие действия:

  1. Кликните на вкладку «Быстрая настройка»;
  2. Затем на «Автоматическое определение типа подключения» и «Далее»;

Рис. 7 – определение типа используемого подключения

  1. Дождитесь пока система самостоятельно выберет правильный вариант;
  2. Посмотрите, какой тип соединения был обнаружен и в настройках проставьте оптимальное значение, исходя из указанных в предыдущем списке цифр.

После завершения настройки перезагрузите компьютер и его подключение к глобальной сети. Если проблемы с Интернетом не прекратились, свяжитесь с провайдером для получения индивидуальной консультации. Неполадка может возникать и на стороне поставщика услуг связи.

Как сменить MTU через реестр

Для тех, кто не любит командную строку, есть PowerShell и реестр. В реестре Windows есть ветка:

Класс содержит информацию, о всех ваших сетевых картах, а именно драйверах, их версиях и GUID самой карты. GUID потребуется для определения сетевой карты в другой ветке реестра, но не переживайте я покажу более быстрый метод определения и сопоставления GUID и сетевой карты через PowerShell. На что в данном разделе нужно обратить внимание:

  • Папки 0000, 0001 и так далее — это папки перечисляющие ваши сетевые интерфейсы в Windows, тут вам нужно будет найти нужный по параметрам указанными ниже
  • DriverDesc — Описание драйвера, по сути вы увидите тут производителя вашей сетевой карты, оно поможет вам определить правильный адаптер
  • NetCfgInstanceId — это GUID карточки

Теперь зная GUID идем по пути:

Среди интерфейсов находим нужный, можно удостовериться, что у него правильный IP-адрес. Найдите ключ MTU, если его нет, то нужно создать REG_DWORD с нужным значением.

Теперь как не заморачиваться с поиском GUID сетевой карты. Откройте PowerShell ISE и запустите мой скрипт:

$aGUID_SET = @(Get-ItemProperty «HKLM:\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\*» | select -ExpandProperty pschildname)

Get-ItemProperty «HKLM:\SYSTEM\CurrentControlSet\Control\Class\\*» -exclude «Properties» | Where-Object | ForEach-Object «» $_.DriverDesc $_.NetCfgInstanceId >

Или просто если нужно вывести все GUID из нужной ветки:

Я страдаю от действительно странной проблемы, когда я случайно получаю ошибки «Соединение с сервером с ошибкой» при попытке доступа к веб-страницам (HTTP-ошибка 12031 в соответствии с инструментом диагностики сети Windows) — это происходит независимо от того, веб-страница, к которой я пытаюсь получить доступ, находится во внешнем Интернете или даже если это локальный экземпляр Apache, запущенный на localhost. Он затрагивает все компьютеры нашей локальной сети (Ethernet, а не беспроводные), все из которых работают под управлением Windows XP.

Мне было предложено, что это может быть связано с MTU, используемым для сетевого трафика. Если я сделаю Тест Ping , чтобы узнать самый большой пакет, который может пройти через нефрагментированный, я могу выполнить ping localhost с помощью пакет из 1492 байтов (+28 байт для заголовка?), и я могу ping наш маршрутизатор с пакетом из 1462 байт (что составляет 1490 байт при включении 28-байтового заголовка). Если я попытаюсь пинговать что-то снаружи, как Google, я не могу получить ничего больше, чем 1430 (что составляет 1458 с заголовком).

Я попытался выполнить различные команды инструкций по обновлению реестра Windows XP с помощью этого параметра MTU, обновив HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\\MTU . Я не испробовал никаких альтернативных значений: наиболее очевидное правильное значение кажется 1490, но я также пробовал 1462, 1458, 1430 и т. Д. И т. Д. Когда я перезагружаю компьютер, чтобы изменения вступили в силу, это кажется работать в течение нескольких минут (трудно сказать наверняка, поскольку он всегда случайный, а не последовательный), но он никогда не длится долго.

Изменение MTU в маршрутизаторе

Пользователи маршрутизаторов могут самостоятельно изменять все настройки соединения и работы wi-fi в глобальной сети. Для этого зайдите в меню конфигурации. Откройте любой установленный на ПК браузер и в его адресной строке введите локальный IP адрес 192.168.0.1, нажмите Ввод.

Если окно авторизации не появилось, в строку следует ввести адрес 192.168.1.1

В открывшемся диалоговом окне появится форма для введения логина и пароля администратора ПК. В обоих полях пропишите слово admin или другие данные для входа в сеть (их можно прочитать в инструкции к роутеру или спросить у провайдера). Дождитесь авторизации.

Окно настроек каждой модели маршрутизатора может иметь внешнее отличие, однако, структура полей в основном одинаковая. Для начала следует определиться с конечной величиной mtu. Возьмите результат, полученный в процессе тестирования. В нашем случае это 1458 бит и прибавьте еще 28 байт. Дополнительные байты – это место для заголовков пакета и запроса. В результате получаем 1458+28 = 1486 байт для mtu.

Для роутеров TP-Link

Чтобы изменить mtu, кликните на пункт меню «Сеть». Затем в правой части окна найдите поле mtu и пропишите необходимое значение, как указано на рисунке:

Рис. 5 – изменение значения для TP-Link

Рейтинг
( 1 оценка, среднее 4 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]