ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Суббота, 14 декабря, 2024

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

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

MTU (сокращение от Maximum Transmission Unit) — это максимальный размер пакета, который может быть передан через сетевой интерфейс. Все устройства, включая серверы и коммутаторы/маршрутизаторы, участвующие в обмене данными, должны иметь одинаковый размер MTU. Большой размер MTU имеет меньше накладных расходов, в то время как меньший размер MTU имеет меньшую задержку.

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

 

Предпосылки

 

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

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

$ ifconfig | grep mtu

 

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

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

$ ip a | grep mtu

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

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

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

$ ifconfig <Interface_name> mtu <mtu_size> up

 

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

$ ifconfig ens33 mtu 1000 up

 

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

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

$ ifconfig | grep 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, используя следующую команду:

$ sudo nano /etc/dhcp/dhclient.conf

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

default interface-mtu <mtu_size>;

supersede interface-mtu <mtu_size>;

 

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

default interface-mtu 1400;

supersede interface-mtu 1400;

 

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

interface "interface_name" {

default interface-mtu <mtu_size>;

supersede interface-mtu <mtu_size>;

}

 

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

$ sudo service networking restart

 

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

$ sudo ifup <interface_name>

 

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

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

$ sudo ifup ens33

 

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

$ sudo ifconfig | grep mtu

 

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

 

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

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

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

$ sudo nano /etc/network/interfaces

 

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

post-up /sbin/ifconfig <interface-name> mtu <mtu_size>

 

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

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

post-up /sbin/ifconfig ens33 mtu 1300 up

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

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

$ sudo service networking restart

 

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

$ sudo ifup <interface_name>

 

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

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

$ sudo ifup ens33

 

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

$ ip a | grep mtu

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

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

Exit mobile version