Правильный способ отключить IPv6 и устранить проблемы с работой.

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

Я использую Ubuntu Server 24.04.1 LTS и сталкиваюсь с проблемами, пытаясь сделать все “правильным” образом для Ubuntu.

Во-первых, я пытаюсь заставить работать systemd-resolved:

  • Я конкретно хочу использовать systemd-resolved и сохранить кэширование. Я также хочу продолжать работать в режиме заглушки.
  • Если это вообще возможно, я хочу избежать разрывов символических ссылок или изменения существующих файлов. Я предпочел бы добавлять конфигурации в виде drop-in, где это возможно.
  • Серверы имен, которые я указал через netplan, появляются в /run/systemd/resolve/resolv.conf, но /run/systemd/resolve/stub-resolv.conf является символической ссылкой на /etc/resolv.conf.
  • resolvectl query google.com работает как ожидается и кэширует ответы.
  • host google.com не работает и возвращает ошибка связи к 127.0.0.53#53: время ожидания истекло.
  • systemctl status systemd-resolved показывает, что сервис работает со статусом “обработка запросов”.
  • lsof -i :53 показывает systemd-resolve на 127.0.0.53 и 127.0.0.54 tcp + udp, но только TCP-записи имеют “(LISTEN)” рядом с ними.

Во-вторых, я пытаюсь полностью отключить ipv6:

  • Я установил несколько значений в /etc/sysctl.d/local.conf, но это, похоже, не влияет ни на что после перезагрузки.
  • networkctl status показывает мою сеть в состоянии routable, но в partial онлайн-состоянии.

Не знаю, что я делаю не так, но у меня ощущение, что это самая трудная установка Linux, с которой мне когда-либо приходилось бороться.

/etc/netplan/99-ip.yaml

network:
  version: 2
  ethernets:
    eno1:
      dhcp4: false
      dhcp6: false
      addresses:
      - 192.168.1.137/24
      routes:
      - to: default
        via: 192.168.1.254
      nameservers:
        addresses: [9.9.9.11,149.112.112.11]

/etc/sysctl.d/local.conf

net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.all.forwarding=0
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
net.ipv6.conf.eno1.disable_ipv6=1

Ответ или решение

Для решения вопросов, связанных с работой системы systemd-resolved в Ubuntu Server 24.04.1 LTS, а также для отключения IPv6, необходимо рассмотреть несколько аспектов. Ниже приведены пошаговые рекомендации, которые помогут вам достичь желаемых результатов, сохранив при этом правильность конфигурации системы.

Настройка systemd-resolved

  1. Проверка состояния systemd-resolved: Убедитесь, что служба systemd-resolved активна и работает корректно. Используйте команду:

    systemctl status systemd-resolved

    Это покажет вам текущее состояние, включая любые ошибки.

  2. Проверка конфигурации имен серверов: Ваша конфигурация в /etc/netplan/99-ip.yaml выглядит верно. Убедитесь, что вы применили изменения:

    sudo netplan apply

    Это обязательный шаг после изменения файла настройки.

  3. Проверка конфигурации resolv.conf: Ваша система использует /run/systemd/resolve/stub-resolv.conf, который является символической ссылкой на /etc/resolv.conf. Это нормально для работы в отладочном режиме. Проверьте содержимое этого файла:

    cat /etc/resolv.conf

    Убедитесь, что он правильно указывает на 127.0.0.53.

  4. Настройка drop-in конфигурации:
    Если вы хотите изменить опции конфигурации для systemd-resolved, можно создать файл drop-in:

    sudo mkdir -p /etc/systemd/system/systemd-resolved.service.d
    sudo nano /etc/systemd/system/systemd-resolved.service.d/override.conf

    Добавьте необходимые настройки, а затем перезапустите службу:

    sudo systemctl daemon-reload
    sudo systemctl restart systemd-resolved
  5. Проверка кеша DNS: Используйте команду resolvectl query google.com для проверки, работает ли кеширование DNS. Если запрос проходит, то система настроена правильно.

Отключение IPv6

  1. Настройка sysctl: Убедитесь, что изменения, которые вы внесли в файл конфигурации /etc/sysctl.d/local.conf, правильно применяются. После редактирования файла выполните:

    sudo sysctl -p /etc/sysctl.d/local.conf

    Это применит изменения без перезагрузки.

  2. Проверка состояния интерфейса: Используйте команду:

    networkctl status

    Если сетевой интерфейс находится в состоянии "параметры" (partial), это может указывать на то, что система не применяет изменения. Убедитесь, что вы не используете IPv6 в конфигурации Netplan.

  3. Перезагрузка: Иногда изменения не будут применены до перезапуска машины. Убедитесь, что вы перезагрузили сервер после всех изменений конфигурации:

    sudo reboot
  4. Диагностика: После перезагрузки проверьте наличие IPv6 адресов на интерфейсе с помощью:

    ip addr show eno1

    Убедитесь, что IPv6 адреса отсутствуют.

Заключение

Следуя указанным выше шагам, вы сможете привести в порядок работу systemd-resolved и отключить IPv6 на вашем сервере Ubuntu 24.04.1 LTS. При этом старайтесь избегать изменения стандартных конфигурационных файлов и используйте механизмы drop-in, чтобы сохранить целостность системы. Если проблемы сохраняются, обратите внимание на сообщения в логах, которые могут дать дополнительные подсказки о причинах неполадок.

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

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