При загрузке resolv.conf пуст, но затем в конечном итоге заполняется. Почему?

При загрузке resolv.conf пуст, но затем в конечном итоге заполняется. Почему?

У меня есть несколько экземпляров 17.10, работающих в Amazon EC2 на VPC. Когда я перезагружаю сервер (не уверен, происходит ли это при холодной загрузке, я не проверял), файл /etc/resolv.confотображается как пустой:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

Разрешение имен не выполняется ожидаемым образом, например, при подключении к серверу со статическим IP-адресом в частной подсети через его внутреннее DNS-имя:

ssh: Could not resolve hostname example: Temporary failure in name resolution

Теперь, если я подожду некоторое время, то внезапно появятся правильные значения /etc/resolv.conf:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
search subdomain.example.com

Команда systemd-resolve --statusсообщает то же самое. /etc/resolv.confФайл также правильно устанавливается, если я вручную принудительно обновляю dhclient, и я знаю, что эти значения поступают с сервера EC2 DHCP.

Итак, вопрос: какой части моей конфигурации не хватает, чтобы это не произошло сразу после загрузки?

Добавление этих значений напрямую к чему-то вроде /etc/resolvconf/resolv.conf.d/baseсработало бы, но тогда я жестко кодирую что-то, что должно поступать через DHCP, я полагаю. Я /etc/netplanтакже посмотрел ( ifupdownне используется), и это, похоже, исходит из облачной инициализации, так что мне интересно, может быть, я что-то упускаю /etc/cloud/cloud.cfgили что-то в этом роде?

Связанный контент