Как обновить resolv.conf после изменения опций resolv в файле interfaces?

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

После запуска управляемого DHCP экземпляра в AWS я внес изменения в файл /etc/network/interfaces для пользовательского nameserver и строк поиска DNS:

auto lo
auto eth0
iface lo inet loopback
dns-nameservers 1.1.1.1 9.9.9.9
dns-search flapjacks.io flapjacks.net

iface eth0 inet dhcp

Я надеялся, что смогу перезапустить сервис, чтобы resolv.conf отразил эти изменения, но я не знаю, какой сервис перезапустить… изменения, однако, отображаются после перезагрузки. Кто-нибудь может сказать, какой сервис должен их обновить?

Я предлагаю попробовать:

sudo ifdown eth0 && sudo ifup -v eth0

Опция -v для детального вывода должна обеспечить достаточный вывод, чтобы увидеть, что процесс успешно завершен.

Вы можете выполнить следующие команды:

sudo resolvconf --enable-updates
sudo resolvconf -u
sudo systemctl restart resolvconf.service
sudo systemctl restart systemd-resolved.service

Чтобы увидеть, какие DNS-серверы в настоящее время используются (для Ubuntu 22.04+):

resolvectl status

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

Теория

Файл /etc/resolv.conf является критическим элементом в конфигурации сетевого стека любой Unix/Linux системы, так как он определяет, какие DNS-серверы должны использоваться для преобразования доменных имен в IP-адреса. В вашем случае, вы хотите обновить этот файл после внесения изменений в файл /etc/network/interfaces, который управляет сетевыми интерфейсами системы. Ваши изменения связаны с настройкой DNS-серверов и строк поиска DNS. Однако после внесения изменений вы обнаружили, что они вступают в силу только после перезагрузки системы.

Изменения в /etc/network/interfaces требуют, чтобы сетевой интерфейс был перезагружен, чтобы новый конфигурационный файл был считан должным образом. Однако перезагрузка всей системы часто нецелесообразна, особенно в производственных средах, поэтому важно понимать, как грамотно обновить соответствующие служебные процессы.

Пример

Вы указали, что добавили следующие строки в файл /etc/network/interfaces:

auto lo
auto eth0
iface lo inet loopback
dns-nameservers 1.1.1.1 9.9.9.9
dns-search flapjacks.io flapjacks.net

iface eth0 inet dhcp

Эти настройки указывают, что для интерфейса eth0, работающего в режиме DHCP, надо использовать DNS-серверы с адресами 1.1.1.1 и 9.9.9.9, а также домены flapjacks.io и flapjacks.net для строк поиска DNS.

Применение

Чтобы обновить файл /etc/resolv.conf без перезагрузки системы, вы можете выполнить несколько шагов.

  1. Перезапуск интерфейса: Попробуйте выключить и вновь включить сетевой интерфейс eth0 с помощью команды:

    sudo ifdown eth0 && sudo ifup -v eth0

    Параметр -v обеспечивает вывод подробной информации, что позволяет убедиться, что процесс завершился успешно. Обратите внимание, что команды ifdown и ifup могут не сработать, если они не настроены в системе. В таких случаях стоит использовать ip или nmcli, если вы используете NetworkManager.

  2. Ручное обновление конфигурации резолвера: В некоторых системах может быть установлен пакет resolvconf, управляющий файлом /etc/resolv.conf. В таком случае выполните следующие команды:

    sudo resolvconf --enable-updates
    sudo resolvconf -u
  3. Перезагрузка служб: Некоторые современные дистрибутивы Linux используют systemd-resolved для управления DNS. Попробуйте перезапустить соответствующие службы:

    sudo systemctl restart systemd-resolved.service

    Если установлен пакет resolvconf, можно также перезапустить его:

    sudo systemctl restart resolvconf.service
  4. Проверка текущей настройки DNS: Чтобы убедиться, что DNS-сервера успешно обновлены, используйте команду:

    resolvectl status

    Это покажет текущие DNS-сервера и резервные настройки, которые используются системой.

Помощь команды resolvectl (начиная с Ubuntu 22.04 и выше) позволяет организовать вывод текущих настроек DNS и убедиться в актуальности обновлений.

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

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

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

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