В соответствии с https://cloud.google.com/compute/docs/internal-dns Я добавил это в конце /etc/dhcp/dhclient.conf
чтобы иметь собственный сервер имен на resolv.conf
prepend domain-name-servers x.x.x.x;
После service networking restart
Файл resolv.conf заполняется настраиваемым сервером имен.
Проблема в том, что через несколько часов (около 12), иногда и больше (я не могу точно определить время, которое потребуется) аренда dhcp удаляет сервер имен из resolv.conf
Это вывод системного журнала на тот момент, когда это происходит:
normal syslog output
...
dhclient[30756]: DHCPREQUEST of 10.207.0.40 on eth1 to 169.254.169.254 port 67
dhclient[30756]: DHCPACK of 10.207.0.40 from 169.254.169.254
liblogging-stdlog: [origin software="rsyslogd" swVersion="8.24.0" x-pid="11655" x-info="http://www.rsyslog.com"] exiting on signal 15.
systemd[1]: Stopping System Logging Service...
systemd[1]: Stopped System Logging Service.
systemd[1]: Starting System Logging Service...
dhclient[30756]: bound to 10.207.0.40 -- renewal in 35134 seconds.
liblogging-stdlog: [origin software="rsyslogd" swVersion="8.24.0" x-pid="26725" x-info="http://www.rsyslog.com"] start
systemd[1]: Started System Logging Service.
...
normal syslog output
Я не знаю, почему системный журнал останавливается и запускается снова ...
Есть идеи о том, что пишет файл resolv.conf?
Причина, по которой файл resolv.conf перезаписывается снова и снова, заключается в том, что срок аренды DHCP на вашем экземпляре истекает. В документации [1] говорится:
Редактирование файла resolv.conf вручную приведет к его возврату к DHCP по умолчанию каждый раз, когда истекает 24-часовая аренда DHCP на вашем экземпляре. В экземплярах, использующих зональный DNS, срок аренды DHCP истекает каждый час. Чтобы внести статические изменения в файл resolv.conf, некоторые дистрибутивы Linux позволяют добавлять элементы к политике DHCP в начале или в конце.
Эта 24-часовая аренда не является SLO, так что это может произойти раньше.
Поскольку вы находитесь в облачной среде, вы можете добиться того же поведения при редактировании resolv.conf
выполнив некоторые настройки Cloud DNS:
A) Если вы хотите переопределить DNS для использования ON PREM DNS, вы можете создать «Политику DNS-сервера» [2] [3] [4]
Б) Если вы хотите использовать свою собственную привязку (внутри вашего проекта) для создания внутренних зон, вы можете использовать частные зоны Cloud DNS [5]
В облачных средах никогда не рекомендуется переопределять resolv.conf
.
[1] https://cloud.google.com/compute/docs/internal-dns#resolv.conf
[2] https://cloud.google.com/dns/docs/overview#dns-server-policy
[4] https://cloud.google.com/dns/docs/best-practices-dns#best_practices_for_private_zones
[5] https://cloud.google.com/dns/zones/#creating_private_zones