Как изменить mtu на cisco

Configuring System MTU

Configuring System MTU

Restrictions for System MTU

When configuring the system MTU values, follow these guidelines:

  • The device does not support the MTU on a per-interface basis.

  • If you enter the system mtu
    bytes
    command in global configuration mode, the command affects all the switched and routed ports on the switch.

Information About the MTU

The default maximum transmission unit (MTU) size for payload received in Ethernet frame and sent on all device interfaces
is 1500 bytes.

System MTU Value Application

The upper limit of the IP or IPv6 MTU value is based on the switch or switch stack configuration and refers to the currently applied system MTU value. For more information about setting the MTU sizes, see the system mtu global configuration command in the command reference for this release.

How to Configure MTU

Configuring the System MTU

Follow these steps to change the MTU size for switched packets:

Procedure

  Command or Action Purpose
Step 1

enable

Example:


Device> enable

Enables privileged EXEC mode.

  • Enter your password if prompted.

Step 2

configure terminal

Example:

Device# configure terminal

Enters global configuration mode.

Step 3

system mtu
bytes

Example:

Device(config)# system mtu 1900

(Optional) Changes the MTU size for all interfaces.

Step 4

end

Example:

Device(config)#  end

Returns to privileged EXEC mode.

Step 5

copy
running-config startup-config

Example:

Device# copy running-config startup-config

Saves your entries in the configuration file.

Step 6

show system mtu

Example:

Device# show system mtu

Verifies your settings.

Configuring Protocol-Specific MTU

To override system MTU values on routed interfaces, configure protocol-specific MTU under each routed interface. To change
the MTU size for routed ports, perform this procedure

Procedure

  Command or Action Purpose
Step 1

configure terminal

Example:

Device# configure terminal

Enters global configuration mode.

Step 2

interface
interface

Example:

Device(config)# interface gigabitethernet0/0

Enters interface configuration mode.

Step 3

ip mtu
bytes

Example:

Device(config-if)# ip mtu 68

Changes the IPv4 MTU size

Step 4

ipv6 mtu
bytes

Example:

Device(config-if)# ipv6 mtu 1280

(Optional) Changes the IPv6 MTU size.

Step 5

end

Example:

Device(config-if)#  end

Returns to privileged EXEC mode.

Step 6

copy
running-config startup-config

Example:

Device# copy running-config startup-config

Saves your entries in the configuration file.

Step 7

show system mtu

Example:

Device# show system mtu

Verifies your settings.

Configuration Examples for System MTU

Example: Configuring Protocol-Specific MTU

Device# configure terminal
Device(config)# interface gigabitethernet 0/1
Device(config-if)# ip mtu 900 
Device(config-if)# ipv6 mtu 1286
Device(config-if)# end

Example: Configuring
the System MTU

Device# configure terminal
Device(config)# system mtu 1600
Device(config)# exit

Additional References for System MTU

Related Documents

Related Topic Document Title

For complete syntax and usage information for the commands used in this chapter.

See the Interface and Hardware Commands section in the Command Reference (Catalyst 9200 Series Switches)

Feature History for System MTU

This table provides release and related information for features explained in this module.

These features are available on all releases subsequent to the one they were introduced in, unless noted otherwise.

Release

Feature

Feature Information

Cisco IOS XE Fuji 16.9.2

System MTU

System MTU defines the maximum transmission unit size for frames transmitted on all interfaces of a switch.

Use Cisco Feature Navigator to find information about platform and software image support. To access Cisco Feature Navigator,
go to http://www.cisco.com/go/cfn.

«Мы не знаем что это такое, если бы мы знали что это такое, мы не знаем что это такое». Примерно так можно описать параметр MTU, если не читать текст ниже. Какой вариант выбрать — решать только тебе.

MTU (англ. Maximum Transmission Unit — максимальной передаваемой единицы) — это  максимальный размер блока данных (в байтах), который может быть передан на канальном уровне OSI без фрагментации. Т.е. это размер самого крупного кадра или пакета, который можно отправить через сетевой интерфейс (размер, в который должен инкапсулировать свой пакет протокол IP)

Типичный размер, являющийся неким стандартом, MTU для физического L3-интерфейса 1500 байт (т.е. максимальный размер L3 пакета, который может передаваться в L2 фрейм).

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

Картинка побольше и попроще:

