Значение mtu: Как максимальной единицей передачи информации в интернете стали 1500 байт / Хабр

Содержание

Как максимальной единицей передачи информации в интернете стали 1500 байт / Хабр

Ethernet повсюду, и десятки тысяч производителей выпускают оборудование с его поддержкой. Однако почти у всех этих устройств есть одно общее число – MTU:

$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP 
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff

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 используется команда интерфейс уровня:

R01(config)#interface gigabitEthernet 5/1 
R01(config-if)#mtu 1532
R01(config-if)#exit

Проверяем:

R01#show interfaces gigabitEthernet 5/1
GigabitEthernet5/1 is up, line protocol is up (connected)
  Hardware is C6k 1000Mb 802.
3, address is 0008.e3ff.fde0 (bia 0008.e3ff.fde0) Description: -- -- MTU 1532 bytes, BW 1000000 Kbit, DLY 10 usec, reliability 255/255, txload 82/255, rxload 20/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) Full-duplex, 1000Mb/s, media type is LH ..... OUTPUT OMITTED

И

R01#show run interface gigabitEthernet 5/1
interface GigabitEthernet 5/1
 description -- --
 no switchport
 mtu 1532
 ip address 192.168.1.1 255.255.255.0
end
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 используется команда интерфейс уровня:

R01(config)#interface gigabitEthernet 5/1 
R01(config-if)#ip mtu 1532
R01(config-if)#exit

Проверяем:

show interfaces gigabitEthernet 5/1
  GigabitEthernet 5/1is up, line protocol is up
  Internet address is 192.168.1.1/24
  Broadcast address is 255.255.255.255
  Address determined by non-volatile memory
  MTU is 1532 bytes
  Helper address is not set
  Directed broadcast forwarding is disabled
  Multicast reserved groups joined: 224.0.0.5 224.0.0.2
  Outgoing access list is not set
  Inbound  access list is not set
..... OUTPUT OMITTED

И

R01#show run interface gigabitEthernet 5/1
interface GigabitEthernet 5/1
 description -- --
 no switchport
 mtu 1532
 ip address 192.168.1.1 255.255.255.0
 no ip redirects
 no ip unreachables
 no ip proxy-arp
end

Вот те раз. Команда 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 упреждена.

R01(config)#interface gigabitEthernet 5/1 
R01(config-if)#ip tcp adjust-mss?
<500-1460>  Maximum segment size in bytes

2) Терминирующее устройство:

Здесь всё просто – маршрутизатор является участником TCP сессии и мы можем установить принудительно, размер MSS который он будет анонсировать.

R01(config)#ip tcp mss?
<0-10000>  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 фреймы. А в иной раз можно получить дроп пакетов, повреждение данных, и сто лет без урожая.

Конфигурация и проверка.
R01(config)#interface gigabitEthernet 5/1 
R01(config-if)#mpls mtu 1540
R01(config-if)#exit

Проверяем:

R01#show mpls interfaces gigabitEthernet 5/1 detail 
Interface gigabitEthernet 5/1:
        IP labeling enabled (ldp):
          Interface config
        LSP Tunnel labeling not enabled
        BGP labeling not enabled
        MPLS operational
        MTU = 1540

Замечание:

MPLS MTU отображается в running конфиге, также как и IP MTU — только в случае, если значение отличается от HW MTU. Но, в отличие от IP MTU, любое изменение HW MTU меняет значение MPLS MTU до значения HW MTU (IP MTU это действие не меняет).

MTU на коммутаторах Cisco.

