После обновления до 22.04 имена хостов не могут быть разрешены

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

После обновления Ubuntu с 21.10 до 22.04 у меня перестало работать интернет-соединение. Я подключен к WLAN и могу пинговать IP-адреса (как из локальной сети, так и из интернета) – однако разрешение имен перестало работать. Так, ping 151.101.65.69 работает с потерей пакетов 0%, но ping askubuntu.com выдает ошибку Имя или служба не известны (это работает с другого компьютера, который подключен к тому же роутеру).

При выполнении команды nmcli она показывает следующую конфигурацию DNS:

Конфигурация DNS:
    серверы: 192.168.17.1
    домены: fritz.box
    интерфейс: wlp64s0

Я также пытался вручную добавить 8.8.8.8 в DNS-серверы в сетевом менеджере (Настройки Wi-Fi -> IPv4 -> DNS). Затем оба сервера отображаются в конфигурации DNS, но проблема все еще остается.

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

Как указано в этом ответе и в этом ответе, решение (по крайней мере в моем случае) заключалось в проблеме с /etc/resolv.conf, который содержал только закомментированную строку “Сгенерировано NetworkManager”. Замена этого файла на символическую ссылку на /run/resolvconf/resolv.conf решила мою проблему:

sudo rm -f /etc/resolv.conf
sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

Это, похоже, вызвано тем, что Ubuntu 22.04 ожидает конфигурацию через Netplan. Конфигурация Netplan создается при чистой установке, но если у вас обновленная система, необходимые конфигурации отсутствуют.

Если на вашей системе нет конфигурационного файла (проверьте ls /etc/netplan/*.yaml), вы не получите настроенный по умолчанию резолвер DNS.

Все рекомендации по обходу сервиса systemd-resolved или прямому редактированию /etc/resolv.conf просто маскируют симптом.

Возможные файлы, которые могут (должны) присутствовать на вашей системе – выполните ip a и ip r и замените значения и имена устройств по мере необходимости:

Стандартная общая конфигурация, созданная под управлением subiquity, которая, вероятно, будет достаточной, если у вас нет конкретных потребностей
/etc/netplan/00-installer-config.yaml

сеть:
  ethernet:
    eno1:
      dhcp4: true
  версия: 2

Конфигурация LXD-контейнера с жестко закодированными IPv4, маршрутом и резолверами DNS
/etc/netplan/50-cloud-init.yaml

сеть:
  версия: 2
  ethernet:
    eth0:
      адреса: [10.0.0.50/16]
      маршруты:
      - до: по умолчанию
        через: 10.0.0.1
      серверы имен:
        адреса: [10.0.0.11,10.0.0.12]

Пример настройки объединения
/etc/netplan/01-netcfg.yaml

сеть:
  версия: 2
  рендерер: networkd
  ethernet:
    eno1:
      dhcp4: нет
      dhcp6: нет
    eno2:
      dhcp4: нет
      dhcp6: нет
  объединения:
    bond0:
      интерфейсы: [eno1,eno2]
      dhcp4: нет
      dhcp6: нет
      параметры:
        режим: 802.3ad
        интервал-монитора-mii: 100
  мосты:
    br0:
      интерфейсы: [bond0]
      адреса: [10.0.0.100/16]
      маршруты:
      - до: по умолчанию
        через: 10.0.0.1
      серверы имен:
        адреса: [10.0.0.11,10.0.0.12]

После этого выполните netplan apply, чтобы убедиться, что у вас по-прежнему есть подключение (осторожно с выполнением этого на серверах, к которым у вас нет другого доступа!) или перезагрузите.

У меня была проблема с теми же симптомами. Я выяснил, что причина в ifupdown/managed=false в

/etc/NetworkManager/NetworkManager.conf

[ifupdown]
managed=false

Изменение этого на true решило проблему.

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

После обновления до Ubuntu 22.04 у вас возникли проблемы с резольвером имен, несмотря на то, что вы можете пинговать IP-адреса. Это довольно распространённая проблема, и её решение может включать несколько шагов.

1. Проверьте файл /etc/resolv.conf

Во-первых, убедитесь, что файл /etc/resolv.conf настроен правильно. После обновления системы этот файл может быть неправильно настроен. Проверьте, что он ссылается на актуальный резольвер:

ls -l /etc/resolv.conf

Если он указывает на stub-resolv.conf, вам нужно изменить его следующим образом:

sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl restart systemd-resolved

2. Конфигурация Netplan

Ubuntu 22.04 использует Netplan для управления сетевыми настройками. После обновления могут отсутствовать необходимые конфигурационные файлы. Убедитесь, что файлы конфигурации Netplan находятся в каталоге /etc/netplan/. Вы можете проверить их наличие, запустив:

ls /etc/netplan/*.yaml

Если файлы отсутствуют, создайте новый файл конфигурации, например, 00-installer-config.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    wlp64s0:  # замените на ваше устройство
      dhcp4: true

После создания файла примените изменения:

sudo netplan apply

3. Настройка NetworkManager

Если вы используете NetworkManager, убедитесь, что в /etc/NetworkManager/NetworkManager.conf установлено:

[ifupdown]
managed=true

Измените это значение, если необходимо, и перезапустите NetworkManager:

sudo systemctl restart NetworkManager

4. Настройка dnsmasq (если используется)

Если вы используете dnsmasq, проверьте настройки. Измените строку:

local=/example.com/1.1.1.1

на:

server=/example.com/1.1.1.1

Это должно вернуть правильные IP-адреса вместо того, чтобы резольвить их локально.

5. Тестирование

После выполнения всех вышеуказанных шагов протестируйте разрешение имен:

ping askubuntu.com

Если проблема все еще существует, проверьте журналы системных служб на наличие ошибок, которые могут помочь в диагностике:

journalctl -u systemd-resolved

Заключение

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

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

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