что такое mtu 1500
Что такое MTU и как установить оптимальный размер пакета в роутере?
Всем привет! Начнем, пожалуй, с вопроса – а что же такое MTU? MTU (от английского Maximum transmission unit) – это максимальный объем в пакете, который может передавать в той или иной сетевой среде. Как вы знаете, все данные передаются определенными пакетами – будь это интернет, Wi-Fi или локальная сеть дома. Все как на почте – почтальон не может переносить больше определенного веса.
Конечно, тут идут и некоторые ограничения. Например, в PPPoE обычно используется 1492 байта. При Ethernet подключении 1500 байта, а в беспроводной сети MTU равен 2304. Если же сетевому устройству нужно передать куда больше информации, то все делится как раз на эти MTU блоки.
Размер MTU зачастую определяется самим отправляющим устройством. MTU в настройках роутера также задается по умолчанию значением заданным разработчиками. Если говорить проще, то происходит следующее:
Также нужно знать, что в размер MTU входит:
К чему может привести неправильное значение MTU? Если на роутере, который чаще всего является шлюзом между интернетом и локальной сетью, выставлено неправильное значение, то могут наблюдаться проблемы со связью и интернетом. Например, нельзя зайти на какой-то сайт, некоторые службы в локальной сети перестают работать. Но само значение можно выставить вручную в настройках маршрутизатора.
Также вы можете встретить параметр MRU (maximum receive unit) – это максимальный размер пакета, который может принять устройство. Все по аналогии с MTU. Далее я расскажу, как узнать оптимальный размер MTU в вашей сети и как установить это значение в роутере.
ВНИМАНИЕ! Это нужно делать только в том случае, если у вас наблюдаются проблемы с интернетом, сетью или какими-то сетевыми службами. Если у вас все в порядке, то лучше ничего не делать, так как дальнейшие действия могут привести к ухудшению связи.
Определение идеального MTU
Способ достаточно простой – мы будем использовать встроенную утилиту в Windows «ping» с помощью командной строки. Нажмите на клавиши «Win» (находится в нижнем ряду между «Ctrl» и «Alt») и английскую «R».
В окошке введите команду «cmd» и нажмите «ОК». Командную строку также можно запустить через «Пуск», введя в поисковую строку эти три буквы.
Для начала давайте узнаем, какой MTU у нас стоит по умолчанию. Для этого вводим команду:
netsh interface ipv4 show subinterfaces
Я подключен по Wi-Fi, поэтому у меня стоит стандартное значение 1500. Если же вы подключены к кабелю провайдера напрямую, то эта команда может вам помочь.
Далее мы будем использовать стандартную команду ping с определенными параметрами. Наша задача взять за основу какое-то определенное значение MTU и увеличивать его до тех пор, пока система не сообщит нам, что нам нужно установить параметр фрагментации или разбиения пакета.
Если говорить проще, то мы будем увеличивать пакет до тех пор, пока он проходит по нашему соединению в интернете. Для примера мы будем пинговать всем известный «google.com», но вы можете взять любой другой сайт:
В итоге мы видим, что пакеты с размером в 1440 байтов спокойно отправляются в сеть. Поэтому мы увеличим размер MTU на 1. Немного о команде: значение «-f» – запрещает фрагментировать пакет – это нужно для наших тестов. «-l» (маленькая английская буква «L») – задает размер пакета.
Теперь увеличиваем его на один. Чтобы не прописывать команду постоянно, нажмите на клавиатуре на стрелку вверх, сотрите последнюю цифру и увеличьте её на один:
Как видите этот пакет также свободно проходит. В общем проделываем эту процедуру до тех пор, пока вы сами не найдете идеальный параметр для вашей среды. В самом конце вы должны увидеть сообщение:
«Требуется фрагментация пакета, но установлен запрещающий флаг»
В моем случае это 1472, но у вас может быть совершенно другой параметр, так что нужно проводить свои тесты.
Но это не окончательное значение MTU – это мы нашли только MSS. Поэтому к нему нам нужно прибавить IP и ICMP заголовки. Для этого просто прибавляем ещё 28 байта:
Теперь данное значение можно установить в вашем домашнем роутере.
Установка MTU в роутере
Для начала нам нужно зайти в настройки роутера – для этого нужно ввести IP или DNS адрес в адресную строку любого браузера. Можете попробовать популярные адреса:
Адрес можно подсмотреть на этикетке под корпусом. Или ввести в консоль команду:
IP маршрутизатора будет в строке 192.168.1.1.
Далее инструкции могут отличаться в зависимости от модели роутера.
Zyxel Keenetic
«Проводной» – «Параметры IP и DNS» (или «Аутентификация у провайдера (PPPoE / PPTP / L2TP)»)
Переходим в раздел «Интернета» – далее на вкладке «Подключение» выбираем активный коннект к интернету.
Что такое MTU
На сегодняшний день очень многие пользователи Интернета используют VPN-сервисы. Кто-то использует VPN для получения доступа к заблокированным сайтам, кто-то просто обходит ограничения по географическому положению. Бывает, что использование VPN может быть определено с помощью анализа TCP-соединения на основе размера MTU. Можно ли избежать этой ситуации? Сразу скажем: с VPN от Whoer.net — можно!
Мы рекомендуем использовать VPN от Whoer.net, так как в нашем VPN-клиенте изменение MTU возможно с помощью одного клика. Помимо этого в нашем клиенте ВПН есть и другие плюсы, такие как одновременный доступ с нескольких устройств, надежные каналы связи и отсутствие ограничений по скорости.
Начнём с технических деталей. Как же может быть определено использование VPN?
Значение параметра MTU
Maximum Transmission Unit или сокращено MTU — это максимальный объем передаваемой информации, отправляемой одним пакетом данных. Параметр MTU присваивается сетевым интерфейсам. Стандартным значением MTU для проводного соединения является число 1500. Параметр MTU в значении 1500 обозначает, что объём данных, передаваемый через подключение, не может превышать 1500 байт.
В большинстве случаев значение параметра MTU для VPN равняется 1450. Но, например, для реализации OpenVPN в зависимости от протокола подключения, алгоритма шифрования трафика, алгоритма проверки целостности, а также использования сжатия, MTU устанавливается до нестандартного размера, на основе которого можно получить эти параметры, а также определить и сам факт использования OpenVPN.
Как избежать обнаружения VPN
Для этого необходимо вручную поменять размер MTU. Если вы не желаете, чтобы вас деанонимизировали методом обнаружения нестандартного MTU, можно вручную на сервере выставить «mssfix 0», а на клиенте — «mssfix 0», что установит параметр MTU в значение 1500. Однако, при использовании UDP мы рекомендуем установить «mssfix 1330» в конфигурации клиента.
Как максимальной единицей передачи информации в интернете стали 1500 байт
Ethernet повсюду, и десятки тысяч производителей выпускают оборудование с его поддержкой. Однако почти у всех этих устройств есть одно общее число – MTU:
MTU (Maximum Transmission Unit) [максимальная единица передачи] определяет максимальный размер отдельного пакета данных. В общем случае, когда вы обмениваетесь сообщениями с устройствами вашей LAN, MTU будет иметь размер порядка 1500 байт, а весь интернет почти целиком тоже работает с размером 1500 Б. Однако это не означает, что эти технологии связи не могут передавать пакетов большего размера.
К примеру, у 802.11 (шире известного как WiFi) MTU равен 2304 б, а если ваша сеть использует FDDI, тогда ваш MTU равен 4352 б. У самого Ethernet есть концепция «гигантских кадров», когда MTU можно назначить размер до 9000 б (при поддержке такого режима NIC, коммутаторами и роутерами).
Однако в интернете это не особенно нужно. Поскольку основные магистрали интернета в основном состоят из соединений Ethernet, де-факто неофициальный максимальный размер пакета выставлен в 1500 Б, чтобы избежать фрагментации пакетов на других устройствах.
Само по себе число 1500 странное – можно было бы ожидать, что константы в мире компьютеров будут основаны на степенях двойки, например. Так откуда взялись 1500 Б и почему мы их до сих пор используем?
Волшебное число
Первый большой прорыв Ethernet в мир произошёл в форме стандартов 10BASE-2 (тонкий) и 10BASE-5 (толстый), числа в которых говорят о том, сколько сотен метров может покрывать отдельный сегмент сети.
Поскольку в то время конкурирующих протоколов было множество, а у железа имелись свои ограничения, создатель формата признаёт, что требования к памяти буфера пакетов сыграли свою роль в появлении волшебного числа 1500:
Оглядываясь назад, становится ясно, что максимум большего размера, возможно, был бы лучшим решением, однако если бы мы увеличили стоимость NIC (сетевых контроллеров) на ранних этапах, это не дало бы Ethernet так широко распространиться.
Однако это не вся история. В работе «Ethernet: распределённая коммутация пакетов в локальных компьютерных сетях» 1980 года приведён один из ранних анализов эффективности использования в сетях пакетов большого размера. В то время это было особенно важно для сетей Ethernet, поскольку те либо могли соединять все системы одним коаксиальным кабелем, либо состоять из хабов, способных в один момент времени отправлять по одному пакету для всех узлов одного сегмента.
Нужно было выбрать число, которое давало бы не слишком высокие задержки при передаче сообщений в сегментах (иногда довольно загруженных), и при этом не слишком бы увеличивало число пакетов.
Судя по всему, инженеры в то время выбрали число 1500 Б (около 12000 бит) как наиболее «безопасный» вариант.
С тех пор появлялись и исчезали различные другие системы передачи сообщений, однако среди них самое низкое значение MTU было у Ethernet с его 1500 Б. Превышать минимальное значение MTU в сети – значит, либо вызывать фрагментацию пакетов, либо заниматься PMTUD [поиск максимального размера пакета для выбранного пути]. У обоих вариантов были свои особые проблемы. Даже если иногда крупные производители ОС опускали значение MTU ещё ниже.
Фактор эффективности
Теперь нам известно, что MTU в интернете ограничен размером в 1500 Б по большей части из-за старых показателей задержек и ограничений оборудования. Насколько сильно это сказывается на эффективности интернета?
Если посмотреть на данные с крупной точки обмена интернет-трафиком AMS-IX, мы увидим, что не менее 20% передаваемых пакетов имеют максимальный размер. Можно также посмотреть на общий трафик LAN:
Если скомбинировать оба графика, получится что-то вроде следующего (оценка трафика для каждого диапазона размеров пакетов):
Или, если посмотреть на трафик всех этих заголовков и прочей служебной информации, мы получим тот же график с другим масштабом:
Довольно большая часть пропускной способности тратится на заголовки для пакетов из самого крупного класса размеров. Поскольку на пике трафика наибольшие накладные расходы составляют 246 Гб/с, можно предположить, что если бы мы все перешли на «гигантские кадры», когда такая возможность ещё существовала, эти накладные расходы составляли бы всего около 41 Гб/с.
Но, думаю, сегодня для крупнейшей части интернета этот поезд уже ушёл. И хотя некоторые провайдеры работают с MTU равным 9000, большая часть его не поддерживает, а попытки изменить что-то глобально в интернете раз от раза оказывались чрезвычайно трудным делом.
Maximum Transmission Unit (MTU). Мифы и рифы
Maximum transmission unit (MTU) это максимальный объём данных, который может быть передан протоколом за одну итерацию. К примеру, Ethernet MTU равняется 1500, что означает, что максимальный объём данных, переносимый Ethernet фреймом не может превышать 1500 байт (без учёта Ethernet заголовка и FCS — Рис. 1).
Рис. 1
Давайте пробежимся с MTU по уровням OSI:
Layer 2.
Ethernet MTU является частным случаем Hardware MTU. Определение Hardware MTU вытекает из общего определения:
Hardware MTU — это максимальный размер пакета, который может быть передан интерфейсом за одну итерацию (по крайней мере значение указано в спецификациях устройства – по факту некоторые чипсеты поддерживают передачу больших размеров пакетов, чем заявлено). Поэтому если взглянуть на рисунок 1 в отрыве от Ethernet, то получим следующее:
Рис. 2
Замечание: Однако и тут не обойтись без оговорки. Как вы видите, HW MTU (Ethernet MTU в частности) не включает заголовок L2 в себя. Однако это справедливо для IOS и IOS XE, но для IOS XR и JunOS заголовок L2 включен в размер HW MTU – Рис. 3. Эта особенность может привезти к проблемам при установке OSPF neighborship между платформами под управлением IOS(XE) и IOS XR (OSPF требует совпадения MTU в Hello пакетах). Поэтому, при конфигурации MTU для Ethernet интерфейсов, на стороне IOS XR MTU должно быть на 14 байт больше (12 байт src mac+dst mac и 2 байт EtherType). К примеру, MTU в 1500 в Cisco IOS эквивалентно MTU в 1514 для IOS XR.
Рис. 3
Конфигурация и проверка.
Для того что бы изменить MTU на маршрутизаторах под управлением Cisco IOS используется команда интерфейс уровня:
Layer3.
IP MTU определяет максимальный размер пакета с IP заголовком, который может быть передан на данном интерфейсе не прибегая к фрагментации. Зависимость между IP MTU и HW MTU описывается следующей формулой:
IP MTU ≤ HW MTU
Соответственно, когда на интерфейс попадает пакет, превосходящий установленное IP MTU, пакет либо подвергается фрагментации, либо, в случае установленного флага DF (DO NOT Fragment) в IP заголовке, дискардится, а устройство может сгенерировать ICMP сообщение Fragmentation Needed, используемое в механизме path MTU discovery (о нём позже), и отправить его назад отправителю исходного пакета.
Конфигурация и проверка.
Для изменения IP MTU на маршрутизаторах под управлением Cisco IOS используется команда интерфейс уровня:
Вот те раз. Команда ip mtu не видна в show run. Да тут есть интересный нюанс – если ip mtu совпадает с hw mtu, то в выводе show run будет отображаться только hw mtu. Если значения разные то отображаются оба.
Layer 4.
TCP Maximum Segment Size (MSS) определяет максимальный размер TCP сегмента (без TCP заголовка!), который может быть использован (отправлен/принят) в ходе TCP сессии. Анонс (именно анонс, не хендшейк) размеров TCP MSS происходит во время установки TCP сессии – принимающая сторона анонсирует стороне отправляющей какой размер TCP сегмент она может принять. Соответственно размер TCP MSS может различаться в рамках одной TCP сессии в зависимости от направления.
Рис. 4
Сторона, производящая анонс, высчитывает значение TCP MSS для себя по следующей формуле:
TCM MSS = (IP MTU – [IPHDR + TCPHDR])
Конфигурация.
Тут у нас возможны два сценария – маршрутизатор является транзитным или участником TCP сессии.
1) Транзитное устройство:
Для предотвращения дропа пакетов промежуточным устройством в случае наличия линка с малым MTU, маршрутизатор будет прослушивать TCP SYN пакеты и подменять значения MSS анонсируемые конечным устройством. Что приведет к отправке пакетов меньшей величины конечным устройством и вуаля – проблема с дропами на линке с малым MTU упреждена.
2) Терминирующее устройство:
Здесь всё просто – маршрутизатор является участником TCP сессии и мы можем установить принудительно, размер MSS который он будет анонсировать.
Кажется всё? Нет, не всё. Вспоминаем про MPLS. Вспоминаем… Закончили вспоминать, переходим к рассмотрению.
Layer 2,5. MPLS.
Рис. 5
MPLS MTU определяет максимальный размер маркированного (кто знает как лучше переводиться Labeled прошу подсказать в комментах) IP пакета. В случае, если размер маркированного пакета превышает MPLS MTU, то пакет либо фрагментируется, либо, при наличии установленного в IP заголовка флага с DF bit, дропается (пока логика как и при превышении IP MTU), с возможной отправкой ICMP сообщения Fragmentation Needed.
Замечание: Вот тут дела обстоят немного по другому, по сравнению c IP MTU. В MPLS сети промежуточный узел может и не иметь маршрута к отправителю пакета, поэтому вместо того что бы слать ICMP сообщение отправителю напрямую, оно инкапсулируется с тем же стеком меток (label stack), что и исходный пакет, и отправляется по его же пути следования. Достигая Egress LSR (конечного MPLS маршрутизатора для данного LSP – за ним уже IP сеть без меток), который знает ip маршруты к узлу отправителя, ICMP сообщение Fragmentation Needed «разворачивается» им, инкапсулируется необходимыми заголовками и отправляется назад в MPLS сеть к отправителю оригинального пакета. Поведение аналогично с TTL Expired, да и в целом скорее относиться к теме MPLS, а не MTU. Поэтому кто не знаком с процессом — www.google.kg/?gws_rd=ssl#q=mpls+ttl+expired
Что здесь ещё интересного? MPLS MTU может быть больше HW MTU (поэтому на Рис. 3 HW MTU частично обозначено пунктиром). При этом IOS выдаст варнинг, но в большинстве случаев будет работать (зависит от чипсета интерфейса) и успешно пропускать по крайней мере baby-giant фреймы. А в иной раз можно получить дроп пакетов, повреждение данных, и сто лет без урожая.
Конфигурация и проверка.
Замечание: MPLS MTU отображается в running конфиге, также как и IP MTU — только в случае, если значение отличается от HW MTU. Но, в отличие от IP MTU, любое изменение HW MTU меняет значение MPLS MTU до значения HW MTU (IP MTU это действие не меняет).
MTU на коммутаторах Cisco.
На заметку администратору.
1) Для того, что бы найти минимальный MTU (забавное сочетание) на сети можно использовать расширенную команду ping, причём как c конечных станций/серверов так и с оборудования Cisco. Пропингуем с маршрутизатора R01 маршрутизатор R02 с выставленным df-bit, c начальным размером пакета в 1000 байт, конечным 1500 байт, и шагом 100 байт. Кол-во повторений 2.
Как видите, проходит только 6 ICMP пакетов размером 1000, 1100, 1200, 1300 байт
Начиная с 1400 байт и выше пакеты не проходят. Следовательно, минимальное MTU между двумя точками — 1300 и 1400, что можно уточнить ещё за несколько циклов, ужимая диапазон и умешьшая шаг.
На этом всё. Есть ещё в закромах старый драфт статьи по размерам фреймов и их эволюции, где описаны понятия Jumbo Frame, Baby-Giant Frame, встречающиеся в этой статье. Если посчитаете нужным, могу доработать и выложить и её.
Что такое MTU в настройках роутера
Когда постоянно происходят сбои при подключении к интернету, многие идут на решительные меры. Они меняют роутер, меняют провайдера. Одна из причин возможных неполадок – не корректно выставленное значение MTU. Давайте разберемся, что это такое и как его правильно выставить.
MTU в роутере что это
Значение MTU (Maximum Transmission Unit) указывает, какого максимального размера пакеты отправляет устройство. Измеряется в байтах. То есть, если на роутер пришел блок данных большего размера, то он его нарежет на несколько пакетов (фрагментирует). Эти пакеты будут идти по сети, и если встретится на их пути маршрутизатор, который посчитает их слишком большими, он тоже их нарежет. Когда они достигнут последнего маршрутизатора, он, в свою очередь, перед отправкой на компьютер получателя, будет из фрагментированных пакетов собирать в исходные.
Все эти манипуляции по нарезке и сборке пакетов трудоемки. Соответственно, желательно выставлять оптимальное значение MTU на роутере.
Так как данные в каждом пакете оборачиваются служебными заголовками, то чем более длинные пакеты используются, тем меньше затрат на заголовки. В связи с этим желательно выставлять максимальный размер MTU, при котором пакеты не будут нарезаться на последующих узлах сети.
Какой MTU поставить на роутере
Самый простой способ, это обратиться в службу поддержки провайдера (написать письмо, позвонить). Скорее всего, они подскажут актуальное значение. Но через некоторое время, провайдер может все переконфигурировать. Хотя это случается достаточно редко, но если вдруг начали возникать сбои, вполне вероятно, что следует уточнить правильность выставленного MTU.
Второй вариант, это найти оптимальный размер с помощью команды ping, отправляя пакеты, в которых установлено, что их нельзя фрагментировать. Пинговать следует удаленный ресурс, например, сайт или сервер провайдера.
Можно так же проверить наиболее посещаемые ресурсы в интернете: игровые сервера, сервера с которых смотрите фильмы, используемые IP телефоном.
В итоге, выполнив такую команду, мы определим, требуется ли фрагментация пакета для доставки его к получателю.
Запускаем командную строку (это классическое приложение Windows, найти его можно, например, в поиске набрав «Командная строка»). И выполняем команды.
Здесь значении данных 997 байт, размер пакета 997+28=1025 байт, пакет не может быть доставлен без фрагментации.
Здесь значении данных 996 байт, размер пакета 996+28=1024 байт, пакет доходит до получателя без фрагментации.
Таким образом, изменяя размер отправляемого блока данных, мы можем вычислить DMTU – максимальный размер блока данных, который доставляется без фрагментации. Например, если команда ping проходит без фрагментации со значением 996. При попытке отправить команду со значением 997 получаем ответ: «Требуется фрагментация пакета, но установлен запрещающий флаг». Тогда мы рассчитываем параметр DMTU следующим образом: 996 байт данных + 28 байт IP заголовка = 1024 байта. Максимальный размер блока данных, который не будет фрагментирован, составит 1024 байта. Это значение и следует задать на маршрутизаторе, как размер MTU.
Как поменять MTU на роутере
Подключаемся к маршрутизатору через интернет браузер. Выставляем новый размер MTU. Затем сохраняем настройки.
Например, при использовании TP-Link, заходим в пункт «Сеть», там подпункт «WAN». Не забываем нажать после этого кнопку «Сохранить».
После изменения значений, можно проверить, насколько изменилась скорость скачивания файлов большого размера из интернета.
Настройка MTU на компьютере
Для увеличения производительности, чтобы на маршрутизатор не приходили слишком большие пакеты, возможна настройка MTU на оборудовании. В частности, можно выставить размер MTU на персональном компьютере, требуется воспользоваться командной строкой, запущенной от имени администратора:
После данной установки на компьютере, с него будут отправляться пакеты, у которых максимальный размер на уровне IP будет 1024 байта, но на MAC уровне максимальный отправляемый блок данных будет размером 1038 байт (14 из них для заголовка MAC).
Большего размера пакеты не будут отправляться. То есть, если в настройках роутера рассчитан и правильно выставлен MTU 1024, то точно такой же MTU следует задать в настройках подключенного к нему компьютера.
Автоматическая настройка — PMTU discovery
Существуют режимы работы некоторых устройств, когда размер MTU уточняется во время подключения к удаленному серверу (PMTU discovery). Алгоритм такой же, как и тот, которым пользовались при настройке MTU на роутере. В начале работы устройство отправляет блоки данных разного размера, пытаясь определить максимальный размер пакета, который дойдет без фрагментации.
В этом алгоритме есть одна проблема, называемая «MTU Discovery Black Hole». Она возникает в случае, когда администраторы сетей, чтобы избежать возможных атак на их сервера, запрещая маршрутизаторам передачу ICMP, в частности которые используются при команде ping.
Так конечно не корректно действовать. Устройство, не получив ответа на запрос не может продолжить работать.