Коммутаторы не поддерживают выставление MTU на каждом интерфейсе в отдельности (речь о switchport`ах и Vlan интерфейсах, для multilayer коммутаторов с routed портами применимы настройки аналогичные маршрутизаторам). Изменить текущие настройки MTU для портов коммутатора можно 3-мя спосабами, применимыми в зависимости от типа порта:


  • SW01(config)#system mtu 1600 — изменение L2 MTU на FastEthernet портах
  • SW01(config)#system mtu jumbo 1600 — изменение L2 MTU на GigabitEthernet и Ten GigabitEthernet портах
  • SW01(config)#system mtu routing 1600 — изменение L3 MTU на маршрутизируемых интерфейсах

Проверяем:

SW01#show system mtu

System MTU size is 1600 bytes
System Jumbo MTU size is 1600 bytes
Routing MTU size is 1600 bytes
На заметку администратору.

Так как основным методом проверки MTU и по сей день является команда PING, с выставленным df-bit и рамером пакета, приведу в заключение пару полезных триков:


1) Для того, что бы найти минимальный MTU (забавное сочетание) на сети можно использовать расширенную команду ping, причём как c конечных станций/серверов так и с оборудования Cisco. Пропингуем с маршрутизатора R01 маршрутизатор R02 с выставленным df-bit, c начальным размером пакета в 1000 байт, конечным 1500 байт, и шагом 100 байт. Кол-во повторений 2.
R01#ping
Protocol [ip]:
Target IP address: 192.168.12.2
Repeat count [5]: 2
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 192.168.12.1
Type of service [0]:
Set DF bit in IP header? [no]: y
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]: y
Sweep min size [36]: 1000
Sweep max size [18024]: 1500
Sweep interval [1]: 100
Type escape sequence to abort.
Sending 12, [1000..1500]-byte ICMP Echos to 192.168.12.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.12.1
Packet sent with the DF bit set
!!!!..!!!!..
Success rate is 66 percent (8/12), round-trip min/avg/max = 4/24/56 ms

Как видите, проходит только 6 ICMP пакетов размером 1000, 1100, 1200, 1300 байт
Начиная с 1400 байт и выше пакеты не проходят. Следовательно, минимальное MTU между двумя точками — 1300 и 1400, что можно уточнить ещё за несколько циклов, ужимая диапазон и умешьшая шаг.

2) Частая проблема возникающая при взаимодействии сетевых и системных администраторов — с конечного устройства проходят пакеты одного размера, с ближнего к нему сетевого устройства большего размера. Причина лежит в том, что операционные системы (в частности Windows), когда вы задаёте размер пакета команде ping, воспринимают это значение как чистый paiload — без заголовков ICMP и IP, т.е. при указании ping 192.168.1.2 -l 100 система будет генерировать пакеты величиной 128 байт, а не 100 (8 байт ICMP заголовок и 20 байт IP). При указании же размера ICMP пакета на сетевом оборудовании Cisco указываемый вами размер включает уже оба заголовка. Поэтому на дефолтном Ethernet линке пинги с Windows OS (к примеру) покажут 1472 байт максимальный размер пакета проходящий без фрагментации, а Cisco 1500 байт. JunOS, кстати ведет себя также как и операционные системы (не включает заголовки)

На этом всё. Есть ещё в закромах старый драфт статьи по размерам фреймов и их эволюции, где описаны понятия Jumbo Frame, Baby-Giant Frame, встречающиеся в этой статье. Если посчитаете нужным, могу доработать и выложить и её.

Как узнать себе значение mtu. Подробное описание значения параметра MTU

Здравсвуйте, дорогие посетители! Те, кто часто читает сайт, уже наверное заметили, что я очень часто и много пишу о решении разных проблем с маршрутизаторами, беспроводными сетями и тому подобным. Просто эта тема сейчас очень актуальная и очень много разных вопросов возникает при самостоятельной настройке Wi-Fi. У меня на этот счет даже есть одна интересная идея, о которой я пока не расскажу, даже не спрашивайте:).

Я всегда анализирую комментарии, которые посетители оставляют к разным статьям и стараюсь понять какие проблемы и ошибки возникают при настройке Wi-Fi роутеров. Бывает, что посетители делятся разными решениями определенной проблемы. За что им большое спасибо! Информация, которой вы поделитесь, может многим помочь.

Есть одна популярная проблема, когда через Wi-Fi роутер не открываются некоторые сайт, или открываются, но очень медленно. Так же видео в интернете может воспроизводиться медленно, с ошибками, или вообще не воспроизводиться. Например на YouTube. На мобильных телефонах, или планшетах может не работать интернет в разных программах (очень часто это приложения Одноклассники, YouTube, ВКонтакте) . Но сайты в браузере открываются.

Я уже писал о подобных проблема в статье . В ней я советовал просто сменить DNS в настройках роутера. Действительно, из-за DNS так же могут возникать вышеперечисленные проблемы.

Но как оказалось, смена DNS не всегда помогает. И к статье (ссылка на которую выше) стали появляться комментарии, в которых писали, что эти проблемы в некоторых случаях решаются изменением параметра MTU. Особое спасибо Ивану, его комментарии Вы можете почитать в статье ссылку на которую я оставил выше.

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

Что такое MTU и зачем его изменять?

Я сразу решил погуглить:). Честно говоря, я не сильный специалист по этим тонкостям. В сети я нашел статьи, которые просто переполнены разными терминами, и сложными советами по MTU. Человек, у которого просто возникли проблемы с открытием сайтов и т. п. только залезет в эти дебри и ничего полезного там не найдет.

Я постараюсь все это дело объяснить простым языком.

MTU – это максимальный размер блока данных, который может быть передан протоколом без деления этого блока (если Вам это ни о чем не говорит, то ничего страшного 🙂 оно Вам и не нужно) .

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

Какое значение MTU указать в настройках маршрутизатора?

Для Dynamic IP и Static IP – скорее всего нужно оставить 1500 (это по умолчанию)

MTU для L2TP 1460

PPPoE 1420

Для Интертелеком, в настройках я устанавливал 1476 (это значение подходит для всех 3G сетей, если я не ошибаюсь) .

Самый лучший способ, это позвонить в поддержку провайдера и спросить, какой MTU использовать. Даже при тех значениях, которые я написал выше, могут быть проблемы. Лучше всего спросить у провайдера!

Если Вы уже узнали, какое значение указывать в параметрах маршрутизатора, то сейчас покажу, как и где сменить MTU.

Прежде всего нам нужно зайти в настройки роутера. Просто откройте в браузере адрес 192.168.1.1 , или 192.168.0.1 . Логин и пароль по умолчанию – admin и admin (адрес, логин и пароль вы можете посмотреть снизу роутера) . Если не можете попасть в настройки, то смотрите статью.

Роутеры TP-Link

В роутерах TP-Link перейдите на вкладку Network WAN и укажите нужное значение в поле MTU Size (кстати MTU указывается в байтах) .

Сохраните настройки и перезагрузите маршрутизатор.

В роутерах Asus

Перейдите на вкладку “Дополнительные настройки” “WAN” , или “Интернет” .

Кстати в Asus есть свои особенности, о которых я и сам не знал. Там поле MTU появляется только при выборе некоторых подключений.

Если нет этого поля, то MTU нужно указывать в поле . В это поле пишем такую строчку MTU 1460 MRU 1460 (не забываем изменять значение) .

Если у Вас другой роутер, например D-Link, или ZyXEL, то ищите параметр MTU на вкладке, где вы задавали параметры для подключения к интернету. Обычно это вкладка WAN.

Если мои советы Вам не помогут решить проблемы с доступом в интернет, то сообщите об этом в комментария. И не забудьте написать о том, каким способом Вы все решили. Ну и вопросы тоже задавайте, куда же без них:).

Всем добра и стабильной работы WiFi!

Ещё на сайте:

Что такое MTU? Как изменить MTU в настройках роутера? [проблемы с загрузкой некоторых сайтов, воспроизведением видео] обновлено: Февраль 7, 2018 автором: admin

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

MTU в роутере что это

Значение MTU (Maximum Transmission Unit) указывает, какого максимального размера пакеты отправляет устройство . Измеряется в байтах. То есть, если на роутер пришел блок данных большего размера, то он его нарежет на несколько пакетов (фрагментирует). Эти пакеты будут идти по сети, и если встретится на их пути маршрутизатор, который посчитает их слишком большими, он тоже их нарежет. Когда они достигнут последнего маршрутизатора, он, в свою очередь, перед отправкой на компьютер получателя, будет из фрагментированных пакетов собирать в исходные.

Все эти манипуляции по нарезке и сборке пакетов трудоемки. Соответственно, желательно выставлять оптимальное значение MTU на роутере.

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

Какой MTU поставить на роутере

Самый простой способ, это обратиться в службу поддержки провайдера (написать письмо, позвонить). Скорее всего, они подскажут актуальное значение. Но через некоторое время, провайдер может все переконфигурировать. Хотя это случается достаточно редко, но если вдруг начали возникать сбои, вполне вероятно, что следует уточнить правильность выставленного MTU.

Второй вариант, это найти оптимальный размер с помощью команды ping , отправляя пакеты, в которых установлено, что их нельзя фрагментировать. Пинговать следует удаленный ресурс, например, сайт или сервер провайдера.

Можно так же проверить наиболее посещаемые ресурсы в интернете: игровые сервера, сервера с которых смотрите фильмы, используемые IP телефоном.

Пример команды «ping -f -l 1472 yandex.ru», здесь:

  • 1472 – это количество отправляемых байт данных. Следует учитывать, что помимо данных, будет отправлен еще и заголовок, который составляет 28 байт (IP заголовок 20 + ICMP заголовок 8 = 28). Следовательно, в итоге размер пакета будет составлять 1472+28=1500 (байт), стандартный размер максимального стандартного Ethernet пакета. Есть правда пакеты большего размера, называемые jumbo-кадрами.
  • yandex.ru – это доменное имя сервера, на который будем отправлять команды, его можно поменять на IP адрес сервера провайдера. Можно поэкспериментировать с разными IP-адресами.

В итоге, выполнив такую команду, мы определим, требуется ли фрагментация пакета для доставки его к получателю.

Для примера, допустим, что поставщик услуг не пропускает пакеты, размер которых превышает 1024 байта. Тогда настройка выглядела бы следующим образом.

Запускаем командную строку (это классическое приложение 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.

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

Для точного определения MTU нужно указать значение по умолчанию — 1500.

Существует огромное количество утилит, которые позволяют это сделать да и не только это. Наиболее распространенные — Internet Tweak 2001 http://www.magellass.com/ , NetBoost 99 http://www.download.ru/ , iSpeed http://www.hms.com/ , MTUSpeed http://www.mjs.u-net.com/ , BlazeNET http://www.indeavour.com/html_about_blazenet.htm . Если же у вас нет. возможности запустить одну из вышеперечисленных программ, сделайте это вручную — с помощью реестра Windows.

В разделе

HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\Class \NetTrans\OOOx.

Если там есть параметр MaxMTU — удалите его. Далее, в Панели управления запустите утилиту Сеть, на вкладке Конфигурация выберите элемент списка Контроллер удаленного доступа и нажмите кнопку Свойства. Откроется диалоговое окно Свойства: Контроллер удаленного доступа. На вкладке Дополнительно в группе параметров Свойство выберите элемент списка Размер пакета IP, а в группе параметров Значение — большой (рис. 8.1).

Рис. 8.1. Диалоговое окно Свойства: Контроллер удаленного доступа

Тем самым MTU становится равным 1500. Для того чтобы изменения вступили в силу, перезагрузите компьютер.

Чтобы проверить, будут ли фрагментироваться пакеты, нужно установить соединение с Интернетом. Для этого можно использовать программу Ping, входящую в состав любой операционной системы семейства Windows.

В ней. нужно задать такие параметры:

ping -f -1 1500 ххх.ххх.ххх.ххх

где ххх. ххх. ххх. ххх — IP-адрес тестируемого сервера.

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

Для этого воспользуйтесь командой Traceroute. Нажмите кнопку Пуск в левом нижнем углу экрана, выберите команду Выполнить и в появившемся окне наберите и URL веб-сайта. Появится окно приложения MS DOS. Например, введя любой адрес, через некоторое время появится его IP в квадратных скобках. Теперь воспользуйтесь программой Ping. Запустите ее с такими параметрами

ping -f -I 1500 ххх.ххх.ххх.ххх

где ххх.ххх.ххх.ххх — IP-адрес тестируемого сервера. Наиболее благоприятное время для проверки MTU для коммутируемого соединения — ночь. Тогда нагрузка на линии связи наименьшая.

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

Возможно, ваш интернет-провайдер использует меньшее значение. Например, 1524, 1152, 1024, 1006, 576, 568, 560, 552, 548, 536, 528, 520, 512.

Этот эксперимент подтвердил нашу догадку — интернет-провайдер может использовать любой размер пакета, вплоть до 1500. Если вам еще не надоело экспериментировать — попробуйте загрузить файл размером в 500 Кбайт с одного и того же сервера при различных значениях MTU.

Скорее всего, вы поймете, что скорость больше при использовании больших

пакетов. Повторюсь, что это только, если ваш провайдер может принимать их, не фрагментируя. Также, если «пинговать» многие ваши любимые сайты нефрагментируемым пакетом, вы увидите, что почти все нормально принимают пакеты размером 1500.

И что? Вы можете спросить: «Где же тот самый рекомендуемый MTU, равный 576?» А его, как оказывается на деле, почти нигде и нет. Поэтому лучшим советом может стать — не следовать чужим рекомендациям, проводить собственные исследования, которые могут дать реальные результаты.

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

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

PMTU система сама найдет для ваших пакетов такой путь в Сети, при котором они не будут фрагментироваться.

Кстати, если вы обнаружите, что у провайдера установлено MTU=512 и менее, то есть смысл подумать о его смене — слишком много шлака будет передаваться вместе с вашими данными.

Добрый день. Сегодня не совсем обычная статья, так как она не является повседневной и не подойдет для любого пользователя. Более того, я крайне не рекомендую лезть в данные параметры людям, которые слабо в техническом плане. Речь идет о MTU, что в википедии описано как «максимальный размер полезного блока данных одного пакета (англ. payload), который может быть передан протоколом без фрагментации.» То есть это размер полезной информации в пакете, который компьютер формирует для отправки в сеть.

Последовательность действий

Так вот, если вы попали на данную статью, я думаю вы уже решили что нужно попробовать его подкрутить. Теоретически, оптимизация данного параметра может помочь с решением проблем некорректной работы некоторых сайтов и сервисов, но опять же теоретически. Я же попробую объяснить, как это сделать средствами операционной системы.

  1. Итак, для начала открываем командную строку от имени администратора и вводим следующую команду: ping -f -l 1472 ххх.ххх.ххх.ххх, где, 1472=1500(стандартное значение для Ethernet) — 28 (значение заголовка, которое не учитывается) ххх.ххх.ххх.ххх — IP-адрес какого-либо сервера вашего провайдера. Я использовал основной шлюз в сети провайдера. И смотрим ответ, если ответ получен без потери пакетов, то увеличиваем значение, если выдаст «Требуется фрагментация пакета, но установлен запрещающий флаг.», значит уменьшаем и так, пока не получим крайнее верхнее значение пакета, которое проходит до нашего сервера. У меня получилось 1492 (1464+28). Значит дальше я и буду его устанавливать в качестве значения MTU.

  2. Далее вводим команду: netsh interface ipv4 show subinterfaces.

    Она покажет значение MTU для всех сетевых подключений. Нам необходимо узнать как называется интерфейс основного сетевого подключения. У меня это Ethernet, у вас же смотрите по обстановке. Но в большинстве случаев он будет называться так же.

  3. Далее вводим следующую команду(для ее выполнения требуется чтобы ): netsh interface ipv4 set subinterface «Ethernet» mtu=1492 store=persistent.

    Где вместо Ethernet пишем название своего интерфейса, а в значение MTU пишем полученное на первом шаге инструкции.

  4. Ну и напоследок отключим автоматическую настройку значения MTU для сетевых подключений: netsh int tcp set global autotuninglevel=disabled.
  5. Чтобы включить автоматическую настройку обратно, нужно заменить disabled на normal.

У вас недогружаются странички в браузере? Некоторые из них открываются только со второго или третьего раза? Потоковое видео с просторов интернета идет с прерываниями? Скорее всего, проблема заключается в неправильно выставленном параметре MTU вашего роутера.

Теория (кому просто нужно подобрать MTU, можете не читать, а сразу начинайте пользоваться программой)

Весь трафик в сети передается так называемыми пакетами данных. При коммутируемом доступе (это когда провод от провайдера вставлен в ваш компьютер) используется минимально возможная величина пакета в 576 байт, и это как раз и есть параметр MTU. Если у вас стоит роутер, то в нем выставлено значение по умолчанию, обычно 1492. Однако провайдер более жестко регламентирует MTU и чаще всего оно меньше. В итоге получается несоответствие величин, и роутеру для передачи приходится разбивать пакет на части, что называется фрагментацией. Мало того, что вместо одного такта на передачу одного пакета уходит два, но еще и имеет место потеря пакетов. Как следствие — тормозящий интернет, подолгу зависающие странички, медленно загружающееся видео и прочие-прочие «прелести».

Решается проблема достаточно просто: нужно просто позвонить в офис провайдера и задать вопрос о величине параметра, или же самостоятельно подобрать оптимальный параметр MTU, при котором пакеты не будут фрагментироваться. Первый вариант может оказаться и самым простым, и самым же сложным. Дело в том, что девушки, сидящие на телефонах, чаще всего не имеют даже понятия о том, какие параметры установлены в их сети. «Что, МТУ? Может, МТС? Нет, мы не офис МТС, мы у них не выставляем никакие параметры» — вот что, вероятнее всего, вы рискуете услышать в ответ на вопрос. Поэтому не тратим времени на переговоры, а сразу идем подбирать параметр MTU. Производится подбор путем передачи пакетов разной величины с запретом фрагментации. При тестах используется коммутируемый доступ, то есть без роутера .

Для подбора MTU используется пинг-тест командой вида ping ya.ru — f — l xxxx , где xxxx — значение MTU, ya.ru — пингуемый сервер (может быть любым из существующих) + параметры запрета фрагментации. Взяли максимальное значение, пинганули. Если потери составляют больше нулевого значения, значит, MTU неверный. Снижаем с шагом 8. И так далее, пока потери не составят 0%. Первое же значение MTU, при котором потери исчезнут, и будет оптимальным.

Но каждый раз набирать в командной строке этот набор символов не очень удобно, а скопировать и вставить из буфера не получится. Чтобы облегчить задачу, я написал маленькую программу, которая будет автоматически формировать команду для пинг-теста и выполнять его, постепенно снижая MTU. Вам нужно только следить за показателем потерь и нажимать кнопку Enter. Все остальное написано в окошке программы.

Когда значение MTU найдено, к нему надо прибавить 28 (на заголовки IP и ICMP) и ввести в соответствующее поле настроек роутера . У разных роутеров они разные, поэтому не спрашивайте меня, где ввести параметр у роутера какой-либо определенной модели. Всем добра!

Как изменить значение MTU в Windows 10, Windows 8.1, Windows 7

Обновлено 08.11.2020

Всем привет! Сегодня хочу рассказать как изменить MTU в Windows. Напомню MTU — Maximum transmission unit (MTU) — это максимальный объём данных, который может быть передан протоколом за одну итерацию. К примеру, Ethernet MTU равняется 1500, что означает, что максимальный объём данных, переносимый Ethernet фреймом не может превышать 1500 байт. Очень часто рядовым пользователям приходится его менять, когда необходимо раздать свой интернет 

У каждого провайдера или сетевого устройства, данное значение может быть свое. например 1492 очень часто встречается на роутерах Dlink, и если устройству на устройство будет например приходить пакет 1500 байт, а у него мту настроено 1492, то часть пакетов будут приходить битые, глюки могут выражаться, например у вас не полностью будут отображаться интерфейс сайта, что то загрузилось, а что то нет, первый признак, проверить Maximum transmission unit.

Итак посмотрим какое значение mtu у гугла, откроем командную строку и вводим следующую команду.


где, 1472=1500(стандартное значение для Ethernet) — 28 (значение заголовка, которое не учитывается)

Как изменить значение MTU в Windows 10, Windows 8.1, Windows 7-01

И смотрим ответ, если ответ получен без потери пакетов, то увеличиваем значение, если выдаст «Требуется фрагментация пакета, но установлен запрещающий флаг.», значит уменьшаем и так, пока не получим крайнее верхнее значение пакета, которое проходит до нашего сервера. У меня получилось 1500 (1472+28). Значит дальше я и буду его устанавливать в качестве значения MTU

 

Далее, вводим команду:

netsh interface ipv4 show subinterfaces

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

Как изменить значение MTU в Windows 10, Windows 8.1, Windows 7-04

либо в центре управления сетями.

Как изменить значение MTU в Windows 10, Windows 8.1, Windows 7-04

У меня это Ethernet, у вас же смотрите по обстановке. Но в большинстве случаев он будет называться так же.

Далее, вводим следующую команду (для ее выполнения требуется чтобы командная строка была запущена от имени администратора)

netsh interface ipv4 set subinterface «Ethernet» mtu=1492 store=persistent

Где вместо Ethernet пишем название своего интерфейса, а в значение MTU пишем полученное на первом шаге инструкции

Как изменить значение MTU в Windows 10, Windows 8.1, Windows 7-06

как отключить автоматическую настройку значения MTU для сетевых подключений:

netsh int tcp set global autotuninglevel=disabled

Чтобы включить автоматическую настройку обратно, нужно заменить disabled на normal

Как изменить значение MTU в Windows 10, Windows 8.1, Windows 7-07

После этого значение mtu будет такое как вам нужно. Вот мы с вами и разобрали как изменить mtu в Windows. Так что значение mtu теперь для вас не секрет.

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

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \Class\{4D36E972-E325-11CE-BFC1-08002bE10318}

Класс {4D36E972-E325-11CE-BFC1-08002bE10318} содержит информацию, о всех ваших сетевых картах, а именно драйверах, их версиях и GUID самой карты. GUID потребуется для определения сетевой карты в другой ветке реестра, но не переживайте я покажу более быстрый метод определения и сопоставления GUID и сетевой карты через PowerShell. На что в данном разделе нужно обратить внимание:

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

Самое важное узнать GUID, так как он поможет в правильном месте изменить значение Maximum transmission unit.

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters\Interfaces

Среди интерфейсов находим нужный, можно удостовериться, что у него правильный 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\{4D36E972-E325-11CE-BFC1-08002BE10318}\*» -exclude «Properties» |
Where-Object {$aGUID_SET.Contains($_.NetCfgInstanceId)} |
ForEach-Object {
«»
$_.DriverDesc
$_.NetCfgInstanceId
}

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

Get-ItemProperty «HKLM:\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\*» | select -ExpandProperty pschildname

На этом все, с вами был Иван Семин. Материал сайта pyatilistnik.org

MTU — это… Что такое MTU?

В компьютерных сетях термин Maximum Transmission Unit (MTU) используется для определения максимального размера блока (в байтах), который может быть передан на канальном уровне сетевой модели OSI.

Значения MTU зависят от коммуникационного интерфейса (сетевая плата, последовательный порт, и т. д.).

Значение MTU может быть определено стандартом (например для Ethernet), либо может выбираться в момент установки соединения (обычно в случае прямых подключений точка-точка). Чем выше значение MTU, тем меньше заголовков передаётся по сети — а значит, выше пропускная способность. Однако медленные интерфейсы могут передавать большой пакет значительное время, увеличивая время ожидания для других пакетов. К примеру, пакет размером в 1500 байт, максимально допустимый для Ethernet, может «подвесить» 14.4k модем примерно на одну секунду (1500*8=12000 бит, 14.4*1024=14745.6 бит/с, время передачи: 12000/14745.6 = 0.81 сек).

Таблица основных значений MTU

IP (Интернет протокол)

Проверить информацию.

Необходимо проверить точность фактов и достоверность сведений, изложенных в этой статье.
На странице обсуждения должны быть пояснения.

Интернет протокол был разработан для использования в различных сетевых технологиях, каждая из которых может оперировать пакетами различных размеров. Если говорить об IP с точки зрения MTU, можно обнаружить несколько проблем. Во-первых, если хост будет знать значение MTU для собственного (возможно и своих соседей) интерфейса, минимальное значение MTU для всех узлов сети будет неизвестно. Другая потенциальная проблема заключается в том, что протоколы более высокого уровня могут создавать пакеты большего размера, не поддерживаемые другими узлами сети. Очевидно, что скорость передачи будет тем больше, чем больше будет размер пакета. Однако не все узлы в сети могут передавать информацию с максимальной полезной нагрузкой.

Для устранения этих проблем IP поддерживает фрагментацию, что позволяет разбивать датаграмму на меньшие кусочки, каждый из которых будет достаточно мал, чтобы беспрепятственно пройти через узел, из-за которого происходит фрагментация. Процесс фрагментации происходит на уровне IP (третий уровень сетевой модели OSI), фрагменты пакетов маркируются таким образом, чтобы IP целевого хоста мог произвести сборку фрагментов в оригинальную датаграмму. Подобный метод предполагает некоторые недостатки:

  • Целевой хост должен получить все фрагменты для того, чтобы собрать пакет. Если хотя бы один фрагмент утерян — весь пакет должен быть отправлен заново.
  • Когда значение MTU определенного узла меньше размера большинства пакетов, которые должны быть переданы, почти все пакеты должны пройти фрагментацию. В некоторых случаях задержки, которые вызовет фрагментация всех пакетов, могут быть сочтены неприемлемыми.
  • Увеличивается нагрузка на CPU промежуточных маршрутизаторов
  • Увеличивается требование к памяти маршрутизатора, т.к необходимо хранить в буфере все фрагменты IP пакета
  • Некоторые простые фаерволы блокируют все фрагменты, т.к в них не содержится информация о более высоких уровнях(TCP/UDP)
  • Из-за оверхэда(копия IP-заголовка для каждого фрагмента) не эффективно используется полоса пропускания
  • Не существует простого способа определения MTU для всех интерфейсов сети на пути к целевому хосту.

Технология Path MTU discovery

Хотя фрагментация решает проблему несоответствия размеров пакетов и значения MTU, она ощутимо снижает производительность сетевых устройств. В связи с этим, в 1988 году была предложена альтернативная технология, названная Path MTU discovery (RFC 1191). Суть технологии заключается в том, что при соединении двух хостов устанавливается параметр DF (don’t fragment, не фрагментировать), который запрещает фрагментацию пакетов. Это приводит к тому, что узел, значение MTU которого меньше размера пакета, отклоняет передачу пакета и отправляет сообщение ICMP (Internet Control Message Protocol) типа Destination is unreachable (Точка назначения недоступна). К сообщению об ошибке прилагается значение MTU узла. Хост-отправитель уменьшает размер пакета и отсылает его заново. Такая операция происходит до тех пор, пока пакет не будет достаточно мал, чтобы дойти до хоста-получателя без фрагментации.

Однако, и у этой технологии существуют потенциальные проблемы. Всё большее число систем настраиваются администраторами на блокирование ICMP пакетов (в том числе с целью предотвращения отказа в обслуживании). В результате, если размер пакета не соответствует значению MTU на определённом участке, пакет отбрасывается, а хост-отправитель не может получить информацию о значении MTU и не отправляет пакет заново. Поэтому соединение между хостами не устанавливается. Проблема получила название MTU Discovery Black Hole (RFC 2923). Одной из распространённых проблем при работе в сети, блокирующей ICMP пакеты, является работа в IRC, когда пользователь успешно проходит авторизацию, но не может получить так называемое MOTD (message of the day), в результате чего использование сети не представляется возможным.

Проблема представляет потенциальную опасность для любого PPPoE соединения, использующего MTU меньше типового (1500 байт).

Существует несколько вариантов решения этой проблемы. Самым простым, безусловно, является отмена фильтрации пакетов ICMP. Однако зачастую подобная операция находится вне компетенции пользователя. Поэтому проблему решают путем ручной настройки размера передаваемого пакета на шлюзе пользователя. Для этого меняют значение MSS (максимальный размер сегмента, то есть величина, меньшая MTU на 40 байт в случае протокола IPv4). При установке соединения хосты обмениваются информацией о максимальном размере сегмента, который каждый из них сможет принять. Поэтому, меняя значение MSS, заставляют оба хоста обмениваться пакетами, которые шлюз пользователя сможет заведомо принять без фрагментации.

Кроме того, существуют методы отмены бита DF с целью разрешения фрагментации. Однако метод корректировки MSS является предпочтительным.

См. также

Примечания

Ссылки

Как изменить размер MTU в Windows 7?

 операционных системах Windows изменить размер MTU можно через специальные программы для настройки соединения с Интернет (например, SG TCP Optimizer), с помощью утилиты netsh или через Редактор реестра, который входит в состав операционных систем. При необходимости вы можете уменьшить значение MTU (по умолчанию в Windows установлено значение MTU = 1500 байт) или увеличить его для прохождения больших Ethernet-кадров Jumbo Frame (как правило, от 1500 до 9000 байт).

Вариант 1. Скачайте специальную бесплатную утилиту SG TCP Optimizer, которая предназначена для дополнительной настройки соединения с Интернет. С помощью данной утилиты можно легко изменять настройки протокола TCP/IP (например, размер MTU) в реестре Windows.

В настройках Choose Settings выберите значение Custom и в поле MTU укажите нужное значение. Нажмите кнопку Apply changes для применения указанных настроек и перезагрузите компьютер.

Вариант 2. В операционных системах Windows изменение размера MTU можно производить с помощью специальной утилиты netsh или через Редактор реестра.

2.1 Изменение размера MTU в ОС Windows Vista/2008/7

Запустите командную строку Windows от имени администратора (Пуск > Выполнить > cmd). Выполните команды для просмотра текущих значений MTU:


netsh interface ipv4 show subinterfaces

MTU         MediaSenseState   Bytes In  Bytes Out  Interface
———         ————————  ————  ————— ————-
4294967295  1                         0             1348          Loopback Pseudo-Interface 1
1500               1                         3734       2824          Local Area Connection

Далее выполните команду для установки нового значения MTU (например, 1452; по умолчанию в Windows используется значение MTU=1500):

netsh interface ipv4 set subinterface «Local Area Connection» mtu=1452 store=persistent 

или для беспроводного интерфейса:

netsh interface ipv4 set subinterface «Wireless Network Connection» mtu=1452 store=persistent

Затем перезагрузите компьютер.

Для просмотра текущих значений MTU вновь выполните команду:

netsh interface ipv4 show subinterfaces

При необходимости, для сброса значений MTU на установки по умолчанию выполните команду:

netsh interface ipv4 reset

Как изменить параметр mtu?

Некоторые обновления систем безопасности могут вызвать уменьшение величины параметра MTU. что значительно снижает производительность системы и приводит к невозможности подключения к определенным веб-ресурсам. Получение предупреждения протокола ICMP с текстом destination unreachable является показателем подобной проблемы.
Инструкция
  • Нажмите кнопку «Пуск» для вызова главного меню системы и перейдите в пункт «Выполнить» для запуска инструмента «Редактор реестра» для включения обнаружения «Черных дыр» PMTU.
  • Введите значение regedit в поле «Открыть» и нажмите кнопку OK для подтверждения выполнения команды.
  • Раскройте ветку реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters и выделите ее.
  • Укажите пункт «Создать» в меню «Правка» верхней панели инструментов окна программы и выберите строковый параметр DWORD.
  • Введите значение EnablePMTUBHDetect и нажмите клавишу Enter для подтверждения своего выбора.
  • Укажите пункт «Изменить» в меню «Правка» верхней панели инструментов окна программы и введите значение «1» в поле «Значение».
  • Нажмите кнопку OK для подтверждения выполнения команды и завершите работу утилиты «Редактор реестра».
  • Перезагрузите компьютер для применения выбранных изменений и вернитесь в инструмент «Редактор реестра» для отключения возможности определения PMTU.
  • Раскройте ветку реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters и выделите ее.
  • Укажите пункт «Создать» в меню «Правка» верхней панели инструментов окна программы и выберите строковый параметр DWORD.
  • Введите значение EnablePMTUDiscovery и нажмите клавишу Enter для подтверждения своего выбора.
  • Укажите пункт «Изменить» в меню «Правка» верхней панели инструментов окна программы и введите значение «0» в поле «Значение».
  • Нажмите кнопку OK для подтверждения выполнения команды и завершите работу утилиты «Редактор реестра».
  • Перезагрузите компьютер для применения выбранных изменений и вернитесь в инструмент «Редактор реестра» для указания значения MTU для сетевого интерфейса вручную.
  • Раскройте ветку реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\ и выделите ее.
  • Укажите пункт «Создать» в меню «Правка» верхней панели инструментов окна программы и выберите строковый параметр DWORD.
  • Введите значение MTU и нажмите клавишу Enter для подтверждения своего выбора.
  • Укажите пункт «Изменить» в меню «Правка» верхней панели инструментов окна программы и введите значение MTU в поле «Значение».
  • Нажмите кнопку OK для подтверждения выполнения команды и завершите работу утилиты «Редактор реестра».
  • Перезагрузите компьютер для применения выбранных изменений.
  • Оцените статью!

    MTU и MSS: объяснение интернет-терминов

    MTU и MSS — это два важных термина, с которыми вы должны быть знакомы, когда начинаете работать в сетевом мире, особенно если вы работаете с туннелями GRE и IPSEC. Если вы хотите использовать Incapsula Infrastructure Protection (теперь Imperva DDoS Protection), будет полезно узнать, как они работают.

    (И если вы ищете информацию о том, какие угрозы безопасности приложений и данных не дают ИТ-руководителям спать по ночам, загрузите отчет CyberThreat Defense за 2019 г., в котором опрошено более 1200 руководителей ИТ-отдела и безопасности и обнаружены эксклюзивные результаты, например, одна треть за последний год предприятия пострадали более чем от 6 нарушений.Получите копию по ссылке выше.)

    MTU

    Максимальная единица передачи (MTU) — это наибольший размер пакета или кадра, указанный в октетах (восьмибитных байтах), который может быть отправлен в сети на основе пакетов или кадров, такой как Интернет. Протокол управления передачей в Интернете (TCP) использует MTU для определения максимального размера каждого пакета при любой передаче. MTU обычно связан с протоколом Ethernet, где 1500-байтовый пакет является самым большим разрешенным в нем (и, следовательно, для большей части Интернета).

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

    Чтобы обойти эту проблему, IPv4 допускает фрагментацию , которая делит дейтаграмму на части. Каждый фрагмент достаточно мал, чтобы пройти по единственному каналу, для которого он фрагментирован, с использованием параметра MTU, настроенного для этого интерфейса. Этот процесс фрагментации происходит на уровне IP (уровень 3 OSI) и помечает пакеты, которые он фрагментирует, как таковые.Это гарантирует, что IP-уровень хоста назначения знает, что он должен собрать пакеты в исходную дейтаграмму.

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

    Прежде чем мы посмотрим на TCP MSS, это помогает понять, как устроен «модуль», который пересылается через Интернет.

    Как уже упоминалось, обычное значение MTU в Интернете составляет 1500 байт.

    Как вы можете видеть на рисунке выше, MTU состоит из полезной нагрузки (также называемой данными), TCP и заголовка IP, каждый из которых составляет 20 байтов. Общее значение IP и TCP-заголовка составляет 40 байтов и является обязательным для каждого пакета, что оставляет нам 1460 байтов для наших данных.

    Теперь представьте, что мы используем протокол GRE в нашей сети, инкапсулируя исходный пакет и добавляя 24 байта для заголовка GRE.

    Общий размер такого пакета будет 1524 байта, что превышает значение MTU 1500 байтов. Размер «данных» в этом пакете — 1460, но мы можем и должны уменьшить его, чтобы гарантировать, что общий размер будет 1500 байтов или меньше. И здесь на сцену выходит TCP MSS.

    TCP MSS, максимальный размер сегмента, является параметром поля опций заголовка TCP, который определяет наибольший объем данных, указанный в байтах, который компьютер или устройство связи может получить в одном сегменте TCP.Он не включает заголовок TCP или IP-заголовок. Это значение будет определять максимальный размер «информационной» части пакета. В следующем случае для туннеля GRE мы установим значение tcp mss равным 1436 или ниже, а размер по умолчанию — 1460.

    Объявление MSS (часто ошибочно называемое согласованием) отправляется во время трехстороннего рукопожатия обеими сторонами, говоря: «Я могу принимать сегменты TCP до размера x». Размер (x) может быть больше или меньше размера по умолчанию. MSS можно использовать полностью независимо в каждом направлении потока данных.

    Поскольку конечное устройство не всегда будет знать о протоколах высокого уровня, которые будут добавлены к этому пакету по пути, например, о пакетах GRE, оно обычно не регулирует значение TCP MSS. В результате сетевые устройства имеют возможность переписывать значение пакетов TCP MSS, которые обрабатываются через них. Например, в маршрутизаторе Cisco команда «ip tcp mss-adjust 1436» на уровне интерфейса перезапишет значение TCP MSS любого пакета SYN, который будет проходить через этот интерфейс.

    Настройка TCP MSS для защиты инфраструктуры инкапсулы

    В защите инфраструктуры инкапсулы мы обычно используем туннели GRE. Следовательно, нам необходимо устранить возможность фрагментации, если мы не настраиваем TCP MSS. Наше решение, которое является асимметричным по определению (имеется в виду входящий трафик через Incapsula, исходящий трафик через исходного интернет-провайдера), требует от нас переписать значение TCP MSS для пакетов SYN, которые отправляются нашим защищенным клиентом своим конечным клиентам.Мы можем добиться этого в маршрутизаторе Cisco, например, настроив «ip tcp mss-adjust 1436» на интерфейсе WAN или интерфейсе, обращенном к провайдеру.

    Давайте посмотрим на следующую диаграмму.

    Как видите, клиентский сервер отправляет пакет со значением MSS 1460, но в интерфейсе маршрутизатора мы настроим его на 1420. Важно понимать, что это значение повлияет на размер трафика, поступающего с из . конечный клиент по направлению к серверу клиента.Это трафик, который будет проходить через туннель и поэтому будет инкапсулирован 24 байтами GRE. Исходящий трафик, от клиентского сервера к конечному клиенту, проходит напрямую через исходного интернет-провайдера, поэтому нам не нужно настраивать SYN-пакеты, которые отправляет конечный пользователь.

    На приведенной выше диаграмме показано, как перемещаются SYN-пакеты в трехэтапном подтверждении связи. После завершения трехстороннего рукопожатия и установления соединения конечный пользователь будет отправлять пакеты, размер «данных» которых не превышает 1420 байт.Кроме того, сервер клиента будет отправлять пакеты, размер «данных» которых не превышает 1460 байт по умолчанию.

    Распространенной ошибкой является настройка команды «ip tcp mss-adjust 1420» на туннельном интерфейсе клиента. Причина, по которой он не работает, заключается в том, что SYN-пакеты, которые отправляются с сервера конечному пользователю, проходят не через интерфейс туннеля GRE, а через интерфейс исходного интернет-провайдера.

    У вас есть вопросы к оперативной команде или ко мне? Пожалуйста, оставьте нам комментарий ниже.

    Попробовать Imperva бесплатно

    Защитите свой бизнес в течение 30 дней с помощью Imperva.

    Начать сейчас

    Какая максимальная единица передачи (MTU)?

    Какая максимальная единица передачи (MTU)?

    Максимальная единица передачи (MTU) — это кадр или пакет наибольшего размера — в байтах или октетах (восьмибитных байтах) — которые могут быть переданы по каналу данных.Чаще всего он используется для определения размера пакета в сети Ethernet с использованием Интернет-протокола (IP).

    MTU и фрагментация пакетов

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

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

    В качестве аналогии подумайте о MTU как о максимальном весе, который может быть отправлен в виде одной упаковки.Представьте, что компании нужно отправить 1 тонну товаров другой компании. Компания-отправитель имеет большой склад с погрузчиками и грузовиками, как и компания-получатель. Таким образом, вся партия помещается на один большой поддон и отправляется как отдельная партия или пакет. Это похоже на использование большого MTU со всеми устройствами, поддерживающими его. Это очень эффективно.

    Теперь представьте, что отправляющей компании нужно было отправить груз массой 1 тонну в небольшой магазин, обслуживаемый только почтальоном с небольшим фургоном. Если бы они отправили всю партию на одном большом поддоне, в какой-то момент большую поддон нужно было бы сломать и поместить в меньшие коробки, чтобы они поместились в фургоне, чтобы его можно было перевезти.Это похоже на то, когда пакет данных необходимо фрагментировать, потому что передаваемый MTU слишком велик для одного из промежуточных устройств. Было бы более эффективно, если бы исходный отправитель установил MTU соответствующим образом, чем фрагментировал бы его промежуточным устройством.

    Только IPV4 допускает фрагментацию пакетов. Если пакет, превышающий MTU, отправляется по IPv4, он будет автоматически фрагментирован, если не установлен флаг do-not-fragment. IPv6 не допускает фрагментацию. Если размер пакета превышает MTU в IPv6, он будет отброшен.

    Типы максимальных единиц трансмиссии
    Ethernet MTU

    Фрейм Ethernet находится на уровне 2 взаимодействия открытых систем (OSI). Стандартный размер MTU для Ethernet составляет 1500 байтов. Это не включает заголовок Ethernet размером 18 или 20 байтов, и это теоретический максимальный объем данных, который может быть передан по физическому каналу. MTU любого протокола более высокого уровня должен соответствовать этому MTU.

    IP MTU

    IP-протокол находится на уровне 3 модели OSI.Размер пакета IP MTU можно настроить независимо от размера кадра Ethernet. Но поскольку он передается по Ethernet, он должен быть меньше, чем MTU Ethernet.

    IP MTU — это общий размер всей информации, включенной в пакет. Сюда входят заголовок и передаваемые данные. Заголовок IP и TCP занимает 40 байт. Возвращаясь к иллюстрации упаковки, представьте, что максимальный вес, который может переместить погрузчик, составляет 1500 фунтов. Сюда входит вес поддона в 40 фунтов, поэтому максимальный вес груза, который можно отправить, составляет 1460 фунтов.

    Если во время передачи применяется дополнительный промежуточный протокол, такой как GRE, IPsec, PPPoE или SNAP (протокол доступа к подсети), он не включается в MTU отправителя, но должен учитываться при проектировании сети, чтобы не проходить через посредника. MTU устройства. Например, представьте, что организация установила для MTU максимальное значение 1500 байтов, но ей необходимо использовать VPN, защищенную IPsec. IPsec добавит в пакет некоторые дополнительные данные для работы шифрования, но при этом общий размер пакета превысит 1500 байт, поэтому пакет необходимо фрагментировать.

    Уровни в модели взаимодействия открытых систем (OSI), определяющие, как приложения взаимодействуют по сети.

    Представьте себе склад на нашей иллюстрации, необходимый для хранения груза в запертом контейнере. Если не учитывать дополнительный вес запертого контейнера, общий вес груза (полезная нагрузка данных), поддона (IP-заголовок) и запертого контейнера (IPsec) может стать больше, чем общий вес, который может выдержать вилочный погрузчик (MTU устройства ).

    Максимальный размер сегмента (MSS) и MTU

    Максимальный размер сегмента (MSS) — это размер полезной нагрузки в IP-пакете.Фактически, это наибольший объем данных, которые отправители могут передать, не превышая MTU.

    MSS можно рассчитать путем вычитания размера заголовка из IP MTU. Он находится на уровне 4 модели OSI.

    Jumbo-кадры и максимальная единица передачи

    Jumbo-кадры — это когда MTU Ethernet превышает стандартные 1500 байтов. Это может быть возможно на быстрых каналах Ethernet, таких как гигабитная локальная сеть, и может достигать 9000 байт. Использование пакетов большого размера может снизить накладные расходы и повысить эффективность передачи данных.

    Размер пакета Jumbo-кадра зависит от производителя и (конечно) не гарантируется через Интернет. Таким образом, использование MTU большого кадра обычно зарезервировано для специализированных специализированных сетей, таких как сеть хранения данных (SAN).

    Обнаружение максимального количества единиц передачи на пути

    Обнаружение MTU пути (PMTUD) — это процесс определения MTU всех устройств в сети, через которые будет проходить пакет. Выполняя PMTUD, каждое устройство может быть соответствующим образом настроено, чтобы избежать фрагментации и потери кадров из-за превышения MTU промежуточного устройства.

    Самый простой способ обнаружения MTU пути — это отправка больших тестовых пакетов или эхо-запросов, для которых установлено значение «не фрагментировать». Если они отброшены, значит, эхо-запросы превысили MTU. Уменьшайте размер пакета до тех пор, пока он не сможет пройти весь путь.

    В Microsoft Windows организации могут проверить MTU с помощью команды ping. Используйте переключатель -f , чтобы установить «не фрагментировать», и переключатель -l , за которым следует размер в байтах пакета для отправки. Например: ping www.techtarget.com -f -l 1492

    Оптимизация максимальных единиц передачи

    Не существует единого наилучшего размера для IP MTU, поскольку устройства и протоколы в пути маршрутизации определяют MTU. Поэтому к настройке MTU конечной точки не следует подходить случайно. Большинство устройств могут автоматически настраивать свой MTU в зависимости от типа сети, в которой они находятся.

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

    Например, если организация использует GRE или VPN, установка MTU, учитывающая накладные расходы, может уменьшить фрагментацию пакетов. Если конкретная технология ISP, такая как ADSL, накладывает дополнительные накладные расходы на пакеты, уменьшение MTU компьютера конечной точки с учетом этого может привести к повышению производительности.

    Проблемы с размером MTU

    , фрагментация и jumbo-кадры

    Максимальный блок передачи (MTU) — это наибольшее количество байтов, которое может иметь отдельная дейтаграмма без фрагментации на более мелкие дейтаграммы или без отбрасывания на пути между ее источником и местом назначения.

    Для кадров Ethernet — и многих других типов пакетов — это число составляет 1500 байтов, и обычно оно отвечает требованиям трафика, который может без изменений пересекать общедоступный Интернет.

    Итак, если 2000-байтовые пакеты Ethernet прибывают на маршрутизатор, он разделит их полезную нагрузку на две и переупаковывает их на два пакета, каждый из которых меньше 1500 байтов и, таким образом, соответствует MTU.

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

    Размер

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

    В этом случае необходимо учитывать размер кадров Ethernet. Если при инкапсуляции Ethernet в MPLS размер кадра MPLS превышает MTU граничных коммутаторов MPLS, коммутаторы отбрасывают его.

    Размер MTU

    Размер MTU определяется физическими свойствами коммуникационной среды. Исторически сетевые носители были медленнее и более подвержены ошибкам, поэтому размеры MTU были относительно небольшими. Для большинства сетей Ethernet это 1500 байт, и этот размер используется почти повсеместно в сетях доступа.Сети Ethernet II имеют стандартный размер кадра 1518 байт, который включает 14-байтовый заголовок Ethernet II и четырехбайтовую последовательность проверки кадра (FCS). Другие средства связи имеют разные размеры MTU.

    Накладные расходы инкапсуляции

    Когда пакеты или кадры одного протокола инкапсулируются в другой протокол, это увеличивает общий размер кадра. Инкапсуляция добавляет заголовок протокола, поэтому любые пакеты, которые создаются на 1500 байтов и затем инкапсулируются, будут превышать MTU, которую сеть может обработать.Количество добавляемых байтов инкапсуляции зависит от типа протокола:

    • GRE (IP-протокол 47) (RFC 2784) добавляет 24 байта (20-байтовый заголовок IPv4, 4-байтовый заголовок GRE)
    • Инкапсуляция 6in4 (протокол IP 41, RFC 4213) добавляет 20 байтов
    • Инкапсуляция 4in6 (например, DS-Lite RFC 6333) добавляет 40 байтов
    • Каждый раз, когда вы добавляете еще один внешний заголовок IPv4, добавляет 20 байтов
    • Шифрование IPsec, выполняемое DMVPN, добавляет 73 байта для служебных данных ESP-AES-256 и ESP-SHA-HMAC (служебные данные зависят от транспортного или туннельного режима и алгоритма шифрования / аутентификации и HMAC)
    • MPLS добавляет 4 байта для каждой метки в стеке
    • IEEE 802.Тег 1Q добавляет 4 байта (Q-in-Q добавляет 8 байтов)
    • VXLAN добавляет 50 байтов
    • OTV добавляет 42 байта
    • LISP добавляет 36 байтов для IPv4 и 56 байтов для инкапсуляции IPv6
    • NVGRE добавляет 42 байта
    • STT добавляет 54 байта

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

    Обнаружение MTU пути (PMTUD)

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

    Например, маршрутизатор IPv4 фрагментирует и пересылает пакеты, которые превышают MTU, но также отправляет обратно сообщение об ошибке ICMP-сообщение слишком большое, чтобы сообщить устройству-источнику, что ему следует использовать меньший MTU.С другой стороны, маршрутизаторы IPv6 не фрагментируют слишком большие пакеты от имени источника; они просто отбрасывают их и отправляют обратно сообщение об ошибке слишком большого размера пакета ICMPv6.

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

    Чтобы усложнить ситуацию, некоторые маршрутизаторы игнорируют сообщения о слишком большом размере пакета и продолжают отправлять пакеты, превышающие MTU. Они не следуют стандартизированной методике, называемой обнаружением MTU пути, которая может избежать фрагментации в сети.

    Некоторые узлы, которые отправляют пакеты размером 1500 байт в DMVPN и впоследствии получают сообщение ICMPv4 «слишком большой пакет» от маршрутизатора, могут игнорировать это. Эти узлы не выполняют обнаружение MTU пути (PMTUD), как предписано IETF RFC 1191 или RFC 1981, и поэтому полагаются на маршрутизаторы IPv4 для выполнения этой фрагментации от имени исходного хоста. RFC 2923 также охватывает тему «Проблемы TCP с обнаружением MTU пути». Если приложение не может нормально работать в этой среде, это может повлиять на конечного пользователя.Кроме того, если где-то в середине пути связи есть брандмауэр, который блокирует сообщения об ошибках ICMP, это определенно помешает правильной работе PMTUD.

    Один из методов проверки и обнаружения уменьшенного размера MTU — это использование эхо-запроса с большим размером пакета. Вот несколько примеров того, как это сделать.

    C: \ Users \ ScottHogg> ping -l 1500 192.168.10.1

    На хосте Windows вы также можете установить бит Do Not Fragment (DF) в 1 с параметром -f ping.

    C: \ Users \ ScottHogg> ping 192.168.10.1 -l 1500 –f

    В Linux команда будет выглядеть так:

    RedHat # ping -s 1500 -M do 192.168.10.1

    На устройстве Cisco IOS команда будет:

    Router1 # ping 192.168.10.1 size 1500 df-bit

    На устройстве Cisco NX-OS команда будет:

    Switch7K # ping 192.168.10.1 packet-size 9216 c 10

    На Cisco IOS Устройство XR команда будет:

    RP / 0 / RP0 / CPU0: Router1 # ping 192.168.10.1 size 1500 donnotfrag

    На устройстве JUNOS команда будет выглядеть так:

    root @ J4350-1 # run ping 192.168.10.1 size 1500 do-not-fragment quick

    Fragmentation

    Маршрутизаторы IPv4 фрагментируют от имени исходный узел, который отправляет пакет слишком большого размера. Маршрутизаторы могут фрагментировать пакеты IPv4, если бит Do-Not-Fragment (DF) не установлен в 1 в заголовке IPv4. Если бит DF установлен в 0 (по умолчанию), маршрутизатор разделяет пакет, который слишком велик для того, чтобы поместиться в исходящий интерфейс, и отправляет два пакета по направлению к месту назначения.Когда пункт назначения получает два фрагмента, стек протокола пункта назначения должен повторно собрать фрагменты перед обработкой блока данных протокола (PDU). Но есть опасность, когда приложение отправляет свои пакеты с DF, установленным в 1, не обращает внимания на сообщения ICMP «слишком большой пакет» и не выполняет PMTUD.

    Все сети IPv6 должны поддерживать размер MTU не менее 1280 байт (RFC 2460). Это связано с тем, что маршрутизаторы IPv6 не фрагментируют пакеты IPv6 от имени источника.Маршрутизаторы IPv6 отбрасывают пакет и отправляют обратно пакет ICMPv6 типа 4 (размер превышен) источнику, указывая правильный размер MTU. Затем на плечи источника ложится выполнение самой фрагментации и кэширования нового уменьшенного размера MTU для этого пункта назначения, чтобы в будущих пакетах использовался правильный размер MTU.

    Когда маршрутизаторы выполняют фрагментацию от имени источника, это увеличивает накладные расходы процессора на маршрутизатор. Если используется IPsec, маршрутизаторы на обоих концах туннеля должны будут обрабатывать фрагментацию и повторную сборку пакетов.Если маршрутизаторы выполняют фрагментацию от имени исходного узла, может быть желательно выполнить фрагментацию до шифрования, чтобы туннельному маршрутизатору назначения не приходилось повторно собирать фрагменты, а затем выполнять дешифрование.

    Следующие две команды глобальной конфигурации Cisco IOS могут управлять этим поведением.

    Router (config-if) # crypto ipsec fragmentation before-encryption

    Router (config-if) # crypto ipsec fragmentation after-encryption

    Существует хороший документ от Cisco по коммутаторам 7600 и способам решения этих проблем, под названием «Настройка фрагментации IPSec VPN и MTU».

    MTU и MSS

    Другой метод обработки увеличения размера MTU из-за инкапсуляции и результирующей фрагментации — это использование параметра TCP Maximum Segment Size (MSS). MSS — это наибольшее количество байтов полезной нагрузки, которое может быть отправлено в одном пакете TCP. Другими словами, MSS — это наибольший объем данных TCP (в байтах), который может быть передан по компьютерной сети. Это согласовывается во время трехстороннего установления связи TCP в пакете SYN. MSS определен в RFC 879 для IPv4 и в RFC 2460 для IPv6.MSS не включает заголовок TCP (20 байтов) или заголовок IPv4 (20 байтов; заголовок IPv6 составляет 40 байтов).

    При использовании IPsec размер MTU на туннельных интерфейсах обычно устанавливается равным 1400 байтов, а TCP-MSS-adjust — 1360 байтов. Это можно настроить в устройстве Cisco IOS с помощью этих команд.

    Router (config) # interface tunnel 4

    Router (config-if) # ip tcp adjust-mss 1360

    Router (config-if) # ip mtu 1400

    Для интерфейсов с поддержкой IPv6 мы можем использовать тот же тип функций, но заголовок IPv6 составляет 40 байтов вместо ~ 20-байтового заголовка IPv4.Мы также должны учитывать 20-байтовый заголовок TCP, который имеет одинаковый размер для IPv4 и IPv6.

    Маршрутизатор (config) # interface tunnel 6

    Router (config-if) # ipv6 tcp adjust-mss 1340

    Router (config-if) # ipv6 mtu 1400

    Этот параметр MSS не работает для приложений UDP: UDP протокол без установления соединения, поэтому во время рукопожатия нет возможности согласовать это. Для приложений UDP, которые не выполняют PMTUD и устанавливают бит DF в 1, одним из вариантов может быть настройка политики, которая устанавливает бит DF обратно в ноль.

    Для получения дополнительной информации по этой теме прочтите «Устранение проблем IP-фрагментации, MTU, MSS и PMTUD с помощью GRE и IPSEC» от ​​Cisco.

    Компенсация за счет увеличения размера MTU

    Как мы видели, основная проблема с размером MTU возникает, когда происходит инкапсуляция, когда связи между сайтами поддерживают только MTU размером 1500 байт. Это часто имеет место для каналов между корпоративными маршрутизаторами и вышестоящими маршрутизаторами ISP или между маршрутизаторами CE и маршрутизаторами PE.

    Было бы очень желательно иметь возможность увеличивать размер MTU в глобальной сети.Если бы размер MTU мог быть увеличен на всем пути через WAN, тогда добавленные накладные расходы инкапсуляции могли быть компенсированы интерфейсом WAN маршрутизаторов. Это устранит необходимость уменьшения размера MTU на туннельных интерфейсах, настройки MSS и избавит маршрутизаторы от выполнения любой фрагментации. Вот где jumbo-фреймов входят в

    Jumbo-фреймы

    Jumbo-фреймы — это PDU сетевого уровня, размер которых намного больше, чем типичный 1500-байтовый MTU Ethernet.В некоторых ситуациях можно использовать кадры большого размера, чтобы разрешить гораздо большие размеры кадра, если сетевое оборудование поддерживает такую ​​конфигурацию. Большинство современных маршрутизаторов и коммутаторов, а также большинство сетевого оборудования центра обработки данных могут поддерживать кадры большого размера.

    Более крупные кадры также могут повысить скорость. Благодаря большему размеру кадра — и, следовательно, большему размеру полезной нагрузки — у вас будет меньше накладных расходов на протокол и вы сможете достичь более высокой эффективности протокола. Другими словами, ваша «производительность» улучшается с увеличением размера кадра.Вы также можете уменьшить пропускную способность сети и циклы ЦП на сетевом оборудовании.

    Чтобы настроить размер MTU большого кадра на устройстве Cisco IOS, просто введите команду MTU в конфигурации интерфейса следующим образом:

    Router (config) # interface GigabitEthernet 4/1

    Router (config-if) # mtu 9216

    Команда show interface проверит новый размер MTU интерфейса.

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

    Ключевой концепцией, о которой следует помнить, является то, что все сетевые устройства на пути связи должны поддерживать jumbo-кадры. Необходимо настроить Jumbo-кадры для работы на входящем и исходящем интерфейсе каждого устройства на всем пути передачи. Кроме того, все устройства в топологии также должны согласовать максимальный размер кадра jumbo. Если на пути передачи есть устройства с разными размерами кадра, вы можете столкнуться с проблемами фрагментации. Кроме того, если устройство на пути не поддерживает jumbo-кадры и получает один, оно отбрасывает его.

    Джумбограммы

    Джамбо-кадры не следует путать с джумбограммами. При обсуждении протоколов связи кадров — это PDU, используемый на уровне 2 (канальный уровень) модели OSI, пакетов — это PDU, используемый на уровне 3 (сетевой уровень). Джумбограмма — это более крупный пакет уровня 3, который превышает размер MTU канала. IPv4 может генерировать полезные данные размером до 65 535 байт, в то время как IPv6 может иметь 32-битный размер «Jumbo Payload Length» в заголовке опции «шаг за шагом».Следовательно, IPv6 может поддерживать нелепую полезную нагрузку в 4,2 ГБ. Ясно, что этот пакет не может быть доставлен ни по одному общему сетевому интерфейсу — только представьте себе последствия повторной передачи.

    Поддержка Jumbo-кадра

    Большинство сетевых устройств поддерживают размер Jumbo-кадра 9 216 байт. Однако это не стандартизовано, как 1500 байт MTU Ethernet, поэтому вы хотите уточнить у своего конкретного производителя, какой максимальный размер кадра поддерживают их устройства, и как настроить изменения.Даже в пределах линейки сетевых продуктов одного производителя возможности MTU могут сильно различаться, поэтому важно провести тщательное исследование всех ваших устройств на путях связи и проверить их настройки. Например, некоторые адаптеры Intel Gigabit поддерживают jumbo-кадры, но многие — нет.

    Рекомендации

    Проблемы с уменьшением размера MTU из-за туннелей, шифрования IPsec и оверлейных протоколов могут ухудшить производительность сети. Если вы используете технологии инкапсуляции, вам следует рассмотреть возможность увеличения размера MTU, особенно в ядре сети или WAN, чтобы избежать фрагментации и проблем с PMTUD.Спросите своего поставщика услуг, поддерживают ли они большие размеры кадров в своей сети и на канале между их PE и вашим CE-маршрутизатором.

    Информация о преимуществах jumbo-кадров может быть полезна для производительности вашей сети. Однако перед включением этой функции важно изучить, поддерживают ли ваши сетевые устройства кадры jumbo и каким образом. Некоторые из самых больших преимуществ использования jumbo-кадров могут быть реализованы внутри и между центрами обработки данных. Но вы должны знать о фрагментации, которая может произойти, если эти большие кадры попытаются пересечь ссылку с меньшим размером MTU.

    Присоединяйтесь к сообществам Network World на Facebook и LinkedIn, чтобы комментировать самые важные темы.

    Copyright © 2021 IDG Communications, Inc.

    Как ускорить подключение к Интернету — Redmondmag.com

    Советы и уловки Поузи

    Как ускорить подключение к Интернету

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

    Когда дело доходит до оптимизации домашнего Интернет-соединения, большинство людей, естественно, сосредотачиваются на своем Wi-Fi-соединении.Однако оптимизация Wi-Fi — это только половина дела. Другая часть головоломки — убедиться, что ваш маршрутизатор эффективно использует домашнее подключение к Интернету.

    Одна из самых простых вещей, которые вы можете сделать для увеличения скорости интернета, — это отрегулировать настройку MTU вашего маршрутизатора. MTU расшифровывается как Maximum Transmission Unit. По сути, это параметр, который ограничивает максимальный размер пакета, который может быть отправлен по сети. Идея состоит в том, что если вы настроите свой интернет-маршрутизатор на использование максимального размера MTU, то данные можно будет отправлять меньшим количеством пакетов, чем было бы необходимо с меньшим размером MTU.Помните, что каждый пакет содержит заголовок, который, по сути, является служебным, поэтому передача меньшего количества пакетов означает отправку меньшего количества данных заголовка, тем самым освобождая больше места для реальных данных.

    Сейчас я покажу вам простой тест для определения максимального размера MTU, который вам следует использовать. Прежде чем я это сделаю, я должен указать, что больше не всегда лучше, когда дело доходит до размеров MTU. На это есть несколько причин. Во-первых, использование слишком большого значения MTU приводит к фрагментации пакетов, что снижает производительность.Таким образом, обычно цель состоит в том, чтобы найти самый большой размер пакета, который вы можете использовать, не вызывая фрагментации.

    Вторая причина, по которой больше не всегда лучше, заключается в том, что вы можете снизить производительность, если увеличите значение MTU в ненадежной сети. Если сети не удается успешно доставить пакет к месту назначения, пакет отправляется повторно. Это не имеет большого значения, если вашей сети нужно время от времени повторно отправлять пакет; это совершенно нормально.Однако, если в вашей сети наблюдается высокая скорость повторной передачи, вы не хотите увеличивать размер пакета, потому что вы фактически увеличиваете объем данных, которые необходимо повторно отправить. Производительность сети, скорее всего, снизится, и вы можете обнаружить, что ваша сеть также станет менее надежной.

    Однако для этого обсуждения предположим, что ваша сеть надежна, а ваш маршрутизатор еще не настроен с оптимальным значением MTU. Между прочим, некоторые маршрутизаторы более высокого уровня уже используют высокое значение MTU, поэтому рекомендуется проверить, прежде чем выполнять тест, который я собираюсь вам показать.В большинстве случаев оптимальным значением (для домашнего Интернет-маршрутизатора) будет 1500. Если ваш маршрутизатор уже показывает значение MTU, равное 1500, вы, вероятно, не сможете получить никаких дополнительных преимуществ, выполнив этот тест.

    С учетом сказанного откройте окно командной строки, введя команду CMD в командной строке Windows Run. Теперь введите эту команду:

     Пинг www.google.com -f -l 1472 

    Переключатели, используемые в этой команде, чувствительны к регистру. Ключ -F указывает команде ping установить флаг «не фрагментировать».Это важно, потому что нам нужно проверить фрагментацию пакетов. Ключ -L устанавливает размер буфера отправки.

    Если эхо-запрос проходит успешно, как это было на рис. 1 , , попробуйте увеличить значение буфера на 10 и запустить команду еще раз.

    [Щелкните изображение, чтобы увеличить.] Рисунок 1. Этот эхо-запрос прошел успешно без фрагментации.

    Если эхо-запрос показывает, что произошла фрагментация, как показано на рис. 2 , , вам нужно уменьшить значение на 10 и запустить команду еще раз.Цель состоит в том, чтобы найти максимальный размер буфера, который не приводит к фрагментации.

    [Щелкните изображение, чтобы увеличить.] Рисунок 2: Этот эхо-запрос привел к фрагментированному пакету.

    После того, как вы установили максимальное значение буфера, которое вы можете использовать, добавьте к этому значению 28 (чтобы учесть размер заголовка пакета). Это будет ваше максимальное значение MTU. В моем случае максимальный размер буфера был 1472. Когда я добавляю 28, я получаю ранее упомянутое значение 1500.Кстати, 1500 обычно будет максимальным значением MTU, но в зависимости от вашей сети оно может быть больше или меньше.

    Расположение настройки MTU в маршрутизаторе будет варьироваться от одного маршрутизатора к другому. На моем маршрутизаторе этот параметр находится на вкладке «Дополнительно» в разделе «Настройка WAN». Вы можете увидеть, как выглядит настройка размера MTU на Рисунок 3 .

    [Щелкните изображение, чтобы увеличить.] Рисунок 3: Здесь на моем маршрутизаторе устанавливается размер MTU.

    Об авторе

    Брайен Поузи — 20-кратный MVP Майкрософт с многолетним опытом работы в ИТ. В качестве внештатного писателя Поузи написал тысячи статей и написал несколько десятков книг по широкому кругу тем в области информационных технологий. До того, как стать фрилансером, Поузи был ИТ-директором национальной сети больниц и медицинских учреждений. Он также работал сетевым администратором в некоторых из крупнейших страховых компаний страны и в Министерстве обороны Форт-Нокса.В дополнение к его продолжающейся работе в сфере информационных технологий, Пози последние несколько лет активно тренировался в качестве кандидата в коммерческие ученые и астронавты, готовясь к полету в миссии по изучению полярных мезосферных облаков из космоса. Вы можете следить за его обучением космическим полетам на его веб-сайте.

    Как я могу определить размер MTU интерфейсов WAN для оптимизации пропускной способности?

    11.09.2021 1923 Люди сочли эту статью полезной 83 217 Просмотров

    Описание


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

    Обратитесь к своему интернет-провайдеру, чтобы узнать рекомендуемый размер MTU для подключения к Интернету (кабель, DSL, T1 и т. Д.).

    В качестве обходного пути вы можете использовать команду PING в приглашении операционной системы, чтобы определить размер MTU в вашей сети:

    ПРИМЕЧАНИЕ: уменьшите размер буфера на 8 байт (1472-8 = 1464, 1456, 1404, и т.п.) до тех пор, пока вы не получите ПОТЕРИ пакетов 0%. В соответствии с RFC 791 допустимый диапазон MTU составляет от 68 до 65535, и хотя в соответствии с RFC не требуется, чтобы MTU был кратен 8, интерфейс SonicWall Firewall будет принимать только значения 8. Фактическое числовое значение представляет собой количество октетов
    Перед запуском теста убедитесь, что вы сначала установили WAN-интерфейс SonicWall на значение по умолчанию 1500.

    ПРИМЕР: Ping -f -l 1472 www.yahoo.com

    Объяснение параметров: Переключатель -f (знак минус, за которым следует нижний регистр F) указывает «не фрагментировать».Второй ключ -l (знак минус, за которым следует строчная L) предназначен для «размера», а число, следующее за ним, указывает размер полезной нагрузки, которую вы будете отправлять.

    При тестировании MTU за SonicWall начните с размера полезной нагрузки 1472, поскольку дополнительные 28 байтов являются заголовком пакета (20 байтов для заголовка IP и 8 байтов для заголовка ICMP).

    • Если проверка связи прошла успешно (без потери пакетов) при размере полезной нагрузки 1472, MTU будет «1472 (размер полезной нагрузки) + 20 (заголовок IP) + 8 (заголовок ICMP)» = 1500.
    • Если пакет был слишком большим, вы получите сообщение: « Пакет должен быть фрагментирован, но DF устанавливает » (со 100% ПОТЕРЬЮ пакета).
    • Уменьшайте размер буфера на 8 байтов до тех пор, пока вы не будете успешно подключены (например, 1464, 1456, 1448 и т. Д.)

    • В приведенном выше примере правильный MTU, который должен быть установлен на интерфейсе WAN, равен 1492 (1464+ 28 байт).

    СОВЕТ: Добавьте 28 к этому числу, и в результате будет установлено значение SonicWall «Interface MTU».

    Причина


    Неправильный набор MTU на интерфейсе WAN может вызвать множество проблем, таких как снижение пропускной способности, нестабильность и недоступность веб-сайтов. Пожалуйста, установите это внимательно и обратитесь к своему интернет-провайдеру для получения дополнительной информации.

    Разрешение


    Разрешение для SonicOS 7.X

    Этот выпуск включает в себя значительные изменения пользовательского интерфейса и множество новых функций, которые отличаются от прошивки SonicOS 6.5 и более ранних версий. Приведенное ниже разрешение предназначено для клиентов, использующих SonicOS 7.X прошивка.

    Изменение настроек MTU на устройстве SonicWall

    1. Щелкните Network , перейдите к System | Интерфейсы
    2. Щелкните значок Настроить (изменить) рядом с интерфейсом WAN (X1) . Щелкните вкладку Advanced

    Интерфейс MTU — Указывает наибольший размер пакета, который интерфейс может пересылать без фрагментации пакета.

    Фрагмент исходящих пакетов без VPN, превышающих MTU этого интерфейса — Указывает, что все исходящие пакеты без VPN, размер которых превышает MTU этого интерфейса, должны быть фрагментированы.Определение фрагментации исходящих пакетов VPN устанавливается в VPN | Продвинутая стр.

    Бит игнорировать, не фрагментировать (DF) — Заменяет биты DF в пакетах.

    Не отправлять ICMP Fragmentation Needed для исходящих пакетов через MTU интерфейса — блокирует уведомление о том, что этот интерфейс может получать фрагментированные пакеты.
    ПРИМЕЧАНИЕ. Рекомендуется установить флажок «Фрагментировать исходящие пакеты, не относящиеся к VPN, размер которых превышает MTU данного интерфейса», если MTU установлено ниже значения по умолчанию 1500.Нажмите ОК, чтобы обработать введенные изменения.

    Разрешение фрагментации на устройстве SonicWall

    Для исходящего правила по умолчанию необходимо сделать дополнительную настройку, разрешающую фрагментацию. Перейдите к Политики | Правила и политики | Правила доступа (SonicOS Standard и Enhanced) интерфейса управления. Найдите правило по умолчанию, которое позволяет по умолчанию переключать LAN на WAN. Щелкните значок E dit рядом с этим правилом и установите флажок «Разрешить фрагментированные пакеты» .Нажмите ОК , чтобы обновить изменения.

    Внесение этих изменений настроек позволит фрагментированным пакетам проходить из LAN, а также позволит SonicWall уменьшить размер MTU пакета. Это может иметь большое значение для исходящих пакетов, которые не могут пройти.

    Разрешение для SonicOS 6.5

    Этот выпуск включает в себя значительные изменения пользовательского интерфейса и множество новых функций, которые отличаются от SonicOS 6.2 и более ранние прошивки. Приведенное ниже разрешение предназначено для клиентов, использующих прошивку SonicOS 6.5.

    Изменение настроек MTU на устройстве SonicWall

    1. Щелкните УПРАВЛЕНИЕ , перейдите к сети | Интерфейсы
    2. Щелкните значок Настроить (изменить) рядом с интерфейсом WAN (X1) . Щелкните вкладку Advanced

    Интерфейс MTU — Указывает наибольший размер пакета, который интерфейс может пересылать без фрагментации пакета.

    Фрагмент исходящих пакетов без VPN, превышающих MTU этого интерфейса — Указывает, что все исходящие пакеты без VPN, размер которых превышает MTU этого интерфейса, должны быть фрагментированы. Определение фрагментации исходящих пакетов VPN устанавливается в VPN | Продвинутая стр.

    Бит игнорировать, не фрагментировать (DF) — Заменяет биты DF в пакетах.

    Не отправлять ICMP Fragmentation Needed для исходящих пакетов через MTU интерфейса — блокирует уведомление о том, что этот интерфейс может получать фрагментированные пакеты.

    ПРИМЕЧАНИЕ. Рекомендуется установить флажок «Фрагментировать исходящие пакеты, не относящиеся к VPN, размер которых превышает MTU данного интерфейса», если значение MTU ниже значения по умолчанию 1500. Нажмите OK, чтобы обработать введенные изменения.

    Разрешение фрагментации на устройстве SonicWall

    Для исходящего правила по умолчанию необходимо сделать дополнительную настройку, разрешающую фрагментацию. Перейдите к политике | Правила доступа (SonicOS Standard и Enhanced) интерфейса управления.Найдите правило по умолчанию, разрешающее по умолчанию переход от локальной сети к глобальной. Щелкните значок E dit рядом с этим правилом и установите флажок «Разрешить фрагментированные пакеты» . Нажмите ОК , чтобы обновить изменения.

    Внесение этих изменений настроек позволит фрагментированным пакетам проходить из LAN, а также позволит SonicWall уменьшить размер MTU пакета. Это может иметь большое значение для исходящих пакетов, которые не могут пройти.

    ВНИМАНИЕ: В связи с дополнительными сложностями, VPN требуют другого типа теста MTU: Установите MTU в среде VPN в случае проблем с пропускной способностью

    Связанные статьи

    Категории

    Глава 9. Настройка максимального размера единицы передачи (MTU) Платформа Red Hat OpenStack 15

    OpenStack Networking может рассчитать максимально возможный максимальный размер единицы передачи (MTU), который вы можете безопасно применить к экземплярам. Значение MTU указывает максимальный объем данных, который может передать один сетевой пакет; это число варьируется в зависимости от наиболее подходящего размера для приложения.Например, для общих ресурсов NFS может потребоваться размер MTU, отличный от размера MTU для приложения VoIP.

    Примечание

    Вы можете использовать команду Neutron net-show для просмотра максимально возможных значений MTU, вычисляемых OpenStack Networking. net-mtu — это расширение API нейтронов, которое отсутствует в некоторых реализациях. Требуемое значение MTU может быть объявлено клиентам DHCPv4 для автоматической настройки, если это поддерживается экземпляром, а также клиентам IPv6 через пакеты объявления маршрутизатора (RA).Чтобы отправлять объявления маршрутизатора, сеть должна быть подключена к маршрутизатору.

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

    Например, кружки на следующей диаграмме указывают различные точки, в которых значение MTU должно быть скорректировано для трафика между экземпляром и физическим сервером.Вы должны изменить значение MTU для того интерфейса, который обрабатывает сетевой трафик, чтобы приспособить пакеты с определенным размером MTU. Это необходимо, если трафик проходит от экземпляра 192.168.200.15 через физический сервер 10.20.15.25 :

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

    9.2. Настройка параметров MTU в Director

    В этом примере показано, как установить MTU с помощью шаблонов конфигурации NIC. Вы должны установить MTU на мосту, связке (если применимо), интерфейсе (ах) и VLAN (ах):

     -
                  тип: ovs_bridge
                  имя: br-изолированные
                  use_dhcp: ложь
                  mtu: 9000 # <--- Установить MTU
                  члены:
                    -
                      тип: ovs_bond
                      имя: bond1
                      mtu: 9000 # <--- Установить MTU
                      ovs_options: {get_param: BondInterfaceOvsOptions}
                      члены:
                        -
                          тип: интерфейс
                          имя: ens15f0
                          mtu: 9000 # <--- Установить MTU
                          первичный: правда
                        -
                          тип: интерфейс
                          имя: enp131s0f0
                          mtu: 9000 # <--- Установить MTU
                    -
                      тип: vlan
                      устройство: bond1
                      vlan_id: {get_param: InternalApiNetworkVlanID}
                      mtu: 9000 # <--- Установить MTU
                      адреса:
                      -
                        ip_netmask: {get_param: InternalApiIpSubnet}
                    -
                      тип: vlan
                      устройство: bond1
                      mtu: 9000 # <--- Установить MTU
                      vlan_id: {get_param: TenantNetworkVlanID}
                      адреса:
                      -
                        ip_netmask: {get_param: TenantIpSubnet} 

    9.3. Просмотр итогового расчета MTU

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

     # openstack network show <сеть> 

    Отладка проблем MTU

    Отладка проблем с MTU

    Отладка проблем с максимальным размером передаваемого блока (MTU) может быть сложной задачей.Начнем с определения (http://searchnetworking.techtarget.com/definition/maximum-transmission-unit):

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

    По умолчанию для большинства сетевых устройств и операционных систем (Linux, Windows, Macintosh) используется MTU в 1500 байт.В некоторых установках, особенно в мире R&E, широко используются Jumbo Frames (http://searchnetworking.techtarget.com/definition/jumbo-frames):

    Jumbo-кадр - это кадр Ethernet с полезной нагрузкой, превышающей стандартную максимальную единицу передачи (MTU) в 1500 байтов. Jumbo-кадры используются в локальных сетях, которые поддерживают не менее 1 Гбит / с и могут достигать 9000 байт.

    Изменение настройки MTU на хосте и в сети дает некоторое преимущество в производительности:

    • Goodput (например,грамм. пропускная способность прикладного уровня: количество полезной информации, доставляемой через сеть в единицу времени) увеличивается
    • Повышение эффективности протокола
    • Сети, которые используют туннелирование / инкапсуляцию (например, наложения, такие как VLAN или VRF), требуют места в каждом пакете. В сети 1500 байт это означает меньше места для фактической полезной нагрузки

    Установка MTU на 9000 байт должна выполняться осторожно. В частности:

    • Убедитесь, что сетевое оборудование может поддерживать фреймы большего размера, а также сетевую карту и операционные системы хостов
    • Рекомендуется установить для сетевых интерфейсов максимально возможное значение, а не просто останавливаться на 9000.Например, некоторые сетевые устройства обычно поддерживают размеры до (или выше) 9216. Это часто называют Принцип устойчивости или Закон Постела (после работы Джона Постела в TCP):
    • Хостам не требуется , чтобы следовать этому правилу, их следует установить только на 9000
  • T Значение MTU должно соответствовать всем устройствам, подключенным к этой сети уровня 2 .Проще говоря - все в широковещательном домене должно использовать один и тот же MTU, иначе все перестанет работать.
  • После того, как вы установили свою сеть на 9000 байт, неплохо проверить, чтобы убедиться, что вы все еще можете подключиться к внешнему миру. Ping и tracepath будут инструментами, которые вы хотите использовать. Например, мы должны иметь возможность передать пакет длиной 9000 байтов от конца до конца:

       [[email protected] ~] # ping -s 8972 -M do -c 4 perfsonar02.hep.wisc.edu 
    PING perfsonar02.hep.wisc.edu (144.92.180.76) 8972 (9000) байтов данных.
    8980 байт из perfsonar02.hep.wisc.edu (144.92.180.76): icmp_seq = 1 ttl = 60 time = 22,6 мс
    8980 байт из perfsonar02.hep.wisc.edu (144.92.180.76): icmp_seq = 2 ttl = 60 время = 22,6 мс
    8980 байт из perfsonar02.hep.wisc.edu (144.92.180.76): icmp_seq = 3 ttl = 60 time = 22,6 мс
    8980 байт из perfsonar02.hep.wisc.edu (144.92.180.76): icmp_seq = 4 ttl = 60 время = 22,6 мс

    --- perfsonar02.hep.wisc.статистика edu ping ---
    4 пакета передано, 4 получено, потеря пакетов 0%, время 3026 мс
    rtt min / avg / max / mdev = 22,621 / 22,639 / 22,684 / 0,109 мс

    Мы также можем использовать путь трассировки для проверьте весь путь (обратите внимание, что мы будем искать точку, в которой значение будет снижено с 9000 в случае возникновения проблемы):

      [[email protected] ~] # tracepath perfsonar02.hep.wisc.edu 
    1 ?: [LOCALHOST] pmtu 9000
    1: lhcone-wash-opt1-gw.es.net (198.124.80.202) 0,827 мс
    1: lhcone-wash-opt1-gw.es.net (198.124.80.202) 0,481 мс
    2: esnet-lhc1-uwmadison.es.net (198.124.80.101) 17,939 мс
    3: uwmadison-lhc1 -esnet.es.net (198.124.80.102) 24.260 мс
    4: нет ответа
    5: perfsonar02.hep.wisc.edu (144.92.180.76) 22.651 мс достигнуто
    Резюме: pmtu 9000 переходов 5 назад 5

    Регулярный мониторинг также позволяет нам узнать о проблеме.Рассмотрим график ниже - все работало достаточно хорошо, пока производительность внезапно (и явно) не снизилась:

    Обратите внимание, что если мы отлаживаем проблему такого рода, мы хотим увидеть, существует ли проблема и для других хостов. . В этом случае все тесты, которые проводил этот хост, примерно в одно и то же время демонстрировали одну и ту же модель ухудшения:

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

      [[email protected] ~] # ping -s 1476 -M do -c 4 perfsonar02.cmsaf.mit.edu 
    PING perfsonar02.cmsaf.MIT.edu ( 18.12.1.172) 1476 (1504) байт данных.
    1484 байта из perfsonar02.cmsaf.mit.edu (18.12.1.172): icmp_seq = 1 ttl = 57 time = 13,4 мс
    1484 байта из perfsonar02.cmsaf.mit.edu (18.12.1.172): icmp_seq = 2 ttl = 57 time = 13,4 мс
    1484 байт из perfsonar02.cmsaf.mit.edu (18.12.1.172): icmp_seq = 3 ttl = 57 time = 13,4 мс
    1484 байта из perfsonar02.cmsaf.mit.edu (18.12.1.172): icmp_seq = 4 ttl = 57 time = 13,4 мс

    --- perfsonar02.cmsaf.MIT.edu статистика пинга ---
    4 пакета передано, 4 получено, потеря пакетов 0%, время 3018 мс
    rtt min / avg / max / mdev = 13.425 / 13.449 / 13,482 / 0,023 мс

    Увеличение на один байт приводит к ошибке:

      [[email protected] ~] # ping -s 1477 -M do -c 4 perfsonar02.cmsaf.mit.edu 
    PING perfsonar02. cmsaf.MIT.edu (18.12.1.172) 1477 (1505) байт данных.

    --- perfsonar02.cmsaf.MIT.edu статистика пинга ---
    4 пакета передано, 0 получено, 100% потеря пакетов, время 12999 мс

    Из этих данных мы можем сказать, что даже если хост установлен на 9000 , мы не можем получить пакеты размером 9000 байт от конца до конца.Наконец, мы можем посмотреть на результаты теста iperf в реальном времени, чтобы увидеть, каково реальное поведение ссылки.

      SENDER START 
    Подключение к хосту 198.124.80.193, порт 5662
    [15] локальный 18.12.1.172 порт 44329 подключен к 198.124.80.193 порт 5662
    [ID] Interval Transfer Bandwidth Retr Cwnd
    [15] 0,00–1,00 сек 87,4 КБайт 0,72 Мбит / с 2 26,2 КБайт
    [15] 1,00–2,00 с 0,00 байта 0,00 Мбит / с 1 26,2 КБайт
    [15] 2.00–3,00 с 0,00 байтов 0,00 Мбит / с 0 26,2 КБайт
    [15] 3,00–4,00 с 0,00 байтов 0,00 Мбит / с 1 26,2 КБайт
    [15] 4,00–5,00 с 0,00 байтов 0,00 Мбит / с 0 26,2 КБайт
    [15 [ 15] 8.00–9,00 с 0,00 байтов 0,00 Мбит / с 0 26,2 КБайт
    [15] 9,00–10,00 с 0,00 байтов 0,00 Мбит / с 0 26,2 КБайт
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    [ID] Interval Transfer Bandwidth Retr
    [15] 0.00-10.00 sec 87.4 KB 0.07 Mbits / sec 5 sender
    [15] 0.00-10.00 sec 0.00 Bytes 0.00 Mbits / sec Receiver

    iperf Готово.

    КОНЕЦ ОТПРАВИТЕЛЯ

    Это очень распространенный образец, когда MTU нарушен:

    • Несколько пакетов проходят в начале, когда начинается согласование для соединения
    • Поскольку обе стороны думают, что они используют фреймы размером 9000 байт (например,грамм. если оба хоста настроены на 9000, но посередине есть дыра), это размер, который будет использоваться
    • Когда начинается передача, пакеты блокируются из-за отсутствия поддержки MTU где-то посередине
    • Результатом всегда является очень маленькое число, и 87,4 КБ очень часто (количество пакетов, которые пытаются пройти во время согласования MTU)

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

    Leave a comment