У меня есть несколько экземпляров 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
или что-то в этом роде?