MTU (Maximum Transmission Unit) - это максимальный размер пакета, который может быть передан с сетевого интерфейса. Все устройства, включая серверы и коммутаторы/маршрутизаторы, участвующие в коммуникации, должны иметь одинаковый размер MTU. Большой размер MTU имеет меньше накладных расходов, связанных с ним, в то время как меньший MTU имеет меньшую задержку.
Размер MTU по умолчанию в большинстве сетей Ethernet составляет 1500 байт. Однако вы можете изменить его в соответствии с требованиями. В этом руководстве мы объясним, как изменить размер MTU в Linux.
Что такое MTU?
MTU (Maximum Transmission Unit), или максимальный размер пакета передачи данных, представляет собой ограничение на размер пакетов, которые могут быть переданы по сети. В Linux этот параметр может быть изменен для оптимизации производительности и устранения проблем с передачей данных.
Просмотр текущего размера MTU
Чтобы посмотреть текущий размер MTU вашего интерфейса ethernet, используйте команду ifconfig следующим образом:
1 | ifconfig |grep mtu |
Приведенный ниже результат показывает, что текущий размер MTU интерфейса eht0 равен 1500.
Также можно использовать команду "ip a" для просмотра текущего размера MTU:
1 | ip a | grep mtu |
Временное изменение размера MTU
Мы можем использовать команду ifconfig для изменения размера MTU сетевого интерфейса системы. Однако помните, что это изменение сохраняется после перезагрузки и возвращается к значению по умолчанию, т.е. 1500.
Чтобы изменить размер MTU интерфейса, используйте следующий синтаксис:
1 | ifconfig <Имя_интерфейса> mtu <mtu_size> up |
Например, чтобы изменить размер MTU интерфейса с именем eth0 на 1000 байт, выполните следующую команду:
1 | ifconfig eth0 mtu 1000 up |
После выполнения вышеуказанной команды размер MTU изменится мгновенно. Это изменение даже не требует перезапуска службы.
Вы можете проверить новый размер MTU, выполнив следующую команду в терминале:
1 | ifconfig | grep mtu |
Из приведенного выше результата вы можете убедиться, что размер MTU теперь изменился на 1000 байт. Однако, как уже говорилось ранее, это изменение не переживет перезагрузку. После перезагрузки размер MTU вернется к значению по умолчанию 1500.
Постоянное изменение размера MTU
Команда ifconfig мгновенно изменяет размер MTU, но это изменение не сохраняется после перезагрузки системы.
При динамической IP-адресации размер MTU устанавливается DHCP. Поэтому необходимо настроить конфигурационный файл DHCP, расположенный по адресу /etc/dhcp/dhclient.conf. Для статической IP-адресации мы внесем изменения в файл конфигурации сетевого интерфейса, расположенный по адресу /etc/network/interfaces.
Использование файла /etc/dhcp/dhclient.conf
Если в вашей системе запущен DHCP-сервер и сетевые интерфейсы настроены на получение IP-адресов от него, то для изменения размера MTU используйте файл /etc/dhcp/dhclient.conf.
Отредактируйте nano /etc/dhcp/dhclient.conf с помощью следующей команды:
1 | nano /etc/dhcp/dhclient.conf |
Затем добавьте следующие строки ниже строки
1 2 3 | send host-name = gethostname();: default interface-mtu <mtu_size> ; supersede interface-mtu <mtu_size>; |
Например, чтобы установить размер MTU равным 1400, мы добавим:
1 2 | default interface-mtu 1400; supersede interface-mtu 1400; |
Если у вас несколько интерфейсов и вы хотите изменить размер MTU только одного интерфейса, то заключите его в скобки следующим образом:
1 2 3 4 | interface "interface_name" { default interface-mtu <mtu_size>; supersede interface-mtu <mtu_size>; } |
После настройки файла сохраните и закройте его.
Теперь перезапустите сетевую службу с помощью следующей команды в Терминале:
1 | service networking restart |
Также запустите интерфейс с помощью следующей команды:
1 | ifup <interface-name> |
Обязательно замените <interface-name> на реальный сетевой интерфейс в вашей системе, например ens33, eth0, eth1 и т.д.
В нашем случае это будет:
1 | ifup eth0 |
Теперь выполните следующую команду в терминале, чтобы проверить, успешно ли изменился размер MTU.
1 | ifconfig | grep mtu |
Использование файла /etc/network/interfaces
Если ваш сетевой интерфейс настроен на получение статического IP-адреса, то вы можете изменить размер MTU, настроив файл /etc/network/interfaces.
Отредактируйте файл /etc/network/interfaces с помощью следующей команды в Терминале:
1 | nano /etc/network/interfaces |
Добавьте в файл следующую строку:
1 | post-up /sbin/ifconfig <interface-name> mtu <mtu_size> |
Обязательно замените <interface-name> на фактическое имя интерфейса, а <mtu_size> на размер MTU, который вы хотите установить на сетевом интерфейсе.
Например, чтобы изменить размер MTU интерфейса с именем ens33 на 1300 байт, выполните следующую команду:
1 | post-up /sbin/ifconfig eht0 mtu 1300 up |
После настройки файла сохраните и закройте его.
Теперь перезапустите сетевые службы с помощью следующей команды в Терминале:
1 | service networking restart |
Также запустите интерфейс с помощью следующей команды:
1 | ifup <interface-name> |
Обязательно замените <interface-name> на реальный сетевой интерфейс вашей системы, например, ens33, eth0, eth1 и т.д.
В нашем случае это будет:
1 | ifup eht0 |
Теперь выполните следующую команду в терминале, чтобы проверить, успешно ли изменился размер MTU.
1 | ip a | grep mtu |
Заключение
Изменение MTU в Linux может быть полезным для обеспечения оптимальной производительности вашей сети. Следуя указанным шагам, вы сможете легко изменить MTU и настроить вашу систему для оптимальной работы.
Спасибо. Менял MTU под AstraLinux - помогло.
Спасибо за обратную связь)