Считается, что MTU является характеристикой канального уровня модели OSI. Но на вышестоящих уровнях (L3 и L4) тоже есть своё понятие MTU. Так же этот параметр может быть вообще не связан с определенным уровнем. Существуют такие понятия как: tunnel mtu, vlan mtu, routing mtu, mpls mtu (где может добавляться l2+ заголовок, т.н. mpls-метка).

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

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

При использовании туннелирования, размер пакета увеличивается за счёт дополнительных заголовков (GRE, IPSec и т.д.). Или, например, при работе протокола PPPoE (часто используется провайдерами) максимальное значение параметра MTU составляет 1492 байта — то есть стандартные 1500 байт для Ethernet за вычетом восьми байт заголовков.

Понятие IP MTU

У сетевого протокола есть своё понятие MTU. Максимальный размер пакета с IP-заголовком, который может передать сетевой интерфейс без фрагментации называется IP MTU.

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

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

Протоколы транспортного уровня (протоколы TCP или UDP), пользующиеся сетевым уровнем для отправки пакетов, считают, что максимальный размер поля данных IP-пакета равен 65535, и поэтому могут передать ему сообщение такой длины для транспортировки.

В функции уровня IP входит разбиение слишком длинного для конкретного типа составляющей сети сообщения на более короткие пакеты с созданием соответствующих служебных полей, нужных для последующей сборки фрагментов в исходное сообщение

Понятие MSS

МSS (Maximum Segment Size) — максимальный размер данных (без TCP-заголовка), которое хост сможет принять в одной TCP/IP дейтаграмме. Рассчитывается по формуле:

МSS = IP MTU — IP заголовок (20 байт) — размер TCP-заголовка (20 байт) ≈ 1460 байт.

TCP/IP-дейтаграмма может быть фрагментирована на уровне IP, также значение MSS может передаваться в качестве отдельной опции TCP-заголовка, но только в сегментах TCP SYN. Каждая сторона на TCP соединении сообщает свое значение MSS другой стороне. Хост отправитель обязан ограничивать размер данных в единственном TCP сегменте в значение, меньшем или равном MSS, о котором сообщает хост получатель.

Как всё это работает? При создании TCP соединения, машина определяет размер буфера исходящего интерфейса и MTU этого интерфейса. Дальше эти два числа сравниваются и выбирается наименьшее. Как мы помним, MTU высчитывается с учетом минуса IP и TCP-заголовка (-40 байт). Затем выбранное число сравнивается с размером MSS, переданным принимающей стороной, и снова выберется наименьшее значение, если у принимающей машины он меньше.

Через Wireshark можно посмотреть на длину сегмента TCP MSS. Например, при открытии страницы в браузере:

Фрагментация

Фрагментация  — это разбиение блока данных пакета при его отправке, размер которого превышает значение MTU сетевого интерфейса. Стек TCP/IP разобьет этот пакет на более мелкие части (фрагменты), соответствующие MTU интерфейса.

Фрагментация происходит на уровне IP-адреса и не зависит от базового протокола, например, в стеке TCP/IP, например, эту задачу решает протокол транспортного уровня TCP. Этот протокол может разбивать поток байтов, передаваемый ему с прикладного уровня на сообщения нужного размера (например, на 1460 байт для протокола Ethernet).

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

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

Таким образом, когда IP-пакет отправляется, он устанавливает в поле Identification значение, которое должно быть уникальным для данной пары отправитель — получатель. Кроме этого отправитель в заголовке пакета устанавливает время, в течение которого пакет может быть активным в сети.

Поле смещения фрагмента (Fragment Offset) сообщает получателю положение фрагмента в исходном пакете. Смещение фрагмента и длина определяют часть исходного пакета, принесенную этим фрагментом.

Флаг More fragments показывает появление последнего фрагмента. Модуль протокола IP, отправляющий неразбитый на фрагменты пакет, устанавливает в нуль флаг More fragments и смещение во фрагменте.

Чтобы разделить на фрагменты большой пакет, модуль протокола IP, установленный, например, на маршрутизаторе, создает несколько новых пакетов и копирует содержимое полей IP-заголовка из большого пакета в IP-заголовки всех новых пакетов. Данные из старого пакета делятся на соответствующее число частей, размер каждой из которых, кроме самой последней, обязательно должен быть кратным 8 байт.

Размер последней части данных равен полученному остатку, а каждая из полученных частей данных помещается в новый пакет.

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

