Ubuntu 22.04: «Временный сбой при разрешении имен» для локальной сети

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

Я настраиваю виртуальную машину с Ubuntu 22.04.

У меня возникают проблемы с разрешением имен хостов в моей локальной сети. Я могу пинговать другие серверы по IP, но не по имени хоста: ‘Временный сбой разрешения имен’.

Однако я могу пинговать www.google.com.

Я добавил свои локальные DNS-серверы в /etc/resolve/resolv.conf и в /etc/netplan/01.netcfg.yaml

Нужно ли мне добавить это еще где-то?

Вкратце, я решил свою проблему с помощью

systemctl restart systemd-resolved

У меня свежая установка Ubuntu 22.04. Система постоянно теряет большую часть соединений с интернетом через пару часов. Несколько приложений все еще могут получить доступ к интернету, и я все еще могу заходить на несколько веб-страниц, используя их IP-адреса. Проблема может быть решена перезагрузкой.

Чтобы справиться с этой неприятной проблемой, я протестировал nfw disable, netplan try, dhclient -r,ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf, systemctl enable NetworkManager, а также несколько других предложений, требующих изменения файлов, таких как /etc/netplan/00-installer-config.yaml, ни один из этих методов не сработал.

Я могу пинговать свой DNS-сервер, но если я пингую реальную веб-страницу, я получаю ошибку “Временный сбой разрешения имен”. resolvectl query приводит к ошибке “resolve call failed: Connection timed out.”

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

ОБНОВЛЕНИЕ:

Оказывается, Cisco AnyConnect вызывает проблему. Та же проблема повторяется почти каждый раз после отключения от VPN. Я все еще не уверен, почему это происходит, но оригинальная команда может временно решить проблему.

Возможным решением может быть установка libnss-mdns и настройка /etc/nsswitch.conf для использования mdns4_minimal.

На сервере Ubuntu не настроен протокол mdns.

Эта ошибка произошла у меня, когда я использовал команду hostnamectl.

# hostnamectl set-hostname virtual-machine.dev.da

Чтобы исправить ошибку, мне нужно было изменить файл /etc/hosts и обновить строку с локальным IP-адресом:

127.0.1.1 virtual-machine.dev.da

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

Ошибки с разрешением имен, такие как "Temporary failure in name resolution", особенно в таких системах, как Ubuntu 22.04, часто могут вызывать значительные неудобства в сетевых приложениях. Для профессиональных системных администраторов и специалистов по ИТ понимание и устранение этих проблем является приоритетной задачей. Давайте рассмотрим данную проблему более подробно и предложим возможные решения.

Теория

Система разрешения имен в операционных системах Unix-подобной архитектуры, к которым относится Ubuntu, функционирует благодаря стекам DNS и NetBIOS. Основные компоненты, которые управляют этой функцией, включают библиотеки NSS (Name Service Switch), DNS-клиенты, такие как systemd-resolved, и конфигурационные файлы, такие как /etc/resolv.conf и /etc/nsswitch.conf. Проблемы в этой области могут быть связаны с настройками конфигурации файлов, службами или VPN-клиентами, такими как Cisco AnyConnect, которые изменяют сетевую конфигурацию.

Пример

Ваш случай иллюстрирует несколько ключевых моментов:

  1. Комплексность сетевой конфигурации: вы добавили DNS-серверы в /etc/resolv.conf и /etc/netplan/01.netcfg.yaml, однако продолжаете встречать проблему с временными сбоями в разрешении имен после отключения VPN. Это указывает на конфигурационные изменения, вносимые VPN и их влияние на системные службы.

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

  3. Решение через перезапуск системы: повторный запуск systemd-resolved возобновляет нормальное поведение, выявляя, что служба DNS требует повторной инициализации после определенного события.

Применение

На основе вышеизложенного, давайте предложим несколько практических решений и стратегий диагностики, чтобы вы могли эффективно решать подобные проблемы в будущем.

  1. Проверка файлов конфигурации DNS:

    • Убедитесь, что в /etc/resolv.conf указаны правильные адреса локальных DNS-серверов. Помните, что этот файл может быть автоматически сгенерирован systemd-resolved, поэтому изменения должны быть применены через конфигурационные файлы, относящиеся к systemd.
    • Проверьте /etc/nsswitch.conf и убедитесь, что он содержит конфигурацию для dns и, при необходимости, для mdns4_minimal, чтобы использовать мультимедийные DNS-запросы, которые могут потребоваться для локальных сетевых ресурсов.
  2. Управление службой systemd-resolved:

    • Командой systemctl restart systemd-resolved можно быстро решить проблему временно, но долгосрочное решение требует устранения причины сбоя.
    • Команда resolvectl может предоставить диагностику текущего состояния DNS-резолвера и помочь в поимке проблем.
  3. Изменение системного хоста:

    • Если вы меняли имя хоста с помощью hostnamectl, убедитесь, что вы обновили /etc/hosts, добавив соответствующие записи, что поможет системе правильно сопоставлять IP-адреса и локальные имена хостов.
  4. Операции с VPN:

    • Поскольку проблема возникает после отключения Cisco AnyConnect, проверьте конфигурации VPN на предмет изменения конфигурации сети. Иногда VPN-клиенты заменяют системные DNS-конфигурации временно. Возможно, потребуется выявить скрипты, которые запускают VPN.
  5. Долгосрочные решения:

    • Рассмотрите возможность написания собственных скриптов или системных хуков, которые будут автоматически восстанавливать DNS-конфигурации после изменений, внесенных VPN.
    • Убедитесь, что ваш DHCP-сервер локальной сети предоставляет корректные DNS-настройки, которые постоянно поддерживаются в системе.

Таким образом, при работе с Ubuntu 22.04 и решением проблемы "Temporary failure in name resolution" вам необходимо использовать комплексный подход, начиная от проверки конфигурационных файлов, диагностики проблем в службах и до выяснения влияния сторонних приложений, в частности VPN-клиентов, на системные настройки сети. Обеспечив целостность и устойчивость вашей сетевой конфигурации, вы сможете поддерживать стабильную работу ваших приложений и служб.

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

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