Изменить размер mtu linux

Изменить размер MTU в Debian

Стандартный MTU (Maximum Transmission Unit, то есть максимальный блок передаваемых за раз данных) составляет 1500 байт, однако может быть увеличен до числа в диапазоне 1501 — 9198, что зависит от производителя оборудования. Чтобы увеличение MTU прошло успешно, заданный размер должен поддерживаться оборудованием на обоих концах кабеля.

Тестирование

Чтобы убедиться, что ваше оборудование поддерживает большие пакеты, можно воспользоваться утилитой ping. Для тестирования на MacOS используйте команду:

В *nix системах ping не включает заголовки ICMP (8 байт) и TCP (20 байт), поэтому мы должны вычесть их самостоятельно. Что касается MacOS, то в этом случае реализация ping не позволяет передавать больше 8192 байт, а также мы должны дополнительно вычесть 28 байт.

Возможные результаты

Если вы забыли включить jumbo frames/9k MTU на вашем клиентском устройстве, то получите следующий вывод:

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

Если же все хорошо, то результат работы ping будет таким:

Изменение MTU

Как же изменить MTU в Debian? Выполните команду:

ip link set eth0 mtu 9000

Не забыв подставить имя нужного интерфейса.

Если вы пытаетесь изменить MTU и получаете сообщение «SIOCSIFMTU: Invalid argument», значит драйвер вашей сетевой карты не поддерживает данное значение MTU.

Чтобы новое значение MTU применялось при старте системы добавьте строку «mtu 9000» к описанию интерфейса в файле /etc/network/interfaces. К примеру, так:

Источник

Смена MTU

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

Windows

Командная строка

Открываем командную строку от имени администратора.

Вводим команду для просмотра текущего значения MTU и названия сетевого интерфейса:

netsh interface ipv4 show subinterfaces

Получаем, примерно, следующее:

MTU Состояние определения носителя Вх. байт Исх. байт Интерфейс
—— ————— ——— ——— ————-
1500 1 81324794839 5376993884 Ethernet

* где 1500 — значение MTU (по умолчанию для сетей Etnernet); Ethernet — название интерфейса.

Меняем MTU следующей командой:

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

* где Ethernet — название сетевого интерфейса, которое мы получили предыдущей командой; 1492 — новое значение MTU

Реестр

Открываем реестр (команда regedit) и переходим по ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<4D36E972-E325-11CE-BFC1-08002bE10318.

Внутри будут находиться другие ветки с названиями 0000, 0001, 0002 и так далее. Необходимо пройтись по каждой и найти ключ DriverDesc со значением, похожим на название нашего сетевого адаптера и записать значение ключа NetCfgInstanceId, например:

Читайте также:  Latest windows 10 pro

Переходим в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces. Находим ветку с нашим идентификатором, который мы записали и меняем ключ MTU (при его отсутствии, создаем — тип DWORD):

Чтобы настройки применились выключаем и снова включаем сетевой интерфейс или перезагружаем компьютер.

Linux

Для примера, рассмотрим наиболее популярные дистрибутивы — CentOS и Ubuntu.

Разово

Разово (до перезагрузки) для данных двух систем настройку можно выполнить одной командой:

ip link set mtu 1400 dev eth0

* где 1400 — новое значение MTU; eth0 — сетевой интерфейс, для которого поменяли максимальный размер пакетов.

или в старых системах:

ifconfig eth0 mtu 1400

Постоянно (permanently)

Для систем на базе Debian (Ubuntu) и Red Hat (CentOS) процедура немного отличается.

Ubuntu

Открываем настройку сетевых интерфейсов:

К нужному адаптеру добавляем строчку:

iface eth0 inet static
.
mtu 9000

systemctl restart networking

CentOS

Открываем конфигурационный файл для соответствующего сетевого интерфейса:

Перезапускаем сетевую службу:

systemctl restart network

Роутер

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

Например, для большинства устройств TP-Link: NetworkWAN:

Читайте также

Инструкция по смене значения MTU на Windows и Linux

Источник

Как узнать и поменять значение MTU в Linux

Сегодня в статье поговорим Как узнать и поменять значение MTU в Linux/Ubuntu/Debian.

MTUmaximum transmission unit — максимальный размер пакет или фрейма в байтах, который может быть отправлен единовременно без фрагментации.

Узнать значение и поменять MTU в Linux

Узнать значение MTU для всех интерфейсов можно выполнив в консоли команду ip link

Чаще всего встречается 1500 — это значение по умолчанию для Ethernet интерфейсов.

Поменять MTU на сервере с Ubuntu/Debian можно так:

или так для старых систем:

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

Для постоянной смены MTU в Ubuntu

Открываем настройку сетевых интерфейсов:

К нужному адаптеру добавляем строчку со значением MTU. Вот пример настройки:

Значение теперь будет применяться даже после перезагрузки.

Меняем значение MTU при помощи Netplan

Вот еще один пример как можно сменить значение MTU, но уже через утилиту Netplan на Ubuntu 18.04/20.04

Если есть вопросы, то пишем в комментариях.

Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.

Источник

Как изменить размер MTU в Linux