В заголовок каждого пакета заносятся соответствующие значения в поле смещения «fragment offset», а в поле общей длины пакета помещается длина каждого пакета.

Таким образом, первый фрагмент будет иметь в поле Fragment Offset нулевое значение. Во всех пакетах, кроме последнего, флаг More fragments устанавливается в единицу, а в последнем фрагменте — в нуль.

Сборка фрагментов пакета происходит в обратном порядке: IP-протокол объединяет IP-пакеты, имеющие одинаковые значения в полях идентификатора, отправителя, получателя и протокола. Процедура объединения заключается в помещении данных из каждого фрагмента в позицию, указанную в заголовке пакета в поле Fragment Offset.

Почему могут не фрагментироваться пакеты? У вашего провайдера может стоять запрет на приём фрагментированных пакетов. Для сетевого устройства фрагментация — довольно затратный процесс, особенно, если задействовано CPU, да и rate limit’ы никто не отменял

Проверяем MTU на железе

Сложившаяся практика гласит, что разные вендоры устанавливают разные MTU для сетевых интерфейсов по умолчанию. Возьмем два самых распространённых — Cisco и Juniper.

Оборудование Cisco рассматривает параметр MTU в соответствии c классическим определением от IEEE, то есть по дефолту на интерфейсах установлено 1500 байт, заголовок L2 кадра при этом не учитывается.

Оборудование от Juniper Networks. наоборот, считает MTU вместе с L2 заголовком —  по умолчанию задано 1518 байт, где 18 байт — размер L2 заголовка с 802.1q тегом. Если пинговать джунипер, то можно заметить, что максимум он даёт 1472 байта. Всё потому, что он учитывает еще 20 байт IP заголовка + 8 байт ICMP (1500-28 = 1472)

Отдельно можно посмотреть на MPLS MTU

Проверить MTU на интерфейсе Juniper можно с помощью команды show configuration interfaces или show interfaces:

