MTU сетевого устройства периодически изменяется, может кто-нибудь помочь мне это исправить?

Вопрос или проблема

Вот в чем дело, у меня есть физическая машина, на которой установлена операционная система 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 на фиксированное значение

  1. Проверьте конфигурацию libvirt:
    Убедитесь, что у вас в конфигурации виртуальных машин (обычно находится в /etc/libvirt/qemu/*.xml) нет указания на MTU или что он равен 1750.

  2. Постоянное применение 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
  3. Используйте NetworkManager:
    Если вы всё же хотите использовать NetworkManager, убедитесь, что в NetworkManager.conf отключена автоматическая настройка для eth1:

    [main]
    plugins=ifupdown,keyfile
    
    [ifupdown]
    managed=false
  4. Мониторинг изменений MTU:
    Чтобы выяснить, кто изменяет MTU, используйте следующий подход:

    • Настройте уровень логирования NetworkManager на «debug» для получения подробной информации о его действиях. Это можно сделать путем изменения настроек в /etc/NetworkManager/NetworkManager.conf.
    • Используйте auditd для отслеживания изменений конфигурации интерфейса:
      auditctl -w /etc/sysconfig/network-scripts/ifcfg-eth1 -p wa

4. Заключение

Изменение MTU сетевого интерфейса может вызвать различные сетевые проблемы, особенно в среде виртуализации. Следуя представленным шагам, вы сможете выявить и устранить Root Cause (коренную причину) изменения MTU. Убедитесь, что все компоненты вашей сети и виртуализации правильно сконфигурированы для работы с заданным MTU.

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

Оцените материал
Добавить комментарий

Капча загружается...