Главное меню » Linux » Как изменить размер MTU в Linux

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

Читайте также:  Драйвера для acer aspire 5349 windows 10

Предпосылки

  • Система Ubuntu 20.04
  • Пользователь с привилегиями sudo

Просмотреть текущий размер MTU

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

Приведенные ниже выходные данные показывают, что текущий размер MTU интерфейса ens33 составляет 1500.

В качестве альтернативы вы также можете использовать команду ip с параметром a для просмотра текущего размера MTU:

Временное изменение размера MTU – с помощью команды ifconfig

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

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

Например, чтобы изменить размер MTU интерфейса с именем ens33 на 1000 байт, команда будет выглядеть так:

После выполнения указанной выше команды размер MTU мгновенно изменяется. Это изменение даже не требует перезапуска службы.

Вы можете проверить новый размер MTU, выполнив следующую команду в Терминале:

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

Постоянное изменение размера MTU

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

При динамической IP-адресации размер MTU устанавливается DHCP. Поэтому потребуется настроить файл конфигурации DHCP, расположенный в /etc/dhcp/dhclient.conf . Для статического IP-адреса мы внесем изменения в файл конфигурации сетевого интерфейса, расположенный в /etc/network/interfaces.

Использование файла /etc/dhcp/dhclient.conf

Если в вашей системе работает DHCP-сервер и сетевые интерфейсы настроены на получение от него IP-адресов, используйте файл /etc/dhcp/dhclient.conf для изменения размера MTU.

Отредактируйте nano /etc/dhcp/dhclient.conf, используя следующую команду:

Затем добавьте следующие строки под “send host-name = gethostname ();” в строку:

Например, чтобы установить размер MTU равным 1400, мы добавим:

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

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

Также вызовите интерфейс, используя следующую команду:

Обязательно замените фактическим сетевым интерфейсом в вашей системе, например, ens33, eth0, eth1 и т. д.

В нашем случае это будет:

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

Из выходных данных вы можете видеть, что размер MTU был изменен на 1400.

Использование файла /etc/network/interfaces

Если ваш сетевой интерфейс настроен на получение статического IP-адреса, вы можете изменить размер MTU, настроив файл / etc / network / interfaces .

Отредактируйте файл /etc/network/interfaces с помощью следующей команды в Терминале:

Добавьте в файл следующую строку:

Обязательно замените фактическим именем интерфейса, а размером MTU, который вы хотите установить на сетевом интерфейсе.

Читайте также:  Беспроводной hdmi адаптер windows

Например, чтобы изменить размер MTU интерфейса с именем ens33 на 1300 байт, команда будет выглядеть так:

После того, как вы настроили файл, сохраните и закройте его.

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

Также вызовите интерфейс, используя следующую команду:

Обязательно замените фактическим сетевым интерфейсом в вашей системе, например, ens33, eth0, eth1 и т. Д.

В нашем случае это будет:

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

Из выходных данных видно, что размер MTU был изменен на 1300. Это изменение останется постоянным и не изменится даже после перезагрузки.

Вот и все! Следуя описанным выше процедурам, вы можете временно или навсегда изменить размер MTU сетевого интерфейса в вашей системе Linux. Надеемся это поможет!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Узнать значение и поменять MTU в Linux

Узнать значение MTU для всех интерфейсов можно выполнив в консоли команду ip link

1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0:
mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000

link/ether 54:52:00:91:96:85 brd ff:ff:ff:ff:ff:ff

Чаще всего встречается 1500 — это значение по умолчанию для Ethernet интерфейсов.

Поменять MTU на сервере с Debian можно так:

ip link set dev eth0 mtu 1400

При этом начинает использоваться значение 1400, после перезагрузки эти изменения не сохранятся.

Чтобы сделать их постоянными нужно отредактировать файл /etc/network/interfaces

Для CentOS это скрипты /etc/sysconfig/network-scripts/*, для других систем иначе — для Debian также возможны варианты, но чаще всего это /etc/network/interfaces

К нужному интерфейсу достаточно дописать mtu 1400 отдельной строкой

IFACE при этом заменить именем интерфейса, таким как eth0

Если настройки сети выдаются DHCP, то секция примет такой вид:

iface eth0 inet dhcp
pre-up /sbin/ifconfig $IFACE mtu 1454

Для сервера, к которому нет доступа по SSH MTU можно узнать экспериментальным путем. Значение может потребоваться при поиске сетевых неполадок.

Это делается за счет опции -M do утилиты ping.

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

PING ya.ru (87.250.250.242) 1572(1600) bytes of data.
ping: local error: Message too long, mtu=1500

— ya.ru ping statistics —
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

28 байт вычитается, поскольку они отданы под хэдеры IP и ICMP.

При установке 1500 байт PING проходит успешно.

PING ya.ru (87.250.250.242) 1472(1500) bytes of data.
1480 bytes from ya.ru (87.250.250.242): icmp_seq=1 ttl=57 time=32.0 ms

— ya.ru ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 32.040/32.040/32.040/0.000 ms

Читайте про iface inet — директиву, которую можно увидеть в /etc/network/interfaces

Источник

Оцените статью