@RTR-DEST> show configuration interfaces ge-3/0/0
description «## to RTR-DEST2 ##»;
mtu 9100;
hold-time up 1000 down 0;
unit 0 {
family ethernet-switching {
port-mode trunk;
@RTR-TRZ> show interfaces xe-0/1/0
Physical interface: xe-0/1/0, Enabled, Physical link is Up
Interface index: 257, SNMP ifIndex: 814
Description: << 10GE to RTR-TRZ2 xe-0/1/0 >>
Link-level type: Ethernet, MTU: 9100, Speed: 10Gbps, Duplex: Full-Duplex, BPDU Error: None, MAC-REWRITE Error: None, Loopback: Disabled,

На оборудовании CIsco это можно сделать командой sh int

RTR-CIS2#sh int Fa0/7
Load for five secs: 5%/0%; one minute: 4%; five minutes: 4%
Time source is NTP, 14:54:09.951 MSK Tue Jul 14 2015
FastEthernet0/7 is up, line protocol is up (connected)
Description: ## LM:  TESTED ##
MTU 1998 bytes, BW 100000 Kbit, DLY 100 usec,
reliability 255/255, txload 21/255, rxload 7/255
RTR-CIS2#sh int Gi0/1
Load for five secs: 4%/0%; one minute: 5%; five minutes: 5%
Time source is NTP, 14:54:19.497 MSK Tue Jul 14 2015
GigabitEthernet0/1 is up, line protocol is up (connected)
Description: << To backbone >>
MTU 1998 bytes, BW 1000000 Kbit, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 3/255

Для того что бы изменить MTU на маршрутизаторах под управлением Cisco IOS используется команда интерфейс уровня:

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

Чтобы транзитное устройство не дропало пакеты с малым MTU, необходимо, чтобы маршрутизатор прослушивал TCP SYN пакеты и подменять значения MSS анонсируемые конечным устройством

Какой у меня сейчас размер MTU

Предположим, что вы подключены к PON-сети какого-либо провайдера. Какой MTU используется в вашей сети? Проверить можно с помощью команды PING

ping [url] -f -l <размер_пакета>

Начинаем тест и перебираем значения до тех пор, пока не увидите, сообщение о необходимости фрагментации пакета.

Как видите, наш провайдер запрещает фрагментацию пакетов по умолчанию. Смещаем параметр на единицу и всё прошло. Получается, что наш оптимальный размер пакета  без фрагментации 1464 байта?

Это не совсем так. Размер 1456 байт — это еще не MTU. Это значение MSS. Дело в том, что Флаг -l в Windows-версии ping указывает не MTU, а размер ICMP Payload, т.е.чистую полезную нагрузку и не учитывает заголовки ICMP и IP.

Сейчас командой ping yandex.ru -f -l 1464 мы сгенерировали пакеты не 1464 байта, а 1492 байта, т.к. сюда добавляется ICMP заголовок (8 байт) и заголовок IP (20 байт). Как итог — наш оптимальный MTU — 1492 байта. Также нужно помнить, что DF (запрещающий/разрешающий фрагментацию) флаг пакета может быть модифицирован на транзитных маршрутизаторах

Чтобы посмотреть MTU на сетевой карте или беспроводном адаптере, выполните в командной строке команду netsh interface ipv4 show subinterfaces

В Windows открываем командную строку с правами администратора и выполняем команду:

netsh interface ipv4 show subinterfaces

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

netsh interface ipv4 set subinterface <имя_интерфейса> mtu=1450 store=persistent

Если необходимо сбросить настройки к исходному состоянию, выполняем команду:

netsh interface ipv4 reset

FIN.

January 27 2019, 09:00

Categories:

  • IT
  • Компьютеры
  • Cancel

Для передачи больших пакетов между серверами в ЦОД нужно увеличить L2 MTU на сетевых устройствах.

На IBM Blade switch изначально выставлено значение MTU в 9216 и изменить его нельзя.
В подготовке и проведении работ по увеличению MTU на оборудовании Cisco помогли статьи:

Configure and Verify Maximum Transmission Unit on Cisco Nexus Platforms — https://www.cisco.com/c/en/us/support/docs/switches/nexus-9000-series-switches/118994-config-nexus-00.html
и
Peter Revill CCIE Blog. CCIE DC: Definitive Jumbo frames — http://ccierants.blogspot.com/2013/10/ccie-dc-definitive-jumbo-frames.html

Коммутаторы Nexus 5K и 9K соединены через Catalyst 6807. MTU увеличивалось только на интерфейсах, к которым они подключены — это 2 LAG. На коммутаторах 6500 и 6800 серии можно менять MTU на LAG и эти настройки будут применены к физическим интерфейсам, из которых собран LAG (никакого перерыва связей не замечено):

interface Port-channel1
 switchport
 switchport trunk allowed vlan 5,10,20
 switchport mode trunk
 mtu 9216

На платформе Nexus 5K (nx-os 6.0) MTU изменяется только через Network QoS policy, на отдельном порту изменить значение MTU нельзя. Значения policy применяются ко всем интерфейсам, включая интерфейсы FEX. Можно создать новую policy или изменить существующую. Если решили сделать новую:

policy-map type network-qos jumbo
  class type network-qos class-default
          mtu 9216
system qos
  service-policy type network-qos jumbo

Чтобы посмотреть все настроенные policy:
sh policy-map

Посмотреть примененные policy:
sh policy-map system

Кстати, на платформе Nexus 5K есть баг, из-за которого смотреть значение MTU на конкретном интерфейсе нужно командой:
sh queuing int e1/1

Если смотреть обычной:
sh int e1/1

то всегда будет указано 1500.

На платформе Nexus 9K (nx-os 7.3) MTU можно менять на отдельных портах:

interface Ethernet1/25
  mtu 9216

Т.к. порты обычно собираются в vPC, то настройки делать можно на LAG:

interface port-channel5
  switchport
  switchport mode trunk
  switchport trunk allowed vlan 5,10,20
  mtu 9216
  vpc 5

Чтобы изменить MTU на портах FEX, нужно менять значение на LAG, к которому подключен FEX.

interface port-channel101
  description N2K_2248
  switchport
  switchport mode fex-fabric
  fex associate 101
  mtu 9216

При этом на vpc peer-link интерфейсах MTU автоматически устнавливается в максимальное значение — 9216

Category:Cisco Systems -> Routing and Switching

Speaking about MTUs on routers it has to be emphasized that changing L2 MTU on an interface is not supported. If you try to change L2 MTU on an interface, you will possibly see the following message:


r1(config-if)#mtu 1500
% Interface FastEthernet0/0 does not support user settable mtu

The same refers to switch interface cards.

To check L3 MTU on an interface issue sh ip int {if-number}. To check L2 MTU issue sh int {if-number} command. Logically speaking, L3 MTU setting can’t be greater than L2 MTU setting. These numbers don’t take headers and trailers into account, so the actual MTU would be a little higher than the ones that are set in IOS.

While talking about MTU on Cisco routers many people always argue about the differences between setting ip mtu and ip tcp adjust-mss values on a routed interface.

Let’s take the following topology for our experiments:

MTU-on-Cisco-Routers-10.jpg

According to the diagram (actually it was a real situation) the host has some difficulties accessing web-sites. Some web-sites do open in the browser and some do not. The issue is in MTU. And there are two ways to solve the issue.

The Bad Way

The weakest solution is to set ip mtu and ip tcp adjust-mss on fa0/0.13 of the router.

ip mtu works only in the output direction. The router will fragment packets to a maximum size of 1496 byte coming out of the interface. It will fragment transit packets on the way from the outside network to the host. It produces high load on the CPU of the router.

ip tcp adjust-mss works in both directions and affects inbound and outbound transit packets. This option will make the router to tell the host about the preferred L4 payload size inside the transit packets during TCP handshake stage between the host and, for example, a web-server somewhere in the Internet. TCP has MSS field in its header which is agreed upon before transmitting actual data. So we can make the host and the remote server to establish session and start exchanging data at our desired maximum MSS payload. Take into consideration that IP and TCP headers would be added to this MSS payload, so make MSS value smaller than that of IP MTU one and you’ll be fine. The lab presented here was tested with the following values:


int fa0/0.13
ip mtu 1400
ip tcp adjust
-mss 1300 

But if we do some calculations and predict possible changes and additions to IP and TCP headers by different applications and take some reserve we could optimize these values to the following:


ip mtu 1496
ip tcp adjust
-mss 1440 

To calculate the exact number for MSS use the following articles by E.Garcia:

  1. File:mtu mss tutorial.pdf
  2. File:ip packet fragmentation 1.pdf

Try also this one. It explains very well the differences between ip mtu and ip tcp adjust-mss: File:MTU.zip

The Good Way

The best solution is to do something with the in-between switch, e.g. raise its system MTU up to 1504 or replace it to avoid either fragmenting packets or adjusting MSS payload using the router’s CPU resources.

By privilege15

Maximum Transmission Unit (MTU) is the largest size in bytes that a certain layer can forward. The MTU is different for each protocol and medium that we use. Ethernet for example has a MTU of 1500 bytes by default.

This means that a single Ethernet frame can carry up to 1500 bytes of data. On top of this data we add the Ethernet header. Typical header sizes are 14 bytes for Ethernet (add another 4 bytes if you use 802.1Q tagging).

Below is a picture with the different MTU fields that you might encounter:

MTU Header Sizes

You can see that a typical Ethernet header is 14 bytes, IP is 20 bytes and TCP is also 20 bytes. The maximum amount of payload that TCP can use is called the TCP MSS (Maximum Segment Size). This MSS value is the largest amount of data that a host can receive in a single TCP segment. This value is used to set a limit on the payload in order to prevent fragmentation and is sent in the SYN packet during the 3 way handshake. The MSS value isn’t synchronized between hosts, it can be different for each direction.

So why is all of this important to know? Let’s imagine we have an IP packet that is sent on our LAN. The size of the Ethernet frame will be like this:

  • 1460 bytes of payload for TCP.
  • 20 bytes for the TCP header.
  • 20 bytes for the IP header.
  • 14 bytes for the Ethernet header.

1460 (PAYLOAD) + 20 (TCP)  + 20 (IP) = 1500 bytes + 14 (ETHERNET) = 1514 bytes in total.

Sending 1514 bytes is no problem for Ethernet but some other mediums might have issues with large MTU values. Often problems arise when you add additional headers because of PPPoE, GRE Tunneling or IPSEC since this reduces the available bytes for our MTU. To demonstrate this problem (and how to solve it!) I will use a simple network with a reduced MTU. Here’s what it looks like:

r1 r2 webserver host

The network above has two routers, a webserver (S1) behind R1 and a client (H1) behind R2. Here’s what the configuration looks like:

Configuration

First we’ll configure some IP addresses:

R1(config)#interface fastEthernet 0/0
R1(config-if)#ip address 192.168.12.1 255.255.255.0

R1(config)#interface fastEthernet 0/1           
R1(config-if)#ip address 192.168.1.254 255.255.255.0
R2(config)#interface fastEthernet 0/0
R2(config-if)#ip address 192.168.12.2 255.255.255.0
R2(config)#interface fastEthernet 0/1
R2(config-if)#ip address 192.168.2.254 255.255.255.0

I’ll add some static routes for connectivity:

R1(config)#ip route 192.168.2.0 255.255.255.0 192.168.12.2
R2(config)#ip route 192.168.1.0 255.255.255.0 192.168.12.1

Here’s what the default MTU values look like:

R2#show interfaces fastEthernet 0/0 | include MTU
  MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec, 

R2#show ip interface fastEthernet 0/0 | include MTU
  MTU is 1500 bytes

The first MTU value is the interface MTU, it’s 1500 bytes by default for Ethernet. The second one is the IP MTU which is also 1500 bytes. Once you get above 1500 bytes your router will start fragmenting the IP packets.

Is this limit of 1500 bytes really working? There’s an easy way to find out. Let’s do a ping with the DF-bit (Don’t Fragment) between the routers:

R2#ping
Protocol [ip]:   
Target IP address: 192.168.12.1
Repeat count [5]: 1
Datagram size [100]: 
Timeout in seconds [2]: 
Extended commands [n]: y
Source address or interface: 
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]: v
Loose, Strict, Record, Timestamp, Verbose[V]: 
Sweep range of sizes [n]: y
Sweep min size [36]: 1495
Sweep max size [18024]: 1505
Sweep interval [1]: 
Type escape sequence to abort.
Sending 11, [1495..1505]-byte ICMP Echos to 192.168.12.1, timeout is 2 seconds:
Packet sent with the DF bit set
Reply to request 0 (1 ms) (size 1495)
Reply to request 1 (4 ms) (size 1496)
Reply to request 2 (1 ms) (size 1497)
Reply to request 3 (4 ms) (size 1498)
Reply to request 4 (1 ms) (size 1499)
Reply to request 5 (4 ms) (size 1500)
Request 6 timed out (size 1501)
Request 7 timed out (size 1502)
Request 8 timed out (size 1503)
Request 9 timed out (size 1504)
Request 10 timed out (size 1505)
Success rate is 54 percent (6/11), round-trip min/avg/max = 1/2/4 ms

In the ping above you can see that the largest packet that I can send is 1500 bytes. The second packet with 1501 bytes can’t be sent because it is too large and we set the DF-bit.

Let’s look at an actual packet between the client and the webserver, see what these values look like in an actual frame:

Wireshark TCP Syn Packet Maximum Segment Size

Above you can see the TCP MSS which is 1460 bytes. What else can we see in Wireshark?

Wireshark IP TCP Ethernet Bytes Length

Above you see that the total length of the IP packet is 1500 bytes (1460 bytes for TCP MSS + 40 bytes for the TCP/IP header). Ethernet adds another 14 bytes which is how we get to 1514 bytes in total.

To simulate a network with a lower MTU I will reduce the MTU of the FastEthernet 0/0 interface of R2:

R2(config)#interface fastEthernet 0/0
R2(config-if)#mtu 1400

By reducing the MTU to 1400 bytes, the largest TCP segment size will be only 1360 bytes (1400 – 40 = 1360).  This is a scenario where users often complain that sending a ping is no problem but accessing a website or something else doesn’t work. Why? Let’s look at the example below:

Wireshark ICMP Echo Reply 74 bytes

Above you see a ping between the client and webserver. As you can see the total length is only 74 bytes…no problem to send this because our MTU allows 1400 bytes. Now we will try to connect to the webserver from the client using HTTP:

Wireshark HTTP IP Packet 1500 bytes

This is where things go wrong…as you can see above the total length of the IP Packet is 1500 bytes which is 100 bytes above our MTU of 1400 bytes. It’s impossible to communicate between the client and webserver now.

How do we fix this? There are two solutions for this:

  • Set the correct IP MTU value so the router knows when to fragment IP packets.
  • Reduce the TCP MSS value for outgoing connections so there is less payload.

Here’s how to configure the correct IP MTU value:

Понравилась статья? Поделить с друзьями:
  • Как изменить mtu на android
  • Как изменить mtu xbox one
  • Как изменить mtu ubuntu
  • Как изменить mtu openvpn
  • Как изменить mtu linux