Вопрос или проблема
Вот в чем дело, у меня есть физическая машина, на которой установлена операционная система uos. Для интерфейса eth1 мне нужно, чтобы mtu было 1750. К сожалению, mtu периодически изменяется на 1500 через мгновение после исчезновения его локального адреса IPv6. Затем, через несколько минут, локальный адрес снова настраивается, и mtu восстанавливается до 1750.
Машина новая, только установлена uos и настроена сеть. Нет cronjob, на ней не выполняется никаких других задач. Есть ли способ выяснить, кто меняет mtu моего сетевого интерфейса?
Вот конфигурация eth1, файл /etc/NetworkManager/system-connection/eth1.nmconnection
:
[ethernet]
mtu=1750
[connection]
id=eth1
uuid=xxxxxx-xxxx-xxx # это пример значения
type=ethernet
interface-name=eth1
Для информации: eth1 не используется физической машиной, но используется libvirt для создания интерфейса sriov, который используется виртуальной машиной на физической машине. Так что другой конфигурации ipv4/ipv6 на eth1 нет.
Я проверял dmesg и сетевые журналы и ничего не нашел.
Мне нужно, чтобы mtu было зафиксировано и установлено на 1750 навсегда.
Ответ или решение
Изменение MTU (Maximum Transmission Unit) сетевого устройства, как в вашем случае, может быть связано с несколькими причинами, особенно учитывая, что интерфейс eth1 используется для виртуализации и взаимодействует с libvirt. Давайте разберем процесс диагностики проблемы и предложим шаги для ее решения.
1. Диагностика проблемы
Понимание поведения MTU
- MTU 1750: Вы установили MTU в 1750 для интерфейса eth1, однако оно периодически изменяется на 1500 после исчезновения адреса IPv6 link-local.
- Контекст использования интерфейса: Поскольку eth1 не используется напрямую, а связывается с виртуальными машинами через SR-IOV, поведение может зависеть от конфигурации виртуализации.
Анализ логов
- Вы уже проверили
dmesg
и журналы сети, но стоит также обратить внимание на:- Логи системных служб, таких как
systemd
илиNetworkManager
. - Логи
libvirt
, так как они могут содержать информацию о конфигурации сетевых интерфейсов.
- Логи системных служб, таких как
2. Возможные причины изменения MTU
- NetworkManager: Хотя вы указали MTU в конфигурации NetworkManager, возможно, сервер виртуализации или сама виртуальная машина переопределяет настройки.
- libvirt: Проверьте конфигурационные файлы виртуальных машин, возможно, параметры MTU и другие сетевые настройки определяются на уровне виртуализации.
- Сетевые службы: Убедитесь, что никакие другие сетевые службы или демоны не вмешиваются в настройки интерфейса.
3. Решение проблемы
Для того чтобы устранить проблему изменения MTU, выполните следующие действия:
Установка MTU на фиксированное значение
-
Проверьте конфигурацию libvirt:
Убедитесь, что у вас в конфигурации виртуальных машин (обычно находится в/etc/libvirt/qemu/*.xml
) нет указания на MTU или что он равен 1750. -
Постоянное применение MTU:
Рассмотрите возможность создания скрипта, который будет устанавливать MTU в 1750 при каждом старте интерфейса. Для этого используйте следующий код:#!/bin/bash ip link set dev eth1 mtu 1750
Сохраните этот скрипт в
/etc/network/if-up.d/set-mtu
и сделайте его исполняемым:chmod +x /etc/network/if-up.d/set-mtu
-
Используйте NetworkManager:
Если вы всё же хотите использовать NetworkManager, убедитесь, что вNetworkManager.conf
отключена автоматическая настройка для eth1:[main] plugins=ifupdown,keyfile [ifupdown] managed=false
-
Мониторинг изменений MTU:
Чтобы выяснить, кто изменяет MTU, используйте следующий подход:- Настройте уровень логирования NetworkManager на «debug» для получения подробной информации о его действиях. Это можно сделать путем изменения настроек в
/etc/NetworkManager/NetworkManager.conf
. - Используйте
auditd
для отслеживания изменений конфигурации интерфейса:auditctl -w /etc/sysconfig/network-scripts/ifcfg-eth1 -p wa
- Настройте уровень логирования NetworkManager на «debug» для получения подробной информации о его действиях. Это можно сделать путем изменения настроек в
4. Заключение
Изменение MTU сетевого интерфейса может вызвать различные сетевые проблемы, особенно в среде виртуализации. Следуя представленным шагам, вы сможете выявить и устранить Root Cause (коренную причину) изменения MTU. Убедитесь, что все компоненты вашей сети и виртуализации правильно сконфигурированы для работы с заданным MTU.
Если проблема продолжает возникать, возможно, имеет смысл обратиться к сообществу разработчиков вашей операционной системы или к специалистам по виртуализации для получения более глубокой помощи.